Eleanore Semaphore: Difference between revisions
[unchecked revision] | [unchecked revision] |
Content deleted Content added
No edit summary |
m fixed link |
||
(17 intermediate revisions by 15 users not shown) | |||
Line 1:
Eleanore Semaphore works in a darky corner of a small room with listings all around. Her system has
== The foundation of a kernel ==
Line 5:
Ok, so you know what a [[Semaphore|semaphore]] is? Or maybe [[Monitor|monitors]] or just plain [[Message Passing|message passing]] would be a better way to synchronize? 'Cos I guess we want to synchronize our processes. You want to write a [[Microkernel|µ-kernel]] don't you, even if you actually wanted to run some tasks in the kernel for performance later?
Honestly, if you are like Eleanore, you probably have a pretty good idea of what you want the "big picture" to feel like, but little idea of how to get there. In fact, you'll probably be reading research papers pretty soon, so maybe the real answer hasn't been invented yet? And whether you are going to write just a barebones microkernel with the most simple possible [[Message_Passing|IPC]] system, or a sophisticated distributed [[RPC]] model with [[Garbage
And we are going to dive straight into the theory, but I guess that won't scare you, right?
Line 23:
=== Userspace ===
Since a µ-kernel is nothing without userspace processes, you probably want to go into userspace relatively early. You could simulate them in kernel
And really, if you are like me, then you probably agree that these two are what makes an operating system different.
==== Virtual memory management ====
You probably need a manager for virtual memory and this is a good moment to design one. You have several options, like always:
Line 38:
If you are going to support some kinds of userspace management (and even if you don't), you should probably consider how your IPC and VMM will interact before you start writing any high-level management code. But then again, most existing systems seem to be quite happy with a "regular" VMM.
Existing virtual memory management schemes that you might find useful include those in Unix, including [http://www.google.com/search?ie=utf-8&oe=utf-8&q=linux%20memory%20management Linux], FreeBSD and others, VMS, [http://msdn.microsoft.com/library/en-us/dngenlib/html/msdn_ntvmm.asp
ToDo: should this stuff go to a separate "Virtual Memory" page?
==== How can my processes talk to each other? ====
For any future processes to be able to talk to each other (and eventually outside world) one needs some facilities for communication. What kind of [[Category:IPC|inter-process communication]] you are going to have, depends on what exactly do you want your system to feel like, but you definitely want something. Some of the alternatives available are
* Unix style: [[
* [[Message Passing]], or maybe [[RPC|Remote Procedure Calls]]
* [[Shared Memory]]
Line 54:
== Eleanore's Bookshelf ==
Well, most of these aren't books, actually. More likely the proceedings of USENIX or Hot Topics in Operating Systems, stacks of printed articles from various universities ... She also has most of Andy's writings and
▲Well, these aren't books, actually. More likely the proceedings of USENIX or Hot Topics in Operating Systems, stacks of printed articles from various universities ... She also has most of Andy's writings and friendly brew him a cup of fresh coffee when Linus comes back for the debates.
== Eleanore Semaphore's opponents position ==
Line 62 ⟶ 61:
== People and OSes related to Eleanore Semaphore ==
* Brendan (BCOS)?
* Love4Boobies (Simplexity)
* '' "do I qualify, I wrote the original article" -- [[User:Mystran|Mystran]] 12:57, 1 April 2007 (CDT)''
* gravaera
* ethereal (Sydi)
* '' insert your names here ''
[[Category:Developer Archetype]]
[[Category:IPC]]
|