Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!rutgers!apple!oliveb!amiga!cbmvax!daveh From: daveh@cbmvax.UUCP (Dave Haynie) Newsgroups: comp.sys.amiga Subject: Re: UNIX vs. Amiga speeds Message-ID: <6394@cbmvax.UUCP> Date: 24 Mar 89 05:36:29 GMT References: Organization: Commodore Technology, West Chester, PA Lines: 77 in article , deven@pawl.rpi.edu (Deven Corzine) says: > In-reply-to: daveh@cbmvax.UUCP's message of 21 Mar 89 07:34:57 GMT > In article <6352@cbmvax.UUCP> daveh@cbmvax.UUCP (Dave Haynie) writes: > Besides, I don't mean specifically the AT&T Unix Kernel. Basically, > what I mean when I say "the Amiga can run Unix" is that you could have > a programming interface virtually identical to that provided in a more > traditional Unix kernel, but you could implement it on top of Exec for > efficiency, power and flexibility. If you're mainly interested in some form of UNIX call-compatible library, whether linked or shared, I whole-heartedly agree. There's so much useful UNIX software out there that's just a little too hard for a busy person such as myself to port over to the Amiga. Most C compilers have link libraries with bits and pieces of UNIX function call compatibility, but nothing that'll handle more than simple ports. > The best of both worlds, as it were. I define Unix more by how it can be > used than by the source code that defines it. Apparently Apollo allows something like function call compatibility for both System V and BSD 4.somthing under Aegis these days. No idea how well it works. UNIX taken from a programming model rather than a user's model is something I'd certainly welcome on the Amiga, if for no other reason than the fast porting of UNIX code that would allow. > >To quote the well known UNIX wizard Deven Thomas Corzine, "The 2500UX already > >does." So do all other 2500s. > Yes, those specific models have MMU's (hardly utilized under Exec as > of yet) but Amigas *as a class* do not have MMU's. And without an > MMU, you can not page. You CAN swap without an MMU, but it makes > things complicated. Well, we have yet to have a version of Exec released since there have been Amigas with MMUs. The MMU could give Amiga systems virtual memory and some level of protection, without necessarily causing problems on systems without MMUs. The MMU lets you swap transparently to application software, without resorting to double pointers (ala Macintosh). It makes things much more efficient; doing the whole thing in software sounds like big time trouble. > If you have the Unix programmer (and user) interface, without paging or > swapping implemented, and the whole thing implemented on top of Exec as a > base, I think you'll find comparable speeds. In my opinion, you're still benchmarking the Amiga OS at that point, just accessed via a slightly different interface. If you started using messages through filesystem pipes or whatever, instead of Exec Messages, you'd go slower. But if you're building UNIX call compatible message passing functions on top of Exec Messages, than you'll of course be within a function call or so of the speed of plain Exec. Similarly, if you decide to implement the System V filesystem and limit transfers to 1K at a time, like AMIX does (or at least did; maybe 1K isn't a fixed limit), your disk speed may drop; but if you implement UNIX compatible disk calls on top of FFS, you're obviously a function call away from AmigaOS speeds. No argument here, except on whether what you're running can be called UNIX or not. > Swapping and paging are by no means *necessary* components of Unix. > (Fine, maybe they are by some official definition, but not by mine.) > Unix ran on PDP's in its early days... Was paging actually > implemented? No, and it isn't on 80286 machines either. I think PDP's had to dump one process to disk and get the other, or some such ugliness. I believe (again, not the UNIX expert here) that the requirement is basically that all processes start at the same location, by whatever means that can be achieved. Paging seems to be the best way; even '386 systems use it instead of segments when running UNIX. If you're not using some form of memory management, even if you don't call it memory management, I don't think you're really UNIX. > Deven -- Dave Haynie "The 32 Bit Guy" Commodore-Amiga "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: D-DAVE H BIX: hazy Amiga -- It's not just a job, it's an obsession