5 ms·
Coherent: The affordable Unix-like PC OS from over a decade before Linux 0.01
- Tsiklon 3y agoI had no idea there was a unix-like available at relatively reasonable cost before Linux. How is the c compiler, is there any way to compile some modern software for this?
- macintux 3y agoThere was also Minix. I used to have a binder with the source code, eons ago. I don't know about the current state of Coherent support, but the Wikipedia page has some resource links. https://en.wikipedia.org/wiki/Coherent_%28operating_system%29 https://en.wikipedia.org/wiki/Coherent_%28operating_system%2...
- louky 3y agoI ordered a magtape of MINIX from the back of the AST book, but never got it running even after going through getting a tape reader. Was highly dissapointing as I saved up my allownace as a 15 year old to buy the tape.
- johndoe0815 3y agoCoherent was published by Mark-Williams, who also had their own C compiler (MWC), which was also available for CP/M86 and the Atari ST. It's a K&R compiler, so expect some trouble with compiling modern code (unprotoize might help a bit here). The final releases of Coherent (4.2 is the last one IIRC) also fully supported the iBCS COFF binary standard, so binaries compiled for e.g. SCO Unix might work. You could also try to build an old gcc version with the provided K&R compiler: https://www.autometer.de/unix4fun/coherent/coh_prog.html https://www.autometer.de/unix4fun/coherent/coh_prog.html
- johndoe0815 3y agoCompiled binaries (gcc and more) and VMs with Coherent 4.2 installations can be found on Udo Munk's site: https://www.autometer.de/unix4fun/coherent/ftp/ https://www.autometer.de/unix4fun/coherent/ftp/
- dharmab 3y agoCopies of BSD have been traded at various prices since the 70s ranging from "free, but bring your own tapes" at user groups to a few hundred bucks (about a couple thousand dollars today) for a packaged distribution with documentation. However BSD was tangled up in a lawsuit from 1991-1994, right as Linux was launched online as a free download.
- nigel_bree 3y agoYou'd likely find the experience pretty miserable, not so much because of the C compiler - Steve did a great job with that - but actually because of the filesystem. Coherent was around for a long time, remember; it used a very classic V6 UNIX filesystem, complete with odd endianness of 32-bit fields in the inode and most significantly, the classic 14-character file name length. That right there will be an even bigger showstopper for the build scripts of most things than anything else. During the early 90's we could run GCC and Comeau C++ and all that kind of thing on Coherent fine because those codebases were still built for wide portability even though things like BSD FFS had opened that up - there were still plenty of machines running System III and System V code that most people took care not to create gratuitous collisions if truncation happened. Even shortly post the advent of Linux, that had changed dramatically and basically turned on its head and the effort involved in backporting to any flavour of classic UNIX (not just Coherent) quickly became almost impossible.
- nils-m-holm 3y agoCoherent had a K&R C compiler, so modern software would simply not compile. There is a tool called "unproto" that compiles ANSI (C89) programs with K&R compilers, and there is a Coherent version on my homepage (http://localhost/t3x.org/index.html#retro http://localhost/t3x.org/index.html#retro -- scoll down a bit). However, even this will probably not get you ver far with modern software. For 32-bit Coherent (4.0.0 and later) there is some 2.x GCC, but I have never used it and I doubt that it can compile software that is "modern" these days.
- lproven 3y ago> I had no idea there was a unix-like available at relatively reasonable cost before Linux. That is why I posted the link. Linux was not the first low-cost Unix for the PC. Very roughly, it went: * Unix only ran on proprietary kit. PCs were too small. * The 286 came along, and SCO took over Microsoft Xenix and offered it as a 286 OS -- expensive, and stuff we take for granted now, like networking, X11, and a compiler, were all separate expensive extras. * The 386 made Xenix a very credible usable OS, but it cost 10x as much as DOS or Windows. Commercial deployments in business, with no GUI, no networking, no compile, just statically-linked proprietary apps and dumb RS-232 terminals, mostly from Wyse. * As PCs got more powerful, other companies offered expensive PC Unixes too, and SCO officially licensed the AT&T kernel: SCO Xenix became SCO Unix. * Coherent came along with a very cheap and complete (but very limited) Unix-like OS. * Minix came along, even cheaper and you could get the source code. * It became possible to build and run BSD on PCs if you were a serious guru. * GNU considered the BSD kernel and decided against it, going for Mach and the HURD instead. (Oops.) * Linux came along and undercut Coherent, putting the MWC out of business. * NetBSD and FreeBSD became somewhat usable if you were highly capable. * Linux gradually became somewhat usable as a mainstream OS, with things like live CDs (Yggdrasil, Lasermoon Linux-FT) and installable modular distros with packaging (Red Hat Linux, Debian).
- deleted 3y ago[deleted]
- jsn 3y agoHuh, what a blast from the past. About 30 years ago, in Russia, I hacked up cyrillics keyboard support for Coherent by extending the line discipline layer in its kernel. It was probably still Coherent 3.0 though (which IIRC was based on Unix V6?), and the one on github seems to be 4.2.x.
- nigel_bree 3y agoIt's not based on V6, although it was basically created as a clone of it (and on the PDP-11, no less - the x86 versions of Coherent until 4.x were basically just minimal ports that kept the PDP-11's classic 16-bit flavour). It was a very very good clone, enough that a lawsuit was threatened and Dennis Ritchie himself got pulled into checking that it wasn't derived from any UNIX source - see dmr's comment at https://groups.google.com/g/alt.folklore.computers/c/_ZaYeY46eb4/m/5B41Uym6d4QJ https://groups.google.com/g/alt.folklore.computers/c/_ZaYeY4...
- mike_ivanov 3y agoCool! I had my hands on it, too. For some reason it got traction in late USSR.
- deviantbit 3y agoSomeone linked this article. I am curious to the attraction of Coherent now. Anyone that used it or wrote code for it hated it. It was not compatible with any version of Unix. SRV(3,4) was what the world lived in back in the 80s/90s. It would not boot on certain machines because of issues with hard drives. We had 68k machines that used SMD drives, then later on PC it would not work with different ESDI drives. The network stack would get hung up, requiring a reboot. Even the C library w/ the C compiler it came w/ was not standard. I could go on forever. I read this article: https://itsfoss.com/coherent-operating-system/ https://itsfoss.com/coherent-operating-system/ It claimed, "It was an excellent UNIX option at the time..." People are not remembering correctly. Companies would have port teams and none of them wanted to deal w/ Coherent.
- nils-m-holm 3y ago> Anyone that used it or wrote code for it hated it. I didn't! Used Coherent 3.0.0 and all later versions and wrote quite a few programs for it and ported many more. UUCP packages, news readers, wrote my own CU clone, my own mail client, etc. It was a real Unix system for $99 and fit easily on a 20MB ST-225 hard disk with plenty of space for your own stuff. I loved Coherent. Maybe in commercial software development things look different, but for me as a hobbyist it was a dream coming true.
- icedchai 3y agoI still remember the documentation that came with Coherent 4.x. It was amazing!
- nigel_bree 3y agoHey Nils, love your work - back around '90 when I joined Mark Williams I was a big Scheme fan, so your whole t3x.org site and "Scheme 9 from Empty Space" particularly puts a smile on my dial. I do think the fact that Coherent really hewed 100% to the original V6 approach based on the basic design constraints of bootstrapped minimalism was part of the charm. Doing the 4.0 release process I really pushed myself hard to get as much POSIX compatibility in as humanly possible, but the balancing act was the size-coding part - making /bin/sh still be 16-bit while having $(()) and shell functions and able to process those insane MB-sized GNU autoconf scripts that embedded >64kb here documents, etc. Another big part of why the size-coding style mattered was keeping the system comprehensible since with only a few developers everyone was spread so thin, but that's again part of the fascination. I've always wanted to give Coherent a bit of a conceptual reboot for modern x86 (particularly multicore, which means a complete new kernel) but staying to the 16/32-bit size and with a style similar to your books walking through the process of making it and how all the design choices need to interlock to make that possible is something I wish I had the free time for.
- ksherlock 3y agoI don't understand why someone would throw tarballs of source code into a git repository. https://github.com/a-mail-group/coherent https://github.com/a-mail-group/coherent
- tedunangst 3y agoProbably because somebody had the tarballs lying around, somebody else said "dude, that's so cool, you need to put them on github", and the first person grudgingly obliged. Seems reasonable to me to defer the labor of unpacking and organizing everything to the person who thinks it's really cool, instead of the person who regrets not cleaning out their desk sooner.
- EvanAnderson 3y agoFun fact - The Mark Williams Company[1], who made Coherent, was founded by Aaron Schwartz father, Robert Schwartz [2]. A couple of friends and I drooled over an AT&T Unix manual that our public library had in 1990 - 1991. Unix seemed really cool but we could never afford a real Unix machine. We talked about pooling our money and buying a copy of Coherent but we never did. Then Linux came on the scene and Coherent was forgotten. [1] https://en.wikipedia.org/wiki/Mark_Williams_Company https://en.wikipedia.org/wiki/Mark_Williams_Company [2] https://en.wikipedia.org/wiki/Aaron_Swartz https://en.wikipedia.org/wiki/Aaron_Swartz
- neilv 3y agoI didn't know the company was founded by Robert Swartz. I'd always see the magazine ads for Mark Williams C, and just ssumed that it was written by a programmer named Mark Williams who made a company.
- sedatk 3y agoAnother fun fact: One of the Coherent's authors was Tom Duff (of Duff's Device fame) apparently.
- nigel_bree 3y agoYes, and also notably Dave Conroy of MicroEMACS fame. I do believe that as with QNX and MKS Systems and Watcom, Coherent was mostly built by former graduates of Waterloo university - their computing department is responsible for a great many notable products.
- pjmlp 3y agoI went to a technical highschool with focus on informatic, so for our operating systems class the introduction to UNIX was done via Xenix. It was a PC tower, that the teacher would rent from his work once a week. Given the timeframe, we would split in groups, having prepared our samples as best as we could in Turbo C for MS-DOS, with dummy implementations for the UNIX calls not available on MS-DOS. Then we would take 15m turns, to try to make our applications run in Xenix with the actual real implementations, instead of the stubs. Current generations have no idea how expensive it was to get into computers.
- icedchai 3y agoI ran Coherent 4.x on a 386sx before I got into Linux. This was probably 1992 or 93.
- deviantbit 3y agoYou were fortunate to have one of the few computers it would actually run on.
- icedchai 3y agoI didn't think its hardware requirements were that exotic? This was a fairly generic PC clone laptop. I knew another guy who ran 3.x on a 286.
- deviantbit 3y ago> This was a fairly generic PC clone laptop. What year?
- icedchai 3y agoIt would've been either late 1992 or early 1993. It was a rather low end 386SX/20 laptop.
- nils-m-holm 3y agoI ran Coherent on quite a few PC clone computers, most of them 286 with a WD1006 MFM controller and a Seagate ST-225 or Mitsubishi MR535 hard disk. Later I had it on a variety of cheap 386 boxes with IDE interfaces and on one machine with an Adaptec 1542 SCSI adapter. It never caused any issues on any of them. It was in the late 1980's to early 90's. If it was luck, I must have had a lot of it back then!
- jmclnx 3y agoI used Coherent for a while and only moved to Slackware went it folded in 1995. Started with the 286 version and went to the 386 version when it came out. It was very nice and had some unique items. The 386 version was also able to run coff binaries from SCO. The docs that came with Coherent was very good, as good as what comes with OpenBSD. I remember in comp.os.coherent, starting around 93/94, Linux people started trolling the group. You can get images from here, it is able to run in a VM: https://www.autometer.de/unix4fun/coherent/ https://www.autometer.de/unix4fun/coherent/
- jmclnx 3y agoFWIW, if Coherent did no fold, I would have stuck with it.
- indymike 3y agoCoherent was interesting because it emerged as an interesting answer for getting true multitasking, multi-user performance out of 386 machines that wasn't priced ridiculously high. Coherent's tool chain wasn't as good as SCO's and that meant a lot of work for porting. There wasn't a lot of software ported to it (i.e. databases, etc...) so you were pretty much writing the whole application on Coherent. If you were writing a greenfield application, coherent wasn't bad and was priced really nicely (at the time). Incidentally, the problem with Unix at the time was the crazy license costs for SCO and Xenix. The lower cost alternatives were weird "multiplexed dos" operating systems like Concurrent DOS and the multiuser version of DR DOS.
- xarope 3y agoI remember Coherent, it had a snail/nautilus logo, and came in a binder with a bunch of floppies. I bought it as I had a PC with a 286 (or maybe 386, but no separate FPU), 1MB of RAM (luxury, right?) and needed to get more familiar with unix, since we were using Sun x-terminals in college, and time on those was limited. Taught me to cpio/tar, gcc, vi make files etc. For the princely sum of $99, I think? My 9600 baud modem cost $500 at the time. - all pricing could be off by an order of magnitude, but I think I'm pretty close (!).
- neilv 3y agoYep, I recall it being $99, but I thought mine came with a perfect-bind paperback book, probably with a nautilus shell on the cover. I bought it, but there was some showstopper for my needs, maybe that it only supported 64KB processes(?), so I returned it. Today, our pocketbooks are spoiled by open source, few-dollar phone apps, and you're-the-product SaaSes. $99 (in decades-ago dollars) was often a bargain price for a lot of nontrivial PC software. That was also the price of Borland Sprint (cheaper than Wordperfect), and Borland Turbo Assembler&Debugger 1.0 bundle (Microsoft's assembler costs hundreds), both of which I bought while grossing $3.65/hr. As a teen, I briefly sold a simple program-launching menu program for MS-DOS for $24.95 (and about broke even, after packaging costs).
- nigel_bree 3y agoYes, prior to 4.x processes were strictly limited to 64kb code and 64kb data - essentially the equivalent to what MS-DOS programmers would call the small memory model only. There are a bunch of reasons for this, all of which stem from the fact every part of Mark Williams C and the assembler/linker toolchain hewed so closely to the exact model set by V6 UNIX - including the same .o and .a formats, hence the same limitations all down the line. Since so much my previous work before joining work on Coherent was on embedded toolchains and DOS development, the fact that so little use anywhere was made of x86 segmentation was surprising to me, but I knew all the V6 internals well enough to adapt back. Even in 4.0 where the COFF and the iBCS2 syscalls all worked, actually most of the userland still stayed as 16-bit small model since the aim was to keep most of the installation process the same, which was that essentially the first install floppy was a reasonably full live system. Obviously things grew a ton and during the evolution of 4.0 we slowly had to move the bulk of the 32-bit userland components off to packages in later floppies.
- qiqitori 3y agoCommodore's UNIX machine also ran Coherent (https://en.wikipedia.org/wiki/Commodore_900 https://en.wikipedia.org/wiki/Commodore_900). That machine didn't make it to market, but its video chip found its way into the C128.
- corherentuser 3y agoI learned the UNIX shell and C programming in Coherent. Its high quality manual was legendary - nothing comes close to it today. It's amazing that this OS and documentation could have been done with such limited resources. So much value for $99. The Coherent book is still on my bookshelf and I crack it open from time to time and smile. Good memories.
- nigel_bree 3y agoThe classic "Nautilus" manual was really interesting on two sides; one was the quality of the writing, which was all down to Fred Butzen - he just had a real knack for clarity and working with him on documenting the work I did during the 4.0 process was really enjoyable. Basically the process was that developers would write up drafts of everything to give to him, and he'd then edit them for clarity before passing them back for an iteration to ensure that none of the accuracy was lost. He just had an excellent sense of when there was going to be a better explanation than the classic dry manpage style. The other notable thing about that manual was just the economics of getting a perfect-bound book of that sheer size printed and included in the USD99 price tag.
- icedchai 3y agoThe documentation was incredible! I ran Coherent when I was in high school and that's how I learned "Unix" and C programming, before moving to Linux.