Hi Samian,
Basically, the usage of samba-tng would just be shipping it with ReactOS
and making sure it works fine. Probably not the most excting thing ;-).
It has been reported working on ReactOS [1], I'm not sure up to which
extent.
Next step would be to implement this as a proper kernel driver (and its
usermode counterpart). You can have a look at VBox shared folders to
understand how it works [2].
Basically, 'driver' is the kernel driver, relying on rdbss (proprietary
blob from MS), it's pretty simple, because most of the "hard" work is
done by rdbss. For Samba, you'd have to use the TDI interface to be able
to perform networking from your driver.
The second directory, 'np' is the usermode counterpart of the kernel
driver. np stands for network provider. It's a component that allows
communicating with the driver from usermode, through private IOCTLs, to
initiate connections, enumerating remote folders and so on. Samba
obviously has one two (which is lanman, unless I'm mistaken).
Implementing Samba support would be implementing both. Because rdbss can
be annoying (we don't have any open source equivalent), the best thing
to do at first is to implement the two parts against Windows 2003, with
Windows PSDK/DDK. And then, we'll see how we can make this right into
ReactOS. The other advantage of such method is that you can make sure
your implementation is compatible with Windows one: can MS lanman
communicate with your driver? Can your lanman communicate with MS dirver?
This is for the big picture. Fortunately for you, you know Samba, TDI is
publicly documented, rdbss as well! The only... Obscure part is the
private IOCTLs between lanman & the kernel driver. But these can be found.
This email shows you somehow the different steps you can have during
GSoC, and the what to look at. This is not a fixed thing, only an help
for your proposal. It will be up to your mentor to review this! ;-).
Do not hesitate if you have questions (general or on a specific point).
Cheers,
Pierre
[1]:
https://www.reactos.org/wiki/Tests_for_0.4.0
[2]:
https://www.virtualbox.org/browser/vbox/trunk#src/VBox/Additions/WINNT/Shar…
Le 11/03/2016 00:11, Mohammad Samian Yusuf a écrit :
Hi Pierre
The Samba-TNG code has not been updated recently as per i know. Can you elaborate on how
we can implement this, from the userland space atm ? i am looking into the source codes,
so a bit of more explanation on how we might achieve this could be helpful.
Sorry i am have not done kernel programming, i did a few course, on kernel dev, but
nothing big,.
But i can learn and show you the proposal before i submit it.
With Care
Samian
________________________________________
From: Ros-dev <ros-dev-bounces(a)reactos.org> on behalf of Pierre Schweitzer
<pierre(a)reactos.org>
Sent: Sunday, March 6, 2016 2:41 AM
To: ros-dev(a)reactos.org
Subject: Re: [ros-dev] GSOC-2016
Hi Samian,
Definitely interesting topic!
I recently did some work on parts in ReactOS that you would deal with
for properly implementing CIFS into ReactOS.
Even though, it keeps being a tough topic. You actually have two ways to
envision your GSoC project regarding SMB support, depending on your
level in development and your knowledge of the Windows NT architecture.
One way (likely the easiest - which must somehow work atm) is to work
only in userland and to rely on software such as samba-tng. This might
be a first step in your project, to get used to ReactOS development.
The second way, and likely hardest way, is to do it the Windows way.
This way involves several components some being in userland, most being
in kernel world. To give a short overview, you'd have to implement
lanman network provider (in userland - a stub already exists in our
trunk) and to implement CIFS network file system in kernel mode
(mrxsmb.sys). The later also requires a secondary driver rdbss.sys. Even
though, at first, it would possible to implement everything into a
single driver. We could discuss later on why two drivers, and why it
would be great to have both.
Luckily, ReactOS already comes with the MUP driver (which allows
redirecting open requests for network file systems) and several features
into MPR (which allows mapping network shares into the system).
If you need some references, the book Windows Internals gives a quick
overview about how it works in Windows. You'll find a word about all the
things I've been talking here, so that you're not lost.
Depending on which way you want to start with, I can give more pointers
about where to look.
If you need more information, do not hesitate to ask.
Regards,
Le 05/03/2016 18:42, Mohammad Samian Yusuf a écrit :
Hi my name is samian
I wanted to write up a proposal for the project
"Integrating SMB into ReactOS "
I was wondering whether anyone has taken up this project or not yet ?
Is this an active project as is anyone currently working on it, as of now i am looking
int the codes to come up with a plan for the development. Currently i am working with the
samba team in testing a new copy transfer system, which they plan to implement into the
future.
I just need to know this project is online and someone working around to mentor me at
some stages.
Any advice would be appreciated
With Care
Samian
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev
--
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.
_______________________________________________
Ros-dev mailing list
Ros-dev(a)reactos.org
http://www.reactos.org/mailman/listinfo/ros-dev
--
Pierre Schweitzer <pierre at reactos.org>
System & Network Administrator
Senior Kernel Developer
ReactOS Deutschland e.V.