Linux kernel
Linux | |
---|---|
![]() | |
![]() 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 | )
Dostupan u | Engleski |
Vrsta kernela | Monolitni |
Licenca | GPLv2 sa BLOB[3] |
Službeni veb-sajt | www |
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 osmislio i napravio 1991. godine 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, ne-vlasnički 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

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
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
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
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!
– Linus Torvalds, 2005[16]
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
Reference
- ^ "Linux Logos and Mascots". Linux Online. 2008. Arhivirano s originala, 15 August 2010. Pristupljeno 11 August 2009. CS1 održavanje: nepreporučeni parametar (link)
- ^ The Linux Kernel Open Source Project on Open Hub: Languages Page
- ^ "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
CS1 održavanje: nepreporučeni parametar (link) - ^ "README". git.kernel.org. Arhivirano s originala, 24 July 2012. Pristupljeno 12 November 2010. CS1 održavanje: nepreporučeni parametar (link)
- ^ "TOP500 Supercomputer Sites: Operating system Family / Linux". Top500.org. Pristupljeno 5 October 2019. CS1 održavanje: nepreporučeni parametar (link)
- ^ Richardson, Marjorie (1 November 1999). "Interview: Linus Torvalds". Linux Journal. Pristupljeno 20 August 2009. CS1 održavanje: nepreporučeni parametar (link)
- ^ "Re: GPLv3 Position Statement".
- ^ "Linux Kernel Copying". Arhivirano s originala, 21 December 2012. Pristupljeno 25 September 2013. CS1 održavanje: nepreporučeni parametar (link)
- ^ "Linux-2.4.0-test8".
- ^ "FAQ: Preemption". kernelnewbies.org. 22 August 2009. Pristupljeno 7 May 2015. CS1 održavanje: nepreporučeni parametar (link)
- ^ a b Jonathan Corbet (24 February 2003). "Driver porting: the preemptible kernel". LWN.net. Pristupljeno 7 May 2015. CS1 održavanje: nepreporučeni parametar (link)
- ^ 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. CS1 održavanje: nepreporučeni parametar (link)
- ^ Marti, Don. "Are top Linux developers losing the will to code?". ComputerworldUK (jezik: engleski). Pristupljeno 2016-10-24.
- ^ "Linux MAINTAINERS file". Arhivirano s originala, 2013-01-12. CS1 održavanje: nepreporučeni parametar (link)
- ^ Torvalds, Linus (16 September 2018). "Linux 4.19-rc4 released, an apology, and a maintainership note". LKML. Pristupljeno 23 September 2018. CS1 održavanje: nepreporučeni parametar (link)
- ^ "Linux Evolution" (PDF). 26 March 2008.
Vanjski linkovi
- Službeni sajt
- Indeks dokumentacije za Linux kernel
- Linux kernel "man pages"
- Kernel Bugzilla i regresije za svaku nedavnu verziju kernela
- Kernel Novi Kolači, izvor raznih informacija vezanih za kernel
- LinGrok, unakrsna referenca izvornog koda Linux kernela
- Greg Kroah Hartman o Linux kernelu na YouTubeu