Page 2 of 2

Re:What OS are you programming?

Posted: Mon Jun 03, 2002 12:36 pm
by Peter_Vigren
DynatOS wrote: I'm heading up the DynatOS project. "Dynatos" is Greek for "Powerful, so in the name you have the word powerful and the abbreviation for OS... I thought it was pretty cool ;D As for the current status of the OS, I am merely on the Kernel level of design. The closest thing I think I can relate to what this kernel is going to be is what is referred to as an "exokernel".
An exokernel?

Re:What OS are you programming?

Posted: Mon Jun 03, 2002 2:09 pm
by crazybuddha
This is THE paper on exokernel ideas and can be found in this pdf (there's a *.ps version floating around too)

http://www.deas.harvard.edu/courses/cs2 ... osp-95.pdf


The ideas are rehashed and compared with microkernels here:
http://www.cs.cornell.edu/Info/People/u ... ernel.html


Basically, the idea is that the the 'kernel' merely exist to protect hardware resources. The actual management occurs in "library OSes" which can be generic or replaced by the application. The goal is to remove the abstraction of a virtual machine from the resource protection (the exokernel) and move it into libraries. It is assumed that the applications know best how to manage the resources, not the kernel.

The only implementation I'm aware of is Xok at MIT:

http://www.pdos.lcs.mit.edu/exo/exo-int ... rnals.html

But the download is huge, so I haven't bothered to look at the source. Besides, the description sounded so microkernel-ish to me that I figured I'd be disappointed.

The real heart of the matter is "Secure binding" of the library OS to resource 'units". Although dividing the resource (e.g. memory) into little pieces which are bound to the interested library is itself an abstraction, AFAICT there's nothing abstract about it. It is a problem (at least on Intel) in how to respond to faults and exceptions.

I've worked on this a little myself, but there is a struggle between making consistent interfaces and the vast differences in the nature of the hardware resources.

I think there is something to the theory of exokernels, but as yet there isn't much of a body of actual code to stimulate the thinking, just a lot of university paper writing. I think when more OS hackers start to get creative, we will see more of a code base in this area.

Re:What OS are you programming?

Posted: Mon Jun 03, 2002 3:55 pm
by Tim
Exokernels stike me as being similar to the DOS way of doing things: all programs have access to the hardware, and you've got to access it through libraries linked in with the application. Please correct me if I'm wrong. :)

Re:What OS are you programming?

Posted: Mon Jun 03, 2002 4:16 pm
by crazybuddha
No, I'd say that's pretty close. The difference is that you can't upset the resources (or spatial and temporal piece thereof) belonging to other processes. If you don't play nice, it's you that loses, not the other guys. That's the plan anyway.

Re:What OS are you programming?

Posted: Thu Jun 13, 2002 3:27 pm
by anubis
I am writing TRYOS.

I have perfected the boot loader but am stuck up with the PM stuff so started designing the kernel layers.

The kernel will be C++based with assembly at only required place.

Would strictly be a microkernel with message-passing.

Re:What OS are you programming?

Posted: Fri Jun 14, 2002 12:43 pm
by Schol-R-LEA
That's a bit of a complicated question since, at this time, I'm thinking not of one operating system but several. I intend, at least for some time, to experiment with various design ideas before moving on to a final design.

Among the projects I have in mind specifically are LoIS, a tutorial on OS implementation following my own initial developments; it will consist of several 'chapters', each representing a Literate Progam which expands upon the work done in the previous chapters. Right now, I've only written one chapter, which I need to rewrite (it will probably end up being chapter 2, not one as I originally wrote it as).

Another idea I mean to follow up on is ENOS, the Emacs Native Operating System; in essence, a standalone EMACS system, written in a combination of assembly, C, and ELISP. It would be meant as a proof of concept work. I chose EMACS beacuse, while it has many flaws IMAO, it is one o the closest things to the user interface I intend to use in my final design I know of.

I may also experiment with GUIs and document systems under Linux, with the plan of taking that experience and applying it to my own system later.

As for my final design, I don't know what I'll call it yet. The original name I'd chosen was Janos, after John Von Neuman (Janos is Hungarianfor John), but I later found out that the name was used for another OS already.. Another name I've thougt of using is Thelema , but that would probably be a bit too arrogant and silly for me to take seriously as a final name - though iit would be then natural to use a number of related occult terms (Pranya, Goetia, Sophia, etc.) for various parts of the system, which has some appeal.

But that's for the future. Right now, I'm working on LoIS, or rather, no the parts that will become LoIS eventually.

Re:What OS are you programming?

Posted: Sat Jun 15, 2002 3:50 pm
by Schol-R-LEA
Tim Robinson wrote: Exokernels stike me as being similar to the DOS way of doing things: all programs have access to the hardware, and you've got to access it through libraries linked in with the application. Please correct me if I'm wrong. :)
There's some truth to that comparison, but it really misses some important qualities in exokernels. DOS was simple because all it was, essentially, was a filesystem and a simple command line user interface; exokernels are simple because the forego even those, but are still more complex than DOS in most other ways.

A better comparison is would be to imagine a standalone edition of VMware: it performs no services and provides no abstractions itself, but it allows several independent, specialized 'operating systems' to share the CPU, memory, and peripherals without needing to know of each others existence, and allows them to communicate between each other as if they were all on separate machines (though this need not be a feature of the exokernel itself, and strcitly speaking shouldn't be).

Unfortuantely, it is that last part - interprocess communication - that is the weakness of the exokernel philosophy. The exokernel design makes two important assumptuions

1) That most applications and services would be better served by drivers, etc. that are tuned to the specific task, rather than generic ones; and

2) That different applications rarely need to communicate betwen each other or share data or software, and that when they do a shared library is sufficent to provide the needed support.

These assumptions may hold true in the case of dedicated servers, though the rising use of HTTP servers like Apache and IIS as general-purpose meta-servers for accessing different services in a unified manner brings this into question. There is no question, however, that this does not hold in the case of a user workstation, especially GUI based ones. Even under a traditional shell, it is common for a user to have to access two or more different programs together, often in a way that could not have been predicted by the original programmer. In a GUI environment, it is rare for a user not to not need to share data between disparate applications; entire systems (OLE, OpenDoc, .NET) have evolved to handle the need to access the multiple documents in varied formats in a single application, or allow different applications to use a single document. The use of multiple types of information - ASCII text, HTML and XML markup, image and sound files, client scripts and plug-ins in a variety of forms - is at the heart of the modern WWW browser, which has come to dominate among networking tools. In such a case, the overhead for IPC and sharing far outweighs the benefits of optimized code for special-purpose applications.

Re:What OS are you programming?

Posted: Sat Jun 15, 2002 9:27 pm
by Miraj
I'm working on the Middle Earth OS. It is a very future-looking project, with an emphasis on HCI and the latest/greatest in OS research.

We're brainstorming and would love to hear your ideas and opinions. Please stop by our forums (http://sourceforge.net/forum/?group_id=52371) and give us some input.

Project page: http://sourceforge.net/projects/middleearth/