118

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?

10
  • 70
    The premise of your question is flawed. You don't need a distribution to use Linux. You need the Linux kernel, and some userland code. That's it. A "distribution" is simply what we call it when someone else puts them together for you, instead of you doing it yourself. Commented Aug 7, 2018 at 23:29
  • 9
    In reality, in the beggining was more a chicken-and-egg problem, for the lack of decent specific user land tools. Once the guy behind MCC Interim Linux cracked that egg, and wrote several tools himself, at least fdisk, the door was open for others to put forward their own Linux setup more easily. Commented Aug 8, 2018 at 0:10
  • 9
  • 6
    The Origins of Linux—Linus Torvalds
    – slm
    Commented Aug 8, 2018 at 4:10
  • 6
    Aalto Talk with Linus Torvalds [Full-length]
    – slm
    Commented Aug 8, 2018 at 4:15

6 Answers 6

168

In the early stages of Linux, Linus Torvalds released the Linux kernel source in an alpha state to signal to others that work towards a new Unix-like kernel was in development. By that time, as @RalfFriedi stated, the Linux kernel was cross-compiled in Minix.

As for usable software, Linus Torvalds also ported utilities to distribute along with the Linux kernel in order for others to test it. These programs were mainly bash and gcc, as described by LINUX's History by Linus Torvalds. Per the the Usenet post:

From: [email protected] (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: <[email protected]>
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 :-)

Linus distributed the kernel and core utility programs in a diskette format for users to try it and possibly to contribute to it.

Afterwards, there were H.J. Lu's Boot-root floppy diskettes. If this could be called a distribution, then it would gain the fame of being the first distribution capable of being installed on hard disk.

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 grew larger than the maximum size of a diskette.

MCC Interim Linux was the first Linux distribution to be used by people with slightly less technical skills by introducing an automated installation and new utilities 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 precursor, SLS was the first distribution offering the X Window System in May of 1992. Notably, the competitor to SLS, the mythical Yggdrasil, debuted in December of 1992.

yggdrasil

Other major distributors followed as we know them today, notably Slackware in July of 1993 (based on SLS) and Debian in December of 1993 until the first official version 1.1 release in December of 1995.

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

12
  • 4
    It would be good to link to those email messages from the most basic original source, assuming they're archived online somewhere.
    – Wildcard
    Commented Aug 7, 2018 at 19:42
  • 2
    @Wildcard Found that email message on a site claiming to be a Linus Torvald's page. Commented Aug 7, 2018 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. Commented Aug 8, 2018 at 9:12
  • 33
    "(just a hobby, won't be big and professional like gnu)" Hah.
    – F. George
    Commented Aug 10, 2018 at 10:34
  • 11
    just a hobby, won't be big and professional like gnu oh boy, were you wrong
    – Alvaro
    Commented Aug 10, 2018 at 19:04
19

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. ;)

4
  • 2
    Assuming you did all this in 1994, it was probably more like 28.8k... good times! Commented Aug 8, 2018 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
    Commented Aug 9, 2018 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. Commented Aug 10, 2018 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
    Commented Aug 13, 2018 at 15:40
14

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.”

4
  • 9
    And this is why most distributions are called GNU/Linux distributions, if you follow the GNU and FSF.
    – Nemo
    Commented Aug 8, 2018 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). Commented Aug 13, 2018 at 15:34
  • @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). Commented Aug 14, 2018 at 14:52
  • 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)). Commented Aug 14, 2018 at 15:11
12

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.
3
  • 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
    Commented Aug 9, 2018 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
    Commented Aug 10, 2018 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. Commented Aug 13, 2018 at 16:36
12

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.

2

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.

4
  • 2
    The kernel was being cross-compiled in Minix. Commented Aug 7, 2018 at 17:39
  • 18
    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. Commented Aug 8, 2018 at 6:56
  • 10
    Linus, and the author of Minix, both agree that it is not Minix or based on it. Commented Aug 8, 2018 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
    Commented Aug 9, 2018 at 5:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .