Google Groups unterstützt keine neuen Usenet-Beiträge oder ‑Abos mehr. Bisherige Inhalte sind weiterhin sichtbar.

how could you build a better os? (novice question)

2 Aufrufe
Direkt zur ersten ungelesenen Nachricht

David Petry

ungelesen,
10.07.1993, 17:26:5610.07.93
an
I've heard it said the Unix and DOS use 1970's technology, and that
much better operating systems could be built today. My question is
"what would an ideal operating system be like, using all the latest
ideas?"

% DOS is more like late 50's technology, Unix is derived from Multics which
% is mid-60's -- but Unix has been evolving for a long time, so to say it's
% 70's technology isn't accurate. --DL

I'm really looking for a reference which would give an overview of
modern ideas in operating systems, but if people send me a lot of
interesting answers, I'll post a summary.

Thanks,

David Petry

David Petry

ungelesen,
15.07.1993, 00:02:3515.07.93
an
I wrote:

I want to thank everybody who responded. I received a number of requests
to post a summary of the responses, so here it is. I've edited the
responses heavily to keep it from being outrageously long.

First, a large number of people cited "Modern Operating Systems" by
Andrew S. Tanenbaum, 1992, Prentice Hall.

From: b...@ai.mit.edu (Brian D. Carlstrom)

I would say that most modern OS's are actually worse that what existed
before them, my prime example being Unix. I would recommend trying to
study the TOPS-20 user interface (also used in the LispMachine
environment) the Multics security and VM interface. ...

as far as modern OS's, look at mach, amoeba, and even WinNT.
microkernels seem to be the way to go. be aware that mach is
a "huge" microkernel, with as many system calls as SunOS (almost)
WinNT is a bit too centered on windows. ameoba's VM system is lacking
(there basically isnt one, but that was intentional)

beware of many OS researchers. they worry to mcuh about getting
published. while they complain about unix, they extend it as
research, saying its too hard or will take to long to write a new
OS from scratch....

... i would recommend reading the paper "hints for computer systems design"
by butler lapson, and the "mythical man month" as well.

From: Dave Childs <da...@ecst.csuchico.edu>

I hardly know where to begin. There are two broad spectrums in which
newer OS's are different from DOS and UNIX. One spectrum regards
structural issues. That is, how should we put the pieces of an OS
together. Some examples are the use of micro/nano-kernels and object
oriented design/construction. For some good information on micro-kernels
see:

Michael Gien, Micro-kernel Architecture: Key to Modern Operating Systems Design
, Unix Review, Vol. 8 No 11, November 1990

David Black, et al., Micro-kernel Operating System Architecture and Mach,
Journal of Information Processing, Vol. 14, Number 4

And in general see:

The USENIX Workshop proceedings on Micro-kernels an Other Kernel Architectures,
1992

With regard to object orientation see:

Proceeding of the Internation Workshop on Object Orientation in Operating
Systems, 1991 (published by IEEE computer press)

and

Proceeding of the Second International Workhop on Object Orientation in
Operating Systems, 1992 (Also Published by IEEE Press)

The second class of changes in OS's are feature issues. There are a lot
of these. There is a lot going on with distributed OS's. And there is a
lot going on with operating system support for object-orientation (with
things like persistent objects, distributed shared memory, etc). The
use of lightweight processes, etc.

Pretty much read any current OS book and you'll get some idea of what's going
on here.

Try:

Andrew Tanenbaum, Modern Operating Systems, Prentice-Hall, 1992

as a reasonable overview of some of this

and

George Coulouris and Jean Dollimore, Distributed Systems: Concepts and Design,
Addison-Wesley, 1993

From: Paul M Davis <p...@cs.city.ac.uk>

One new area od research is single level persistent stores, examples of
which are Psyche, Angel and some others. All (light weight) processes in
the system use the ssame address space, and the idea of backing store and
main memory is unified into one lareg persistent address space.

Allows much better sharing of data.

From: Landon Dyer <lan...@apple.com>

check out some of the stuff that the u of washington people
have been doing. the emerald system is particularly interesting.

a little history is also in order. the book on _Hydra/C.mmp_
(out of print, but you should be able to scrounge a copy
somewhere) is interesting (especially wrt Windows/NT).

and: files are dead. in twenty years, no one will have files.
the days of inarticulate, dead little lumps of data sitting in
cozy tree-structured directories are numbered...

From: raw...@cs.wisc.edu (Michael Rawdon)

Another good thing to read is Rosenblum & Ousterhout's Log-Structured File
System paper, which I think was in the latest (1991?) SOSP proceedings.

From: pa...@mlo.dec.com (Samuel S. Paik)

To me, (and I am NOT an operating systems researcher) there is one
major impetus for current operating systems research and development:

distribution, i.e. distributed operating systems

This is what is driving object orientation, reflectivity, rpc, message
passing, etc.

From: swa...@puffin.usmcs.maine.edu (George P. Swanton)

Well to start with, DOS,whatever it's vintage, is a non-reentrant disk-utility
that programmers spend all their time trying to write
extensions/fixes/workarounds/etc for, may it die a swift death.

any system incorperating ALL the latest ideas would be likely be a plodding
monstrosity. (Now what two letters come to mind?)

If a system existed that scaled well from a simple, word-processing/etc
single-user environment to 'god help us' proportions with respect to BOTH
hardware requirements/supported AND software cost, so as to meet everyone's
needs in some configuration, this might might well be considered ideal.

Interesting (IMHO) systems to look at (you decide if they're 'modern' or not)
ask archie, WWW, CACM, etc for more info

Amoeba - Andrew Tanenbaum, et al
Sprite - Spite Group, Berkeley
Chorus - ?@chorus.fr
Plan 9 - Presotto/Pike/Thompson/Trickey/??, AT&T
QNX - Quantum Software, quantum.on.ca
V - David R. Cheriton (et al?), Stanford

From: Sergio Ruocco <ruo...@dsi.unimi.it>
Subject: Take a look to Amiga OS

as you, I think that better OSs (should? ,could ?) be going to get created.
IMHO, you should take a look to:

- NeXT OS : a Mach Kernel with Unix server on top of it and integrated Display
PostScript as GUI: a rather elegant looking machine !

- Amiga OS: despite of the fact it was conceived in 1984, it is still a
distinguished and respectable Operating System.

Gives you both a GUI (a very nice and fast GUI) and a CLI interface.

Here are some specs [for Amiga OS]:

- NO memory protection ( an ill-behaved task can crash the entire system)

- All parts of the system relevant to the user are completely documented.

- all addresses are dynamical or GRANTED to change from revision to revision of
the hw or OS. You can access to the OS and hardware only through well definied
interfaces (Libraries/Devices/Resources)

- runs without problems on all the 68K family, from 68000 to 68040 without kludges

[and lots of other innovative ideas]

From: nbha...@fnugget.intel.com (Narendra Bhandari)

"what would an ideal operating system be like, using all the latest
ideas?"

I think it is more than just the "latest ideas"

- something adaptable to the changing face of hardware technology
- to suit Distributed and/or parallel applications
- Closeness to Language/databases
amongst many others.

Mark Petrovic

ungelesen,
19.07.1993, 04:34:0619.07.93
an
In article <222ksr...@darkstar.UCSC.EDU> pe...@zermelo.math.washington.edu (David Petry) writes:
>I wrote:
>
>>I've heard it said the Unix and DOS use 1970's technology, and that
>>much better operating systems could be built today. My question is
>>"what would an ideal operating system be like, using all the latest
>>ideas?"
>>
[...]

>and: files are dead. in twenty years, no one will have files.
>the days of inarticulate, dead little lumps of data sitting in
>cozy tree-structured directories are numbered...

This is interesting. Would the person who contributed this care to
elaborate?

Mark Petrovic
IBM Research


Robin Fairbairns

ungelesen,
21.07.1993, 02:23:3421.07.93
an
In article <222ksr...@darkstar.UCSC.EDU>, pe...@zermelo.math.washington.edu (David Petry) writes:
|> I wrote:
|>
|> >I've heard it said the Unix and DOS use 1970's technology, and that
|> >much better operating systems could be built today. My question is
|> >"what would an ideal operating system be like, using all the latest
|> >ideas?"
|> [...]

|>
|> I want to thank everybody who responded. I received a number of requests
|> to post a summary of the responses, so here it is. I've edited the
|> responses heavily to keep it from being outrageously long.
|>
|> [...]

|> From: b...@ai.mit.edu (Brian D. Carlstrom)
|>
|> [...]

|>
|> beware of many OS researchers. they worry to mcuh about getting
|> published. while they complain about unix, they extend it as
|> research, saying its too hard or will take to long to write a new
|> OS from scratch....

Beware of many funding agencies, who (apparently) find it hard to
imagine that anyone could possibly _want_ to replace U*x with
something different.

FWIW, that's the sort of tack that the project I work on (Pegasus,
Esprit BRA 6865) is taking. We _know_ it will take too long; the aim
of the project is to develop and demonstrate a series of mechanisms to
underly a distributed interactive multimedia operating system of the
future. When we've demonstrated, we'll have to go and search for
follow-on funding to produce the interfaces that will provide the
utility of the run-of-the-mill U*x system.

|> [...]
--
Robin (Keep Radio 3 != Classic FM) Fairbairns r...@cl.cam.ac.uk
U of Cambridge Computer Lab, Pembroke St, Cambridge CB2 3QG, UK


David Petry

ungelesen,
24.07.1993, 01:09:2824.07.93
an
I asked:

>"what would an ideal operating system be like, using all the latest
>ideas?"

I've already posted one summary of the responses I got, but since then
I've received several more which I think are quite interesting. Here
they are.

From: michael.sc...@att.com

I strongly recommend that you seriously look at Plan 9
from Bell Labs. It was just recently released under academic
license (in Jan '93) much like Unix was almost 20 years ago.
Perhaps the most important fact is that Plan 9 was designed
and built by none other than Ken Thompson and his co-workers
here at Bell Labs in the CS Research Center. The goal of
Plan 9 was to invent a new, modern, distributed operating
system based on latest research and retaining the good ideas
that were explored in the past (namely in Unix). They've
done a very good job. Not surprisingly, Plan 9 appears to
be Unix-like, but it is definitely *not* Unix, nor a Unix
derivative. The hardest lesson to learn may be that to
bring Unix into the '90s one has to throw it away and build
something else.

All the Plan 9 documentation is available via anonymous ftp
from research.att.com in dist/plan9doc and dist/plan9man.
You can send e-mail to Kuck...@ATT.Com to request a copy
of Plan 9 for academic use at your University. It comes on
a CD-ROM with complete source code for the operating system,
compilers, editors, shell, window system, and tools. Plus
binaries for 386, Sun, MIPS, and NeXT.

Let me know your impressions!

From: mo...@iconoclast.sw.stratus.com (Tom Moser)

Multics and/or TOPS-20 were probably the best systems ever marketed. UNIX
is nowhere near as sophisticated as Multics was.

A Modern OS should have:

Fast cheap processes. (threads suck)
Shared memory.
Memory mapped IO (I am not sure about this one - I personally like it)
Symmetric multiprocessing.
Real time (not UNIX real time but Real real time)
Extensible over a network (including shared VM on the net)
Extensible across hetrogeneous architectures.
Generic devices and files.
Permanent context (permanent process context across reboots)
fault-tolerance / fault-detection / high-availability
Dynamic reconfiuration of hardware and software without rebooting.

In fact a truely modern architecture should have all this in the kernel
and that kernel should allow multiple OSs to run above it.

From: do...@netcom.com

A lot of the answers you received (and kindly shared) said things about
the user interface of different OS'es, which IMHO is off the mark. The
modern view regards a UI as an application layer, not part of the OS.
Things like Windows, Windows NT, Mac OS, and NextStep all lead people
astray on this point, so the confusion is understandable. But still
deplorable.

One of the areas of OS research that was not mentioned was that of
incorporation of hypertext into the file system and having both
passive links (simple "pointers" to other data) as well as active
links (agents that execute code for some purpose when a link is
traversed). The latter are sometimes called "hot links".

From: mna...@carrier.sps.mot.com (Michael D. Nahas)

The move in Operating Systems will be object oriented ad network oriented.
The microkernal is the current system for processing threads on machines
but that will expand to include the network as an extension of the kernal.
The reason for this is that distributed processing will be needed to
truely approach the speeds needed for future applications. The only way
to achieve this is by also changing the nature of the programs and current
programming methods in general. What people currently view as an application
now will be a collection of objects, kind of like the Dynamically Linked
Libraries of OS/2 and WinNT. They will be loaded when needed, and can be
shared between applications.
What this combination means is that any computer on a LAN will
have the entire LAN as an operating platform. Right now RPCs have to
be explicitly called, but on this OS, they will not have to be. Therefore
the kernal will also have to decide which processes to keep on the home
machine and which to send else where. Even processes currently running on
a machine will be able to be moved to another machine on the LAN without
affecting it.
The programs are now made into objects, but also a new thing appears.
Programs are no longer seen as sequential flow charts, but as building blocks.
C has become obselete for constructing the entire program because it is
sequential. The new programming language will be entirely based on dependencies.
To do thing A I need to do B, C and D.
The next thing to look at is files. The first thing to go is state and
preference files. This is because when a "program" "exits" it won't be really
exiting. It will be saving its current state to disk. "run"ning a program will
be reinstating the threads that were running when the state was saved to disk.
Some believe that because memory can be swapped out to disk when unaccessed, files
can be always kept in memory and swapped out to disk by the kernal when not being
accessed. (This is the answer of the man who said files will disappear.) I however
doubt that, just because removable media will always be used. Disks or tapes will
exist forever, even if every machine is on a international network, for the sake
of backups and privacy. I do think that harddrives will be seen as the machine,
like the desktop holding files on a MacIntosh. Removable Media will be viewed
just the same as other machines on the network, so that files will be "sent" to
the floppy drive or "received" from them. This is so access privelges will be
the same.
So what does one do with "real" files? Well, the way I see it, is that
a file is another object, and it offers functions to the OS. It can hand data
to the OS (read the file) and take data from the OS (write to the file). And it
offers other functions associated with file usage (copy, delete, etc.). Now this
is a truely unique view of a OS, its seemed to have exported the file system to
the objects it makes up. In order to copy a file, it has to ask the file to make
a copy of itself and return a pointer. And to delete an file, it has to ask the
file to delete itself. Of course for most files (common files) this will be the
same, and because of the object oriented features name before, all the code
associated with it will be reused. However this will be able to be changed for
different files, so a software company who doesn't want their files copied, can
return an error code when the copy function is called. And if someone wants on-line
file compression, the "common" file object can use a file compressor and
decompressor to save disk space.
So we have a half full OS. It has most of the features so far. It has
a file system, methods for threads, ways to handle networking, and device
drivers are coded as objects too. It has features for super efficent pipes
built in, and a few other addvanced features in a simple design. The next move
is how does a user interface with this "thing"? The GUI should be 3D, expect 24
bit color, and 16bit sound. This is the minimum requirement just because its
the maximum a user can use. If the hardware is not able to reproduce exactly, it
will have to approximate the best it can. Past this, I have no idea on how to
mesh the advanced underpinnings of the OS to the user in the most effective way
possible.

Jon Crowcroft

ungelesen,
26.07.1993, 15:06:1926.07.93
an
it is a real problem - we really really really need a publically
available base for doing OS research that runs on common h/w -

in these post 4.4BSD days, there isnt a clear candidate with device
driver/mmu/compiler support which are the key investments to let us
all get on with the other research -

just look at the wonderful stuff in the usenix conferences/journals over
the last few years - lots of good stepwise contributions -

as remarked, funding agencies do not seem to grasp the value of a common
infrastructure for research (in this, and other, problem domains)...

jon crowcroft

0 neue Nachrichten