Jeśli Linux jest tylko jądrem, to jak wykorzystano jego pierwsze wersje (bez dystrybucji)?

112

Linux jest tylko jądrem, a jeśli użytkownicy chcą go używać, potrzebują pełnej dystrybucji. Biorąc to pod uwagę, jak wykorzystano pierwsze wersje Linuksa, gdy nie było dystrybucji Linuksa?

noop
źródło
66
Przesłanka twojego pytania jest błędna. Nie potrzebujesz dystrybucji, aby korzystać z Linuksa. Potrzebujesz jądra Linuksa i trochę kodu użytkownika. Otóż ​​to. „Dystrybucja” jest po prostu tym, co nazywamy, gdy ktoś inny składa je dla ciebie, zamiast robić to sam.
Jörg W Mittag
9
W rzeczywistości na początku był to raczej problem z jajami kurzymi i jajami z powodu braku przyzwoitych narzędzi lądowych dla konkretnych użytkowników. Gdy facet stojący za MCC Interim Linux złamał to jajko i napisał kilka narzędzi, przynajmniej fdiskdrzwi były otwarte dla innych, aby mogli łatwiej przedstawić własną konfigurację Linuksa.
Rui F Ribeiro

Odpowiedzi:

162

We wczesnych etapach Linuksa Linus Torvalds wypuścił źródło jądra Linuxa w stanie alfa, aby zasygnalizować innym, że pracują nad nowym jądrem uniksopodobnym. W tym czasie, jak stwierdził @RalfFriedi, jądro Linuksa zostało skompilowane krzyżowo w Minix.

Co się tyczy użytecznego oprogramowania, Linus Torvalds również przeniósł narzędzia do dystrybucji wraz z jądrem Linuksa, aby inni mogli go przetestować. Programy te były głównie bashi gcc, jak opisano w Historii LINUX autorstwa Linusa Torvaldsa . Zgodnie z postem Usenet :

Od: [email protected] (Linus Benedict Torvalds)  
Grupy dyskusyjne: comp.os.minix
Temat: Co chciałbyś zobaczyć najbardziej w minix?
Podsumowanie: mała ankieta dla mojego nowego systemu operacyjnego  
Identyfikator wiadomości: <[email protected]>
Data: 25 sierpnia 91 20:57:08 GMT
Organizacja: University of Helsinki

Witajcie wszyscy za pomocą minix -

Robię (darmowy) system operacyjny (po prostu hobby, nie będzie duży i profesjonalny jak GNU) dla 386 (486) AT klonów. Trwa to od kwietnia i zaczyna się przygotowywać. Chciałbym uzyskać informację zwrotną na temat rzeczy, które ludzie lubią / nie lubią w minix, ponieważ mój system operacyjny nieco to przypomina
(ten sam fizyczny układ systemu plików (z przyczyn praktycznych) między innymi).

Obecnie przenosiłem bash (1.08) i gcc (1.40) i wydaje się, że wszystko działa. Oznacza to, że w ciągu kilku miesięcy dostanę coś praktycznego i chciałbym wiedzieć, jakie funkcje chciałaby większość ludzi. Wszelkie sugestie są mile widziane, ale nie obiecuję, że je wdrożę :-)

Linus dystrybuował jądro i podstawowe programy narzędziowe w formacie dyskietki, aby użytkownicy mogli go wypróbować i ewentualnie przyczynić się do tego.

Następnie pojawiły się dyskietki rozruchowe HJ Lu . Gdyby można to nazwać dystrybucją, zyskałby sławę jako pierwsza dystrybucja, którą można zainstalować na dysku twardym.

Były to dwa obrazy dyskietek 5¼ "zawierające jądro Linuksa i minimalne narzędzia wymagane do rozpoczęcia pracy. Tak minimalne były te narzędzia, które aby móc uruchomić z dysku twardego wymagały edycji głównego rekordu rozruchowego za pomocą edytora szesnastkowego.

bootroot

W końcu liczba narzędzi wzrosła ponad maksymalny rozmiar dyskietki.

MCC Interim Linux był pierwszą dystrybucją Linuksa dla osób o nieco mniejszych umiejętnościach technicznych, wprowadzając zautomatyzowaną instalację i nowe narzędzia, takie jak fdisk.

MCC Interim Linux to dystrybucja Linuksa wydana po raz pierwszy w lutym 1992 roku przez Owena Le Blanc z Manchester Computing Centre (MCC), część University of Manchester.

Pierwsze wydanie MCC Interim Linux było oparte na Linuksie 0.12 i wykorzystało kod ramdysku Theodore Ts'o do skopiowania małego obrazu głównego do pamięci, uwalniając napęd dyskietek na dodatkowe dyskietki narzędziowe. [2]

Stwierdził także, że jego dystrybucje były „nieoficjalnymi eksperymentami”, opisując cele jego wydań jako:

  • Aby zapewnić prostą procedurę instalacji.
  • Aby zapewnić bardziej kompletną procedurę instalacji.
  • Aby zapewnić usługę tworzenia kopii zapasowych / odzyskiwania.
  • Aby wykonać kopię zapasową jego (wówczas) obecnego systemu.
  • Aby skompilować, połączyć i przetestować każdy plik binarny w bieżących wersjach jądra, gcc i bibliotek.
  • Aby zapewnić stabilny system podstawowy, który można zainstalować w krótkim czasie i do którego inne oprogramowanie można dodać przy stosunkowo niewielkim wysiłku.

Po prekursorze MCC SLS była pierwszą dystrybucją oferującą system X Window w maju 1992 roku. W szczególności, konkurent SLS, mitycznego Yggdrasil , zadebiutował w grudniu 1992 roku.

yggdrasil

Inni główni dystrybutorzy śledzili to, co znamy dzisiaj, zwłaszcza Slackware w lipcu 1993 r. (Oparty na SLS) i Debian w grudniu 1993 r. Do pierwszej oficjalnej wersji 1.1 w grudniu 1995 r.

Kredyty
obrazkowe: * Obraz dyskietek rozruchowych / głównych z: https://www.maketecheasier.com/
* Obraz dyskietki yggdrasil od: https://yggdrasilblog.wordpress.com/

Rui F. Ribeiro
źródło
4
Dobrze byłoby linkować do tych wiadomości e-mail z najbardziej podstawowego oryginalnego źródła, zakładając, że są one gdzieś zarchiwizowane online.
Wildcard,
2
@Wildcard Znaleziono tę wiadomość e-mail na stronie podającej się za stronę Linusa Torvalda.
Rui F Ribeiro,
2
@slm Właściwie z wcześniejszych czasów, przeprowadzałem się do domu zbyt wiele razy, a ilość miejsca u moich rodziców jest ograniczona. Miałem wczesne dyskietki 386BSD / FreeBSD i płytę PCworld z 93-95 (może 95) z całym zestawem dyskietek z Linuksem (nie pamiętam dystrybucji). Miałem też pełny zestaw dysków instalacyjnych SCO V z ważnym kluczem, który uruchomiłem w moim 486. Miałem wtedy bardzo zaawansowane specyfikacje sprzętu, pracowałem dla głównego dostawcy komputerów.
Rui F Ribeiro
28
„(tylko hobby, nie będzie duże i profesjonalne jak GNU)” Hah.
F. George
9
just a hobby, won't be big and professional like gnuoch chłopcze, myliłeś się
Alvaro,
17

W moim przypadku (c.1994) Linux został zbudowany jako obrazy odpowiednie dla dyskietek 3,5-calowych (1,44 MB), prawdopodobnie kontynuacji wymienionych powyżej obrazów 5 1/4 ”, a każdy z nich ma określony zestaw sterowników skompilowanych w ( sieć, VGA itp.). Musiałeś więc wiedzieć, czego potrzebujesz i mieć nadzieję, że masz odpowiedni sprzęt.

Po uruchomieniu komputera można było połączyć się z siecią LAN lub telefonicznie za pośrednictwem modemu, a następnie poszedł i znalazł potrzebne oprogramowanie (FTP, gopher itp.) - było to na początku „sieci”, a wyszukiwarki nie naprawdę istnieją, więc trzeba było wiedzieć, gdzie się udać lub kogo zapytać) i sam je zbudować.

Byłem zachwycony, kiedy mogłem uruchomić 486DX i połączyć się z siecią uniwersytecką (56k!) I zamontować udział AFS na komputerze w domu ... to były dni. ;)

Xavier
źródło
2
Zakładając, że zrobiłeś to wszystko w 1994 roku, prawdopodobnie było to jak 28,8 tys. ... dobrych czasów!
GuitarPicker,
W 1994 roku nie musiałeś żonglować dyskietkami. Zacząłem od Linuksa w tym samym roku, ale Slackware miał już pełną dystrybucję na CD.
Gábor,
Trzeba było kupić płytę z czasopisma. W tym czasie nagrywarki CD były drogie. Co do RH, pamiętam, że pobrałem wszystkie pliki przez weekend w fantastycznym współużytkowanym połączeniu 256 Kb / s, budując obraz płyty CD, a następnie nagrywając płytę CD w pracy, może około 96.
Rui F Ribeiro
@GuitarPicker, które mogły być optymistyczne. Wielu z nas wciąż było na 1200, 2400, aw 1992 r. Linux ogólnie zszedł z fajki instytucji akademickiej. Podobnie jak Linus, nasz dostęp do Internetu był przez połączenie modemowe z uniwersytetem. Mieliśmy Usenet i Gopher, ale nie mieliśmy graficznej (mozaiki) strony WWW. W 1992 roku nie wszyscy też mieli 386. Miałem Olivetti M24 (AT&T) 8086 z ekranem Monochrome, który działał w systemie Windows 1 (niezbyt dobrze). Minix był hobbystą lub akademikiem i nie był darmowy. Linux był uważany za świntu przepustowości, ale regularnie pojawiał się wzrost przepustowości. Linux był wielką rzeczą na Campusie dla programistów.
mckenzm,
12

Krótka wersja

W chwili, gdy Linus uruchomił jądro, projekt Gnu miał działający system operacyjny, z wyjątkiem działającego jądra. Kiedy ludzie się rozejrzeli, znaleźli wszystkie potrzebne narzędzia: gcc (i przyjaciel: binutils), bash (i przyjaciele gnu-utils), emacs,…

Następnie zbudowaliby własny system z części.

Stąd ten żart pochodzi z „Gdyby MS-Windows był samolotem, wzbiłby się na 10 tysięcy stóp, a następnie eksplodował zabijając wszystkich na boku, ale przynajmniej nie musisz budować własnego samolotu przed odlotem”.

ctrl-alt-delor
źródło
8
I dlatego większość dystrybucji nazywa się dystrybucjami GNU / Linux , jeśli postępujesz zgodnie z GNU i FSF.
Nemo
Nie. GNU nie miało dobrej biblioteki libc. Linux w dawnych czasach używał różnych bibliotek libc. Dopiero stosunkowo późno mieliśmy dobrą bibliotekę glibc. Na początku używane były narzędzia minix (częściowo produkowane przez GNU).
Giacomo Catenazzi,
@GiacomoCatenazzi true about libc. Ale miał większość narzędzi lądowych użytkownika. Pamiętam, jak w 1992 roku skompilowałem narzędzia GNU do uruchomienia na Sun Solaris. (Nie zacząłem używać Linuksa, dopóki nie byłam w połowie przejścia na glibc.) Te narzędzia były już od dłuższego czasu (przed Linuksem).
ctrl-alt-delor
Tak. Zacząłem też od Solaris, woląc narzędzia GNU niż Sun. Stamtąd chciałem więcej, więc poszedłem do Linuksa (a moja pierwsza dystrybucja nie miała żadnych systemów X. Klienci Red Hat mogli używać komercyjnego X. Dopiero później mieliśmy XFree86. Przejście na system prawdziwie wolny (i głównie GNU) zajął wiele lat (jądro było tylko jednym krokiem, ale najbardziej „demokratyczny” krok [komputer + podstawowy unix był w końcu dla wszystkich (lub lepiej dla studentów))
Giacomo Catenazzi
12

W swojej książce „ Just For Fun ” Linus Torvalds wspomniał, że jądro Linuksa było początkowo prostym emulatorem terminala do łączenia się ze zdalną maszyną Unix przez modem:

Ostatecznie mogłem zmienić dwa wątki, AAAAAAAA i BBBBBBB, tak aby jeden odczytał z modemu i napisał na ekranie, a drugi odczytał z klawiatury i napisał do modemu. Miałem własny program emulacji terminala.

Kiedy chciałem czytać wiadomości, wkładałem dyskietkę i ponownie uruchamiałem maszynę, a także czytałem wiadomości z komputera uniwersyteckiego za pomocą mojego programu. Gdybym chciał wprowadzić zmiany w celu ulepszenia pakietu emulacji terminala, uruchomiłbym Minix i używał go do programowania ...

A ponieważ chciałem zapisać pliki w moim systemie plików Minix - a ponieważ system plików Minix i tak był dobrze udokumentowany - dostosowałem swój system plików do systemu plików Minix ...

Kiedy to zrobiłem, stało się jasne, że projekt jest na dobrej drodze, aby stać się systemem operacyjnym. Dlatego zmieniłem myślenie o nim jako o emulatorze terminali na myślenie o nim jako o systemie operacyjnym.

bodqhrohro
źródło
10

Edytowano: Usunięto zawstydzający brak zrozumienia działania jądra i pozostawiono ważną część.

Obszar użytkownika GNU istniał przed jądrem Linuksa.

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

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

Peter MacDonald jest w dużej mierze znany z tego, że stworzył pierwszą „użyteczną” dystrybucję GNU / Linux.

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

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

Z pamięci niektórych dyskusji, które z nim przeprowadziłem: Peter pracował jako administrator systemów uniksowych dla rządu i studiował na University of Victoria, aby uzyskać tytuł magistra. Peter chciał sposób pracy z domu, ale koszty licencji na komputer stacjonarny w systemie Unix były wygórowane. Znał już narzędzia użytkownika GNU, więc kiedy zobaczył wiadomość Linusa Torvaldsa w sieci uniwersyteckiej, w pełni wykorzystał i podłączył narzędzia GNU do nowego jądra. Tak naprawdę, początkowym problemem było odwrotność twojego pytania: Użytkownik już istniał i wszystko, co było potrzebne, to jądro.

Inne historyczne ciekawostki:

  • Peter nie dystrybuował SLS Linux i nie pobierał opłaty za oprogramowanie. SLS był dystrybuowany przez jego żonę Colleen, a opłata dotyczyła kosztownego i czasochłonnego procesu nagrywania płyt CD w celu wysłania pocztą.
  • Peter wniósł wiele ogromnych wkładów w jądro, których nigdy nie potwierdzono, w tym dynamiczne ładowanie modułów i ulepszone zarządzanie pamięcią.
  • Oprogramowanie było „wadliwe”, ponieważ pracował, chodził do szkoły, wychowywał dwoje dzieci i starał się zadowolić użytkowników Linuksa. Wszyscy wiemy, jak łatwo jest zadowolić użytkowników Linuksa ...
  • Peter nie pamięta „argumentów” / „nieporozumień” dotyczących skryptów instalacyjnych, które, jak twierdzili inni, spowodowały rozłam, który zapoczątkował Slackware i Debian.
Dinsdale
źródło
2
Jeśli możesz załadować jądro do pamięci i wykonać obraz, spanikuje, ponieważ nie może wykonać / sbin / init. init jest już narzędziem użytkownika. Każdy program w C do korzystania z API jądra jest programem użytkownika.
RalfFriedl
Nie! Słuszna uwaga. Próbowałem powiedzieć, że narzędzia, z którymi użytkownicy zwykle wchodzą w interakcje, nie są wymagane do działania jądra. Zastanowię się i zaktualizuję ...
Dinsdale,
Chociaż jest to dość dobrze udokumentowane, że Peter nie był pierwszą ani drugą dystrybucją narzędzi użytkownika do jądra +, my, jako społeczność Linuksa, włożyliśmy wiele wysiłku w przekształcenie dystrybucji Linuksa w coś podobnego do tego, co znamy dzisiaj.
Rui F Ribeiro,
2

Linux został po raz pierwszy uruchomiony jako ulepszony zamiennik Minix i aby zrozumieć programowanie w trybie chronionym na i386. Minix przyszedł ze źródłem, a wtedy były narzędzia użytkownika GNU i narzędzia użytkownika BSD. Oba były dostępne ze źródłem. Linux próbował być kompatybilny z POSIX, więc przenoszenie nie było takie trudne. Jednym z pierwszych kroków było uruchomienie bash na Linuksie. Początki Linuksa można uznać za kompilację krzyżową, jądro musiało zostać skompilowane w innym systemie.

RalfFriedl
źródło
2
Jądro było kompilowane krzyżowo w Minix.
Rui F Ribeiro,
17
Stwierdzenie, że Linux został „uruchomiony jako rozszerzenie do Minixa”, jest mylące. Tak, to prawda, że ​​Linus w tym czasie korzystał z Minix, ale Linux nie dzieli z nim ani jednego wiersza kodu, a także postępuje zgodnie z inną filozofią projektowania (mikrojądro kontra monolit). W tym czasie Minix nie był oficjalnie dostępny dla 386, podczas gdy jądro Linuksa zostało napisane dla 386 od samego początku. Pierwszym systemem plików Linuksa był system plików Minix, ze względu na kompatybilność, ale była to również pełna reimplementacja.
Johan Myréen,
10
Zarówno Linus, jak i autor Minix, zgadzają się, że nie jest on Minix ani oparty na nim.
ctrl-alt-delor
@ JohanMyréen Oczywiście krótki tekst nie jest całą prawdą. Nawet Wikipedia zawiera tylko krótkie wprowadzenie. I wiem, że Linux został uruchomiony z powodu wad Minix. Jeśli byłby Minix dla i386, dziś może nie być Linuksa. Z drugiej strony Linux został zainspirowany przez Minix, a pierwszym obsługiwanym systemem plików był Minix. Ale zgadzam się, że rozszerzenie nie jest poprawną pracą, zmieniłem zdanie.
RalfFriedl