Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!ncrlnk!ncr-sd!crash!pnet01!jca From: jca@pnet01.cts.com (John C. Archambeau) Newsgroups: comp.os.minix Subject: Re: Compress Message-ID: <4660@crash.cts.com> Date: 19 Jul 89 05:36:48 GMT Sender: news@crash.cts.com Organization: People-Net [pnet01], El Cajon CA Lines: 37 ast@cs.vu.nl (Andy Tanenbaum) writes: >None of the 16 bit compression programs that I have seen fit in 64K + 64K. >They all need more table space. MINIX does not support large model and >probably never will on 8088/80286 CPUs. If you have one that runs Large model not being supported in 8086 real mode is understandable, you only have 640K (roughly) of memory for processes if you don't use expanded memory. But with protect mode, you have 16 Mb of physical memory to play with. If SCO Xenix 286, MicroPort Unix/286, and MS-DOS 3.30 have C compilers that generate large model code, then why is it too much to ask to have such a compiler for 286 protect mode? In fact, to fully implement Minix 286 in protect mode, you'll have to rewrite asld to support the 286 instruction set anyway. I know segmentation is a pain, but it's not by any means impossible. I agree with your position that Minix should first and foremost be a teaching tool, but having a crippled C compiler isn't going to help matters any, especially when the expandability factor of going to 286, 386, and 486 protect modes comes into play. The current C compiler is probably sufficient for 8086 real mode, but it's a far cry from what can be done and what is usable under protect mode. GCC will probably suffice for 386 and 486 protect mode, but what about 286 protect mode? This is one of those in the middle cases. You have 16 Mb of physical memory, in just 20% of that space, a lot can be done, you can have a few large programs running. I agree the subject isn't trivial by any means, but it is doable. And I would like to see it done even if it means doing it myself. Unfortunately, I have found little documentation of how to go about writing a smart linker. Another border line case...I've seen a lot of debate on whether or not the linker is a piece of the compiler or a piece of the operating system. Your insight along with anyone else's will be appreciated as always... /*--------------------------------------------------------------------------* * Flames: /dev/null (on my Minix partition) *--------------------------------------------------------------------------* * ARPA : crash!pnet01!jca@nosc.mil * INET : jca@pnet01.cts.com * UUCP : {nosc ucsd hplabs!hd-sdd}!crash!pnet01!jca *--------------------------------------------------------------------------*/