> 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.