Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!tut.cis.ohio-state.edu!ucbvax!agate!usenet.ins.cwru.edu!ncoast!allbery From: allbery@NCoast.ORG (Brandon S. Allbery KF8NH) Newsgroups: comp.sys.amiga.advocacy Subject: Re: 8-bit death Message-ID: <1991May13.224027.9132@NCoast.ORG> Date: 13 May 91 22:40:27 GMT References: <3626.tnews@templar.actrix.gen.nz> <1991May12.181436.20304@NCoast.ORG> <3691.tnews@templar.actrix.gen.nz> Reply-To: allbery@ncoast.ORG (Brandon S. Allbery KF8NH) Followup-To: comp.sys.amiga.advocacy Organization: North Coast Public Access Un*x (ncoast) Lines: 50 As quoted from <3691.tnews@templar.actrix.gen.nz> by jbickers@templar.actrix.gen.nz (John Bickers): +--------------- | Quoted from <1991May12.181436.20304@NCoast.ORG> by allbery@NCoast.ORG (Brandon S. Allbery KF8NH): | > TRAP is slower, but JSR doesn't switch the processor to supervisor state. | > Yes, Unix runs the kernel in supervisor and user programs in user mode. Why | > do you think Unix programs core dump instead of guru-ing? | | I thought part of that had to do with using MMUs. Except for the fact | that Amiga programs can blat into sensitive places (the Blitter, | etc), why not control reads/writes with the MMU, and use the TRAPs | for trapping what they're supposed to trap like GOMF does already? +--------------- They're both needed. If programs run in supervisor mode, they can defeat the MMU; if they run in user mode without MMU memory protection, they can still hode things up good for the system or other programs. +--------------- | > Actually, 680x0 Unix usually puts the system call in d0. | | Nevertheless, hidden. I haven't noticed an intfoo() function in | a Unix compiler yet. +--------------- Later MS-DOS C compilers come with real libraries, so int() isn't necessary for system calls. BIOS calls are another matter, but they're a prime symptom of brain-damage anyway. +--------------- | Does the Amiga? I'm as sure as I ever am about anything that it | doesn't. +--------------- So user processes run in user mode. But the system has to run in supervisor mode to manipulate the MMU... oh, that's right, the Amiga doesn't use the MMU. (Yes, I know about compatibility and the 68000.) So does the Amiga ever use supervisor mode? And if it does, how does it get there without a trap? And using a non-interrupt entry point runs the risk of somebody accidentally typo'ing a #define and making every program in existence break as a result. That's why people moved from JSR's to interrupts in the first place (I recall LDOS trumpeting their svc interface as an alternative to CALLs to invoke OS functions, waaaaay back when). ++Brandon -- Me: Brandon S. Allbery Ham: KF8NH on 10m,6m,2m,220,440,1.2 Internet: allbery@NCoast.ORG (restricted HF at present) Delphi: ALLBERY AMPR: kf8nh.AmPR.ORG [44.70.4.88] uunet!usenet.ins.cwru.edu!ncoast!allbery KF8NH @ WA8BXN.OH