On Mon, Oct 8, 2018 at 6:25 PM Digby R.S. Tarvin wrote: > Does anyone know what platform Plan9 was initially implemented on? > My understanding is that the earliest experiments involved a VAX, but development quickly shifted to MIPS and 68020-based machines (the "gnot" was, IIRC, a 68020-based computer). My guess is that there is no reason in principle that it could not fit > comfortably into the constraints of a PDP11/70, but if the initial > implementation was done targeting a machine with significantly more > resources, it would be easy to make design decisions that would be entirely > incompatible. > I find this unlikely. The PDP-11, while a respectable machine for its day, required too many tradeoffs to make it attractive as a development platform for a next-generation research operating system in the late 1980s: be it electrical power consumption vs computational oomph or dollar cost vs available memory, the -11 had fallen from the attractive position it held a decade prior. Perhaps slimming a plan9 kernel down sufficiently so that it COULD run on a PDP-11 was possible in the early days, but I can't see any reason one would have WANTED to do so: particularly as part of the impetus behind plan9 was to exploit advances in contemporary hardware: lower-cost, higher-performance, RISC-based multiprocessors; ubiquitous networking; common high-resolution bitmapped graphical displays; even magneto-optical storage (one bet that didn't pan out); etc. Certainly Richard Millar's comment suggests that might be the case. If it > is heavily dependent on VM, then the necessary rewrite is likely to be > substantial. > As a demonstration project, getting a slimmed-down plan9 kernel to boot on a PDP-11/70-class machine would be a nifty hack, but it would be quite a tour de force and most likely the result would not be generally useful. I think that, as has been suggested, the conceptual simplicity of plan9 paradoxically means that resource utilization is higher than it might otherwise be on either a more elaborate OR more constrained system (such as one targeting e.g. the PDP-11). When you can afford not to care about a few bytes here or a couple of cycles there and you're not obsessed with scraping out the very last drop of performance, you can employ a simpler (some might say 'naive') algorithm or data structure. I'm not sure how the kernel design has changed since the first release. The > earliest version I have is the release I bought through Harcourt Brace back > in 1995. But I won't be home till December so it will be a while before I > can look at it, and probably won't have time to experiment before then in > any case. > The kernel evolved substantially over its life; something like doubling in size. I remember vaguely having a discussion with Sape where he said he felt it had grown bloated. That was probably close to 20 years ago now. For what it is worth, I don't think the embarrassment of riches presented > to programmers by current hardware has tended to produce more elegant > designs. If more resources resulted in elegance, Windows would be a thing > of beauty. Perhaps Plan9 is an exception. It certainly excels in elegance > and design simplicity, even if it does turn out to be more resource hungry > than I imagined. I will admit that the evils of excessively constrained > environments are generally worse in terms of coding elegance - especially > when it leads to overlays and self modifying code. > plan9 is breathtakingly elegant, but this is in no small part because as a research system it had the luxury of simply ignoring many thorny problems that would have marred that beauty but that the developers chose not to tackle. Some of these problems have non-trivial domain complexity and, while "modern" systems are far too complex by far, that doesn't mean that all solutions can be recast as elegantly simple pearls in the plan9 style. Whether we like those problems or not, they exist and real-world solutions have to at least attempt to deal with them (I'm looking at you, web x.0 for x >= 2...but curse you you aren't alone). PDP11's don't support virtual memory, so there doesn't seem any elegant way > to overcome that fundamental limitation on size of a singe executable. > No, they do: there is paging hardware on the PDP-11 that's used for address translation and memory protection (recall that PDP-11 kept the kernel at the top of the address space, the per-process "user" structure is at a fixed virtual address, and the system could trap a bus error and kill a misbehaving user-space process). What they may not support is the sort of trap handling that would let them recover from a page fault (though I haven't looked) and in any case, the address space is too small to make demand-paging with reclamation cost-effective. > So I don't think it i would be worth a substantial rewrite to get it > going. It is a shame that there don't seem to have been any more powerful > machines with a comparably elegant architecture and attractive front panel > :) > An attractive front panel for nearly any machine is just a soldering iron, LEDs and some logic chips away. As far as elegant architectures, some are very nice: MIPS is kind of retro but elegant, RISC-V is nice, 680x0 machines can be had a reasonable prices, and POWER is kind of cool. I know I shouldn't, but I have a soft spot for ARM. It is sounding like Inferno is going to be the more practical option. I > believe gcc can still generate PDP-11 code, so it shouldn't be too hard to > try. > Sounds like a nifty hack. Fitting Dis into a 64k/64k split I/D space is the challenge. - Dan C. On Tue, 9 Oct 2018 at 04:53, hiro <23hiro@gmail.com> wrote: > >> i should have said could, not can :) >> >>