Back in 2007 I had a "laptop crisis" in which I went from having a laptop on me at all times, to not having a laptop at all, for about a month. My home situation was pretty good, but my school situation... not so much.
I ended up doing enough of a restore of my dad's old (1989, I think?) 386 laptop and parallel Ethernet adapter. The details were something like:
1. The rechargeable battery was dead, but it was a 4.8-volt NiCad. It ran beautifully off three alkaline D batteries, strapped to the back. I just had to disconnect the batteries out whenever I had it plugged into the wall, to prevent them from charging.
2. The hard drive wouldn't spin up, so I ended up making a DOS boot disk with an SSH client (SSHDOS) and ODI drivers for the NIC, as well as the bog standard MS-DOS editor.
3. When I had Internet connectivity (read: wall proximity to Ethernet), I used SSHDOS to connect to a remote IRIX host, and used Lynx from there. Lynx was painfully slow on the 386, and SSL was right out. Not that much used it in 2007.
4. I used the MS-DOS editor as my daily-driver text editor. My workflows then, as now, are mostly text-based, so this was a pretty easy change.
Of course, I couldn't help but add a sticker to the lid: "up to 10x faster than your malware".
In 2007, I'm amazed that someone still kept an IRIX box up somewhere. I remember my uni having one around 2001, and it was regarded as positively ancient.
I've got a SGI Indigo in my mother's house.
Before the pandemic still booted. Of course I forgot the root password, but the 4GB scsi disk is still alive.
Of course the clock is somewhere in 199[2-5] because my Irix version wont' let me log in after January 1, 2000.
Yeah, I was immediately suspicious because Linux 1.0 was 386+ only due to memory management needs. but I did get a faint twinge of nostalgia for the orange-tinted plasma display on a portable that had the size, weight, and aesthetics of several bricks.
Wouldn't fuzix be a better alternative on a 286? not that expect using a 286. if i'm going to a more simple processor i would do it for the low power consumption it'd could bring
https://www.spinics.net/lists/linux-8086/msg00863.html
The video is worth watching. While popping Raspberry Pi's into old computers is straightforward, reviving such an old machine took considerably more skill. (Example: repairing damage to the PCB from capacitor leakage.)
I guess I have been lucky; I have 1000s of machines from 196x-200x (my 'newest' are Sun / SGI machines) and I have only had 2 capacitor leak cases, further everything that is not PC is working. I have a few PCs working, but compared to home computers of the 80s/90s or workstations of the same era, PCs seem to die much faster. The homecomputers from the 80s (ZX Spectrum, Commodore PET/16/Vic20/64/Amiga, MSX-1,2) all just switch on like I flew back in time. Sometimes the belt of the floppy drive breaks, but I have many of those.
Sure-- still a misleading headline though. There's not much in the headline that truly indicates what the author was actually doing. "Into" doesn't begin to describe the fact that Linux was on an rPi, not the laptop. In the context of software like an OS, you don't expect "install" to mean a hardware device unless that's specified.
If the headline was "Installing Linux into a TV from 1989" you wouldn't expect it to actually just be the author shoving a linux-capable SBC in there.
The article has merit but when the headline is pure click bait it's difficult for me to look past that.
When I wrote it I was envisioning some high end TV from the time, like the Sharp Nintendo TV, and the expanded RAM of a specific cartridge like some of the 3rd-party multi-game cartridges. Or maybe something smaller like LUnix. If it wasn't that, I would expect a more truthful headline like "Embedding Linux SBC into a 1989 Television".
If the headline of this had been "Embedding rPi Zero into a 1989 Laptop Chasis" then I would have though oh cool and checked it out rather than being annoyed that clickbait made it onto the HN front page.
That was a really oddball product that most people never heard about let alone considered owning.
My parents bought a higher-end '89 Sony model back then. What it meant was a tuner up to 40 channels, a whopping 25" Trinitron tube curved only in one degree (i.e. cylindrical) and OSD for most functions. The pinnacle of TV technology was Picture-in-Picture, and that's about it.
I did my schoolwork on a 286 laptop. It was cheap... Pleasant gray-scale screen, Dos 6, windows 3.1 with pipes and reversi it was really OK. Duke nukem 2d, joust and lemmings all in 1mb of ram. Wasn't that bad really.
In my first semester of Computer Science (early 2000s) I had the issue that my family computer was always busy. So I took our 286 from the closet and set it up in my room - I just needed a C compiler after all, and 34Mb hard drive space ought to be enough for everybody. I wanted to use Linux but you need a 386 or higher for that, and DOS was already installed anyway.
After about a month my mom convinced my father to get me a new PC, probably annoyed by the sound of the dot matrix printer at night. But honestly, I agree with you: it wasn't that bad.
I could have written your comment.
I sometimes think that it's not that children learn faster, it's just that they are used to be totally lost and keep trying
Even if you didn't run many (or any TSRs like Sidekick), there was a bit of fiddling to maximize the amount of the first 640K bytes available. IIRC, you could load the commonly used Microsoft stuff in the upper memory 384K.
Doubtless there were still systems around. But the 80286 had a very weird sort of virtual memory architecture--not that it mattered too much pre mainstream true virtual memory OS support. And it had been superseded since 1985 at a time when PCs were never really fast enough.
The 286 used segmentation where you could carve out contiguous regions in ram and select them using the 16bit segment registers. Going outside the segment would cause an interrupt but individual pages and page faults weren't possible until the 386.
We used the segment mode for our real time OS in university as it was simpler than virtual addressing and provided granular enough protection faults for what we were doing.
One neat thing we did with it was use separate segments for different video buffers before they were blitted to the VESA frame buffer region. This gave us a 1980's version of video sandboxing along with vsync'ed double buffering and overlapping windows.
It only really worked because the Pentium 3 we were using could memcpy something like ten thousand times faster than a 286 but it was still cool.
I would be genuinely interested in a multi-decade grid of what various price points bought in inflation-adjusted dollars by year for say, dell or compaq/hp over the years, say for price points in increments of $500.
Like my rock-bottom "Workforce 486" that was $2000 back in 1993 or so: 486 dx2/66, 250MB HDD, 4MB RAM ordered from the back of Computer Shopper.
I had a IBM PS/2 286 with, IIRC, 4MB RAM, 30MB HD and one 3.5" floppy disk, bought 2nd hand in 1992 where I played Monkey Island 2 and several other games. So, maybe it was ancient but newer PCs were so expensive back in the day that there were people still happily using it.
Yes. My first x86 computer was a 25MHz 386 bought in 1991. Even though 486's were available, it was still the envy of the kids at school. (For a very short time.) I remember seeing some 486 systems advertised for $4-5k, which in 1991 dollars was out of reach of most people. So I can completely believe a 286 would have been a fine laptop in 1989.
It wasn't like today, where if you're going to buy a new computer, you might as well always get the latest and greatest.
I was going to say that I installed Linux on plenty of 286s back in the day, but after thinking about it some more, they must have all been 386s. My first few Linux systems involved manually compiling the kernel and downloading and compiling individual GNU tools one at a time. The first kernel version I remember installing was 0.96, right around September 1992.
I remember a friend in the lab downloading linux and saving it in 3 1/4" floppies.
He used about 100 disks.
Two months later you could buy a magazine with Slackware linux on CDRom :-)
That's true but it was still a good option if you could get your PC to a university lab. Shortly later you could also usually find a cd burner in a university lab. The grandparent commenter's friend must have installed slackware in a narrow time period where floppies were the only feasible option.
I'm surprised no-one has mentioned that UNIX from Bell Labs was first developed on a 16-bit system, the PDP-11. 1BSD and 2BSD were both consequently 16-bit, and it wouldn't be until a separate small team from Bell Labs ported it to the VAX in a release called "32V" that it became 32 bit at all.
(This release and increase in word size revealed a lot of bugs in the 16 bit only Unix and C compiler -- I recommend reading the porting paper if this sort of thing interests anyone)
To answer your question from the paper, it appears all the other data types were 2 bytes, except for char, which was one byte. And long/float, which were handled specially, I believe by the PDP-11's floating point co-processor "C code for the PDP-11 uses the FP-11 convention for storing long integers"
Sure, I linked it in. I posted the first response from my phone, took me a bit to find everything on my computer...
The PDP-11 has an MMU and supports what's essentially segmented memory (https://gunkies.org/wiki/PDP-11_Memory_Management), with different address spaces for a kernel and for a userspace. It also supports a 22-bit "real" address space, hence when 2BSD and other "older" PDP-11 unixes can use up to 4MB of real memory (and 2.10BSD's kernel actually used more memory than could fit in a 16 bit address space at once -- needing to be manually chunked and loaded in/out of memory. In the release notes (http://www.krsaborio.net/bsd/research/1987/0715.htm) the authors said "Yes, [this is the last release] at least by us; quite frankly, we'd rather sacrifice our chance at heaven than look at a 16-bit machine again.", so it's about as nightmarish as it sounds.
It doesn't support paging, though, so no real virtual memory. I'm not really sure how thorough the process isolation was -- I know in the early releases, there was basically none, and a bad user process would crash the whole machine. I believe by later models (the MMU did change over time) it was "good enough" to keep the userland from crashing the kernel, at least.
Wasn't until 3BSD from Berkeley that proper virtual memory was added -- hence why the kernel's name was changed from /unix to /vmunix. Which is where the "vm" in "vmlinux" comes from, in case anyone's curious.
> Wasn't until 3BSD from Berkeley that proper virtual memory was added -- hence why the kernel's name was changed from /unix to /vmunix. Which is where the "vm" in "vmlinux" comes from, in case anyone's curious.
Xenix (an official port of System 7) was available for Intel 286s from Microsoft. There were a number of Unix-like systems for 16 bit systems, and the Ancient Unixen were initially running on 16bit processors (notably the PDP-11). You can run 16bit unix in a simulator today.
It was even available for 8086, XENIX 8086. Another 8086 UNIX at that time was PC/IX. I played around with them both, and they both have upsides and downsides.
Sure. SCO/Microsoft Xenix. You could buy a PC AT or compatible clone, hang 2-4 terminals off it (the console gave you one extra) and run point of sale, physician's office management software or accounting software. Terminals cost about 1/4 of what a 286 cost in 1986-1989 so you'd see a lot of it in small businesses, and there were a few chains that used it because they could use UUCP to send in data to the home office.
Fun. Here's a link to the programmer's guide: http://www.nj7p.org/Manuals/PDFs/Intel/174391-001.pdf pages 2:17-2:22 cover the pointer and data type sizes. Amazing how little things have changed... and how different things are at the same time.
Exactly the type of thing I was hoping to see. Mind blowing the 286 could run a fully fledged Unix. I wonder what the process isolation story is, did everything run in the same address space? If so then were all binaries position-independent?
Edit: answered my own question. So this is the obsolete segmentation isolation I’ve always read about!
> Edit: answered my own question. So this is the obsolete segmentation isolation I’ve always read about!
Yep. It was amazing what you could do with it. 286 was a chip that outside Xenix, Coherent and a few other multiuser OSes never really was fully utilized.
You've got plenty of answers already, but here is a list of specifically 8086 UNIXes (or "UNIX-likes") that I remember. Some I have played around with quite a bit.
- Coherent
- XENIX 8086
- SINIX (technically on 80186, and derived from XENIX)
- PC/IX
- Minix86
One of the first things I usually do on an old but new to me system is run a small C program that just prints sizeof() of various types, including the ones you mentioned and pointers. Here it is on SINIX, which is the one I can currently run easiest (unit is multiples of sizeof(char) == 1, with normal 8 bit bytes):
So it's almost like you say, but long (and long long) are actually 32 bits.
Standard pointers are 16 bit, which means they address within a segment. There is almost certainly also a way to specify 32 bit far pointers (seg:off), or maybe even 32 bit "huge" pointers (still seg:off, but normalized, so that comparisons work).
Like others have said: Minix and others did. I ran Minix for
a while when I had a 386sx (wish was like a 16 bit 386). In particular it lacked the protected mode that Linux used heavily.
So full 386 software didn't run on that. Minix was super fast but there was little you could do with it, sadly.
Of course pretty much all Intel computers still run Minix today as part of Intel's management engine.
It bothers me that the ME exists. A completely separate computer that can be remotely controlled and I can't turn it off. I'll be glad when there's more CPU competitors that don't have one of those, even if they are slower.
My gut tells me that no cpu manufacturer can ever be trusted if intel cannot be trusted. What is hopeful to me are RISCV softcores running on FPGA. Will never beat CPU records but will likely be the best option available for private computing.
On a 16 bit cpu I worked on char, short, and int were all 16 bit words, long and long long were 32 and 64 bits, but doing math with 32 bit words required the C compiler to emmit instructions to manage the 32-bit operations.
Also sizeof(long) was 2 and sizeof(long long) was 4.
While you got an answer already, there was also a time where 8 bit wasn't standard yet, and computers existed in all kinds of word sizes. 18 bit, 36 bit, and even "variable size" (i.e. IBM 1401). The further back you go, the more it shatters what we consider "normal" and "essentially fixed" in today's computer world.
Though there were multiple solutions where the MMU sat outside the CPU, on the bus between 8086 and memory. That setup was common in general, but a bit less common for the 8086 specifically. Support wasn't perfect, often paging wasn't a thing, but isolation and protection in general worked somewhat reasonably.
My first Linux install was a Mac IIsi, which had a Motorola 68030. Linux required a hardware FPU which the 030 lacked, but there were daughtercards that provided the missing FPU, and then Linux worked. It didn't do much though!
Are you sure? Linux doesn't require hardware floating point. Are you thinking of an MMU? The EC SKU 68030's didn't have them and could be provided externally.
I had an 8086 "laptop" for a while in the 90s, mostly as a novelty. It took something like 10 C batteries (though I never took it anywhere as it was 5kg), had 512kB of RAM, no hard disk, two 720kb floppy drives, a full size keyboard (!), a flip up monochrome LCD screen similar to this one, and an external monochrome monitor port (but you could only use one screen at a time, controlled by DIP switches). I think it might have been this one: https://www.peterkernwein.de/Rechengeraete-Sammlung/amstrad_.... More pictures of a similar model here: https://www.vogons.org/viewtopic.php?t=32543
I mainly used it with the external screen for reading text files and amateur ebooks, at the end of my bed.
Funny... the last few days i was thinking about refurbishing an old Toshiba T1200 i have lying around to use as my Laptop at work.
Why? Now... most of the stuff that is not direct technical stuff i do is text based (writing reports, creating spreadsheets with calculations for projects etc.), and even not a small part of the technical side of the job is done in hooking up to the serial port of a production line. The transactions with our vendors at work is mostly via fax (yeah, it still exists and is used in germany... ESPACIALLY with our vendors and partners)...
The funny thing is, i am really confident, that i COULD do 99% of my work via a machine of the 80s without losing much comfort.
Well, yes, something's getting installed in the physical sense (so not quite entirely clickbait).
Wouldn't it be great to have a relatively routine way of repurposing old laptops, which often have very good traits, by using them as terminals for a replaceable on-board compute module (through VNC or what have you)? For instance, an enclosure that fits in the space occupied by the optical drive or Ultrabay, and uses the existing interface for its connection. What would be needed to be created and disseminated is a design for the enclosure (and maybe someone to make them) and software for the client.
I remember, when chatting was popular, we did exactly that. But right now, it is not worth it. I want to make computers disappear in my life, to support it invisibly. But these old machines, big, loud, moving parts, hm, not for me.
I was quite poor so only had old computers growing up, so I used Minix on everything. These days there is still ELKS which runs on the real old hardware, rather than inserting a Pi into the case.
My first computer was a 286 (desktop) back in 1989, with 1MB of RAM and a 40MB hard drive. And an NEC VGA monitor, which cost quite a lot back then. It was originally the family computer, but eventually became a hand-me-down when my parents upgraded. I managed to get Windows 3.1 running on it, and it actually wasn't so slow. The first computer I ran Linux on was a 486.
I ended up doing enough of a restore of my dad's old (1989, I think?) 386 laptop and parallel Ethernet adapter. The details were something like:
1. The rechargeable battery was dead, but it was a 4.8-volt NiCad. It ran beautifully off three alkaline D batteries, strapped to the back. I just had to disconnect the batteries out whenever I had it plugged into the wall, to prevent them from charging.
2. The hard drive wouldn't spin up, so I ended up making a DOS boot disk with an SSH client (SSHDOS) and ODI drivers for the NIC, as well as the bog standard MS-DOS editor.
3. When I had Internet connectivity (read: wall proximity to Ethernet), I used SSHDOS to connect to a remote IRIX host, and used Lynx from there. Lynx was painfully slow on the 386, and SSL was right out. Not that much used it in 2007.
4. I used the MS-DOS editor as my daily-driver text editor. My workflows then, as now, are mostly text-based, so this was a pretty easy change.
Of course, I couldn't help but add a sticker to the lid: "up to 10x faster than your malware".