Path: utzoo!utgpu!water!watmath!clyde!att!rutgers!gatech!linus!mbunix!eachus From: eachus@mitre-bedford.ARPA (Robert Eachus) Newsgroups: comp.sys.amiga.tech Subject: Re: Need info on exceptions Summary: Virtual memory does not require virtual address spaces. Keywords: Virtual memory, Address space Message-ID: <39432@linus.UUCP> Date: 31 Aug 88 17:36:47 GMT References: <8808272322.AA03740@cory.Berkeley.EDU> <125@fishpond.UUCP> Sender: news@linus.UUCP Reply-To: eachus@mitre-bedford.arpa (Robert I. Eachus) Organization: The MITRE Corporation, Bedford, Mass. Lines: 64 In article <125@fishpond.UUCP> fnf@fishpond.UUCP (Fred Fish) writes: >In article <8808272322.AA03740@cory.Berkeley.EDU> (Matt Dillon) writes: >>: [somebody besides Matt writes] >>: An idea central to the Amiga >>:is that an address in any tasks address space is not a virtual >>:address but a physical memory address. That means that you can hand >>:a pointer off to another task and it will be valid in THAT tasks's address >>:space. > >> Yes, this *IS* a nice idea. > >Personally I think this is the single biggest problem with the Amiga. For >a process running in a multitasking environment, it is akin to living in >a society where it is perfectly acceptable for strangers to walk up to you >at any time and stick their fingers in your mouth to examine your teeth. >There is absolutely no concept of enforced privacy between processes. Fred (and many other people, but not Matt :-) are confusing virtual address spaces (not virtual memory) with memory management. AmigaDOS 2.0 (or some such) will probably provide memory management (assuming that you have a 68020 + 688851 or a 68030 or ...) such that all memory not declared MEMF_PUBLIC cannot be read or written by other tasks, etc. This is a not a difficult job. AmigaDOS 2.0 might also provide virtual memory, such that not all valid memory addresses are mapped to hardware memory. (Again not too difficult. Memory requested as CHIP memory, of course cannot be made virtual, and some DMA disk controllers would need to be made smarter, but overall not too bad.) HOWEVER, to add virtual address spaces to KickStart/AmigaDOS would be a messier project than replacing MS-DOS with OS/2! (And it would sell about as well because it would be at least as fat and slow.) This is not a blanket condemnation of virtual address space systems. Many such OS's (but not all) on mainframes work well and don't impose major burdens on users. (For example, many versions of Unix on VAXes.) Some, such as Multics, even provide low cost interprocess memory sharing. But such systems don't belong on desktops. In single-user multitasking systems, unlimited address space (as opposed to a finite but large address space) is not worth the pain and agony. To sum up: Adding memory management to AmigaDOS will be a win (and MEMF_PUBLIC is just one feature present NOw to make the eventual move less painful), but it will require a hardware MMU. Adding virtual memory also requires an MMU, and could be done at the same time as the above, but I'm not sure how important it will be. (I'm typing this on an Amiga 2000 with 5 Meg of RAM and a 40 Meg Hard Disk. If I had VM, I'd probably use a (880K) floppy as the backing store. With 5 Meg or 20 Meg removables, I'd find it much more interesting.) Adding virtual address spaces to AmigaDOS would be a big mistake under any circumstances. Robert I. Eachus with STANDARD_DISCLAIMER; use STANDARD_DISCLAIMER; function MESSAGE (TEXT: in CLEVER_IDEAS) return BETTER_IDEAS is...