Linux Boot process - korak po korak



Linux za razliku od drugih sistema ima jako interesantnu arhitekturu, drugačiji file system kao i vrlo dobro zamišljen način butanja koji se odvija u šest koraka. Taj se proces naziva Linux boot proces. Njegovo razumijevanje je jako važno kako za obične Linux korisnike ali i za buduće Linux system administratore. U ovom članku, pogledat ćemo kako se Linux buta i koji su to koraci.


Za BHL,
piše: Amar Tufo



Naslovna: Butanje Linux-a korak po korak
Izvor slike: Clinton, 2016 : 22

1) BIOS 


Slika 1: Izgled postavki unutar BIOS-a

Jednom kada pokrenete vaše računalo, prvu stvar koju ćete vidjeti jeste BIOS (Basic Input Output System). BIOS omogučava krajnjem korisniku podešavanja sistemskog vremena koji vaš operativni sistem prikazuje, konfiguraciju miša, tastature, osnovne informacije o računalu i hardveru koji se nalazi unutra, uređaje na kojem se nalazi operativni sistem itd. Jednom pošto se računar pokrene, BIOS izvršava mali program po imenu POST (Power On Self Test).

Upravo ovaj mali program provjerava vitalne komponente vašeg računara (CPU, GPU, RAM, te hard disk). Ukoliko čujete kratak beep na zvučniku vašeg računara, to znači da je POST uspješno obavljen i da su svi uređaji vašeg računala ispravni. BIOS zatim traži MBR (Master Boot Record).

2) MBR - Master Boot Record

MBR je obično smješten na prvom sektoru vašeg tvrdog diska, obično /dev/sda. U osnovi, MBR je svega 512 bajta težak. Sastoji se, da tako kažemo, od tri sektora i to: prvi sektor 446 bajta koji sadrži boot loader, drugi sektor od 64 bajta koji sadrži partition table i treći sektor od zadnja dva bajta u kojem se obavlja test ispravnosti samog boot loadera. Tako da u suštini, zadatak MBR je jednostavo da pronađe i izvrši boot loader (LILO ili GRUB). 

3) GRUB (Grand Unified Bootloader) 


Slika 2: Izgled GRUB boot loader-a

Isprva, glavni boot loader za Linux je bio LILO (Linux Bootloader). Danas taj posao obavlja GRUB. GRUB je trenutno primarni Linux boot loader koji je trenutno u verziji GRUB v2.0. Njegov osnovni zadatak je da pronađe kernel operativnog sistema (Linux distribucije) te ga učita u RAM. Između ostalog, GRUB korisniku omogučava da izabere i pokrene Linux distribuciju ili pak da bira između dvije ili tri Linux distribucije, ovisno o tome koliko ih je instalirano na tvrdom disku. Konfiguracijska datoteka za GRUB se nalazi unutar direktorija /boot/grub/grub.cfg. Jednom pošto odaberete vašu Linux distribuciju, GRUB će početi njeno izvršavanje.

4) Init RAM disk

Jednom pošto GRUB pokrene Linux distribuciju, boot loader pronalazi initrd.img datoteku koja se nalazi unutar /boot direktorija, izvrašava je te učitava privremeno u RAM. Njen zadatak je da učita i pokrene privremeni root file sistem, kernel module i drajvere. Pošto se initrd.img učita u RAM, boot loader prelazi na kernel koji započinje svoj dio zadatka.

5) Linux kernel

Još dok je unutar memorije smješten initrd.img, boot loader pronalazi i izvršava kernel datoteku koja se također nalazi unutar /boot direktorija. Obično je to kompresovana datoteka koju ćete pronači pod imenom /vmlinuz. Ovo 'z' na kraju znači da je kernel kompresovan. Jednom pošto se kernel izvrši, boot loader iz memorije iščitava initrd.img te pokreće pravi (/) root file system izvršavajući init proces.

6) Login prompt


Slika 3: Login dijalog Ubuntu Linux-a

Jednom kada kernel pokrene root file system izvrašavanjem init procesa koji ima pid 1, pojavit će se login prompt dijalog. Riječ je o dijalogu gdje korisnik odabire svoje korisničko ime ili ime drugog korisnika, unosi lozinku te zatim će vidjeti desktop, radnu površinu svoje Linux distribucije. 

Zaključak

Razumijevanje onoga što se događa jednom pošto se Linux računalo pokrene, je izuzetno važno bilo za obične korisnike pa i Linux sistem administratore koji moraju znati šta se događa iza scene. Kada je riječ o desktop Linux distribucijama, dobar dio onoga što se događa prilikom butanja Linux-a je sakriveno od nas u seriji poruka koje blještavom brzinom prolaze neprimjetno a svaka od njih govori o ispravnosti svih komponenti na vašem računaru. U narednom članku ćemo se upoznati sa strukturom Linux file sistema a do tada, ugodan ostatak na blogu i do čitanja !!!

Reerence

[1] Clinton, David (2016)

Practical LPIC-1 Linux Certification Study Guide

apress, New York (USA), p22 - 26


[2] Linux boot process | Professor Messer



Napisao: 

______________________________________________



Ja sam Amar Tufo. Diplomirani sam arheolog, bloger te iskusan višegodišnji GNU/Linux korisnik. Osnivač sam i glavni urednik portala Amar Tufo - BLOG gdje objavljujem radove iz arheologije, historije i druge zanimljivosti. 
Follow me:   Facebook|Twitter|LinkedIn

Share:

Linux i njegovi počeci



Linux je danas puno više nego što je to bio prije dvadesetak godina. Riječ je o jednom od najuspješnijih projekata računalnog doba i trenutno najaktivnijem softverskom projektu na svijetu koji okuplja milione korisnika i entuzijazista širom svijeta. No, s početka, Linux je bio tek kostur kojem je trebalo vremena da bi izrastao u mnogobrojne Linux distribucije koje koristimo danas. U ovom članku, imate priliku da se upoznate šta je to Linux i kako je on zapravo nastao? 



Za BHL,
piše: Amar Tufo


Doba slobodnog softvera



Priča Linux-a počinje davne 1983. godine sa Richardom Stallmanom, čovjekom koji je u to doba radio za MIT-ev Lab. Kao niz drugih računalnih stručnjaka toga doba, Stallman je zajedno sa Eric Raymondom želio stvoriti besplatan operativni sistem otvorenog koda. Kasnije, Stallman je 1984. godine istupio iz MIT lab-a jer mu se nije dopala ideja što je UNIX operativni sistem bio komercijalan i zatvoren, drugim riječima, njegov izvorni kod nije bio dostupan široj populaciji niti ga je bilo moguće dijeliti besplatno preko web-a. 



Slika 1: Richard Stallman, tvorac GNU operativnog sistema

Ubrzo je započeo rad na svom operativnom sistemu koji će kasnije biti poznat kao 'GNU'. Stallman je tako otišao korak dalje te svoj projekat prenio pod sopstevnu fondaciju za slobodan softver aka 'FSF' koju je osnovao 1985. godine. Da bi Stallman završio svoj operativni sistem, trebao mu je vitalan i važan komad softvera koji bi pogonio operativni sistem a to je kernel.


Slika 2: Linus Torvalds, tvorac Linux kernela

Govoreći kompjuterskim riječnikom, kernel je ništa više do most između operativnog sistema i hardvera. No, njegov operativni sistem neće zaživjeti još nekoliko godina sve do pojave Finskog studenta računalnih tehnologija po imenu Linus Torvalds. Kao i Stallman, Torvaldsu se nije dopadao koncept zatvorenosti UNIX-a pa je odlučio da napiše i kreira sopstveni kernel koristeći ondašnji Minix. Vrlo brzo, Torvalds je obznanio kako radi na revolucionarnom kernelu koji koristi sve odlike UNIX-a, samo što u osnovi, njegov kernel neće biti UNIX.



Slika 1: Isječak iz licence Linux kernel 0.01 

Da li su se Stallman i Torvalds poznavali tada kada su oba krenula u razvoj operativnog sistema koji je zauvijek promijenio svijet računalnih tehnologija, pitanje je na koje je teško dati odgovor. Ubrzo 1991. godine, Torvalds je na internet pustio svoju prvu verziju kernela kojeg je nazvao Linux v0.01. Isti kernel je kasnije pronašao na netu Richard Stallman koji je kernel ubacio u svoj GNU i tako razvio svoj GNU operativni sistem. Bila je to revolucija koja je pokrenula jedan sasvim novi pokret u softverskom developmentu u čijem središtu je bio sam Linux te besplati softver otvorenog koda. 

Spletom okolnosti, mnogi korisnici računala svakodveno upotrebljavaju izmjenjenu inačicu sistema GNU, iako toga nisu svjesni. Linux zaista postoji ali mnogo ljudi širom svijeta ne zna razliku termina Linux i GNU/Linux. Linux je jezgra, program u sistemu koji dodjeljuje resurse mašine drugim programima koje pokrećete. Jezgra ili kernel je ključan dio operativnog sistema, no, samostalno je ona beskorisna, drugim riječima, ona je dio operativnog sistema bez kojeg bi vaše računalo bilo nepotrebno. Linux se uobičajeno koristi udružen s operativnim sistemom GNU, cijeli taj sustav je u osnovi GNU s dodanim kernelom koji se naziva Linux te je od toga nastala izvedenica GNU/Linux a odatle mnogobrojne Linux distribucije.

No, na polju softvera otvorenog koda, revolucija je dolazila. Glavni incijator bit će upravo Eric Raymond, računalni stručnjak koji će kasnije napisati svoje kapitalno djelo pod nazivom 'Katedrala i bazar' gdje je Raymond opisao novi model razvoja softvera otvorenog koda i njegove beneficije. Jedan od osnovnih ciljeva Raymondovog djela je ležao u činjenici da se onda smatralo kako razvoj sotvera otvorenog koda ne donosi nikakvu zaradu nit je ideja softvera otvorenog koda isplativa te da ista šteti softverskim kompanijama koje su zarađivale prodajom svog softvera. Raymond je pokazao sasvim drugačije i u svojoj knjizi iznjeo i razloge zašto softver treba da je otvorenog koda i da je slobodan i besplatan za djeljenje.

Dok se Raymond bavio komercijalnim profiterima koji su smatrali kako je besplatni softver otvorenog koda neisplativ, nekoliko godina unazad, Stallman je ipak uspjeo sastaviti svoj operativni sistem te uz Torvaldsov Linux kernel, nastao je operativni sistem pod akronimom 'GNU/Linux' što bi u slobodnom prijevodu značilo Gnu's not Unix / Linux is not UNIX. Upravo akronim GNU/Linux govori u prilog kako Linux koristi sve dobre strane UNIX-a ali u svojoj suštini, on nije UNIX. Tako se već 1992. godine u Engleskoj pojavljuje prva Linux distribucija po imenu MCC Interim Linux koju je razvio Owen La Blanc u kompjuterkom istraživačkom centru Univerziteta u Mančesteru. 

Vrlo brzo, iste godine se pojavljuje i GNU/Linux Yggdrasil, prva Linux distribucija koja je koristila riječ 'GNU'. Linux distribucije su se tako munjevitom brzinom počele širiti te se već 1993. godine pojavljuju neke od nama najpoznatijih Linux distribucija kao što je Debian GNU/Linux čije izdanje se prvi put javlja u septembru 1993. godine. 

Da se s Linuxom moglo zaraditi i u ona vremena, pokazali su tvorci Caldera Open Linux distribucije čije se stabilno izdanje prvi put pojavilo davne 1995. godine. Riječ je o prvoj komercijalnoj Linux distribuciji u njegovoj historiji koja je iznjedrila i prve Linux administratore. Njen uspjeh je bio vrtoglav ali je tako i njen pad pa se posljednje izdanje ove Linux distribucije pojavilo 2002. godine. Već tada je legendarni RedHat važio za jednu od najozbiljnijih Linux distribucija čiji broj je već tada bio nepoznat. 

Linux vs Unix


Iako je Linux klon Unix-a, no između ova dva operativna sistema postoji velika razlika. Da bismo razumijeli te razlike, evo kratke historije Unix-a. Priča Unix-a počela je 60-ih godina prošlog vijeka na MIT-u gdje je grupa računalnih stručnjaa počela raditi na operativnom sistemu po imenu MULTICS. MULTICS je skračenica za Multiplexed Operating and Computing System koji je započet 1960. godine združenom operacijom Bell Lab-a i MIT-a.


Slika 1: DEC PDP 7 računalo na kojem su Thompson i Ritchi napisali prvu verziju Unix-a
Izvor slike: amartufoblog.wordpress.com

Jedan od tadašnjih stručnjaka je i Ken Tompson koji je napustio projekat MULTICS te 1969. godine napisao i objavio svoju prvu verziju Unix-a koju je on tada nazvao UNICS. UNICS je skračenica za Uniplexed Operating and Computing System. Sistem se vremenom mijanjao a ime je pojednostavljeno na Unix. Ken Thompson je ubrzo udružio snage sa računalnim stručnjakom po imenu Denis Ritchie koji se pridružio projektu te 1973. godine napisao C kompajler. Ubrzo su dvojica stručnjaka preradila Unixov kernel koristeći C kompajler koji je Ritchie napisao.

Unixova popularnost se brzo širila ali je operativni sistem i njegov kod bio zatvoren, drugim riječima, njegov izvorni je bio u vlasništvu Bell Lab-a te se tako 1978. godine njegov development razvio u dvije grupe i to SVR4 te BSD. Radeći za Univerzitet u Kaliforniji, Thompson je družio snage sa dvojicom diplomaca po imenu Bill Joy i Chuck Haley te su ubrzo napisali Berkelejevo izdanje Unix-a, kasnije bolje poznato kao BSD (Berkeley Software Distro).

Upravo zatvorenost Unix-a je motivirala i natjerala Torvaldsa da napiše svoj Linux kernel koji je kasnije iskoristio Stallman u razvoju svog GNU operativnog sistema. Iako je baziran na Unix-u, Linux ima velike razlike u odnosu na Unix. Ukratko, ovo su te razlike:

- Cijena 

--> Linux - većina Linux distribucija je u potpunosti besplatna.
--> Unix - većina Unix operativnih sistema nije.

- Zastupljenost

--> Linux je danas zastupljen u autoindustriji, pametnim telefonima, serverima velikih tehnoloških firmi a trenutno pogoni skoro sve super kompjutere na svijetu.
--> Unix - uglavnom je namjenjen za mainframe računala i servere

- Source model

--> Izvnorni kod Linux-a je u potpunosti otvoren pod licencom GNU/GPL koje je razvio Richard Stallman.
--> Unix - većinom je zatvorenog koda i nije dostupan široj zajednici. 

- Veliki broj Linux distribucija

--> Trenutno postoji preko hiljade Linux distribucija široke namjene. Neke od njih su GNU/Linux Debian, Caldera Open Linux, RedHat, Ubuntu, Mint, Open Suse i druge.
--> Unix - Uglavnom su to OS X, Solaris, IBM AIX, Irix.

- Proizvođači

--> Linux kernel i distribucije razvija zajednica ljudi širom svijeta. 
--> Unix razvijaju korporacije kao što je IBM, Oracle Sun, HP itd.


U narednom dijelu, upoznat ćemo se sa osnovnim Linux terminima te ćemo pogledati neke od popularnih Linux distribucija i njihov razvoj.

Do narednog puta i do čitanja.

Napisao: 

______________________________________________



Ja sam Amar Tufo. Diplomirani sam arheolog, bloger te iskusan višegodišnji GNU/Linux korisnik. Osnivač sam i glavni urednik portala Amar Tufo - BLOG gdje objavljujem radove iz arheologije, historije i druge zanimljivosti. 
Follow me:   Facebook|Twitter|LinkedIn

Share:

KURS LINUX ESSENTIALS

KURS LINUX ESSENTIALS

PRIRUČNIK - ZORIN OS & PRVI KORACI SA LINUXOM

POPULARNI POSTOVI

NAJNOVIJE