Historia powstania

Mówi się, że początki Linuksa sięgają roku 1991 i jest to oczywiście prawda. Niewiele osób odnosi się jednak do wydarzeń z lat 60. ubiegłego wieku, bez których ten system prawdopodobnie nigdy by nie powstał. Aby zrozumieć dlaczego, musimy cofnąć się w czasie...

W latach 60. amerykański programista Ken Thompson brał udział w pracach nad bardzo ambitnym systemem operacyjnym o nazwie Multics, sponsorowanym przez firmy MIT, GE, Honeywell oraz Bell Labs. W projekt pokładano ogromne nadzieje i zainwestowano w niego potężne zasoby. Presja czasu, jak i poziom skomplikowania tego systemu ostatecznie doprowadziły do tego, że firmy sponsorujące zaczęły się z niego wycofywać co finalnie spowodowało zaniechanie dalszych prac.

To niepowodzenie paradoksalnie stało się punktem zwrotnym. Thompson, bogatszy o nowe doświadczenia, postanowił stworzyć coś mniejszego i znacznie bardziej "zgrabnego". Owocem tych prac był system Unix, który w latach 70. i 80. stał się standardem w środowiskach korporacyjnych i uniwersyteckich. Był niezwykle stabilny i, co najważniejsze, wielozadaniowy. Posiadał jednak poważną wadę: rozwijano go w erze komercjalizacji, przez co był drogi, a jego kod źródłowy z czasem został zamknięty. Ponieważ Unix przestał być dostępny dla każdego, w środowisku programistów zaczął narastać opór, który nadał całej historii zawrotnego tempa.

Na czele tego oporu stanął Richard Stallman, amerykański haker i programista z MIT. Widząc komercyjne ograniczenia Uniksa, rozpoczął prace nad własnym, otwartoźródłowym systemem operacyjnym, który miał być udostępniany całkowicie za darmo. Do roku 1991 Stallman stworzył już niemal kompletne środowisko (GNU), składające się z kompilatora GCC, edytora Emacs i powłoki Bash. Projekt utknął jednak w martwym punkcie, ponieważ jądro systemu (Hurd) okazało się zbyt skomplikowane i nie działało prawidłowo.

Podczas gdy Stallman walczył z jądrem swojego systemu, inny naukowiec szukał rozwiązania podobnego problemu, choć z zupełnie innych powodów. Był to Andrew Tanenbaum, amerykański profesor informatyki, który chciał pokazać studentom działanie systemu operacyjnego "pod maską". Ponieważ kod Uniksa był chroniony prawami autorskimi, Tanenbaum postanowił napisać od zera jego uproszczoną, edukacyjną wersję. W ten sposób narodził się Minix.

W tym miejscu warto zadać sobie pytanie: co właściwie łączy te wszystkie, z pozoru niezależne postacie? Stallman i Tanenbaum mieli wspólny mianownik - chcieli stworzyć otwartą i darmową alternatywę dla komercyjnego Uniksa. Co kluczowe, chętnie dzielili się swoimi projektami ze światem. To właśnie dzięki tej otwartości na scenę mógł wkroczyć Linus Torvalds, 21-letni wówczas student informatyki technicznego Uniwersytetu Helsińskiego.

Młody Fin używał Miniksa głównie do łączenia się z serwerem uczelni, by czytać maile i przeglądać grupy dyskusyjne. Szybko jednak zirytował się jego ograniczeniami - wbudowany program do emulacji terminala działał po prostu kiepsko. Zamiast szukać gotowych rozwiązań, Torvalds postanowił napisać własny emulator. Z czasem ten prosty program zaczął gwałtownie "puchnąć". Linus dodawał do niego kolejne funkcje: obsługę dysku twardego, system plików oraz zarządzanie pamięcią. W pewnym momencie zorientował się, że nie pisze już tylko prostego narzędzia, ale jądro systemu operacyjnego. Nieświadomy tego, że właśnie tworzy historię, postanowił zapytać społeczność na grupie dyskusyjnej, co najbardziej lubi w Minixie i jakie funkcje widziałaby w jego nowym projekcie.

Do sfinalizowania tego dzieła brakowało już tylko jednego elementu, który... od lat czekał gotowy. Torvalds wykorzystał bowiem narzędzia, które wcześniej stworzył Richard Stallman. Doszło do idealnej synergii: jądro Linusa idealnie wypełniło lukę w projekcie GNU. Ludzie zaczęli masowo łączyć jądro Linuksa z darmowymi narzędziami Stallmana. Właśnie dlatego poprawną, choć rzadziej używaną nazwą całego systemu, jest GNU/Linux.