Language based OS design

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
User avatar
bwat
Member
Member
Posts: 359
Joined: Fri Jul 03, 2009 6:21 am

Language based OS design

Post by bwat »

Here are some links to info for those who wish to implement a language based OS.

These are not the usual type of OS described around these parts so this sort of info might be new to some of you. What is a language based OS? Imagine an OS and systems programming environment all in the same package and you'll have a fairly good idea what it is all about. Some of these systems are a million miles from the Unix world which dominates many of the thoughts and designs of posters to this forum. I post these links as "interesting info", not necessarily as an indication of "how it should be done" (even if I do prefer this way of doing things myself).

Please feel free to add to the list!

Smalltalk-80 The Language and its Implementation (book).
http://stephane.ducasse.free.fr/FreeBoo ... uebook.pdf
Chapters 26 to 30 describe the virtual machine (compiler, bytecode interpreter, memory management).The language implements processes and semaphores and specifies how the mouse, graphics display and keyboard should work and interface with the virtual machine. OS developers will recognise an awful lot here.
One of the Smalltalk machines that was built using info from this book is shown here:

A whole host of manuals for that system can be found here:
http://bitsavers.trailing-edge.com/pdf/tektronix/44xx/

Parlog as a Systems Programming Language (Ph.D. thesis)
https://archive.org/download/parlogasas ... 550mbp.pdf
How a parallel logic programming language (PARLOG) can be used for OS development. An OS written in a declarative programming language? This is a real eye opener!

Lisp machines (manufacturer's docs)
Documents covering the hardware architecture and system software for various Lisp machines:
TI Explorer:http://bitsavers.trailing-edge.com/pdf/ti/explorer/

MIT CADR:http://bitsavers.trailing-edge.com/pdf/mit/cadr/

MIT CONS:http://bitsavers.trailing-edge.com/pdf/mit/cons/

Symbolics machines:http://bitsavers.trailing-edge.com/pdf/symbolics/

Parallel Inference Machine Operating System (PIMOS) (research papers)
http://www.jipdec.or.jp/archives/icot/A ... eIRT-3.pdf
http://www.jipdec.or.jp/archives/icot/A ... RERR-1.pdf
http://www.jipdec.or.jp/archives/icot/A ... RERR-2.pdf
This is the OS used by the second stage of the Japanese 5th Generation Computer Systems project. This OS is written in a parallel logic programming language - KL1. Quite similar to the PARLOG example above.

Sequential Inference Machine Operating System (SIMPOS) (research papers)
http://www.jipdec.or.jp/archives/icot/A ... 84e004.pdf
http://www.jipdec.or.jp/archives/icot/A ... 84e006.pdf
The predecessor to PIMOS - sequential not parallel.
Every universe of discourse has its logical structure --- S. K. Langer.
User avatar
iansjack
Member
Member
Posts: 4685
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: Language based OS design

Post by iansjack »

User avatar
bwat
Member
Member
Posts: 359
Joined: Fri Jul 03, 2009 6:21 am

Re: Language based OS design

Post by bwat »

Every universe of discourse has its logical structure --- S. K. Langer.
mrstobbe
Member
Member
Posts: 62
Joined: Fri Nov 08, 2013 7:40 pm

Re: Language based OS design

Post by mrstobbe »

ROM BASIC for the win.

Seriously though... you still need a full-blown kernel (just not a generalized one). Imagine if I ported the V8 engine as the primary task processor in my OS (this is actually a thought I've had, but way too painful to fathom; just rewriting the JIT would be a nightmare), what are the basic requirements? Async I/O drivers, ring0 protection, preemptive or at least RT task switching, etc, etc, etc. Nothing actually changes... you're simply offloading the end "process" launching manager to something (presumably) more expensive. I'm not saying it's not a valiant pursuit but just reminding people of this simple fact.

EDIT: And yes, I wrote my first program on an Apple ][ in that beautifully horrible BASIC interpreter that was it's "ring3" (non-existent) kernel, so there might be a bit of bias.
Post Reply