[openbeos] Debunking the complexity

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"


   

Other related posts: