mirror of
https://github.com/drasko/codezero.git
synced 2026-01-26 09:43:14 +01:00
Adds reading pages into page-cache in an ordered manner.
Added reading pages from the page cache into user buffer for sys_read. Increases stack sizes to 4 pages. Updated README to include more details about multi-pager environments.
This commit is contained in:
40
README
40
README
@@ -38,17 +38,35 @@ Codezero. These system calls provide purely mechanism; threads and address
|
||||
spaces, and the methods of inter-process communication between them. Anything
|
||||
beyond these are policy and they are implemented in the userspace. Due to this
|
||||
rigorously simple design the same microkernel can be used to design completely
|
||||
different operating systems. In terms of other features, the microkernel is
|
||||
preemptive, and smp-ready. Currently only synchronous communication is
|
||||
implemented, but this will change in the near future.
|
||||
different operating systems.
|
||||
|
||||
MM0 is the systm task that implements memory management. It contains memory and
|
||||
In terms of other features, the microkernel is preemptive, and smp-ready.
|
||||
Currently only synchronous communication is implemented, but this will change in
|
||||
the near future.
|
||||
|
||||
MM0 is the system task that implements memory management. It contains memory and
|
||||
page allocators. It implements demand paging by managing page faults, physical
|
||||
pages and their file/task associations.
|
||||
pages and their file/task associations. It provides the default paging mechanism
|
||||
on Codezero.
|
||||
|
||||
FS0 is the system task that implements a simple, modern virtual filesystem layer.
|
||||
Since it abstracts the low-level filesystem details, it is a relatively easy job
|
||||
to port a new filesystem to be used under FS0.
|
||||
It is designed to serve file requests from MM0. Since it abstracts the low-level
|
||||
filesystem details, it is a relatively easy job to port a new filesystem to be
|
||||
used under FS0.
|
||||
|
||||
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
|
||||
Codezero among pagers, and a third-party pager can override Codezero's MM0
|
||||
pager on the same run-time, and implement an independent paging behaviour
|
||||
for its own memory partition. This feature provides the option of having an
|
||||
adjustable mixture of generalisation and specialisation at the same run-time, by
|
||||
using a combination of Codezero's abstract posix-like page/file management
|
||||
services and an application-specific pager that depends on its own paging
|
||||
abilities. For example a critical task could both use 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 critical data so that even
|
||||
though it handles its memory in a specialised way, it does not depend on another
|
||||
pager's grace for correct, stable operation.
|
||||
|
||||
|
||||
License:
|
||||
@@ -75,8 +93,8 @@ code. Linux is well established, and targets a broad range of platforms and
|
||||
uses, but consequently embedded platforms don't always get enough emphasis. Also
|
||||
such well established, mature systems tend to oppose major design overhauls,
|
||||
which limits innovation to a certain extent. In addition, their code base is so
|
||||
big, that it gets more and more difficult to understand how the system works.
|
||||
Usually much of the code is irrelevant to the problem, in case of embedded
|
||||
big, that it gets more and more difficult to understand how their internals
|
||||
work. Usually much of the code is irrelevant to the problem, in case of embedded
|
||||
systems. Codezero is written from scratch to solely target embedded systems and
|
||||
as such the source code is %100 relevant. It is small and free from legacy code.
|
||||
Finally monolithic kernels may have issues with dependability due to much of the
|
||||
@@ -99,3 +117,7 @@ development methodologies, Codezero project aims to keep up with the latest OS
|
||||
literature and provide the opportunity to incorporate the latest ideas in OS
|
||||
technology.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user