README update

This commit is contained in:
Bahadir Balban
2008-09-01 16:44:33 +03:00
parent 0a9dede8f7
commit fb8d8f4bb9

41
README
View File

@@ -23,12 +23,10 @@ the Linux Kernel.
Why the name Codezero? Why the name Codezero?
The project focuses on simplicity, elegance, cleanliness, which are important The project focuses on simplicity, elegance and cleanliness. The philosophy is
assets in software engineering. The philosophy is to implement a structurally to implement structurally advanced software while retaining simplicity in the
complete system with most modern OS features while retaining simplicity in the implementation. Also the project is written from scratch, so the name emphasises
implementation as much as possible. This objective also fits well with embedded that.
platforms, which usually have rigorous memory and performance requirements. Also
the project is written from scratch, so the name emphasises that.
Design & Features: Design & Features:
@@ -57,13 +55,13 @@ used under FS0.
MM0 and FS0 both reside in the userspace, and they are not mandatory services. MM0 and FS0 both reside in the userspace, and they are not mandatory services.
For example the virtual and physical memory resources can be partitioned by For example the virtual and physical memory resources can be partitioned by
Codezero among pagers, and a third-party pager can override Codezero's MM0 Codezero among pagers, and a third-party pager can override Codezero's pager on
pager on the same run-time, and implement an independent paging behaviour the same run-time, and implement an independent paging behaviour for its own
for its own memory partition. This feature provides the option of having an memory partition. This feature provides the option of having an adjustable
adjustable mixture of generalisation and specialisation of system services at mixture of generalisation and specialisation of system services at the same
the same run-time, by using a combination of Codezero's abstract posix-like run-time, by using a combination of Codezero's abstract posix-like page/file
page/file management services and an application-specific pager that depends on management services and an application-specific pager that depends on its own
its own paging abilities. For example a critical task could both use mm0/fs0's paging abilities. For example a critical task could both use mm0/fs0's
posix-like files benefiting from the abstraction and simplification that it posix-like files benefiting from the abstraction and simplification that it
brings, but at the same time rely on its own page-fault handling for its brings, but at the same time rely on its own page-fault handling for its
critical data so that even though it handles its memory in a specialised way, critical data so that even though it handles its memory in a specialised way,
@@ -95,10 +93,11 @@ for embedded systems. Multiple problems arise due to this fact.
Unix itself and all the tools built upon weren't meant for using on small Unix itself and all the tools built upon weren't meant for using on small
devices. Accordingly, these operating systems contain a lot of historical code. devices. Accordingly, these operating systems contain a lot of historical code.
Their code base is so big, that it gets more and more difficult to understand Their code base is so big, that it gets more and more difficult to understand
how their internals work. On these systems usually much of the code is how their internals work. On these systems usually much of the existing code
irrelevant to a new problem, and embedded systems tend to raise new problems base is irrelevant to newly developed software, and embedded systems need new
often. Codezero is written from scratch to solely target embedded systems and software often. Codezero is written from scratch to solely target embedded
as such the source code is %100 relevant. It is small and free from legacy code. systems and as such the source code is %100 relevant. It is small and free from
legacy code.
From a design perspective, these kernels have a monolithic design, and as such From a design perspective, these kernels have a monolithic design, and as such
they may have issues with dependability due to much of the code sharing the same they may have issues with dependability due to much of the code sharing the same
@@ -116,10 +115,10 @@ Other than modern unix kernels, there are existing operating systems targeting
embedded devices. Most of them are proprietary, with their own users. Some of embedded devices. Most of them are proprietary, with their own users. Some of
them are structurally too simplistic, and lack modern features such as paging. them are structurally too simplistic, and lack modern features such as paging.
There ones that are well established, but Codezero will contrast them by There ones that are well established, but Codezero will contrast them by
providing an alternative that will follow the open source development principles being a more open-source friendly alternative. Many embedded software projects
more closely. Many embedded software projects still use older or closed still use older or closed development methods and the right open source
development methods and the right open source methodology would prove favorable methodology would prove favorable in the fast-paced nature of embedded software
in the fast-paced nature of embedded software development. development.
Finally, POSIX compliance is only a step, or a partial aim for the Codezero Finally, POSIX compliance is only a step, or a partial aim for the Codezero
microkernel. It is not limited to the goal of just complying with POSIX, which microkernel. It is not limited to the goal of just complying with POSIX, which