Linux kernel

S Wikipedije, slobodne enciklopedije
Jump to navigation Jump to search
Linux
Tux
Pingvin Tux, maskota Linuxa[1]
Linux 3.0.0 boot.png
Linux kernel 3.0.0 booting
Razvijatelj Linus Torvalds i hiljade drugih
Napisan u C and asembler[2]
Grupa OS-a Unixu-sličan
Opća
dostupnost
0.01 (17. septembar 1991; prije 28 godina (1991-09-17))
Dostupan u Engleski
Vrsta kernela Monolitni
Licenca GPLv2 sa BLOB[3]
Službena
web stranica
www.kernel.org

Linux kernel jest monolitni i Unixu-sličan kernel operativnog sistema. Porodica Linux operativnih sistema se temelji na ovom kernelu i nalazi se u računarskim sistemima poput ličnih računara i servera, obično u obliku Linux distribucije,[4] i na raznim ugrađenim uređajima kao što su ruteri, bežične pristupne tačke, telefonski sistemi, set-top boksevi, FTA prijemnici, pametni televizori, video rekorderi i NAS uređaji. Iako Linux kernel nema veliki udio u operativnim sistemima na korisničkim stolnim računarima, dominira u gotovo svim drugim segmentima u računarstvu, od mobilnih uređaja do glavnih centralnih računara. Od novembra 2017, svi od 500 najmoćnijih superračunara na svijetu pokreću Linux.[5] Operativni sistem Android za tablet računare, pametne telefone i pametne satove također koristi Linux kernel.

Linux kernel je 1991. godine osmislio i napravio Linus Torvalds[6] za svoj lični računar. Linux je brzo privukao druge programere i korisnike koji su usvojili njegov kernel za druge slobodne softverske projekte, posebno operativni sistem GNU, koji je stvoren kao besplatni, slobodni operativni sistem.

Aplikativni programski interfejs (API) Linux kernela preko kojeg korisnički programi komuniciraju s kernelom, je dizajniran da bude vrlo stabilan i da ne prekida programe korisničkog prostora.

Linux kernel koji su razvili saradnici širom svijeta predstavlja istaknuti primjer softvera koji je slobodan i otvorenog koda.[7] Linux kernel je objavljen pod općom GNU javnom licencom verzije 2 (GPLv2),[8][9] sa nekim slikama firmvera objavljenim pod raznim drugim neslobodnim licencama.

Arhitektura[uredi | uredi izvor]

Mapa Linux kernela

Linux kernel je monolitni kernel, koje podržava preventivni "multitasking" (u korisničkom režimu, a od verzije 2.6, i u kernel modu[10][11]), virtualnu memoriju, zajedničke biblioteke, zahtjeve za učitavanje, dijeljene "Copy-on-Write" izvršne datoteke (preko KSM-a), upravljanje memorijom, paket internet protokola i istovremene zadatke u procesima (threading).

Upravljački programi i proširenja kernela pokreću se u prostoru kernela sa potpunim pristupom hardveru. Grafički sistem koji većina ljudi koristi na Linuxu ne radi unutar kernela. Za razliku od standardnih monolitnih kernela, upravljački programi se lako konfigurišu kao moduli i učitavaju ili otpakuju dok sistem radi. Također, za razliku od standardnih monolitnih kernela, pod određenim uvjetima upravljački programi mogu se isključiti; ova osobina dodana je za ispravno rukovanje hardverskim prekidima i za bolju podršku simetričnog multiprocesiranja.[11]

Programski jezik i kompajler[uredi | uredi izvor]

Linux kernel je napisan u programskom jeziku C koji podržava GCC, zajedno sa malim brojem ubačenog asemblerskog koda.

GCC je zadani kompajler za izvorni kod Linux. 2004. godine, Intel je izmijenio kernel tako da ga je i njegov C kompajler mogao kompajlirati.[12]

Baza podataka[uredi | uredi izvor]

U 2013. Linux kernel 3.10 je imao 15.803.499 linija koda. Od 2007. godine, otprilike 5% koda otpada sržni dio kernela, dok 52% otpada na upravljačke programe.[13]

Održavanje i dugoročna podrška[uredi | uredi izvor]

Najnovija verzija kernela i starije verzije se održavaju odvojeno. Obično najnovija izdanja kernela nadgledao je Linus Torvalds.[14] Trenutne verzije objavljuje Greg Kroah-Hartman.[15]

Linux je evolucija, a ne inteligentni dizajn!

Razni slojevi unutar Linuxa, koji pokazuju granicu između korisničkog prostora i kernel prostora
Korisnički prostor Korisničke aplikacije Na primjer, bash, LibreOffice, GIMP, Blender, 0 A.D., Mozilla Firefox, itd.
Sistemske komponente niskog nivoa: Sistemski daemoni:
systemd, runit, logind, networkd, PulseAudio, ...
Prozorni sistem:
X11, Wayland, SurfaceFlinger (Android)
Druge biblioteke:
GTK+, Qt, EFL, SDL, SFML, FLTK, GNUstep, itd.
Grafika:
Mesa, AMD Catalyst, ...
C standarda biblioteka open(), exec(), sbrk(), socket(), fopen(), calloc(), ... (do 2000 podrutina)
glibc cilja da bude POSIX/SUS-kompatibilan, musl i uClibc cilja ugrađene sisteme, bionic je pisan za Android, itd.
Kernel mod Linux kernel stat, splice, dup, read, open, ioctl, write, mmap, close, exit, itd. (oko 380 sistemskih poziva)
Linux kernel System Call Interface (SCI, cilja da bude POSIX/SUS-kompatibilan)
Raspoređivanje procesa
podsistem
IPC
podsistem
Upravljanje memorijom
podsistem
Virtualni
podsistem
Mrežni
podsistem
Druge komponente: ALSA, DRI, evdev, LVM, device mapper, Linux Network Scheduler, Netfilter
Linux siguronosni moduli: SELinux, TOMOYO, AppArmor, Smack
Hardver (CPU, radna memorija, uređaji za pohranu, itd.)

Također pogledajte[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ "Linux Logos and Mascots". Linux Online. 2008. Arhivirano s originala, 15 August 2010. Pristupljeno 11 August 2009.  Nepoznat parametar |url-status= ignorisan (pomoć)
  2. ^ The Linux Kernel Open Source Project on Open Hub: Languages Page
  3. ^ "kernel/git/stable/linux-stable.git". git.kernel.org. 16 October 2002. Arhivirano s originala, 13 January 2013. Pristupljeno 21 August 2012. path: root/firmware/WHENCE  Nepoznat parametar |url-status= ignorisan (pomoć)
  4. ^ "README". git.kernel.org. Arhivirano s originala, 24 July 2012. Pristupljeno 12 November 2010. 
  5. ^ "TOP500 Supercomputer Sites: Operating system Family / Linux". Top500.org. Pristupljeno 5 October 2019. 
  6. ^ Richardson, Marjorie (1 November 1999). "Interview: Linus Torvalds". Linux Journal. Pristupljeno 20 August 2009. 
  7. ^ "Re: GPLv3 Position Statement". 
  8. ^ "Linux Kernel Copying". Arhivirano s originala, 21 December 2012. Pristupljeno 25 September 2013. 
  9. ^ "Linux-2.4.0-test8". 
  10. ^ "FAQ: Preemption". kernelnewbies.org. 22 August 2009. Pristupljeno 7 May 2015. 
  11. ^ a b Jonathan Corbet (24 February 2003). "Driver porting: the preemptible kernel". LWN.net. Pristupljeno 7 May 2015. 
  12. ^ Kubbilun, Ingo A. (2 June 2004). "Linux kernel patch for Intel Compiler" (jezik: njemački). Pyrillion.org. Arhivirano s originala, 22 July 2011. Pristupljeno 12 November 2010. 
  13. ^ Marti, Don. "Are top Linux developers losing the will to code?". ComputerworldUK (jezik: en-GB). Pristupljeno 2016-10-24. 
  14. ^ "Linux MAINTAINERS file". Arhivirano s originala, 2013-01-12. 
  15. ^ Torvalds, Linus (16 September 2018). "Linux 4.19-rc4 released, an apology, and a maintainership note". LKML. Pristupljeno 23 September 2018. 
  16. ^ "Linux Evolution". 26 March 2008. 

Vanjski linkovi[uredi | uredi izvor]