[Geekos-devel] first release of experimental version
Status: Pre-Alpha
Brought to you by:
daveho
From: David H. <da...@cs...> - 2002-03-11 16:15:37
|
I finished rewriting the experimental version of GeekOS in C++, and put up a file release. You can download it from http://prdownloads.sourceforge.net/geekos/geekos-0.1.0.tar.gz You can also keep current with this branch using anonymous cvs. Use the commands: cvs -d:pserver:ano...@cv...:/cvsroot/geekos login cvs -z3 -d:pserver:ano...@cv...:/cvsroot/geekos \ co oo-geekos I am quite pleased with the improvement that has resulted in using classes and inheritance. There is a base "kernel_object" class which implements reference counting and automatic cleanup when the refcount becomes zero. A smart pointer class called "kobj_ptr" is used to automatically remove a reference from a kernel_object when it goes out of scope. This is a big win, because it makes the compiler responsible for cleaning up state on the error paths of resource creation and initialization code, which is one of the most tedious and error prone aspects of C programming. Another obvious benefit to using C++ is that we can express object interfaces using a more natural syntax. Most of the kernel is still written using functions and structs. Some of this code may be converted to objects later on, if there is a clear benefit. I want to avoid over-use of C++ features, especially constructors and destructors (which can cause major performance overheads if used carelessly). -Dave |