Linux is only a kernel, and if users want to use it, then they need a complete distribution. That being said, how were the first versions of Linux used when there were no Linux distributions?

In the early beginnings of Linux, Linus released the Linux kernel source in an "unusable" state, reportedly for signalling to others some work was being done into developing a new Unix-like kernel. By that time, as @RalfFriedi correctly points out, the Linux kernel was being cross-compiled in Minix.

As for "usable" code, firstly Linus slapped a couple of utilities together with the Linux kernel in the very beginnings for others to test it out, namely bash and gcc:

From LINUX's History by Linus Torvalds
Link in Google groups to original Usenet post.

From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds)  
Newsgroups: comp.os.minix
Subject: What would you like to see most in minix?
Summary: small poll for my new operating system  
Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI>
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 :-)

So Linus was "distributing" the kernel plus some core utility programs in a diskette image format for some more advanced users to try it out and possibly contribute.

Afterwards, there were H J Lu's Boot-root floppy disk images. Which, if it could be called a "distribution", would gain the fame of being the first one capable of being installed on disk, at least by power users.

These were two 5¼" diskette images containing the Linux kernel and the minimum tools required to get started. So minimal were these tools that to be able to boot from a hard drive required editing its master boot record with a hex editor.

bootroot

Eventually the number of utilities available started outgrowing by a long way the diskette boot/root diskette setup.

MCC Interim Linux was then the first Linux distribution ever released able to be used by (slightly) less technical inclined people, introducing automated installation and new utils such as fdisk.

MCC Interim Linux was a Linux distribution first released in February 1992 by Owen Le Blanc of the Manchester Computing Centre (MCC), part of the University of Manchester.

The first release of MCC Interim Linux was based on Linux 0.12 and made use of Theodore Ts'o's ramdisk code to copy a small root image to memory, freeing the floppy drive for additional utilities diskettes.[2]

He also stated his distributions were "unofficial experiments", describing the goals of his releases as being:

  • To provide a simple installation procedure.
  • To provide a more complete installation procedure.
  • To provide a backup/recovery service.
  • To back up his (then) current system.
  • To compile, link, and test every binary file under the current versions of the kernel, gcc, and libraries.
  • To provide a stable base system, which can be installed in a short time, and to which other software can be added with relatively little effort.

After the MCC percursor, SLS was the first distribution offering X Window System (May 1992). Notably, the competitor to SLS, the mythical Yggdrasil, went out later on (December 1992).

yggdrasil

Then there came other major distributors more as we know them today, notably Slackware (July 1993 - based on SLS) and Debian (from December 1993 until the first "official" v1.1 release - December 1995).

Image credits:
* Boot/Root diskettes image from: https://www.maketecheasier.com/
* yggdrasil diskette image from: https://yggdrasilblog.wordpress.com/

PS added links for boot-root, MCC 1.0, SLS 1.05, Yggdrasil and Debian 1.1 historical archives.

  • 3
    It would be good to link to those email messages from the most basic original source, assuming they're archived online somewhere. – Wildcard Aug 7 at 19:42
  • 2
    @Wildcard Found that email message on a site claiming to be a Linus Torvald's page. – Rui F Ribeiro Aug 7 at 19:54
  • 2
    @slm Actually from earlier times, I moved home too many times, and storage at my parents' is limited. I used to have 386BSD/FreeBSD early diskettes, and a PCworld CD from 93-95 (maybe 95) with the whole diskette set of Linux (cant remember distro). I also used to have the complete set of SCO V installation disks with a valid key that I ran in my 486. I had very advanced hw specs for the time, I worked for a computer major supplier. – Rui F Ribeiro Aug 8 at 9:12
  • 20
    "(just a hobby, won't be big and professional like gnu)" Hah. – F. George Aug 10 at 10:34
  • 7
    just a hobby, won't be big and professional like gnu oh boy, were you wrong – Alvaro Aug 10 at 19:04

In my case (c.1994) Linux came built as images suitable for 3.5" floppies (1.44MB), probably the follow-on to the 5 1/4" images mentioned above, and each has a specific set of drivers compiled in (network, VGA, etc.). So you had to know what you needed and sort of hope that you had suitable hardware.

After you booted, and could either connect to LAN or dialup via modem, then you went and found the software you needed (FTP, gopher, etc. -- this was right at the start of the "web" and search engines didn't really exist yet, so you had to know where to go or who to ask) and built it yourself.

I was ecstatic when I was able to boot my 486DX and dial into my university network (56k!) and mount an AFS share on machine at home...those were the days. ;)

  • 2
    Assuming you did all this in 1994, it was probably more like 28.8k... good times! – GuitarPicker Aug 8 at 12:02
  • In 1994 you didn't have to juggle with floppies. I started with Linux this same year but Slackware already had full distributions on CD. – Gábor Aug 9 at 17:30
  • You had to buy a CD from a magazine. At the time CD burners were expensive. As for RH, I do remember downloading all the files via FTP over a weekend in a fantastic shared 256Kbps connection, building a CD image, and then burning the CD at work, maybe around 96. – Rui F Ribeiro Aug 10 at 8:49
  • @GuitarPicker, that might have been optimistic. Many of us were on 1200,2400 still and in 1992 Linux generally came down an Academic Institution's pipe. Like Linus, our internet access was by dialup to a University. We had Usenet and Gopher but no graphical (Mosaic) WWW. In 1992 not everyone had a '386 either. I had an Olivetti M24 (AT&T) 8086 box with a Monochrome screen that ran Windows 1 (not well). Minix was a hobbyist or academic pursuit, and not free. Linux was regarded as a bandwidth hog, but it did get regular capacity hikes going. Linux was a big thing on Campus for programmers. – mckenzm yesterday

The short version

At the time that Linus started his kernel, the Gnu project had a working Operating system, except for a working kernel. So when people looked around, they found all of the tools that they needed: gcc (and friend: binutils), bash (and friends gnu-utils), emacs, …

They would then build their own system, from the parts.

It is where this joke comes from “If MS-Windows was an aeroplane, it would climb to 10 thousand feet, and then explode killing everyone in side, but at least you don't have to build your own aircraft before you depart.”

  • 7
    And this is why most distributions are called GNU/Linux distributions, if you follow the GNU and FSF. – Nemo Aug 8 at 17:29
  • No. GNU didn't have a good libc library. Linux on old days used different libc libraries. Only relatively late we had a good glibc library. At beginning the minix tools were used (partly produced by GNU). – Giacomo Catenazzi yesterday
  • @GiacomoCatenazzi true about libc. But it did have most of the user land tools. I remember in 1992 compiling GNU tools to run on Sun Solaris. (I did not start using Linux until it was mid transition to glibc.) Those tools had been around for a while (before Linux). – ctrl-alt-delor 6 hours ago
  • Yeah. I also started with Solaris, preferring GNU tools than the Sun ones. From there I wanted more so I went to Linux (and my first distribution didn't have any X systems. Red Hat clients could use a commercial X. Only later we had XFree86. The transition to true free (and mostly GNU) system took many years (kernel was just one step, but the most "democratic" step [computer + basic unix were finally for everyone (or better for students)). – Giacomo Catenazzi 5 hours ago

In his book "Just For Fun" Linus Torvalds mentioned that the Linux kernel was initially a simple terminal emulator for connecting to remote Unix machine through a modem:

So ultimately I was able to change the two threads, the AAAAAAAA and BBBBBBB, so that one read from the modem and wrote to the screen, and the other read from the keyboard and wrote to the modem. I had my own terminal emulation program.

When I wanted to read news, I would put in my floppy and reboot the machine, and I would read news from the university computer using my program. If I wanted to make changes to improve the terminal emulation package, I would boot into Minix and use it for programming...

And because I wanted to save files to my Minix file system — and because the Minix file system was well-documented anyway — I made my file system compatible with the Minix file system...

By the time I did this it was clear the project was on its way to becoming an operating system. So I shifted my thinking of it as a terminal emulator to thinking of it as an operating system.

Edited: Removed embarrassing lack of understand of how kernels work and left the important part.

The GNU userland existed before the Linux kernel did.

https://en.wikipedia.org/wiki/GNU

https://en.wikipedia.org/wiki/Linux_kernel

Peter MacDonald is largely recognized as having created the first 'usable' GNU/Linux distribution.

https://en.wikipedia.org/wiki/Peter_MacDonald_(computer_programmer)

https://en.wikipedia.org/wiki/Softlanding_Linux_System

From memory of some discussions I had with him: Peter was working as a Unix systems administrator for the government and going to the University of Victoria for a Masters Degree. Peter wanted a way to work from home, but the Unix desktop license costs were prohibitive. He was already familiar with the GNU userland tools so when he saw Linus Torvalds' message on the University network he took full advantage and wired GNU tools to the new kernel. So really, the initial problem was the reverse of your question: The userland already existed and all that was needed was a kernel.

Some other historical tidbits:

  • Peter did not distribute SLS Linux and did not charge a fee for the software. SLS was distributed by his wife Colleen and the fee was for the expensive and time consuming process of burning CDs to mail out.
  • Peter made a number of huge contributions to the kernel that have never been acknowledged including dynamic module loading and improved memory management.
  • The software was 'buggy' because he was working, going to school, raising two children and trying to keep Linux users happy. We all know how easy it is to keep Linux users happy...
  • Peter has no recollection of the 'argument'/'disagreement' over installer scripts that others have claimed caused a rift that started Slackware and Debian.
  • 2
    If you can load a kernel into memory and execute the image, it will panic because it can't execute /sbin/init. init is already a userland tool. Any program in C to use the kernel API is a userland program. – RalfFriedl Aug 9 at 21:10
  • D'oh! Good point. I was trying to say that the tools users usually interact with are not required for the kernel to run. I'll re-think and update... – Dinsdale Aug 10 at 22:59
  • While it is pretty well documented Peter was neither the first or second distributing the kernel + user land utils, we as the Linux community own in a lot into putting an effort into shapping the Linux distributions into something similar as we know today. – Rui F Ribeiro yesterday

Linux was first started as an enhanced replacement for Minix and to understand protected mode programming on a i386. Minix came with source, and at the time there were the GNU userland utilities and the BSD userland utilities. Both were available with source. Linux tried to be POSIX compatible, so porting was not that difficult. One of the first steps was to run bash on Linux. You can consider the early days of Linux as cross compilation, the kernel had to be compiled on another system.

  • 2
    The kernel was being cross-compiled in Minix. – Rui F Ribeiro Aug 7 at 17:39
  • 17
    To say that Linux was "started as an extension to Minix" is misleading. Yes, it's true that Linus was using Minix at that time, but Linux does not share a single line of code with Minix, and also follows a different design philosophy (microkernel vs. monolithic). Minix was also not officially available for the 386 at that time, whereas the Linux kernel was written for the 386 from the start. Linux's first filesystem was the Minix filesystem, because of compatibility, but this was also a complete reimplementation. – Johan Myréen Aug 8 at 6:56
  • 10
    Linus, and the author of Minix, both agree that it is not Minix or based on it. – ctrl-alt-delor Aug 8 at 10:53
  • @JohanMyréen Of course any short text is not the whole truth. Even Wikipedia contains only a short introduction. And I know that Linux was started because of the shortcomings of Minix. If there had been a Minix for i386, there might be no Linux today. On the other hand, Linux was inspired by Minix, and the first file system supported was Minix. But I agree extension is not the correct work, I changed the sentence. – RalfFriedl Aug 9 at 5:49

First let’s clarify something what is really important. If we talk about any OS (Linux and DOS) they where primary created to allow file manipulation on storage media (hard disk and floppy).

So if you asked: "Linux is only a kernel, and if users want to use it they need a complete distribution.", the answer would be that, with kernel you can do file manipulation and disk / computer management and if you want additional functions you need some utilities.

Today we have these modern OSes that are more interfaces to hardware and hardware features, and we forget the primary function of operating systems.

  • 8
    You are talking about DOS, Disk Operating System. DOS, and its predecessor CPM, were mainly for files on storage media. UNIX, its predecessors, and Linux, on the other hand, are real operating systems, and have a broader scope, and interface to hardware is of course a primary function of Operating Systems. – RalfFriedl Aug 9 at 5:32
  • Usually I try to throw an up-arrow to the wayward folks in the down-arrow oblivion, but your answer is truly terrible and deserving of this fate. – Darth Egregious yesterday

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.