Linux kernel
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 | |
---|---|
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 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
urediLinux 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
urediLinux 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
urediU 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
urediNajnovija 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
urediReference
uredi- ^ "Linux Logos and Mascots". Linux Online. 2008. Arhivirano s originala, 15. 8. 2010. Pristupljeno 11. 8. 2009.
- ^ The Linux Kernel Open Source Project on Open Hub: Languages Page
- ^ "kernel/git/stable/linux-stable.git". git.kernel.org. 16. 10. 2002. Arhivirano s originala, 13. 1. 2013. Pristupljeno 21. 8. 2012.
path: root/firmware/WHENCE
- ^ "README". git.kernel.org. Arhivirano s originala, 24. 7. 2012. Pristupljeno 12. 11. 2010.
- ^ "TOP500 Supercomputer Sites: Operating system Family / Linux". Top500.org. Pristupljeno 5. 10. 2019.
- ^ Richardson, Marjorie (1. 11. 1999). "Interview: Linus Torvalds". Linux Journal. Pristupljeno 20. 8. 2009.
- ^ "Re: GPLv3 Position Statement".
- ^ "Linux Kernel Copying". Arhivirano s originala, 21. 12. 2012. Pristupljeno 25. 9. 2013.
- ^ "Linux-2.4.0-test8".
- ^ "FAQ: Preemption". kernelnewbies.org. 22. 8. 2009. Pristupljeno 7. 5. 2015.
- ^ a b Jonathan Corbet (24. 2. 2003). "Driver porting: the preemptible kernel". LWN.net. Pristupljeno 7. 5. 2015.
- ^ Kubbilun, Ingo A. (2. 6. 2004). "Linux kernel patch for Intel Compiler" (jezik: njemački). Pyrillion.org. Arhivirano s originala, 22. 7. 2011. Pristupljeno 12. 11. 2010.
- ^ Marti, Don. "Are top Linux developers losing the will to code?". ComputerworldUK (jezik: engleski). Pristupljeno 24. 10. 2016.
- ^ "Linux MAINTAINERS file". Arhivirano s originala, 12. 1. 2013.
- ^ Torvalds, Linus (16. 9. 2018). "Linux 4.19-rc4 released, an apology, and a maintainership note". LKML. Pristupljeno 23. 9. 2018.
- ^ "Linux Evolution" (PDF). 26. 3. 2008. Arhivirano s originala (PDF), 14. 12. 2013. Pristupljeno 11. 11. 2019.
Vanjski linkovi
uredi- 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