Linux (/ˈlɪnəks/ⓘ) – rodzinaunixopodobnych systemów operacyjnych opartych na jądrze Linux. Linux jest jednym z przykładówwolnego i otwartego oprogramowania (FLOSS): jegokod źródłowy może być dowolnie wykorzystywany, modyfikowany i rozpowszechniany[4]. Od kwietnia 2017 rokuAndroid (z zaadaptowanym jądrem Linuxa) oficjalnie jest najpopularniejszym systemem operacyjnym na świecie[5][6].
Pierwsza wersjajądra Linux została udostępniona publicznie 17 września 1991 dlaarchitektury komputera PC, wykorzystującegomikroprocesor o architekturzeIA-32. Do jądra dołączono narzędzia systemowe zwane też „Development Kit” oraz biblioteki zprojektu GNU, aby otrzymać nadający się do użytku system operacyjny. Z tego powodu powstała też alternatywna nazwa kompletnego systemu: GNU/Linux[7]. Jest udostępniany w formie dystrybucji Linuksa, składających się z jądra (niekiedy zmodyfikowanego w stosunku do oficjalnej wersji) i zestawu pakietów oprogramowania dobranego do różnorodnych wymagań. Dystrybucje zawierają głównieoprogramowanie na licencjach FLOSS, jednak najczęściej zawierają też lub pozwalają na doinstalowanie pewnej liczby programów na licencjach własnościowych.
Linus stworzył jednak tylkojądro, pełny system operacyjny potrzebował jeszczepowłoki systemowej,kompilatora,bibliotek itp. W roli większości z tych narzędzi użyto oprogramowaniaGNU[10], co jednak w przypadku niektórych komponentów systemu wymagało poważnych zmian, niekiedy finansowanych przezProjekt GNU[11], niekiedy dokonanych już wcześniej przez Linusa Torvaldsa[12].
Dużo pracy wymagało także zintegrowanie systemu do postacidystrybucji[13], które umożliwiały zainstalowanie go w stosunkowo prosty sposób. Jednymi z pierwszych były opublikowany 16 lipca1993Slackware Linux[14] czy założony miesiąc późniejDebian[15], nazywający siebieGNU/Linux[16].
Sama nazwa pochodzi ze zbitki słówLinus (będącego imieniem twórcy) iUnix. Później pojawiło się też rozwinięcie nazwy Linux wakronim rekurencyjnyLinux Is Not UniX (pol.Linux To Nie Jest UniX)[17].
Twórcą nazwy Linux jestAri Lemmke, administrator serweraftp://ftp.funet.fi/, na którym umożliwił Torvaldsowi publiczne udostępnienie kodu źródłowego jego systemu. Nie podobała mu się jednak proponowana początkowo przez Linusa nazwa „Freax” (Freax =free +freak +[uni]X) i zaproponował właśnie znaną dziś powszechnie nazwę „Linux”. W lutym 1992 założył on równieżgrupę dyskusyjną comp.os.linux[18] w głównej hierarchiiUsenetu, która miała przejąć ruch z grupy alt.os.linux działającej od stycznia 1992 w hierarchii alternatywnej. Obie grupy istnieją do tej pory.
Rada Języka Polskiego proponuje dwojaką pisownię nazwy „Linux” przy odmianie przezprzypadki. Rozróżnienie to polega albo na zastąpieniu -x polskim -ks (sposób I), albo na zachowaniu końcówki -x (sposób II)[19]:
Część osób preferuje nazwę „GNU/Linux” zamiast samego „Linux”. Ta pierwsza jest promowana przezFree Software Foundation iProjekt GNU, gdyż sam Linux nie tworzy systemu operacyjnego – do tego potrzebne jest również tzw. środowisko userspace, które zapewnia właśnie Projekt GNU.
Ze względu na powstanie i rozwój dystrybucji o łatwej instalacji i dużych zasobach oprogramowania, Linux znajduje również zastosowanie na rynku komputerów biurowych i domowych. Rządy kilku państw europejskich prowadzą wdrożenia Linuksa na komputerach administracji państwowej. Ponadto ze względu na bezpieczeństwo, stabilność, możliwość audytu i łatwość modyfikacji kodu źródłowego, z Linuksa korzystają agencje wywiadowcze, kontrwywiad i wojsko.
Linux wykorzystywany jest przez niektóre banki i instytucje finansowe. Przykładowo, system notowańWall Street oparty jest na tymsystemie operacyjnym, jak i również Londyńska Giełda.
Linux jest używany we wszystkichsuperkomputerach z listyTOP500[20][21]. Znalazł również zastosowanie w przemyśle filmowym – zarówno na serwerach, jak istacjach roboczych. Jest najpopularniejszym systemem na komputerach wykorzystywanym do tworzenia animacji i efektów specjalnych. Z jego możliwości korzystają między innymi studiaDreamworks,Pixar czyIndustrial Light & Magic.
Zasadniczo obecnie (2013) sprzedażsmartfonów zAndroidem (opartym na Linuksie) dominuje na rynku wobec innych, a co najmniej co trzeci zaawansowany telefon na świecie posiada system oparty na Linuksie[22]. Liczba urządzeń (tylko telefony itablety) z samym Androidem to ponad 608 milionów, podczas gdy liczba wszystkich urządzeń pod kontroląMicrosoft Windows to ok. 1,5 miliarda[23]. Do urządzeń z Linuksem trzeba dodać serwery, komputery osobiste oraz zapowiedziane i wykonane migracje szkół i administracji – np. wFederacji Rosyjskiej[24].
Zrzut ekranu z dystrybucjiUbuntu ze zmodyfikowanym interfejsemGNOME.
Największy udziałowiec rynku systemów operacyjnych od kwietnia 2017 r., gdy pozycję tę objąłAndroid (oparty na Linuxie)[25][26][27][28][5][6].
Linux jest także najpopularniejszym systemem operacyjnym używanym na serwerach wInternecie, co oznacza, że komputer użytkownika, nawet jeśli pracuje pod innym systemem operacyjnym, to z dużym prawdopodobieństwem łączy się z serwerem opartym na systemie Linux[29][30].
System wykorzystywany jest również do codziennych zastosowań[31][32].
„Migrujemy z Windowsa na Linuxa, ponieważ potrzebny jest nam stabilny i niezawodny system operacyjny.” – Keith Chuvala, zarządca systemów komputerowychNASA.
W 2013 roku NASA (agencja USA, dotychczas korzystająca z komercyjnego, amerykańskiegoMicrosoft Windows na maszynach używanych przez astronautów) ogłosiła zainstalowanie we wszystkich komputerach znajdujących się naMiędzynarodowej Stacji Kosmicznej Linuksa. Powodem są problemy ze stabilnością Microsoft Windows oraz chęć większej kontroli nad systemem[33].
Programy dystrybuowane są zazwyczaj w formie gotowych (skompilowanych) pakietów binarnych dla danejdystrybucji (np.RPM ideb) lub jako pakiety źródłowe (spakowany kod źródłowy, w takich formatach jaktar.bz2,tar.gz,SRPM), które należy najpierwskompilować, a następnie zainstalować. W niektórychdystrybucjach (np.Gentoo) proces kompilacji źródeł jest wysoce zautomatyzowany. Sama forma dystrybuowanego oprogramowania zwykle są związane z określoną formą dystrybucji. Najprostsza forma to gotowe pakiety binarne pochodzące z repozytorium.
Obecnie na tylko jednego z Linuxów, w jednym sklepie jest ponad 192 187 aplikacji, z czego 15,5% to gry (LinuxAndroid). Sama liczba pobrań aplikacji przekracza 34 294 603 185[35]. Jeśli chodzi o pozostałe dystrybucje Linuxa, to przykładowo 10 na 25 gier w „Popularnych” (ang.Popular) serwisuGOG.com ma wersję na Linuxa[36]. W serwisieSteam jest 2970 gier z potwierdzonym działaniem na Linuksie[37]. Istnieją także inne katalogi gier[38]. Popularnesilniki gier bądź biblioteki multimedialne do tworzenia gier pozwalają tworzyć duże i mniejsze produkcje na Linuxa – jak np.Unity[39] czySDL[40].
Zdecydowanie większość gier jest wydana na systemy operacyjneWindows, lecz istnieją projekty pozwalające uruchamiać gry z systemuMicrosoftu na Linuksie. Są to m.in. Lutris, PlayOnLinux,Wine, oraz ogólnodostępną dystrybucję Linuksa stworzonego przezValve Software, czyliSteamOS. Firma Valve ogłosiła również wspomożenie wolnościowych systemów operacyjnych, z tego powodu wszystkie produkty ich firmy obsługują systemyGNU/Linux. Dodatkowo stworzyła ona zmodyfikowaną wersję Wine –Proton, umożliwiającą granie w gry natywne dla Windowsa znajdujące się w bibliotece Steam[41].
Najstarsza uniwersalna wyszukiwarka opisów gier, w rankingu liczby gier na lata 2010–2018 podaje dla Linuxa 11 369 tytułów, podczas gdy dla konkurencyjnych platform jest ich co najmniej kilkakrotnie mniej[42].
Linux współcześnie obsługuje też bez dodatków zazwyczaj więcej kontrolerów niż wiele znanych systemów. Nie tylko nadal wspiera tzw.GamePort[43], ale również najnowsze kontrolery Sony[44]. Dzieje się tak dlatego, że większośćsterowników jest już wbudowanych wjądro, zaś użytkownicy, którzy chcą oszczędzać na zasobach, mogą usunąć lub zmodyfikować nieprzydatne dla nich funkcjonalności.
Oprogramowanie dla Linuksa jest najczęściejotwarte iwolne. Duża część kodu typowej dystrybucji jest objęta takimi licencjami jakGPL,LGPL,BSD i podobnymi.
Linux zawierainterfejs wiersza poleceń (CLI) jako część funkcji przejętych zUniksa. Dystrybucje wyspecjalizowane na serwery lub administrację mogą używać wiersza poleceń jako jedynego interfejsu. Nieobecnośćinterfejsu graficznego (GUI) pozwala na zminimalizowanie wykorzystywanych zasobów systemowych. Maszyny z Linuksem mogą równie dobrze działać bez podłączonego monitora. Aby administrator mógł się na nich zalogować, potrzeba albo zdalnegoX11, albo terminal musi być uruchomiony z protokołu takiego, jakSSH lubtelnet. Wsieciach lokalnych zdalne używanie X11 jest przeważnie akceptowalne, ale na dłuższe dystanse operacje te mogą zajmować za dużo czasu. Innym sposobem na zarządzanie systemem bez urządzeń HID (Human Interface Device) i sieci jest terminal podłączany przezport szeregowy – głównie służący do debugowania i diagnostyki urządzeń wbudowanych.
Na początku wiele operacji wykonywanych w Linuksie wymagało użycia wiersza poleceń. Rozwój dystrybucji przeznaczonych na komputery biurkowe i domowe zmienił ten stan rzeczy. Mimo wszystko, wiele podręczników i tutoriali często podaje możliwość rozwiązania problemu z wiersza poleceń, nawet gdy można to zrobić, używając aplikacji graficznej. Wiersz poleceń jest uniwersalny w świecie Linuksa, gdzie graficzny interfejs na każdej maszynie może być inny. To również ułatwia współpracę między Linuksem i innymi maszynami, które również używają wiersza poleceń, np.MacOS X. Łatwiej jest również udzielić pomocy, gdy operacja ta sprowadza się do napisania/skopiowania tego, co należy wkleić do terminala.
Dobrze zaprojektowane GUI jest łatwiejsze w użyciu dla większości zadań, lecz bardziej doświadczeni użytkownicy mogą wciąż preferować linię komend; naukowcy, inżynierowie i twórcy oprogramowania najczęściej używają właśnie terminala. Wiele ważnych programów nie ma GUI. Wiersz poleceń jest wyposażony w automat, pozwalający na kilkukrotne lub opóźnione wypełnianie zadań i naturalnym procesem jest to, że komenda wykonująca pewne zadanie jest wpierw wydawana bezpośrednio, a potem używana ponownie w skrypcie, zapewniając automatyzację.
Graficzny i tekstowy interfejs mogą również nawzajem się uzupełniać. Jest wiele graficznychemulatorów terminali, np.xterm,rxvt,aterm,Gnome-terminal ikonsole. X11 potrafi zapewnić komunikację między tymi programami a wierszem poleceń. Co więcej,XFCE,KDE orazGNOME oferują narzędzieD-BUS, które zapewnia większą integrację aplikacji graficznych z terminalem.
Graficzny interfejs użytkownikaGUI nie jest w Linuksie integralną częścią systemu operacyjnego, lecz dodatkowym zbiorem programów. W zależności od stopnia zaawansowania i integracji użytych rozwiązań, dostępne GUI możemy podzielić na małe menedżery okien oraz duże środowiska graficzne.
Jedna z opcji GUI dla Linuksa jest osobnymmenedżerem okien, takim jakFluxbox,dwm,awesome i te menedżery mogą mieć zestaw najróżniejszych aplikacji, uruchamianych za pomocą Menedżera Okien bądźdmenu. Menedżer okien pozwala na kontrolowanie położenia i wyglądu okien indywidualnych aplikacji oraz na interakcję zX Window System.
Wadą niezależnych menedżerów okien jest trudność w uzyskaniu spójnych i jednolitych interfejsów różnych aplikacji. Przedstawione zrzuty ekranów przedstawiająXMMS,RealPlayer,Mozilla Firefox,xterm,gaim iKonqueror; każdy z nich prezentuje się inaczej, ponadto, aplikacje te korzystają z odrębnychskrótów klawiszowych, inaczej organizują swoje menu, posiadają inne mechanizmy kopiowania i wklejania. Nawet jeśli każda aplikacja z osobna jest dobrze dopracowana, to używanie ich wszystkich w grupie jest utrudnione, gdyż zachowania, których nauczymy się w jednej aplikacji, zazwyczaj dają się zastosować tylko w niej.
Zaletą korzystania z niezależnego menedżera okien jest prostota (z punktu widzenia programistów i doświadczonych użytkowników) oraz szybkość i niezawodność ich działania. Ponadto w porównaniu z dużymi środowiskami graficznymi takimi jakGNOME lubKDE, niezależne menedżery w mniejszym stopniu angażują zasoby takie jak procesor, pamięć i miejsce nadysku twardym. Użytkownicy, którzy preferują pracę w terminalu, chętnie pracują w minimalistycznych środowiskach graficznych; menedżer okien, sam w sobie, ma im przede wszystkim zapewnić możliwość otwierania okienemulatorówterminali komputerowych.
Są też menedżery okien bazowane na wl-roots, które oparte są naWaylandzie, takie jak:Sway(inne języki), dwl (dwm dla wayland), Qtile (też dostępne na X).
GNOME 3.22.2 z uruchomionym menedżerem plikówNautilus, edytorem tekstugedit i przeglądarkąFirefoxInterfejs użytkownika programucinnamon, domyślnie zainstalowanym w dystrybucjiLinux Mint
Używanie małych menedżerów okien staje się coraz mniej popularne wraz ze wzrostem większych środowisk graficznych. Są to zintegrowane sposoby na wygodną pracę, które starają się zapewnić interfejs równie łatwy w obsłudze, jak ten zMacOS X lubMicrosoft Windows. Łączą one menedżer okien z pakietem standardowych aplikacji, które są łatwe w obsłudze nawet z punktu widzenia początkujących użytkowników.
Jednym z pierwszych rozpowszechnionych środowisk graficznych byłoCDE, które nie stało się popularne na Linuksie ze względu na koszty i ograniczenia licencyjne. W 1996 powstałoKDE, a po nim, w 1997 roku,GNOME.Xfce jest trochę mniejszym projektem, który również powstał w 1997 i skupia się na szybkości i możliwości konfiguracji.
Obecnie rozwiązaniami dominującymi są GNOME i KDE, zazwyczaj instaluje się je standardowo na systemach linuksowych. Każde z nich oferuje:
Mimo iż oba te środowiska graficzne mają podobne cele, radzą sobie z nimi całkiem inaczej. KDE stara się, aby aplikacje były jak najbardziej konfigurowalne, aby można było w nie ingerować i aby mogły ze sobą w łatwy sposób kooperować. GNOME z drugiej strony, koncentrując się na kluczowych zadaniach (zgodnie z filozofiąmaking things just work), stara się, aby całość była jak najprostsza w obsłudze. Każde z tych środowisk przyciąga inny rodzaj użytkowników i tworzy inną społeczność deweloperów.
Na początku XXI wieku oba te środowiska są już dojrzałe[45]. Projekty Appeal[46] i ToPaZ[47] skupiają się na opracowywaniu nowych możliwości dla kolejnych edycji KDE i GNOME.
Następujące środowiska graficzne są kompatybilne z Wayland:
↑Linus Torvalds,„Notes for linux release 0.01”,Sadly, a kernel by itself gets you nowhere. To get a working system you need a shell, compilers, a library etc. These are separate parts and may be under a stricter (or even looser) copyright. Most of the tools used with linux are GNU software and are under the GNU copyleft. These tools aren’t in the distribution – ask me (or GNU) for more info.
↑Richard Stallman,„Linux a Projekt GNU”,Przystosowanie niektórych komponentów GNU do działania z Linuksem wymagało poważnych zmian. [...] Projekt GNU wspomaga systemy GNU/Linux tak samo, jak system GNU – nawet finansowo. Sfinansowaliśmy przepisanie rozszerzeń biblioteki GNU C związanych z Linuksem, tak że są teraz dobrze zintegrowane, a najnowsze systemy GNU/Linux korzystają z aktualnego wydania biblioteki bez żadnych zmian.
↑Richard Stallman,„Linux a Projekt GNU”,Wielką pracą było też zintegrowanie kompletnego systemu jako dystrybucji, która działałaby po „wyjęciu z pudełka”. Wymagało zajęcia się sprawą sposobu instalacji i uruchamiania systemu – problemem, z którym wówczas nie próbowaliśmy się zmierzyć, gdyż jeszcze nie osiągnęliśmy tego punktu. Znaczny wkład wnieśli ludzie, którzy rozwinęli rozmaite dystrybucje systemu.
↑O Debianie,Systemy Debian używają obecnie jądra Linux. Jest to oprogramowanie, które zaczął tworzyć Linus Torvalds, a którym obecnie zajmują się tysiące programistów z całego świata. [...] Duża część podstawowych programów narzędziowych tworzących system operacyjny pochodzi z projektu GNU; stąd nazwy: GNU/Linux oraz GNU/Hurd.