Path: utzoo!utgpu!jarvis.csri.toronto.edu!clyde.concordia.ca!uunet!snorkelwacker!apple!rutgers!att!ima!esegue!johnl From: johnl@esegue.segue.boston.ma.us (John R. Levine) Newsgroups: comp.sys.ibm.pc Subject: Re: Was - Re: Xerox sues Apple!!! Now processor wars. Message-ID: <1990Jan5.173545.2179@esegue.segue.boston.ma.us> Date: 5 Jan 90 17:35:45 GMT References: <205@tw-rnd.SanDiego.NCR.COM> Reply-To: johnl@esegue.segue.boston.ma.us (John R. Levine) Organization: Segue Software, Cambridge MA Lines: 28 Virtual 86 mode is indeed pretty handy, not because it offers any unusual memory protection, which it doesn't, but because it lets you virtualize a real-mode 8086 in which one typically runs MS-DOS or anything else that runs on a 8086 based PC. Each process can have a bit mask determining what I/O addresses it can refer to, which makes it possible to allow a virtual 8086 or any other process direct access to an I/O device without compromising the security of other shared devices. The 386 has a bunch of other unusual stuff inherited from the 286, some quite handy, some totally useless. There is considerable task-switching stuff built right in; it is reasonable to write an interrupt handler as a process rather than a subroutine and little or no extra glue code is needed to make it work. The segmentation scheme lets a fair amount of work normally handled by the kernel be done directly, for example user programs can directly call privileged routines without needing a kernel trap handler and dispatcher. It is also possible for the kernel to grant limited task switching privileges to user processes so that you can call another process with an address space separate from yours to perform some service. Within a process you can have "call gates" which are indirect pointers to routine addresses that can be snapped at runtime, aiding the implementation of shared dynamically loaded libraries. Unfortunately, all of this stuff is implemented as special segments, so you need a programming language that supports segmented addressing, which few 386 languages do. -- John R. Levine, Segue Software, POB 349, Cambridge MA 02238, +1 617 864 9650 johnl@esegue.segue.boston.ma.us, {ima|lotus|spdcc}!esegue!johnl "Now, we are all jelly doughnuts."