[ros-dev] GSOC-2016

Pierre Schweitzer pierre at reactos.org
Sat Mar 12 09:42:30 UTC 2016


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/SharedFolders

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 at reactos.org> on behalf of Pierre Schweitzer <pierre at reactos.org>
> Sent: Sunday, March 6, 2016 2:41 AM
> To: ros-dev at 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 at 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 at 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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3960 bytes
Desc: Signature cryptographique S/MIME
URL: <http://www.reactos.org/pipermail/ros-dev/attachments/20160312/e0f8422e/attachment.bin>


More information about the Ros-dev mailing list