[ros-kernel] Here's what's alive!

art yerkes ayerkes at speakeasy.net
Fri Sep 24 05:07:03 CEST 2004


On Thu, 23 Sep 2004 23:19:24 -0700 (PDT)
Tim Schmidt <aumlfs at yahoo.com> wrote:

> Sorry, relatively new to the list here, and not as
> familiar with ReactOS internals as I should be.  Does
> this mean we have working TCP/IP? or just a working
> foundation for it?
> 
> --tim

It works but isn't stable yet.  I could use some help with the remaining
bugs in tcpip.sys.  We are using the tcp parts from freebsd, with an
interface layer that Royce recently debugged completely.  I'd like someone
with some driver experence to help a bit either with porting our afd and
tcpip to work on windows or to help with the bugchecks in tcpip.sys when
we have TCP sockets open.  

In order to duplicate my test setup, have a linux host with qemu set up
to use tun/tap networking.  Make sure that your host and guest qemu can
communicate properly first (using a livecd linux distribution is a
convenient way to do that).  Install telnetd on the host and verify
that it's running, Then enable the ne2000 driver in the reactos registry
(Start -> 1), and install reactos on qemu's virtual hard disk.  After
you get that far, you should be able to use the telnet app from rosapps
to login to the host from in reactos like this:

Here's the eyecandy: http://64.81.145.152/~arty/ss1.jpg

So this is where the fun begins:  After a minute or two of being amazed,
you'll probably get a bugcheck in one of a few places: KeInsertQueueApc,
(called from the call to CompleteRequest in TCPSocketState in
transport/tcp/event.c of tcpip.sys) is the most common for me, but
TCPFree complaining about freeing an unallocated object, and a recursive
bugcheck in MmProbeAndLockPages that i mentioned earlier on this list are
likely candidates too.  I suspect but haven't completely confirmed that
the KeInsertQueueApc case is due to a bug in the apc code.

We are missing parts of the winsock api and some needed support in
afd, but this is definately progress.  Once we get the apps that work
working stably (currently only finger and telnet), i'll start working
on features needed some other apps (notably lynx and cvs).

I encourage others to try this setup out if they can and pitch in at
this point.  I'm not very good at finding bugs in reactos' kernel mode
components, so it will probably take a shorter time for quite a few
of the ros devs than me.  Advice is appreciated, auditing and critique
of the new code in tcpip.sys and afd.sys is quite welcome if anybody
has some time.  afd is the first driver i ever wrote from scratch, so
i fully expect to have some dumb stuff pointed out.  In the mean time
I will continue pulling more stuff out of tcpip.sys into userland to
hopefully make it possible to debug in case nobody has time or
patience for watching this stuff in the kernel.  

Steven Edwards has proposed that we have networking be the cornerstone
of the 0.3.0 release at the end of the year and i can see the light
at the end of the tunnel.  Together, I have no doubt that we will be
able to get reactos to a state where we can honestly say that it 'has
networking' before the end of the year.

Art
-- 
Hey, Adam Smith, keep your invisible hands to yourself!


More information about the Ros-kernel mailing list