Like what you’re reading? Make sure to subscribe to our weekly newsletter! Listen to this episode on Spotify:
Linux, once a project of a Finnish student Linus Torvalds, turned 30 last week. This man’s hobby changed the IT world, and allowed for much innovation and was its precursor. It was Torvalds’s creation that was the first major open-source project with the Internet in its center - something we now take for granted. Some may be surprised, however, that the operating system was not supposed to be serious or “professional”, as he admits in his original mail from 1991.
From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system
Date: 25 Aug 91 20:57:08 GMT
Organization: University of Helsinki
Hello everybody out there using minix -
I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).
I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)
PS. Yes - it's free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.
The system would not become “usable” until version 0.03, however, as Linuxes father admits himself.
It [Linux 0.01] did work, and some people even tried it out. There were several bad bugs (and there was no floppy-driver, no VM, no nothing), and 0.02 wasn't really very useable.
0.03 got released shortly thereafter (max 2-3 weeks was the time between releases even back then), and 0.03 was pretty useable. The next version was numbered 0.10, as things actually started to work pretty well.
Luckily, for all of us, this hobby project took off, and to show you how much it did, here are some things that run on the system:
In short, the project dominates the world of IT in almost every aspect, and you can see it everywhere. There is just one area it did not manage to set up a significant presence in. It’s the market of personal computers (PCs). There might be few reasons for this state of things. Firstly, the issue with packaging software. It’s something that troubles devs and users alike. Even Linus Torvalds himself admits that it’s the one thing that no distro got right (skip to around the 6th minute). Secondly, it’s the fact that when you enter a computer store, computers have a preinstalled system in 99.9% of times. This, and the fact that people don’t want to or don’t know how to install another system, results in the duopoly of Microsoft and Apple.
Over the years, there were many important milestones:
What is the future of Linux? All signs show that it might be the addition of Rust to the whole codebase, as it offers much more safety. Importantly, it is the addition, and augmentation, and not a switch. The area that will likely see a lot of Rust soon are drivers. Linus Torvalds said the following:
Rust's primary first target seems to be drivers, simply because that's where you find just a lot of different possible targets, and you have these individual parts of the kernel that are fairly small and independent. That may not be a very interesting target to some people, but it's the obvious one.
After the success of OpenAI’s GPT-3, some may be wondering - what about languages other than English?
Understandably, the first language to be targeted is English - lingua franca of the world. We have to keep in mind, however, that other languages exist as well, and this is something that Aleph Alpha, a German AI company, picked up on. There are other companies piloting the efforts of bringing advanced language models in different languages. There is Huawei’s PanGu-α (Chinese), and Naver’s HyperCLOVA (Korean).
One has to note that English is a relatively easy language compared to the others from the Indo-European family of languages. That’s not even mentioning languages from other families.
There are changes that will make the language more comfortable for users.
First change is the better analysis of “aliased conditions and discriminants”. In this release, the following code does not cause problems anymore
Previously, what would happen is that line 4 would cause issues, as ‘arg’ would still be treated as a variable of type ‘unknown.’ This simple example demonstrates that this update fixes an important issue that the type-checker had. Even though the issue would not come up in every codebase, it was serious enough.
Another novelty is that the ‘catch variables’ will now be treated as values of type ‘unknown’ instead of ‘any’. Let’s look at a simple example:
There are also notable performance improvements - incremental builds are faster with the “strict flag”, and source maps are generated faster for big outputs - around 8% to be precise. “Force build” got faster as well, due to the fact that checks on which files have to be rebuilt are skipped - everything will be rebuilt from scratch anyway.