Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!mips!news.cs.indiana.edu!rutgers!cbmvax!jesup From: jesup@cbmvax.commodore.com (Randell Jesup) Newsgroups: comp.sys.amiga.tech Subject: Re: Help --> How to prevent the visit from the dreaded guru Message-ID: <17134@cbmvax.commodore.com> Date: 6 Jan 91 00:41:52 GMT References: <611@caslon.cs.arizona.edu> <1991Jan4.203339.8800@maytag.waterloo.edu> <1991Jan5.200226.19718@msuinfo.cl.msu.edu> Reply-To: jesup@cbmvax.commodore.com (Randell Jesup) Organization: Commodore, West Chester, PA Lines: 61 In article <1991Jan5.200226.19718@msuinfo.cl.msu.edu> dailey@frith.uucp (Chris Dailey) writes: >I think there is a bright young PhD student trying to get his degree by >putting VM into the AmigaOS. This does not, however, imply memory >protection. See below. Hmmm. BTW, it's been done once already by a student in Canada (not that something having been done before is a disqualification, especially if exactly what is done or attempted is different). >I don't care much about existing programs. If the Amiga could provide >a more stable development environment, so we know that, when the >equivalent of Unix's reference through NULL pointer or the many other >things that cause a reboot on the Amiga as is, does not mean that the >machine needs to be rebooted. This would speed up development and allow >programmers to write more correct programs that will make everybody's >lives easier. I know if the SunOS machines that our schools had to be >rebooted every time one of these problems happened (instead of the usual >core dump or whatever) noone would finish programs in time! A one word answer: enforcer. It traps out all reads to the lowest 1K of memory (except location 4, of course) and all writes to that area. Things that use NULL (or funny) pointers don't trash the system (at least in that way - if they're confused enough, they may trash something like the free memory list). BTW, since my amiga boots in about 15 seconds, it bothers me much less than rebooting a sun would (5-10 minutes, a few more to get set up). >Even fake memory protection would due for many of us. How about a >command like "run such and such a program so it doesn't touch anything >other than the OS". It gets its own space, tucked away from the rest of >the system? The problem is defining "it's own space". What is part of the OS, and what is part of an App? What if an "application" (let's say Mount) allocates a data structure and adds it to a system list? >It's not just running programs, it's developing! Native development is >where it's at right now, and if that is made more difficult on the Amiga >then people will be more likely to develop for some other machine, and >maybe port it over to the Amiga some other time. Ever notice what happens on a Mac or pcclone when you run a program you're developing? If it's bad, you almost always have to reboot. Actually, AmigaDos does a better job of trapping errors (the infamous "software error" requester) - PC's usually just lock up, and Macs either lock up or put up the "bombs" - almost as bad. With the amiga, if the program didn't trash the system, your other processes continue to work, and you can muck around in a debugger to figure out what went wrong. If I know why something died (i.e. that it wouldn't have trashed anything it didn't own), or am fairly certain, I may continue to use the system for a short while before rebooting (part of the purpose for the "suspend" option under 2.0). For example, if something I wrote dies with divide by zero because of a missing check, I'll add the check and recompile without rebooting. -- Randell Jesup, Keeper of AmigaDos, Commodore Engineering. {uunet|rutgers}!cbmvax!jesup, jesup@cbmvax.commodore.com BIX: rjesup The compiler runs Like a swift-flowing river I wait in silence. (From "The Zen of Programming") ;-)