Path: gmdzi!unido!mcsun!ukc!strath-cs!cs.glasgow.ac.uk!bru-cc!eesrajm From: eesr...@cc.brunel.ac.uk (Andrew J Michael) Newsgroups: comp.os.minix Subject: A real operating system ? Keywords: future 1.5 Message-ID: <1383@Terra.cc.brunel.ac.uk> Date: 28 Feb 90 20:19:59 GMT Organization: Brunel University, Uxbridge, UK Lines: 34 Posted: Wed Feb 28 21:19:59 1990 Several people have recently commented that MINIX is a teaching operating system, not a real one. So what makes a real O/S ? Is it the O/S itself, or the utilities which come with it ? Surely no-one in their right minds would buy MSDOS as an operating system; they buy it for the programs they can run on it. The same argument can be applied to MINIX; it is seen as a teaching O/S because the programs which it runs are pretty restricted in their outlook. All that MINIX needs to become a real O/S is application programs. I must also suggest (and I don't want to start a flame war) that one's view of MINIX may be tempered by which machine you are running it on. I have tried both MINIX-PC and MINIX-ST, and I regard the ST as superior because porting public-domain UNIX programs to it is pretty simple. No restrictions on length of variables or memory usage. The only real problem is 16-bit ints, but gcc removes this restriction. When I did my part-time MSc recently, virtually all the project work was done on a MINIX machine at home (admittedly my 68020, not an ST). MINIX supported enough of ACK to develop a backend for the Acorn ARM with very little trouble. MINIX kept my project diary, it sent my mail and did lots of other jobs. Finally, running TeX, it produced my dissertation and printed it. That sounds like a pretty real operating system to me. Andy Michael -- Andy Michael (eesr...@cc.brunel.ac.uk) " Software cannot be written to 85 Hawthorne Crescent be completely free of errors." West Drayton Middlesex - Acorn Computers Ltd. UB7 9PA
Path: gmdzi!unido!mcsun!uunet!ogicse!plains!overby From: ove...@plains.UUCP (Glen Overby) Newsgroups: comp.os.minix Subject: Re: A real operating system ? Summary: I prefer a virtual operating system. Keywords: future 1.5 Message-ID: <3696@plains.UUCP> Date: 2 Mar 90 23:29:29 GMT References: <1383@Terra.cc.brunel.ac.uk> <25eda193.62e3@polyslo.CalPoly.EDU> Reply-To: ove...@plains.nodak.edu (Glen Overby) Organization: North Dakota State University, Fargo Lines: 42 Posted: Sat Mar 3 00:29:29 1990 In article <1...@Terra.cc.brunel.ac.uk> eesr...@cc.brunel.ac.uk (Andrew J Michael) writes: >Several people have recently commented that MINIX is a teaching operating >system, not a real one. >So what makes a real O/S ? Is it the O/S itself, or the utilities which >come with it ? Both. The kernel alone isn't of much use; you need to surround it with good tools. Some people have faulted Minix for only using 64K segments. I think there are very good reasons for doing this on 8088s: there is much less of a chance of programs running over each other if they do not touch the segment registers. The compilers are easier to write, too. Minix on 80386s will run 32-bit segments, so you can have your GNUisms and other memory-hungry programs. I haven't seen a real Unix that allows huge model programs on an 8088 or 80286. The problems of device compatability we have encountered with Minix are no different than what any other multitasking operating system (i.e. one that does not rely soley on the ROM BIOS for it's I/O) has encountered. I think there are two things left to make Minix an extremely usable system: (1) the ability to swap, thus allowing iddle programs to be shoved out of memory, allowing larger programs to use available memory. (2) the bottleneck in the filesystem and, to a lesser extent, the memory manager will have to be dealt with. The problem right now is that one process can quite effectively take over the system by keeping the filesystem busy. We've already seen one attempted solution to this: a "multitasking" filesystem. It was a bit ugly. I think a nicer solution will be to implement threads (aka lightweight processes, and probably a few other synonyms). Then it will be possible to have multiple threads of execution servicing requests in all of the servers and devices. I doubt Minix will ever become a serious alternative for businesses, but it should make a good a personal (or "hacker", if you will) operating system. -- Glen Overby <ove...@plains.nodak.edu> uunet!plains!overby (UUCP) overby@plains (Bitnet)
Path: gmdzi!unido!mcsun!hp4nl!star.cs.vu.nl!ast From: a...@cs.vu.nl (Andy Tanenbaum) Newsgroups: comp.os.minix Subject: Re: A real operating system ? Keywords: future 1.5 Message-ID: <5741@star.cs.vu.nl> Date: 4 Mar 90 18:44:27 GMT References: <1383@Terra.cc.brunel.ac.uk> <25eda193.62e3@polyslo.CalPoly.EDU> <3696@plains.UUCP> Sender: n...@cs.vu.nl Organization: Fac. Wiskunde & Informatica, VU, Amsterdam Lines: 78 Posted: Sun Mar 4 19:44:27 1990 In article <3...@plains.UUCP> ove...@plains.nodak.edu (Glen Overby) writes: >I think there are two things left to make Minix an extremely usable system: >(1) the ability to swap >(2) the bottleneck in the filesystem ... I think that problem (1) is only really an issue on 8088 systems and very small 80x86 ones. With memory prices dropping all the time, having 1M or more on an 80286 or 80386 is hardly uncommon these days. With 1M of program memory it is very rare to get so many processes active that it fills up and would have to swap. Thus putting in swapping for the benefit of the 8088 only seems like a fairly low priority item. If you have 640K and no RAM disk, with MINIX eating up about 140K, you still have 500K for programs. You have to run a fair amount of stuff in the background to fill that up, and with 2 or 3 background jobs on an 8088, the performance won't be so great. As to (2), the only difference the single-threadedness makes is some loss of performance if you have two or more I/O bound jobs running at once. For a CPU bound job (e.g., the compiler, compress, nroff), you won't gain that much. If the foreground job is an editor, and is mostly idle, I very much doubt whether you would notice the gain, but the change is very complicated and introduces all kinds of possibilities for race conditions deadlocks and the like. I don't think it is worth it. A couple of thoughts on toy-ness. Original, MINIX was clearly a toy. It had the following characteristics: - Was aimed at an 8088 with 2 floppy disks - very few utilities - editor that could only handle files to 40K It has clearly evolved over the years, in no small part due to the collective efforts of the people in Netland. It is fair to currently characterize it as: - Aimed at 80286 or 80386 with lots of memory running in protected mode - Works with most hard disks - Soon to be available on the Atari, Amiga, and Macintosh; SPARC later - About 175 utilities - Editors include ed, ex, vi, and a mini-emacs, in addition to mined - Over 225 library routines - ANSI C compiler now running, will be available within 6 months - POSIX compatibility probably in a year or so - Pascal compiler available from UniPress and Transmediair - RS232 supported, kermit and zmodem available (uucp?) - Up to 3 users can run on the same machine - text processing with a somewhat lobotomized nroff - Distributed computing via Ethernet was in 1.3, hope to get it back in 1.5 While it is clearly nowhere near BSD 4.3 or System V, I think that running MINIX on a 2M PC/AT all by yourself is not that much worse that sharing a PDP-11/45 with 8 other people, and perhaps even a bit better. I think that if you compare MINIX 1.5 and its utilities to what you get if you buy MS-DOS in a box from Microsoft, it is not a toy at all. There is only one real technical limitation, but one that the PDP-11 also had: the 64K + 64K address limit. It is clearly getting to be a nuisance, but I am very hesitant to hack in segments just for the 286. On a 386, with Bruce's code, you can run 32 bits. Thus I prefer to keep the simple architecture of a linear address space. Note that the 64K property is not inherent to MINIX. On the 68000s, programs can be as big as memory. The 64K comes from the brain-damaged 8088 archtitecture, and going to multiple segments seems to be the wrong thing to do now with the future of even low-end machines clearly being the 386(SX) chips. A single, linear address space is so much simpler. I see MINIX-ST as the prototype. The most conspicuous thing lacking is a lot of applications software. There is kind of a vicious circle operating here: with a small user base, companies don't even consider making software for MINIX, and without software, the user base remains small. One thing that the newsgroup could do is look around for public domain software available in source form in C, and try porting it to MINIX. There is a huge amount of PD software around, most of it awful, but even if only 1% is good, that is still a great deal. Perhaps we need a mechanism to allow people who do a lot of work writing or porting some major utility to be able to sell it for a modest price (preferably with source). This might provide some incentive. Would the MINIX Centre in England be a suitable mechanism (Andy Michael-- any comments?)? Andy Tanenbaum (a...@cs.vu.nl)
Path: gmdzi!unido!mcsun!ukc!strath-cs!cs.glasgow.ac.uk!bru-cc!eesrajm From: eesr...@cc.brunel.ac.uk (Andrew J Michael) Newsgroups: comp.os.minix Subject: A Real Operating System (Part II) Keywords: MINIX ST PC Message-ID: <1460@Terra.cc.brunel.ac.uk> Date: 23 Apr 90 15:51:15 GMT Organization: Brunel University, Uxbridge, UK Lines: 57 Posted: Mon Apr 23 16:51:15 1990 Last month I posted my thoughts on how "real" an operating system MINIX was (or was not). Unfortunately after posting the article I vanished for a few weeks, and therefore failed to answer some of the replies. Ast also asked for my comments (as a part-time consultant for The MINIX Centre) on porting public domain software to MINIX. I have ported several public domain programs to MINIX, ranging from PLPL (a PAL/JEDEC compiler) to TeX. The following conclusions my be of interest ......... Firstly I have given up any further attempts on porting software to the PC, because the PC has two major problems. The 64k limit is well known; I cannot even get MicroEMACS to link under MINIX-PC, and it isn't really a large program. Secondly, I did not originally realise that MINIX-PC has problems with identifiers longer than 8 characters (I think - it might be six, or ten). Thus MicroEMACS won't even compile without some massaging of procedure names. I'm not saying that it isn't possible to tweak some software so that it will compile and link under MINIX-PC, but to my mind the least effort that has to be expended in re-inventing the wheel, the better. I have also given up using the ACK C compiler on the ST, but for a different reason, although this is also well known; sizeof(int) != sizeof(char *). I fully appreciate the arguments put forward in the MINIX-ST manual as to the choice of 16-bit ints for the ST, but they are, IMHO, inconsequential in comparison with the question of compatibility with UNIX software. Like it or not, the vast majority of the public domain software assumes that an int and a pointer are the same size. One could argue that this software is broken and needs fixing (I agree, so don't flame me !), but that isn't the point. I have spent far too many hours trying to fix such programs, and I really don't have that much time to waste. The only solution is if-you-can't-beat-em-join-em and use a 32-bit int compiler; gcc. However, gcc has problems; for obvious reasons it is hardly likely to ever be distributed with MINIX, and it is very memory hungry. That said, if you have enough memory to run it it is the answer to the software porting dream. As an example, the yacc recently posted to comp.sources.unix compiled and ran without a single alteration. So - a wishlist for MINIX to enhance portability of public domain UNIX programs looks like this: (1). Removal of the 64k limit on MINIX-PC. (2). Removal of the identifier limit on MINIX-PC (this will probably come with the ANSI compiler; ACK V4 already has a MINIX-PC compiler using .o files and the same linker as the ST). (3). An ACK C compiler for the ST with both 16 AND 32 bit ints, software selectable like gcc. Again, ACK already has hooks for this. And finally, we need the world to start writing POSIX compatible software ... Andy Michael -- Andy Michael (eesr...@cc.brunel.ac.uk) " Software cannot be written to 85 Hawthorne Crescent be completely free of errors." West Drayton Middlesex - Acorn Computers Ltd. UB7 9PA