Van UNIX naar Linux

>> Index <<

Linux en UNIX zijn multi-user besturingssystemen. Meerdere personen kunnen tegelijkertijd van dezelfde computer gebruik maken. Dit is een UNIX eigenschap.

De jaren 60 en 70: terminals, mainframes en minicomputers

Met de huidige microchip technologie zijn computers klein, krachtig en betaalbaar (microcomputers). Maar UNIX stamt uit een tijd dat hardware groot en onbetaalbaar was. Desktop, schoot- en handheld computers bestonden nog niet. Gebruikers werkten met video display units (VDU, dumb terminals), plotters, ponskaartlezer, tapes die aangesloten waren op een kamervullende mainframes en kastgrote minicomputers.

UNIX en Multics

In de jaren 60 konden alleen zeer kapitaalkrachtige telefoniebedrijven en overheden zich een computer veroorloven. Die eerste computersystemen konden slechts een gebruiker tegelijk helpen (single-user). De computergebruikers moesten op elkaars beurt wachten. Door de traagheid van toenmalige in- en uitvoerapparaten duurde dat erg lang en kon de processorkracht onvolledig worden benut.

Met een groot aantal gelijktijdige processen van meerdere gebruikers zou een mainframe of minicomputer veel rendabeler zijn. De methoden van time-sharing waren begin jaren 60 al beschreven (CTSS), maar in de praktijk bestond er nog geen bruikbaar multi-user systeem. Daarom stimuleerde de Amerikaanse overheid (ARPA) wetenschappers en bedrijven om een multitasking multi-user besturingssysteem te ontwikkelen.

In 1965 begonnen Bell Telephone Laboratories, General Electric en het door defensie (ARPA) gefinancierde MIT Project on Mathematics and Computation aan een besturingssysteem dat meerdere gebruikers moest ondersteunen. Het kreeg de naam Multiplexed Information and Computing Service (Multics). Maar ondanks forse investeringen kwam Multics maar moeizaam van de grond.

Eind jaren 70 stond Bells Lab op het punt om het Multics project te verlaten. Bells Lab wilde naar BUlls mainframe computersysteem GECOS overstappen. Het dreigende verlies van hun dure speeltje Multics stimuleerde enige Bells Lab wetenschappers (Ken Thompson e.a.) tot het schrijven van hun eigen besturingssysteem. In The Evolution of the Unix Time-sharing System schrijft Dennis Ritchie hierover:

From the point of view of the group that was to be most involved in the beginnings of Unix (K. Thompson, Ritchie, M. D. McIlroy, J. F. Ossanna), the decline and fall of Multics had a directly felt effect. We were among the last Bell Laboratories holdouts actually working on Multics, so we still felt some sort of stake in its success. More important, the convenient interactive computing service that Multics had promised to the entire community was in fact available to our limited group, at first under the CTSS system used to develop Multics, and later under Multics itself. Even though Multics could not then support many users, it could support us, albeit at exorbitant cost. We didn't want to lose the pleasant niche we occupied, because no similar ones were available; even the time-sharing service that would later be offered under GE's operating system did not exist. What we wanted to preserve was not just a good environment in which to do programming, but a system around which a fellowship could form. We knew from experience that the essence of communal computing, as supplied by remote-access, time-shared machines, is not just to type programs into a terminal instead of a keypunch, but to encourage close communication.

Heel persoonlijke motieven brachten deze pioniers tot een meesterwerk. Er wordt nog wel eens geringschattend gesproken over de hippie cultuur van de eerste UNIX ontwikkelaars; hierbij wordt snel vergeten dat de hele internetgemeenschap van hun baanbrekende werk heeft geprofiteerd.

The GECOS version was unsatisfactory in two important respects: first, the display of the state of the game was jerky and hard to control because one had to type commands at it, and second, a game cost about $75 for CPU time on the big computer. It did not take long, therefore, for Thompson to find a little-used PDP-7 computer with an excellent display processor; the whole system was used as a Graphic-II terminal. He and I rewrote Space Travel to run on this machine.

De eerste UNIX versie werd binnen een maand in PDP-7 assembleertaal geschreven (1969). DECs geheel uit transistors (geen buizen!) bestaande 18-bits Programmed Data Processor PDP-7 minicomputer had een gebruikersruimte van nog geen 4 kB, maar kon Space Travel draaien.

It was the summer of '69. In fact, my wife went on vacation to my family's place in California.... I allocated a week each to the operating system, the shell, the editor, and the assembler, to reproduce itself, and during the month she was gone, it was totally rewritten in a form that looked like an operating system, with tools that were sort of known, you know, assembler, editor, and shell .... Yeh, essentially one person for a month.

Begin jaren 70 werd UNIX door Thompson en Ritchie in de hogere programmeertaal B herschreven. B was een beknopte versie van de Basic Combined Programming Language (BCPL), een door Martin Richards ontwikkelde systeemtaal waarmee ook compilers konden worden gemaakt. Door Dennis Ritchie werd B met enige headers uitgebreid. Zo ontstond de programmeertaal C (1972). De eerste UNIX versie in C werd in 1973 voor een PDP-11 minicomputer geschreven. In 1974 schreven Ritchie en Thompson The UNIX Time-Sharing System:

Unix is a general-purpose, multi-user, interactive operating system for the larger Digital Equipment Corporation PDP-11 and the Interdata 8/32 computers. It offers a number of features seldom found even in larger operating systems, including i A hierarchical file system incorporating demountable volumes, ii Compatible file, device, and inter-process I/O, iii The ability to initiate asynchronous processes, iv System command language selectable on a per-user basis, v Over 100 subsystems including a dozen languages, vi High degree of portability.

Door zijn overdraagbaarheid, flexibiliteit en lage hardware vereisten werd UNIX een groot succes. De eerste AT&T UNIX versies kwamen beschikbaar op universiteiten. In 1977 werd UNIX ook naar niet Digital systemen omgezet. Maar in de jaren 80 vercommercialiseerde UNIX: er kwamen (dure) UNIX merken uit voor dure merkcomputers. Om concurrentie tegen te gaan hielden de softwarebedrijven hun broncode geheim. Zodoende konden programmeurs steeds minder van elkaar leren. Er ontstond een toren van Babel effect dat de studie en ontwikkeling van UNIX niet ten goede kwam.

De jaren 80: microcomputers

Met de komst van de IBM PC begin jaren tachtig en haar goedkope klonen is het kostenaspect nagenoeg verdwenen. Hardware werd niet alleen kleiner en sneller, maar door massaproductie ook nog eens goedkoper. De efficiëntie van het besturingssysteem werd van ondergeschikt belang geacht. Als het besturingssysteem maar toegankelijk en betaalbaar was. Het simpelste en goedkoopste besturingssysteem dat een diskette nog kon beschrijven kwam op vrijwel iedere PC te staan. Het Microsoft Disk Operating Systeem kende maar een fractie van de UNIX opdrachten en was slecht beveiligd. Maar de PC gebruiker nam de data en het besturingssysteem toen nog gewoon op een diskette mee naar huis.

De commercialisering van Unix

En hoe verging het UNIX? UNIX kwam tot bloei aan wetenschappelijke instituten en universiteiten. Maar ook commerciele bedrijven zagen steeds meer markt in software. Vanaf 1981 lijfden ze getalenteerde "hackers" in. Met hun kennis en kunde werd veel geld verdiend. Andere hackers zetten hun eigen softwarerijk op (Bill Joy, Sun, 1982). Maar die commercialisering van UNIX kwam niet iedereen ten goede. Doordat softwareproducenten hun kennis binnenshuis hielden ging veel kennis, ervaring en creativiteit verloren. Programmeurs leerden nauwelijks nog iets van hun collega's. In de kenniseconomie ging de commercie de dienst uitmaken.

De jaren 90 en verder

Vanaf de jaren 90 werden PC's massaal ingeschakeld in netwerken. Krachtige PC's gingen dienst doen als netwerkserver. Halverwege de jaren 90 gingen thuisgebruikers massaal het internet op (Het internet in vogelvlucht). Door het gebruik van Grafische User Interfaces (GUI) werd multitasking steeds belangrijker.

Doordat een pre-emptive multitasking besturingssysteem op een slimme manier meerdere programma's tegelijkertijd uitvoert kan de rekenkracht van de processor veel beter worden benut. Het besturingssysteem laat de processor niet op door in- of uitvoer (toetsenbord, schijf) acties vertraagde programma's wachten, maar geeft na een van tevoren ingestelde tijd de processortijd aan programma's die er wel meteen gebruik van zullen maken .

Hier komt de kracht van op UNIX gebaseerde systemen als Linux en BSD naar voren. Zaken die in iedere Microsoft versie steeds als nieuwe en noodzakelijke toevoegingen worden gepresenteerd, waren onder vele tientallen UNIX versies al jarenlang beschikbaar. Maar UNIX was voor de gewone man onbetaalbaar en had de naam moeilijk te zijn. Experimenteren met een bestaand UNIX systeem op het werk of op de universiteit was uitgesloten. Het beheer van dergelijke systemen, was voorbehouden aan enkele system administrators, systeembeheerders die als priesters over hun domein waakten. Gezien het feit dat vele personen, vaak een heel bedrijf van hun systeem afhankelijk waren, dachten ze er ook niet aan om met het systeem te gaan experimenteren. En geef ze eens ongelijk.


Van Minix naar Linux

De oorspronkelijk voor specifieke hardware geschreven UNIX varianten bleven voor de gewone man onbetaalbaar, ook toen er PC versies van uitkwamen. Om het toch zeer krachtige UNIX voor studenten weer toegankelijk (leerzaam en betaalbaar) te maken werd door Andy Tanenbaum voor academische doeleinden een eenvoudige UNIX variant ontworpen die op de 386 PC liep: Minix. Op comp.os.minix werd het Minix besturingssysteem besproken. Linus Torvalds, student aan de universiteit van Helsinki, kwam er tijdens een UNIX cursus in 1990 mee in aanraking. Hij schafte zich een 386 en Minix aan. Deze uitgeklede UNIX versie viel hem tegen, schrijft hij in het voorwoord van Mark Sobells boek over Linux:

I wanted the real thing rather than a small and limited clone.

Naarmate hij zich meer in de eigenschappen van de 386 processor verdiepte, kwam het idee meer bij hem op om zelf een UNIX variant te schijven. Hierdoor geïnspireerd schreef Linus Torvalds zijn vrije UNIX variant voor de Intel 80386 processor, die op comp.os.minix werd aangekondigd (Linux versie 0.02, 1991). Deze versie kon nog niet veel, maar draaide wel bash (de GNU Bourne Again Shell) en de GNU c compiler, waarmee de basis voor de verdere ontwikkeling van Linux was gelegd. Voor de dure UNIX merken geschreven programma's konden gecompileerd worden voor het Linux besturingssysteem en draaiden al op een betaalbare 386 PC.

Omdat Linus Torvalds de Linux kernel onder de GPL plaatste en kernel sources vrij over het internet verspreid werden, konden anderen meehelpen bij de ontwikkeling van de kernel. Een continue stroom van feedback in de nieuwsgroepen heeft sterk bijgedragen bij de razendsnelle ontwikkeling van het in 1991 nog zeer primitieve Linux tot het huidige besturingssysteem.

Het besturingssysteem kon al spoedig beschikken over programmacode van Berkeley UNIX, het GNU Project en het X Window Systeem van het Massachusetts Institute of Technology (MIT).

Het vrij beschikbaar komen van de UNIX kloon Linux in 1991, sloeg onder hackers in als een bom. Nu kon iedereen met "the real thing" aan de slag.

Linux thuis gebruiken

Dankzij de inspanningen van een legioen ontwikkelaars is Linux tien jaar later een heel toegankelijk besturingssysteem geworden.

Aan het multi-user aspect zal een Windows gebruiker moeten wennen. De PC is onder Linux geen personal (single-user) computersysteem meer. U kunt niet zomaar alles doen. Maar dat heeft ook zijn voordelen. Niet alleen op server, maar ook op de door virussen en whizzkids belaagde gezinscomputer.

Zodra Linux geladen is, nodigt het systeem u uit om in te loggen. Als u op Ctr-Alt-F2 (en verder) toetst ziet u een nieuw scherm. Ook via het netwerk mag u of een ander van de computer gebruik maken. Ook als u de enige gebruiker van het toetsenbord bent, gaat Linux (als multi-user systeem) zijn eigen gang. Op de achtergrond lopen al voordat u inlogt beproefde achtergrondprocessen (daemonen), die soms meer zeggenschap over het systeem lijken te hebben dan u. Tenzij u als root, dat is als systeembeheerder, inlogt natuurlijk.

Onder Linux gedraagt de PC zich dus als het multi-user mainframe van weleer. Maar het leuke is dat huidige PC's zich moeiteloos sneller zijn de supercomputers van toen. Met het soepele en efficiënt multitaskende Linux kunt u meer uit een PC halen dan u ooit onder Windows kon doen.

Met veel open source software loopt Linux qua performance rondjes om de betaalde software van gangbare besturingssystemen (Windows 9x, maar ook Windows NT). Toch is Linus Torvalds er niet steenrijk van geworden... Hoe komt dat? Lees verder over de dilemma van de softwaremakers in Unix en c, commerciële software en monopolievorming en de open source reactie hierop zoals de General Public License.

Meer informatie


ComputerWoche Heft Archiv : Het doorzoekbare Computer Woche archief (1974-heden) is online te raadplegen en bevat een schat aan historische informatie.

Google Directory: Computers/History

The Computer History Simulation Project

The archive of video terminal emulation

The Computer Industry: A Brief History: een mooie presentatie.

Common Unix Commands

Computing at Columbia Timeline : zeer informatief.

The Virtual Museum of Computing van Jonathan Bowen

Multics : Multiplexed Information and Computing Service. De voorganger van UNified ICS (alias UNIX).

Dennis Ritchie Home Page op Bell Laboratories

The UNIX Time-Sharing System: klassieker.

Éric Lévénez geeft een stamboom van de UNIX history .

Unix history (webarchive)

History of UNIX and Linux

Linux-History.org

Welcome to Linux International!

from GECOS to GCOS8 an history of Large Systems in GE

Die Geschichte von UNIX - vom Mainframe zum iMac (PDF)

CMU CS Project Mach Home Page

Chronology of Personal Computers

History of Computing Chronology - time line main page

Computer History Images

The Unix Acronym List


>> Index <<