From: "Thomas Gagné" <tgagne@wide-open-west.com>
Subject: Re: OOP Language for OS Development
Date: Sat, 24 Apr 2004 18:09:08 -0400
Date: 2004-04-24T18:09:08-04:00 [thread overview]
Message-ID: <b6GdnZco0f4NeBfdRVn-gQ@wideopenwest.com> (raw)
In-Reply-To: <95db0572.0404142153.431fd058@posting.google.com>
Back to the original question...
I would expect there's conflicting demands on the operating system and
consequently the language it's written in. It is presumably responsible
for interfacing directly with hardware, and must provide suitable
abstractions for anything that might be attached to it.
At the same time, the operating system must play host to applications
written for it, and it doesn't make sense to me that the OS should place
restrictions on application languages--though it could turn the tables.
In today's popular operating systems the lower-level a language you are
the greater advantage you have over higher-level languages. If the
operating system were written in an OOL that normally requires a virtual
machine then that VM would be more native (or natural, perhaps) to other
OOLs that could use the same VM. Low level languages would have to run
inside their own VM because the low-level operations might not be
available to them. Imagine writing a C program that didn't run as fast
as a Java program because the C program had to run inside a VM on top
the OS!
Of course, that may not be required. But let's look at two languages on
opposite sides of the spectrum--C and Smalltalk.
If the OS was written in Smalltalk then its imaginable the natural
instructions might be Smalltalk's. Would C programs be compiled into
Smalltalk opcodes? That would be interesting. Imagine if such a thing
were successful then chip manufacturers could begin developing chips to
make the VM run faster as was suggested by Alan Kay years ago:
<http://gagne.homedns.org/~tgagne/contrib/EarlyHistoryST.html#coda>
"Hardware is really just software crystallized early. It is there to
make program schemes run as efficiently as possible. But far too
often the hardware has been presented as a given and it is up to
software designers to make it appear reasonable. This has caused
low-level techniques and excessive optimization to hold back
progress in program design. As Bob Barton used to say: "Systems
programmers are high priests of a low cult."
"One way to think about progress in software is that a lot of it has
been about finding ways to /late-bind/, then waging campaigns to
convince manufacturers to build the ideas into hardware. Early
hardware had wired programs and parameters; random access memory was
a scheme to late-bind them. Looping and indexing used to be done by
address modification in storage; index registers were a way to
late-bind. Over the years software designers have found ways to
late-bind the locations of computations--this led to base/bounds
registers, segment relocation, page MMUs, migratory processes, and
so forth. Time-sharing was held back for years because it was
"inefficient"-- but the manufacturers wouldn't put MMUs on the
machines, universities had to do it themselves! Recursion late-binds
parameters to procedures, but it took years to get even rudimentary
stack mechanisms into CPUs. Most machines still have no support for
dynamic allocation and garbage collection and so forth. In short,
most hardware designs today are just re-optimizations of moribund
architectures."
Perhaps it's time for such a thing to be attempted. If done well enough
it could be the proof that late-binding is something much-needed in
operating system and not just their applications.
wrote:
>Hi All,
>I am developing an object oriented OS code-named "ikbocs".
>1) What are the pros and cons of the following languages interms of
>Effectiveness on System Programming, Object Orientedness etc ?
>(Simula, Smalltalk, Modula-3, Eiffel, Sather, C++)
>I suppose Java is not suitable for Sys. Programming.
>
>2) Which OOP language would be better for OS development?
>
>TIA
>KingIshu
>
>
--
.tom
remove email address' dashes for replies
opensource middleware at <http://isectd.sourceforge.net>
<http://gagne.homedns.org/~tgagne/>
next prev parent reply other threads:[~2004-04-24 22:09 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-15 5:53 OOP Language for OS Development KingIshu
2004-04-15 8:02 ` Martin Krischik
2004-04-15 12:25 ` Ioannis Vranos
2004-04-15 12:49 ` Ioannis Vranos
2004-04-15 12:39 ` Thomas Gagné
2004-04-15 14:32 ` jeffc
2004-04-15 14:45 ` Luke Guest
2004-04-17 16:30 ` Ender Everett
2004-04-19 1:53 ` EventHelix.com
2004-04-19 7:25 ` Martin Krischik
2004-04-19 8:35 ` Jean-Pierre Rosen
2004-04-19 9:16 ` Ioannis Vranos
2004-04-19 11:15 ` Jean-Pierre Rosen
2004-04-19 11:32 ` Martin Krischik
2004-04-19 17:36 ` Christopher Benson-Manica
2004-04-19 11:09 ` Philippe Ribet
2004-04-22 7:34 ` Calum
2004-04-22 10:48 ` John English
2004-04-23 8:36 ` Philippe Ribet
2004-04-23 9:55 ` Calum
2004-04-23 14:30 ` Steven Wurster
2004-04-23 15:04 ` Hyman Rosen
2004-04-23 22:08 ` Brian_Heilig
2004-04-23 22:33 ` Hyman Rosen
2004-04-24 12:53 ` Robert C. Martin
2004-04-25 1:25 ` Steven Wurster
2004-04-25 12:30 ` Robert C. Martin
2004-04-24 19:58 ` Anthony Weissenberger
2004-04-25 2:24 ` Hyman Rosen
2004-04-24 0:01 ` Steven Wurster
2004-04-24 15:27 ` JKop
2004-04-24 21:41 ` Greg C
2004-04-24 22:17 ` Steven Wurster
2004-04-29 17:43 ` Brian_Heilig
2004-04-23 16:22 ` Georg Bauhaus
2004-04-23 16:45 ` Hyman Rosen
2004-04-23 20:13 ` Georg Bauhaus
2004-04-23 21:18 ` Hyman Rosen
2004-04-24 10:33 ` Georg Bauhaus
2004-04-25 2:27 ` Hyman Rosen
2004-04-23 23:03 ` Brian_Heilig
2004-04-25 2:42 ` Hyman Rosen
2004-05-04 18:37 ` Dr Chaos
2004-05-05 11:58 ` Ged
2004-05-05 12:28 ` Thomas Gagné
2004-05-06 9:35 ` Ged
2004-04-24 0:10 ` Steven Wurster
2004-04-25 2:37 ` Hyman Rosen
2004-04-24 1:00 ` Brian_Heilig
2004-04-26 3:43 ` Berend de Boer
2004-04-26 4:17 ` Christopher Browne
2004-04-26 21:52 ` Berend de Boer
2004-05-04 4:14 ` Richard Riehle
2004-05-04 21:15 ` Berend de Boer
2004-04-28 19:53 ` Philippe Ribet
2004-04-29 8:32 ` Georg Bauhaus
2004-04-30 17:48 ` Philippe Ribet
2004-04-29 17:39 ` Brian_Heilig
[not found] ` <1402879.WneVss6BD6@linux1.krischik.com>
[not found] ` <ba03b545.0404300503.376243c8@posting.google.com>
[not found] ` <c6tk6v$amm$1@news.BelWue.DE>
2004-04-30 13:46 ` Preben Randhol
2004-04-30 19:30 ` Steven Wurster
2004-04-24 22:09 ` Thomas Gagné [this message]
2004-04-25 2:17 ` Hyman Rosen
2004-04-25 16:31 ` Alexander E. Kopilovich
2004-04-25 16:58 ` Isaac Gouy
2004-04-26 0:01 ` Cesar Rabak
2004-04-26 6:14 ` Isaac Gouy
2004-04-26 2:06 ` Thomas Gagné
2004-04-25 16:29 ` Alexander E. Kopilovich
2004-04-26 4:17 ` Christopher Browne
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox