Path: csiph.com!weretis.net!feeder9.news.weretis.net!panix!.POSTED.spitfire.i.gajendra.net!not-for-mail From: cross@spitfire.i.gajendra.net (Dan Cross) Newsgroups: alt.folklore.computers Subject: Re: Don Norman: The Truth About Unix Date: Sun, 1 Feb 2026 15:06:54 -0000 (UTC) Organization: PANIX Public Access Internet and UNIX, NYC Message-ID: <10lnq6e$643$1@reader2.panix.com> References: <10lb6d7$3she5$1@dont-email.me> <10ll48q$2vbi7$1@dont-email.me> <10llqrd$37blf$4@dont-email.me> <10ln01t$3hqko$1@dont-email.me> Injection-Date: Sun, 1 Feb 2026 15:06:54 -0000 (UTC) Injection-Info: reader2.panix.com; posting-host="spitfire.i.gajendra.net:166.84.136.80"; logging-data="6275"; mail-complaints-to="abuse@panix.com" X-Newsreader: trn 4.0-test77 (Sep 1, 2010) Originator: cross@spitfire.i.gajendra.net (Dan Cross) Xref: csiph.com alt.folklore.computers:233865 In article <10ln01t$3hqko$1@dont-email.me>, Peter Flass wrote: >On 1/31/26 14:05, Lawrence D’Oliveiro wrote: > >> Worth also pointing out that, at the time of MS-DOS 2.0 with its >> introduction of some bizarro-Unix features, the commonly-available PC >> hardware was already more powerful than the original PDP-11 systems >> that Unix was created on. So why couldn’t Microsoft (or IBM) provide a >> full Unix-equivalent OS for PC hardware back then? > >No memory protection or memory mapping until the 386. There were >unix-like OSs for 8086, but they were terrible fragile without memory >protection. I don't know how it was managed on the PDP-11. [Meta note: I wonder why people continue to engage with Lawrence as he is an obvious troll. Please don't feed him] Most PDP-11 models that ran Unix had an MMU. It wasn't a very capable MMU, mind you, but it at least allowed the system to protect processes from one another and protect the kernel from processes. John Levine has posted before about a port of Unix to the 8086, that made use of the segmentation system to more or less protect the OS from errant user programs; the C compiler simply did not emit instructions to change the segmentation registers, so it worked pretty well as I understand it. The 80286 featured a bizarre, overly wrought "task" model in hardware that saw little use in practice; I believe that OS/2 might have used it. Vestiges of it persist into the modern day, where the "TSS" (Task State Segment) has been overloaded in 64-bit "long" mode to hold a table of stack pointers that can be used with various traps so that, say, the double-fault, NMI or debug/breakpoint handlers can run on dedicated stacks. There's also some business about allowing non-privileged access to IO ports for programmed IO from user-mode code. Anyway. The 80386 was designed as a 32-bit CPU for the Unix workstation market, and supported paging natively. I must say, all things considered they did a pretty good job overall with the design of the MMU and page table format. To maintain backwards compabibility they extended the segmentation mechanism; the intent was that you would define segments covering the entire 32-bit address space and then more or less ignore them. - Dan C.