Linux jest jednym z najczęściej używanych systemów, przeznaczonych do pracy dewelopera. W takim razie warto przyjrzeć się bliżej skąd się wziął, jakie są jego cechy oraz dlaczego stał się tak popularny.
Czym jest system operacyjny?
System operacyjny (ang. Operating System, w skrócie OS) to specjalny program, którego zadaniem jest komunikacja między innymi programami a zasobami sprzętowymi. Można powiedzieć, że OS to nadzorca, do którego zwracają się inne procesy z prośbą o dostęp do hardware’u. System operacyjny, w miarę możliwości, przydziela odpowiednią ilość pamięci, wykonuje rozkazy na procesorze, itp. dla danego programu. Zajmuje się też komunikacją między programami.
Pierwotnie komputery nie posiadały systemu operacyjnego, ponieważ programy wykonywały się na nich sekwencyjnie (jeden po drugim) przy udziale człowieka. Nie istniały też żadne mechanizmy zrównoleglania rozkazów, także nie było sensu ich nadzorowania. Wraz z rozwojem komputerów typu mainframe, zaczęto tworzyć proste systemy operacyjne, których celem było odpalanie zadań (ang. jobs), czyli kilku programów, jeden po drugim. Celem używania OS, była wtedy minimalizacja czasu, w którym komputer stał bezczynny (dziś można powiedzieć, że taką funkcją w programowaniu zajmują się schedulery).
Kolejnym krokiem w ewolucji systemów, było zrównoleglanie ich pracy, tak aby np. jeden program mógł wykonywać obliczenia a drugi w tym samym czasie generował obraz na ekranie. W końcu wraz rozwojem GUI (ang. Graphic User Interface), systemy operacyjne osiągnęły kształt tych współczesnych.
Systemy z rodziny Unix
W 1969 r. narodziły się linia systemów, które są w znacznej mierzy używane do dziś o nazwie Unix (Unix Time–Sharing System).
Systemy tego typu cechuje:
- hierarchiczna struktura drzewiasta plików,
- każdy użytkownik posiada identyfikator, hasło oraz katalog osobisty,
- linia komend komunikuje się z tzw. powłoką (ang. shell), która umożliwia pisanie prostych skryptów (programów). Domyślną powłoką w większości systemów typu Unix jest BASH,
- pliki nie posiadają określonego formatu (rozszerzenia),
- wielozadaniowość,
- za kontrolę zasobów (pamięć, procesor, itp.) odpowiada jądro systemu (ang. kernel),
- dyski zewnętrzne nazywane są wolumenami, które można odłączać i podłączać,
- programy działające w tle nazywają się procesami.
Ponieważ Unix był bardzo udanym systemem, rozpoczął on całą rodzinę systemów operacyjnych, takich jak np. Linux czy MaxOS. Wszystkie one są oparte na architekturze Unix, ale posiadają też swoje specyficzne właściwości.
Linux
Wraz z początkiem lat 90. rynek systemów operacyjnych był w powijakach. Po odejściu Steve’a Jobsa z Apple, jasne było, że producenci komputerów personalnych czekali na nowy impuls w tej kategorii software’u. Otóż dotąd po przełomowym Macintoshu z 1984 roku, który upowszechnił stosowanie GUI-a, obsługiwanego za pomocą myszki, we wczesnych latach 90-tych wciąż królowały brzydkie systemy oparte na linii komend (np. MS-DOS).
W 1991 Linus Torvalds, student Uniwersytetu w Helsinkach, rozpoczął pracę nad darmowym systemem operacyjnym, który mógł pracować na nowoczesnych wówczas procesorach, typu i386 lub i486. Oczywiście jako samotny strzelec, nie miał szans napisać całego systemu, ale udało mu się zaimplementować pierwszą wersję jądra (ang. kelner) systemu.
W tamtym okresie istniała już idea o nazwie projekt GNU, mająca na celu stworzenie w pełni darmowego systemu. Taki system mógłby być konkurentem dla komercyjnych systemów Apple czy Microsoft. Wydanie przez Torvarldsa Linuxa w wersji 0.12 właśnie na licencji GNU, pozwoliło wielu programistom, niepowiązanym ze sobą, na pracę nad tym projektem. W końcu udało się stworzyć pierwszą pełną wersję systemu z numerem 1.0 w 1994 roku.
System jest ten rozwijany po dziś dzień i stanowi obok MacOS główną konkurencję dla produktów firmy Microsoft.
MacOS
Historia flagowego systemu firmy Apple jest bardzo ciekawa. Otóż z racji trudnego charakteru i porywczości zarząd Apple postanowił usunąć z niej Steve’a Jobs (który był jej założycielem). Myślano wtedy, że pozycja kolosa z Doliny Krzemowej jest na tyle bezpieczna, że i bez jego wizji produkty Apple się obronią. Niestety był to olbrzymi błąd. Apple prawie zbankrutował. Natomiast Jobs w tym czasie z sukcesem rozwinął Pixar, a także zaangażował się w produkcję systemu operacyjnego o nazwie NextSTEP. To właśnie on stał się prekursorem tworzonych do dziś MacOS.
Apple, zadłużone po uszy, wykonało wtedy (w ok. 1997 roku) desperacki ruch, kupując firmę Jobsa (o nazwie Next) wraz z nim samym i całym dobrodziejstwem inwentarza. MacOS jest także systemem z rodziny Unix, jednak jego programiści od początku wprowadzali w nim wiele znaczących zmian (wymiana jądra), także na pierwszy rzut oka można mieć wrażenie, że nie ma on zbyt wiele wspólnego z Unixem.
Inne
Oprócz wyżej wymienionych przykładów, istnieje też wiele innych, korzystających z rozwiązań Unixa, systemów. Są one jednak dużo bardziej niszowe w porównaniu do MacOS czy Linuxa. Inni przedstawicieli rodziny Unixa to np. Solaris czy AIX.
Dystrybucje Linuxa
Linux, choć wywodzi się z rodziny systemów Unix, sam posiada wiele różnych dystrybucji. Każda z nich korzysta z tego samego kernela, ale posiada wiele unikatowych funkcji. Dystrybucje z reguły różnią się od siebie:
- licencją (płatna/bezpłatna)
- mechanizmem zarządzania pakietami
- przeznaczeniem (programowanie, hackowanie, praca biurowa)
- platformą (serwer, zwykły pecet, smartfon)
- środowiskiem graficznym
- dostępnymi aplikacjami
Najpopularniejsze dystrybucje Linuxa to:
Ubuntu
Wiodąca dystrybucja, której celem jest wypromowanie Linuxa nie tylko jako systemu przeznaczonego dla serwerów, ale też zwykłych konsumentów. Dlatego też praktycznie od samego początku celem Ubuntu, było udostępnienie przyjaznego interfejsu graficznego, a także szerokiego spektrum aplikacji możliwych do instalacji.
Debian
Pierwsza dystrybucja Linuxa, stworzona w 1996 (wersja 1.x). Jest to system, którego przeznaczeniem jest raczej instalacja na serwerze. Przede wszystkim cechuje się stabilnością, co oznacza, że często dostępne na niego aplikacje są przestarzałe. Jest on też trudniejszy w obsłudze, a społeczność nie jest tak rozbudowana, jak w przypadku Ubuntu, co sprawia, że w momencie problemów, może Ci być ciężej znaleźć w Internecie ich rozwiązanie.
Fedora
Opiera się na komercyjnej dystrybucji o nazwie RedHat Enterprises Linux (w skrócie RHEL) i jest jej testową wersją, zanim ta zostanie oficjalna wydana jako RedHat. Plusem takiego rozwiązania jest to, że jako klon RHEL, posiada pewną opiekę (nieoficjalną) przez firmę RedHat. W praktyce działa on po prostu jako poligon doświadczalny. Celem systemu, podobnie jak w przypadku samego RHEL, jest instalacja go na serwerze. Może on posłużyć jako darmowa alternatywa dla dystrybucji RedHat.
Mint
Oparta głównie na Ubuntu, ale też po części na Debianie. Jest to wersja bardzo solidna, cechująca się stabilnością i łatwą obsługą w szczególności dla początkujących użytkowników.
Inne
To tylko wierzchołek góry lodowej. Istnieje wiele innych ciekawych dystrybucji systemu stworzonego przez Linusa Torvarldsa, takich jak np. RedHat, Manjaro, Arch, czy CentOS. Sam musisz potestować i sprawdzić, który z nich odpowiada Ci najbardziej. Dla początkującego użytkownika proponuje Ci skupić się na Ubuntu, ewentualnie na Mint.
Rodzaje Ubuntu
Dystrybucje to jednak nie wszystko. Ponieważ często popularne dystrybucje dzielą się na różne wydania. Przykładowo system Ubuntu, posiada różne implementacje, z reguły różniące się środowiskiem graficznym i domyślnie zainstalowanymi aplikacjami.
Kilka popularnych rodzajów Ubuntu:
Kubuntu – chyba najpopularniejsza wersja Ubuntu, korzystająca z silnika graficznego KDE. Jest to system cechujący się bardzo ładnym interfejsem graficznym, ale jednocześnie wymaga trochę lepszego sprzętu niż pozostałe dystrybucje Ubuntu.
Xubuntu – moja ulubiona wersja Ubuntu, graficzne oparta na środowisku Xfce, podobnym do Windowsa XP. Jest to minimalistyczny, ale też powszechnie znany, układ graficzny, który gwarantuje szybkość w działaniu oraz prostotę.
Lubuntu – kolejna ciekawa opcja dla komputerów o słabszych parametrach.
Poza powyższymi przykładami istnieje oczywiście wiele innych rodzajów Linuxa, mniej lub bardziej popularnych. Zachęcam Cię do przetestowania każdego z nich i wybrania tego najlepszego.
Ciekawe programy dostępne na Ubuntu
Vim – edytor tekstu w linii komend (można korzystać z niego bez używania myszki). Jego wielką zaletą jest możliwość otwierania naprawdę dużych plików tekstowych.
Gimp – popularny edytor graficzny.
LibreOffice – pakiet biurowy, będący Linuksową alternatywą dla Microsoft Office.
Midnight Commnader – wzorowany na Norton Commander, menadżer plików w konsoli.
Pidgin – komunikator, obsługujący szereg protokołów transmisyjnych.
Lynx – tekstowa przeglądarka internetowa.
JDK – jeśli chciałbyś programować w Javie na Linuxie, nic prostszego, ponieważ posiada on pełne wsparcie dla tej platformy.
IntelliJ – jeden z najpopularniejszych IDE do programowania w Javie i nie tylko.
Eclipse – alternatywne IDE (i w pełni darmowe), umożliwiające kodowanie za pomocą języka Java.
Podsumowanie
Linux to bardzo szybki i jednocześnie stabilny system operacyjny. Jego struktura nie pozwala na szybką utratę wydajności, spowodowaną przez instalację wielu aplikacji. W przeciwieństwie do innych klonów Unixa, posiada on dobrze rozwiniętą społeczność oraz rozbudowane repozytorium, z którego można pobierać aplikacje. W wersji Ubuntu system jest darmowy i wspiera większość produkowanego hardware’u.
Jeśli interesujesz się programowaniem, obowiązkowo musisz go zainstalować i nauczyć się jego podstaw. Powodem jest, to że choć Windows króluje jako system do domu czy do biura, to jednak na Linuxie opiera się większość istniejących serwerów. Stąd też, jako pracownik IT, szybciej czy później, będziesz mieć z nim do czynienia.