Path: utzoo!attcan!uunet!husc6!bloom-beacon!apple!bionet!agate!helios.ee.lbl.gov!lll-tis!oodis01!uplherc!sp7040!myth!wes From: wes@myth.UUCP (Wes Peters) Newsgroups: comp.os.minix Subject: Re: MINIX (UNIX clone) now available for 68000 (Atari-ST) Summary: DMA works pretty well... Message-ID: <15@myth.UUCP> Date: 10 Nov 88 04:11:14 GMT References: <1581@ast.cs.vu.nl> <17339@shemp.CS.UCLA.EDU> Lines: 52 In article <17339@shemp.CS.UCLA.EDU>, acm@valhalla.cs.ucla.edu (Association for Computing Machinery) writes: > To what extent do the ST-Minix disk drivers support floppy and hard disk > direct memory access? > For example, when you set up disk-intensive background processes, do > the characters still echo on the keyboard for your foreground process? I just logged into Minix on my brothers 1040ST, and typed: find / -exec ls -l {} \; & and then executed a couple of more commands from the keyboard. Keyboard echoing worked just fine. This is with a 256K /dev/ram on / and 10M /dev/hd2 on /usr. The find is still running as I type this - lots of files to play with. > Does minix have BSD style job control? (i.e. fg, bg, jobs, ^Z as suspend...) No. Why don't you write it? Personally, I'd rather have shell layers (shl program and /dev/sxt... drivers), and a nice windowing system to run them in -- why don't you write that instead? I'll cheer for you all the way! > In GENERAL terms (no diff listings, thanks), what routines besides the > assembly :-) have been changed from the intel version? The fork process is vastly different, mostly due to the different addressing schemes on the iAPX and 68K processors. The intel version fork was simple - duplicate the code segment and the data segment (for split I&D versions), and all pointers are offsets from the code or data segment, as applicable. On the 68K, relocation is not quite that simple. The Minix/ST fork uses `shadow' memory. When a process is forked, the data segment is duplicated, but not the text (program code) segment. (Yes, Minix/ST DOES have shared text segments!) When the new child runs, its data segment is copied in the original data area. When the parent runs, its data segment is copied into the original data area. The upthrust is that since the 68K doesn't give you any simple way to `relocate' data in memory, it costs a lot to fork. Of course, this limitation does not apply if the parent or child does an exec following the fork - the original data and text segments are freed, and new ones allocated. Try it, you'll like it! And of course you can always change anything you don't like, right? -- Sorry, my .signature file got left on Obie! (Replies to wes@obie.UUCP)