Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!rutgers!sunybcs!ugkamins From: ugkamins@sunybcs.uucp (John Kaminski) Newsgroups: comp.os.minix Subject: Re: Apple II Port anyone? Message-ID: <5074@cs.Buffalo.EDU> Date: 7 Apr 89 02:02:36 GMT References: <592@madnix.UUCP> Sender: nobody@cs.Buffalo.EDU Reply-To: ugkamins@sunybcs.UUCP (John Kaminski) Organization: SUNY/Buffalo Computer Science Lines: 38 In article <592@madnix.UUCP> rat@madnix.UUCP (David Douthitt) writes: > >Over in comp.sys.apple, a lot of people have been upset over Apple's apparent >lack of Apple II support, and have from time to time mentioned the desire >to have a UNIX-based Apple II - and MINIX is usually mentioned. > >Is there any way to put Minix onto a 128K Apple IIc or IIe? If not, then >how about the IIgs? > >A friend of mine says that MINIX needs 20-bit address capability - of course, >the IIc/IIe (6502 -C02 -802) has only 16-bit addresses max. Of course, the >IIgs has 24-bit addressing (65816). > >Thoughts anyone? And maybe someone could pick up the baton? It would >take too much time for me to do... It's not so much that MINIX absolutely needs 20 bits addressing, it's that its size is relatively large for the compiler, linker, etc. used. If you could design an ultra-efficient compiler (or rather code generator part of the compiler), you could conceivably port MINIX to the Apple. Also, as MINIX is implemented, it needs a fairly hefty amount of memory to maintain information about process state, and there are quite a few of them to begin with before you even start a login shell. For example, the handler for each piece of hardware is implemented as a separate process, i.e., the "process IDs" you see when dumping the machine state via the F1 key (this is a debugging aid) shows processes like PRINTER, TTY (terminal or console), WINCHES (Winchester or hard disk), etc. Then there are the basic pieces of the system MM (memory manager) and FS (file system). Also, you see INIT, the parent of all processes on the system. It is what is responsible for giving you your login shells (when the login shell calls exit() to terminate, INIT realizes that one of its children has called exit() and restarts another shell). So you see, it's not so much that you have real poor hardware, it's that the system is inherently rather large and therefore you really need more memory to do what MINIX does (or adapt it to do less; take your pick -- I would not want to lose any of the functionality of MINIX).