The wild world of non-C operating systems
- Reference: 1648553413
- News link: https://www.theregister.co.uk/2022/03/29/non_c_operating_systems/
- Source link:
Computer hardware is technology yet very few people can design their own processor, or build a graphics card. But software is a form of culture . Open source is created by volunteers, even if they end up getting paid jobs doing it. Even rejecting open source is a choice: paying for Windows or macOS instead reflects a preference.
This is especially visible when it comes to text editors, and even more so about programming languages. People get passionate about this stuff. So statements such as [1]"C isn't a programming language any more" can be upsetting. Most people live and work in the cultures that are Unix and Windows and if they are all you've ever known, or know best, then it's easy to think they are the whole world.
[2]
But that doesn't make it true.
The roots of C
C fans tend to regard BCPL as an unimportant transitional step, but it was used in two celebrated OSes. One was the TRIPOS operating system, later used as [3]the original basis of AmigaOS. The [4]core system software of the [5]original GUI workstation, the Xerox Alto , was also written in BCPL, although much of it was later rewritten in Mesa. The Alto OS survived into the late 1990s as [6]GlobalView , which Xerox sold as a high-end desktop publishing tool.
Algol and Burroughs
[7]In the 1960s , ALGOL was huge. It's the granddaddy of most modern imperative languages.
Burroughs Corporation designed a series of mainframes, the Burroughs Large Systems, around the pioneering idea of writing the OS and all applications in a high-level language, ALGOL. The first machine, the [8]B5000 , was launched in 1961. Burroughs merged with Sperry UNIVAC in 1986 to form [9]Unisys . The [10]Unisys Clearpath MCP OS is a direct descendant of the B5000's MCP or [11]Master Control Program . (Yes, the same name as the big [12]baddie in Tron .)
[13]
[14]
MCP was the first commercial OS to support virtual memory and shared libraries. Its purely stack-based design inspired [15]Chuck Moore to develop Forth , HP to design the [16]HP3000 mid-range computers , and [17]influenced Alan Kay in the development of Smalltalk at Xerox PARC.
The current version of ClearPath MCP is [18]20.0 , released in May 2021.
Wirth a go
Swiss boffin Niklaus Wirth worked at Xerox PARC for two one-year sabbaticals. Today he's best known for [19]inventing Pascal , which happened to catch on as an applications language – notably as [20]Borland's Delphi . An earlier implementation, the [21]USCD p-System , was a complete OS – one of the three IBM offered for the [22]original PC in 1981 .
Pascal was just one stage in a series of "Wirthian" languages. The successor to Pascal was Modula, but it was quickly superseded by Modula-2, based on Wirth's time working with Mesa on the Alto at Xerox PARC. Modula-2 was specifically designed for OSes as well as apps.
[23]
After his first sabbatical in Palo Alto in 1976-1977, once Wirth got back home to [24]ETH Zürich in 1977, he and his team designed and built the [25]Lilith workstation as a cheaper replacement for the $32,000 Alto. Its object-oriented OS, Medos-2, was entirely built in Modula-2.
Meanwhile, in the USSR, a team at the Soviet Academy of Sciences in Novosibirsk, inspired by Wirth's work but limited by [26]COCOM import restrictions , built their own OS called Excelsior in Modula-2, which ran on a series of workstations called [27]Kronos .
Wirth returned to Xerox PARC in 1984-1985, and after that trip, back at ETH he designed the [28]Ceres workstation, with an OS implemented in a new language, [29]Oberon , whose text-based tiling-window interface inspired the successor to Unix, [30]Plan 9 from Bell Labs .
[31]
(The influence went both ways. A team at Xerox PARC developed Pascal into the [32]Euclid language, and a variant was even used to develop a Unix-compatible OS called [33]Tunis , the Toronto University System.)
[34]Samba 4.16 release strips away more SMB 1
[35]C: Everyone's favourite programming language isn't a programming language
[36]New Linux kernel bolsters random number generation
[37]Linux Mint Debian Edition 5 is here
Oberon has been called the [38]"overlooked jewel" [PDF] of computer science. It has multiple [39]descendants today. Wirth came out of retirement in 2013 to help [40]Project Oberon , which runs a modernized version of the OS on [41]modern FPGA-based hardware . Another version, [42]Native Oberon , runs on x86-32 PCs and under [43]QEMU .
If you want to try it without installing, there's also a JavaScript [44]version that runs in your browser. Its UI is efficient but quite strange, because it was designed in the late 1980s and predates almost every other graphical desktop except the original Mac.
Later researchers at ETH built a language called [45]Active Oberon , and using that, a newer OS with a slightly more conventional zooming GUI called "Bluebottle". Originally the new Oberon OS was called AOS, but so are multiple [46]other projects, so now it's called [47]A2 .
Scions of C
Most of these systems are relatively obscure, though. C and its descendants and derivatives remain far more mainstream. Even if Linus Torvalds is famously not [48]fond of it, [49]"the world is built on C++." It's not usually thought of as suitable for implementing OS kernels in, but two of the most-loved ever nonetheless were.
The Mac OS X might-have-been [50]BeOS was entirely written in C++, and so is its modern FOSS re-implementation [51]Haiku . It took the Haiku project 17 years to get to its first beta version, but it's now on [52]Beta 3 . Unlike its ancestor, these days it has a lot of ported FOSS apps from Linux and even some [53]limited ability to run Windows programs .
The C++ OS that was by far the biggest commercial success was Symbian. [54]Psion built it from scratch in the late 1990s, and for a while it was the dominant smartphone OS. We did an epic three-part feature, [55]"Symbian, The Secret History" ( [56]part 2 and [57]part 3 ) a decade ago.
But [58]Nokia failed to capitalize on it, and Apple's iOS and Android killed it off. It eventually [59]went open source , although [60]not without the odd hitch.
Today, C++ is being used to build the [61]Genode OS Framework . The latest version, [62]release 22.02 , came out just last month.
In terms of popularity, depending on which survey you look at, Rust is eclipsing C++, and there are several projects to build OSes in Rust, notably including [63]the somewhat Minix-like Redox OS, the [64]more experimental Theseus , and the embedded [65]Tock .
Even [66]Microsoft has experimented with Singularity, partly implemented in C# and other .NET-based languages, as is the FOSS [67]COSMOS .
Functionally different
BCPL, C, C++, Rust, and the Pascal family all inherit from the design of ALGOL. All are imperative programming languages. There are other, different schools of language design. One of the [68]oldest and best-loved programming languages around is Lisp, designed by [69]John McCarthy in 1958 .
Symbolics, the company which owned the [70]first ever dotcom domain , built an entire OS in Lisp, called Genera. The last version, [71]OpenGenera , ran on an emulator on DEC Alpha workstations, and today you can run it on [72]Linux , but sadly the inheritors of the defunct company won't open-source it.
However, there was also a family of Lisp-based graphical operating systems that ran on Xerox's later Star workstations, written in a dialect called [73]Interlisp . This is now [74]FOSS and being actively modernized.
There are also several modern efforts to build OSes in Lisp, including [75]Mezzano , [76]Interim , and [77]ChrysaLisp , the latter by one of the lead developers of [78]Tao Systems' TAOS .
It would also be unfair not to include [79]Urbit . This is a completely from-scratch effort that has reinvented some very Lisp-like technology, although the project's [80]links to cryptocurrencies, and some of the politics of its [81]founder Curtis Yarvin, make the author wary.
This is not intended to be a comprehensive list. There are too many such efforts to count, and that's even with intentionally excluding early OSes that were partly or wholly written in assembly language. There were several Java-based OSes, including [82]Sun JavaOS and [83]smartphone OS SavaJe . There are still stranger things out there, such as [84]House , implemented in the [85]purely functional Haskell .
This is just an overview, but I hope it makes a point: that OSes do not begin and end with C. If you can name a language that can run on bare metal, someone somewhere has probably tried to implement an OS in it, and some of them have become a lot more successful than you might expect. ®
Get our [86]Tech Resources
[1] https://www.theregister.com/2022/03/23/c_not_a_language/
[2] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=2&c=2YkMtMmwqIG1OtZsyIUAr3wAAAMc&t=ct%3Dns%26unitnum%3D2%26raptor%3Dcondor%26pos%3Dtop%26test%3D0
[3] https://www.theregister.com/2021/12/06/heliosng/
[4] https://www.theregister.com/Print/2014/10/22/chm_releases_parc_alto_source_code/
[5] https://www.theregister.com/2012/11/01/a_history_of_computing_in_20_objects_part_one/?page=4
[6] https://rakanalysis.wordpress.com/2014/10/26/historical-operating-systems-xerox-globalview/
[7] https://www.theregister.com/2020/05/15/algol_60_at_60/
[8] https://www.cs.uaf.edu/2010/fall/cs441/proj1/b5000/
[9] https://www.theregister.com/Tag/Unisys/
[10] https://www.theregister.com/2016/04/28/unisys_releases_clearpath_for_vms_or_x86/
[11] https://www.theregister.com/2020/11/16/who_me/
[12] https://tron.fandom.com/wiki/Master_Control_Program
[13] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YkMtMmwqIG1OtZsyIUAr3wAAAMc&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[14] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YkMtMmwqIG1OtZsyIUAr3wAAAMc&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[15] https://www.theregister.com/2012/09/21/jupiter_cantab_jupiter_ace_is_30_years_old
[16] https://www.theregister.com/1998/08/18/hewlett_packard_starts_uk_connect/
[17] https://www.doc.ic.ac.uk/~susan/475/AlanKay.html
[18] https://public.support.unisys.com/common/showwebpage.aspx?id=10562&pla=PS&nav=PS
[19] https://www.theregister.com/2020/05/29/happy_50th_pascal/
[20] https://www.theregister.com/2020/02/14/25_years_delphi_programming/
[21] http://pascal.hansotten.com/ucsd-p-system/
[22] https://www.theregister.com/2021/08/12/ibm_pc_40_anniversary/
[23] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=4&c=44YkMtMmwqIG1OtZsyIUAr3wAAAMc&t=ct%3Dns%26unitnum%3D4%26raptor%3Dfalcon%26pos%3Dmid%26test%3D0
[24] https://ethz.ch/en.html
[25] https://safeswisscloud.com/en/blog/1977-lilith-computer/
[26] https://www.theregister.com/2000/04/13/epic_surveys_state_of_global/
[27] http://www.kronos.ru/literature/philippova
[28] http://www.cpu-ns32k.net/Ceres.html
[29] http://ignorethecode.net/blog/2009/04/22/oberon/
[30] https://www.theregister.com/2021/03/24/bell_labs_transfers_plan9pto_foundation/
[31] https://pubads.g.doubleclick.net/gampad/jump?co=1&iu=/6978/reg_software/front&sz=300x50%7C300x100%7C300x250%7C300x251%7C300x252%7C300x600%7C300x601&tile=3&c=33YkMtMmwqIG1OtZsyIUAr3wAAAMc&t=ct%3Dns%26unitnum%3D3%26raptor%3Deagle%26pos%3Dmid%26test%3D0
[32] https://www.microsoft.com/en-us/research/publication/report-programming-language-euclid/
[33] https://dl.acm.org/doi/10.1145/1041466.1041467
[34] https://www.theregister.com/2022/03/23/samba_416_toctou_smb/
[35] https://www.theregister.com/2022/03/23/c_not_a_language/
[36] https://www.theregister.com/2022/03/21/new_linux_kernel_has_improved/
[37] https://www.theregister.com/2022/03/19/linux_mint_debian_edition_5/
[38] https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.7173&rep=rep1&type=pdf
[39] https://web.archive.org/web/20080608153232/http://www.oberon.ethz.ch/language/genealogy
[40] http://www.projectoberon.com/
[41] https://www.theregister.com/2015/12/02/pi_versus_oberton/
[42] https://sourceforge.net/projects/nativeoberon/
[43] https://en.wikibooks.org/wiki/Oberon/ETH_Oberon/QEMUinstall
[44] https://schierlm.github.io/OberonEmulator/
[45] http://cas.inf.ethz.ch/news/2
[46] https://en.wikipedia.org/wiki/AOS#Technology
[47] https://github.com/btreut/a2
[48] http://harmful.cat-v.org/software/c++/linus
[49] https://www.theregister.com/2011/06/11/herb_sutter_next_c_plus_plus/
[50] https://www.theregister.com/2007/01/30/forgotten_tech_beos/
[51] https://www.haiku-os.org/
[52] https://www.haiku-os.org/get-haiku/r1beta3/
[53] https://www.theregister.com/2022/01/10/haiku_linux_wine/
[54] https://www.theregister.com/2007/06/26/psion_special/
[55] https://www.theregister.com/2010/11/23/symbian_history_part_one_dark_star/
[56] https://www.theregister.com/2010/11/29/symbian_history_part_two_ui_wars/
[57] https://www.theregister.com/2011/01/12/symbian_history_part_three_charles_davies_interview/
[58] https://www.theregister.com/2011/11/21/nokia_hildon_the_great_lost_platform/
[59] https://www.theregister.com/2009/07/10/symbian_security/
[60] https://www.theregister.com/2011/04/06/nokia_confirms_symbian_not_open/
[61] https://genode.org/
[62] https://genode.org/news/genode-os-framework-release-22.02
[63] https://genode.org/news/genode-os-framework-release-22.02
[64] https://www.theregister.com/2021/01/14/rust_os_theseus/
[65] https://www.tockos.org/
[66] https://www.theregister.com/2008/07/30/microsoft_midori_technical_details/
[67] https://www.gocosmos.org/
[68] https://www.theregister.com/2007/02/03/2007_international_lisp_conference/
[69] https://www.theregister.com/2011/10/24/father_lisp_ai_john_mccarthy_dies/
[70] https://www.theregister.com/2015/03/14/dot_com_turns_30/
[71] https://archive.org/details/OpenGenera
[72] https://archive.org/details/OpenGenera
[73] https://interlisp.org/
[74] https://github.com/Interlisp/medley
[75] https://mezzanos.herokuapp.com/
[76] http://interim-os.com/
[77] https://github.com/vygr/ChrysaLisp
[78] https://www.theregister.com/2013/08/21/unsung_heroes_dr_chris_shelton/?page=5
[79] https://urbit.org/
[80] https://www.coindesk.com/markets/2017/09/21/urbit-is-moving-its-virtual-server-galaxy-over-to-ethereum/
[81] https://slate.com/technology/2015/06/curtis-yarvin-booted-from-strange-loop-its-a-big-big-problem.html
[82] https://www.theregister.com/1999/08/24/sun_ibm_pull_plugs/
[83] https://www.theregister.com/2006/10/25/bye_bye_savaje/
[84] https://programatica.cs.pdx.edu//House/
[85] https://www.theregister.com/2007/05/03/programming_haskell/
[86] https://whitepapers.theregister.com/
Apollo OS
The old Apollo workstations & servers during the 1980'2 (before Apollo has absorbed by HP) ran an OS that was written in a a version of Pascal. In incredible system; at one time we ran up a lab of about 20 diskless nodes from a single disked workstation with no appreciable performance headaches.
Re: Apollo OS
I started work at TI in 1985 and was absolutely wowed by Aegis running on a few B&W DN320s and colour DN660s. With optical mice on checkered aluminium mouse pads, as I recall. Quite a step up from my BBC model B.
8-inch floppies ftw! ;)
Multics & PL/I
[1]Multics was written in (a version of) [2]PL/I with the added challenge of having to develop the compiler in parallel with the operating system.
IBM has written chunks of its various operating system using [3]PL/S and its successors.
[4]VAXELN , a bit of a curiosity in the Digital Equipment Corporation range of operating systems, was written in Pascal. Chunks of VMS were written in BLISS-32 (though a lot of it was Macro-32).
[1] https://en.wikipedia.org/wiki/Multics
[2] https://multicians.org/pl1.html
[3] https://en.wikipedia.org/wiki/IBM_PL/S
[4] https://en.wikipedia.org/wiki/VAXELN
Re: Multics & PL/I
I actually wrote extensions to VMS in Macro-32 before switching to Bliss-32 after a training course.
This was of course many, many years ago......
Re: extensions to VMS
Yep. I wrote a new OS Directive in Macro-32 after attending a Kernel & Device driver course. IT would give the user full system privs if you executed a program that called it.
Yes, I know that it was a huge great security hole but I only ever installed it on a machine that was used for testing. I just wanted to prove that it could be done.
Re: VMS
When DEC ported VMS from the 32-bit CISC VAX architecture by 64-bit RISC Alpha, they wrote a compiler to translate the MACRO assembly language into native Alpha machine instructions, treating it as a high level language. (Some of it even had block structure, using the powerful macros that the assembler did indeed have.)
What about Assembly Language?
Some notable OS's have been written in Assembler but tend to get forgotten.
My personal favourite is RSX-11-M/M-Plus/S
I had great fun modifying the boot code for 11S so that some extra custom features were enabled. Those were the days when IT was fun and there was always something new happening.
Re: What about Assembly Language?
Fairly sure MSDOS precedes 8086 C and was written in assembler, as was CP/M...
Re: What about Assembly Language?
Yes, MS-DOS was a bought in reverse engineering of CP/M 86, which was assembler. Much of CP/M 86 and CP/M 86 or DOS Apps were auto translated from 8080 code to 8086 by an Intel tool. The 8088 / 8086 was really a superset of 8080, hence the awful 64K segments and no 16 bit flat addressing like all the true 16 bit cpus in early 1980s.
Early C was barely more than a Macro assembler and the most common C bugs where/are
Unexpected expansion of the macros
Array bound violation because no compile or runtime checking. purely null terminations. Both Modula-2 and VB6 had a far better way of doing strings. C++ also had a better way of doing strings from about 1988, but mostly ignored.
Libraries buggy or misunderstood.
No strong typing, issues with parameters, inappropriate casts (Solved and ignored in C++, solved better in Modula-2).
Inappropriate use of pointers (dereferencing pointer to unallocated RAM, arithmetic etc).
Big failing of C++ was AT&T's insistence on backward compatibility. Strustrupp didn't want it and it's been crippling since.
Re: What about Assembly Language?
From the article:
This is not intended to be a comprehensive list. There are too many such efforts to count, and that's even with intentionally excluding early OSes that were partly or wholly written in assembly language.
I think they know about them (and so do we now, thank you!), but them there presses were sitting impatient to go.
Modula 2
Wow, some memory from my Amiga years. I'm sure I spotted a modula 2 compiler in my tools library !
What about Prolog ? It was weird and fun, although I don't remember it to be useable outside of solving puzzles ...
Re: Modula 2
An OS written on Prolog would just be, well, "diseased" is the kindest word I can think of!
Re: Modula 2
An OS written on Prolog would just be, well, "diseased" is the kindest word I can think of!
Take a look at the [1]Japanese Fifth Generation project . The idea was that the resulting machines would run Prolog natively.
I was at the conference in Bristol in the early 80s when they did their big presentation over here, and got to talk with the people who'd actually be doing the research(*). I was fairly cynical about the idea so asked them if they thought it would work. Their reply was on the lines of "Who cares? We've got 5 years of big funding and will get another 5 years unless we totally screw up in the first 5. It's a government initiative so will never be deemed a failure."
(*) As opposed to the nominal heads who were basically political academic players and government placemen, and too busy glad-handing their UK and European opposite numbers to speak to low-lifes like me.
[1] https://en.wikipedia.org/wiki/Fifth_Generation_Computer_Systems
Jupiter ACE
It ran Forth Programs on a Z80, but I don't know what its minimalist OS was written in.
I wrote an almost OS in Modula-2 for x86 to run a Game engine. It only used DOS to load and had simple co-operative multitasking using coroutines. I wrote drivers in M2 for keyboard, CGA, Hercules, EGA, VGA, soundblaster PCM & MIDI and audio on PC speaker. It could do MIDI music, sound effects on PC speaker, SB audio, scroll background, move foreground tiles, animate sprites, multi-key input and read HDD all at the same time. Performance as good or better than assembler coded games. Though only using 8086 compilation it needed at least IBM AT compatible hardware rather than XT for various HW timers, DMA etc.
Sadly getting artwork done was too much work.
Re: Jupiter ACE
It ran Forth Programs on a Z80, but I don't know what its minimalist OS was written in.
Forth is a minimal OS in its own right usually. That's how it started out.
Re: Jupiter ACE
I don't know what its minimalist OS was written in.
[1]In Z80 assember , like its Sinclair cousins.
I say cousins because it was designed by Richard Altwasser (hardware) and Steven Vickers (software) after they finished working for Sinclair.
[1] http://www.jupiter-ace.co.uk/romlisting.html
Re: Jupiter ACE
The Dragon32 had a Forth OS IIRC . Small, tight fast and with a complete lack of software.
Fortran
Not joking, the early versions of PR1MOS, the OS for Prime machines, were written in Fortran 4 (with a few system-ish hacks like a predefined common block that was all of memory, and assignments missing left or right sides to set or get the accumulator). Later versions were in PL/P, a systems programming dialect of PL/I.
Re: Fortran
My first ever proper job - aged 18 - was on Prime's coding in PL/P. Happy memories.
Re: Fortran
There's a reference [1]on Wikipedia to an operating system written in COBOL. While I can find other sources for the existence of the product and its focus on running COBOL applications, I'd be interested to see some confirmation of the extent that COBOL featured in the OS, particularly given the variety of peripheral hardware it apparently supported: I don't fancy writing a device driver in COBOL...
[1] https://en.wikipedia.org/wiki/BLIS/COBOL
Re: Fortran
Well, I don't fancy writing anything in COBOL.
Re: PR1ME
ah ..
SMSG$, which was a wrapper to MSG$
there was also the proto TCP stack (using X25 ?) that daemons used.
Declarative
One of the many varieties of OS / language from the 60s, 70s, had to win, it just happened it was C and UNIX.
What really cemented it though was the US DoD, in the 1980s, effectively plumping for the UNIX and C with POSIX. That cast an official US governmental seal of approval on C and *nix style operating systems, and that was that. At the time it was rapidly becoming the de facto choice anyway, but after that there was no money to be made in developing something radically new and trying to sell it to what was at the time one of the biggest customers in the market.
Re: really cemented it though was the US DoD, in the 1980s
Actually USA DoD plumped for ADA in 1980s. C was a decade earlier.
GNU, BSD etc and later Linux born because the developers of UNIX thought AT&T unfairly had copyright. A lot of it wasn't paid for or developed by AT&T.
POSIX is a separate thing from UNIX.
Re: Declarative
That's just not true.
Unix and C won in the 1980s because (a) they were far superior to the alternatives; (b) vendors could port Unix and C to their hardware far more quickly and cheaply than developing and maintaining their own OS and compilers; (c) the market was moving to desktop workstations and these mostly ran some variant of Unix; (d) customers and developers really liked the concept of open systems (=> no vendor lockin through custom APIs and supposed ease of migration between vendor platforms); (e) Unix IPR was open to any vendor on equal terms because it was owned by AT&T which wasn't allowed to be in the computer business and therefore couldn't use Unix to eliminate competitors.
The DoD did insist on POSIX compliance - sort of. But they didn't enforce this. Not that (lack of) POSIX compliance hindered sales to the DoD from Microsoft, DEC, IBM, DG, HP, Burroughs etc. They still bought shitloads of non-Unix mainframes, PCs and minis from those vendors.
Back in the 80s, it was considered witchcraft that the same source code could compile and run on different hardware and software from the likes of DEC, Sun, HP, IBM and the rest. Today we take that for granted. Unix and C made that possible.
Necrophilia for fun and profit
This article is the equivalent of the era of bubonic plague when a guy with a cart went around saying "bring out your dead, bring out your dead".
Re: Necrophilia for fun and profit
Heh, I do agree but...
"bring out your dead, bring out your dead"
I can't quite yet. We still need our dead to run the entire industry ;)
Not to mention, dead stuff is always more stable. I.e you wouldn't exactly build a house out of *living* people would you?
Re: Necrophilia for fun and profit
This article is the equivalent of the era of bubonic plague(*)
In some cases it's more
Your father's OS. An elegant system for a more … civilised age(**).
Multics, Burroughs' MCP and Genera all had features that today's mainstream OSes lack or do badly.
(*) First known bubonic plague outbreak was ~3000 BCE, it's still around today. Long era.
(**) [1]ObXKCD .
[1] https://xkcd.com/297/
Smalltalk-80
Xerox Parc machines could and did run Smalltalk-80 all the way down to the bare metal.
For a brief moment HP (nearly) had a pure Smalltalk-80 box running on a NatSemi 32032. I had a prototype to play with under NDA and for the time it was a rather fine, if specialist, workstation. However, it developed a hardware fault so they took it back on a Friday and by Monday HP had always been at war with Eastasia had never had a Smalltalk machine and never even considered developing such a thing. If it hadn't been for the h/w fault I might have managed to keep a non-existent HP ST-80 box as a home computer.
Another Pascal system
MacOS < 7.0 was Pascal. I don't think they ever replaced it all with C before OS X.
Ghosts in the machine
The scariest ever and now dead OS from the 80s was the thing that ran on Symbolics Lisp workstations. IIRC it was written in Lisp and let the end user change the CPU microcode (also written in Lisp?) on the fly whenever they felt like it.
Re: Ghosts in the machine
I think the core Lisps were generally built around SECD machines which I guess you easily implement in machine code (CAR and CDR were taken from the machine code of the IBM704), Or equally simply create a hardware implementation of it. Symbolic Lisp Machines made machines with that in mind but never quite got round to doing it fully in silicon.
You can create OS and applications in any language really.
But some lack the dirty aspects of memory management (and even lower like CPU protection switching) so they need bits in assembler or something C-like. Equally such low-level code has enormous potential to screw the system.
Horses for courses really, and most decisions come down to what will do this job well enough to get by.
Fortran-based Operating Systems
Lawrence Livermore needed an operating system with more features than what was offered by the vendors of supercomputers at the time - classified level support, time-sharing, etc. So they rolled their own. LTSS for the CDC and Cray machines, CTSS for Cray hardware, and later a new version of LTSS - NLTSS for Crays. All of these systems, utilities, support libraries were written in the local dialect of Fortran-77, later Fortran-90.
All of the systems used concepts developed for Multics, but were heavily modified to suit the needs of the laboratory computing community. One notable feature was the mapping of program memory to disk ( aka core dump ) was also used for swapping out when the time slice expired AND was restartable.
Eventually these systems were replaced by Unix derivatives - notably Linux.
TempleOS
I suppose [1]TempleOS belongs in the C-like category. Written in HolyC.
[1] https://en.wikipedia.org/wiki/TempleOS
In terms of popularity [ ... ] Rust is eclipsing C++
Yeah, right. My ass.
Here's the thing: people who write C or C++ software don't feel the need to spam the world with announcements, pronouncements and self-promoting spam. They just do shit, quietly. It happens to be shit of consequence.
But, there's a small community of Rust fanbois who are just very loud. And that's because that part of the world where consequential stuff happens doesn't pay much attention to them.
So, Rust wants to stick its tail into the Linux kernel. Wants to hang out with the bro's. Respect Mah Authoritaaaaay!!! [0]
How did that go? Whoops! Thar she blows. Something about operating systems, ABI's and calling conventions.
Rust's reaction? Fuck C!!
And it's not even because Rust has something concrete to offer to the Linux kernel. The prevailing advantage of Rust over C that's being pushed around by fanbois is: it's safer to write in Rust than in C . Translation: Rust makes an inept C pointer boob less of an inept boob. And that's somehow reassuring?
It's just an ego trip. Rust wants to be in the Linux kernel because it thinks the Linux kernel is cool , so that's where Rust wants to hang out. With the cool kids.
Know thy limits, Rust. You're just a pile of marketing talk being pushed by Microsoft and Google, in their quest for the complete monkeyfication of the software engineering profession.
-----
[0]: Cartman. See: South Park
Re: In terms of popularity [ ... ] Rust is eclipsing C++
Have a beer sir. Sorry about the icon but it was the nearest I could get to oxidisation.
When I was reading the article I just knew there'd be a 'rust angle' in it somewhere. It wasn't _really_ about C was it.
I think we're going to need another icon before too long, rust gets way too much air time here, it's in danger of becoming the new systemd.
BCPL over C
Ouch " C fans tend to regard BCPL as an unimportant transitional step "! BCPL has more expressive flow control than C, it's compiler is designed for easy portability to new architectures, and it's closer to the machine for systems programming. Back in the day I've worked on compiler and run-time library ports across multiple target platforms that allowed a single application code base to work seemlessly across them all. Ah, nostalgia ain't what it used to be...
RISC OS
There's some bits written in C. Some.
But the system API and the huge majority of, well, everything is hand crafted ARM code.
[1]Start here (main OS startup, after HAL init).
[1] https://gitlab.riscosopen.org/RiscOS/Sources/Kernel/-/blob/master/s/NewReset