[openbeos] Re: Threads, the Kernel and Death Stacks

  • From: Michael Noisternig <michael.noisternig@xxxxxxxxx>
  • To: OpenBeOS <openbeos@xxxxxxxxxxxxx>
  • Date: Sun, 23 Sep 2001 20:25:58 +0200

> None of the concepts of kernel development are particularly complicated.

Haha! Given that after a basic working implementation of the OS you need
all of: process handling (classification of tasks, task switchs),
process scheduling (which process comes next, deal with multiple
processors and I/O, multiple schedulers), process synchronisation (use
of semaphors, prevent deadlocking within the system), (inter-)process
communication, memory management (where and how do we allocate memory,
unite small fragments, external memory), (demand) paging and swapping
(which pages do we swap out, which in, how much do we swap out/in, how
do we prevent thrashing, calculate use of pages and working set, lazy
evaluation of pages), virtual memory, shared memory and I/O pages with
all the problems associated with paging/swapping and DMA issues...
I could even continue, and I am sure I forgot much to mention.
So you say that kernel development is not complicated?
That is really amuzing...

> How can we reconcile the simplicity of kernel concepts with the apparent 
> difficulty of making them?
> Simply thus: in building a kernel, you have to write nearly perfect code.

Not only "nearly perfect" code but you also need a deep understanding of
how all the stuff listed above works and influences the behaviour of the
OS.

I think most of the people on this list believe that the creation of
OpenBeOS (and especially the kernel) is a long but not too hard process,
but I DO think that this is going to be hard, even more if you want an
OS that performs well. And I don't want an OS that manages to run old
BeOS apps just *someway* i.e. with low overall system performance.

Michael N.

Other related posts: