[openbeos] Debunking the complexity
- From: "Zenja Solaja" <zenja@xxxxxxxxxxxxxxxx>
- To: "OpenBeOS" <openbeos@xxxxxxxxxxxxx>
- Date: Fri, 24 Aug 2001 18:05:06 EST
For the uninitiated, rewriting an Operating system seems like a
daunting task. I've received private emails where people doubt our
ability to pull this off. I ask just for a few minutes of your time so
that I may present to all of you a simplified analysis of the task we
face. I will use the netserver as an example, but the same reasoning
can be applied to all servers (but not the kernel). The microkernel
architecture designed by BeInc makes the whole task a lot simpler than
with monolithic systems.
So, what is the netserver and what does it do (from an OS programmers
perspective)?
- for a microkernel based architecture, the netserver is just another
process that lives in user space, and is no more special than a "hello
world" program.
- the netserver basically sits idle until spurred into action by the
kernel or a user process
- the kernel awakens the netserver with a message "I've got an octet
ready for you" (byte)
- the netserver buffers this octet until it receives a certain number
of them
- once sufficient bytes arrive, the netserver reshuffles the sequence
and forwards them to another user process
- a user process can also awaken the server with a message "can you
please send this sequence of bytes to machine xx.xx.xx.xx using
protocol y"
- the server reshuffles the sequence of bytes, and adds a few extra
bytes
- the netserver asks the kernel to send these bytes to a hardware
device
Thats basically it. Suddenly, the task of implementing a netserver
isn't anywhere near as daunting as previously thought. The majority of
development time will be spent on developing algorithms for shuffling
bytes and organising the storage of bytes so that each user process
receives the correct packet. The other BeOS servers can also be broken
down to essential tasks, and then worked up until the desired
functionality is met.
I hope to have demonstrated how achievable our task is (off course, the
devil is in the details). Can I please request that noone jumps on my
back saying "but networking should be in the kernel", "what about PPP",
etc, since this is just a simple debunking exercise.
OpenBeOS motto - "Stay back people. I've got a compiler. And I'll use
it, too"
- Follow-Ups:
- [openbeos] Re: Debunking the complexity
- From: Peter Stegemann
- [openbeos] Re: Debunking the complexity
- From: Manuel Jesus Petit de Gabriel
Other related posts:
- » [openbeos] Debunking the complexity
- » [openbeos] Re: Debunking the complexity
- » [openbeos] Re: Debunking the complexity
- » [openbeos] Re: Debunking the complexity
- [openbeos] Re: Debunking the complexity
- From: Peter Stegemann
- [openbeos] Re: Debunking the complexity
- From: Manuel Jesus Petit de Gabriel