Just can't get enough of that Moose!
Michael David WINIKOFF
winikoff@mulga.cs.mu.OZ.AU
Tue, 23 Feb 93 15:16:56 EST
>
> >Do I have to do anything to subscribe to the list service? I thought I read
> >something in a message sent to me that anybody who got that particular message
> >had already been subscribed. I have gotten two messages from
> >postmaster@cs.mu.oz.au that say something like
> >
> >While talking to whistler.sfu.ca:
> >>>> RCPT To:<moose-programmers@sfu.ca>
> ><<< 554 :include:up... Cannot open up: No such file or directory
> >554 moose-programmers@sfu.ca... Service unavailable
> >
> >and then a forwarded message containing some discussion regarding Moose.
That's me -- sorry.
I at one stage sent a message to the mailing list b4 it was correctly setup
and had the message bounced.
Since I didn't have another copy of the message of the message I remailed the
bounce.
OH BTW - IF ANDREASA IS READING THIS CAN HE PLEASE REPLY TO ME?
I'VE HAD A NUMBER OF MESSAGES THAT I'VE SENT DIRECTLY TO HIM RETURNED TO ME
AFTER A WEEK
> Nope - not a problem. I understand dislike for assembly because traditionally
> it's more difficult to implement and maintain.
Traditionaly?!
Some people do seem to be able to handle assembler as well as high level
languages.
Us mortals however find HLLs a lot easier to use.
Oh - and you haven't mentioned portability ... :-)
>
> I'd still like to see it written in assembler though... :-) My basic reason
> for this is speed and space efficiency. I don't know how to argue this...
> let me think on it!
The single counterargument I have is that efficiency in many cases is more a
function of the algorithm then of the code -- a good paging algorithm in, say,
smalltalk will give better system performance then a bad one in assembler.
Of course this is not allways true and code size can occaisonly be reduced
by using assembler -- usually this is only becuase the compiler doesn't
bother taking out library functions that aren't used.
Note that on RISC it is hard to do better then a good compiler ...
> > Well, without them we'd be redesigning MS-DOS. We don't want that, now
> > do we? :-]
SHOCKHORRORFEARLOATHING :-)
> How are we going to restrict these sorts of things? It's easy to say a process
> can have no more than, for example, 1 meg of non-virtual memory, but what if
> it needs more than that? Any suggestions? Maybe its dependent on if the
> process is a regular application, device driver, etc?
Hmmm. If we have virtual memory then the amount of physical memory used by the
process is irrelevant - of course the more memory thet is being used the more
paging but that;s life.
There is a problem with MEM_PHYSICAL -- the simplest solution is to only
allow device drivers to use the flag and not place a limit -- we are working
under the assumption that device driver writers know what they're doing.
>
> Oh...are we going to call them tasks or processes? I prefer tasks because of
> the term multitasking. Not important... :-)
My feeling is that tasks are "lighter" things whereas processes are relatively
"heavy". If we are only going to support one form of process/task/thread then
the name doesn't really matter.
Process seems to be the more commonly used (at least in the Un*x world)
> >
> > Maybe we should call them "system modules" instead of "devices". The
> > latter can be a subset of the former, that being the set of scheduled
> > objects with special system priveleges.
Hmm. I think I detect the need for a glossary of terms :-)
> > =>> in general they should be converted into messages.
> > =>> I feel that this will simplify the writing of device drivers.
> >
> > Agreed.
>
> Sounds like a good idea...but we'd need to clarify the concept of a message.
> Any takers?
Message: something that is sent to an object -- sort of like a call.
You could define it by it's operations:
send(objectid,data)
recieve(data,&sender's-id)
The open issue is how to comunicate the data -- if it's a few bytes all's well
for larger data you need to either set up a shared address space region or
copy the data.
>
> Ummm...actually, just a notation I made up. I means the method called 'Down'
> in the object called 'semaphore'. Sorry to be unclear about that - it was just
> to distinguish it from any other function we might have called 'Down'.
Hmm -- shouldn't this be language dependant or are we just using a generic
notation for design purposes?
> > Assuming we have an object name space, they could be located and
> > referenced like any other object (however that turns out to be.)
>
> This all boils down to the IPC and shared memory issue...
Yes.
>
> > =>> Should we have spinlocks too?
> >
> > They probably wouldn't buy us a whole lot in a single processor
> > system.
No they would -- a semaphore requires a system call whereas a spinlock doesn't.
This makes spinlocks significantly faster.
>
> What if we did go to a multiple processor system? Wouldn't they be
> transparent to the user? (Forgive if this is my mistake...little rusty)
I'm not sure what exactly you mean.
Some things should be transparent to the user -- if two processes try to
access a "file" simulatneuosly the system should do something sensible.
Spinlocks/semaphores are the mechanism used by the system to co-ordinate so
this "something sensible" happens.
They are also used for writting applications that involve multiplt cooperating
tasks/processes.
> > =>> File systems:
> > =>> One issue that hasn't been raised is crash recovery.
> > =>> I suggest people have a look at Amoeba's file system -- they store
> > =>> files contiguously sacrificing disk space for speed.
> >
> > Keep in mind that Amoeba file servers also have 128 Meg of RAM. I
> > don't think Amoeba's file system design decisions are appropriate to
> > this project, though we can always add it later. We do need to keep
> > failures in mind, though.
>
> I've found a file system (experimental) which is (1) extremely quick compared
> to FFS, (2) very efficient with disk space, and (3) quite recoverable in the
> event of a crash! It's called the Viva File System, and was developed by a
> couple of graduate students. When I get the FTP site set up, I'll put the
> docs I've collected so far on VIFS (VIva File System) in there. What it comes
> down to is that if the system goes down while writing a file, you will
> probably lose the data which was being written (of course) but everything else
> is secure. I think it's an ideal file system for this environment, but we'll
> have to see. It's still experimental (but has been tested)...
Next question: Do we have some notion of transactions, atomicity etc.
(a 'la database systems)
> >> =>> Regards the Mac OS being in ROM - we can simply let it boot and THEN take o
> > ver.
> >
> > And after all that work that Apple put into it. :-)
And after all that work Micro$oft put into Windows ... :-)
> > =>> (1) What audience are we aiming this OS at?
> > =>> My original understanding was standalone PCs but then you mentioned
> > =>> various network drivers.
> >
> > I'd guess that in 5 years you will be hard pressed to find a
> > standalone PC. People are starting to discover services like Prodigy
> > (no laughing or vomitting, please :-) and I'd imagine that the trend
> > will continue. Eventually, fiber optics will allow data networking for
> > most homes, and businesses are already tending toward PC LANs. I'd say
> > that we are missing a great opportunity if we ignore networking in our
> > design.
I was commenting on the choice of standards which (I think) were Unix type
standards. I (probly) am wrong here.
> > =>> (2) We need to have a configuration facility to make installation of new
> > =>> software/devices/hardware totally painless.
> >
> > This is an impossible goal on the ISA architecture. :-(
Huh? Why?
>
> No - I disagree. Nothing is impossible...just because it hasn't been done yet
> doesn't mean we can't do it. There has to be a way to accomplish it! I just
> don't know what that is yet... :-)
That's the spirit!!!!
--------------------------------------------------------------------------------
Michael Winikoff
winikoff@cs.mu.oz.au
Computer science honours. University of Melbourne, Australia.