Linux kernel
A HupWiki-ből...
http://www.hup.hu/images/topics/kernel.png
A Linux kernel fejlesztését Linus Torvalds finn diák kezdte el az 1990-es évek elején. A fejlesztés korai szakaszában még maga a készítő sem fűzött komolyabb reményeket az új operációs rendszer maghoz. Nem csak Ő volt bizalmatlan saját munkájával szemben, hanem az elismert operációs rendszer guru Andrew S. Tanenbaum is, akivel Linusnak komoly szakmai vitája volt. A vita alapja az volt, hogy Tanenbaum egy levelezési listán azt állította, hogy a Linux elavult.
Az idő viszont nem igazolta sem Linus kishitűségét, sem Tanenbaum szakmai állításait a Linux monolitikus kernelének elavultságával kapcsolatban. A Linux kernel fejlesztése - köszönhetően a sok ezer hozzájárulónak - szárnyalni kezdett. A Linux kernel jelenleg az egyik meghatározó szereplője napjaink operációs rendszereinek.
A Linux kernel fejlesztése sokáig csak levelezési listákon át beküldött foltok segítségével folyt (miközben már évtizedek óta használtak verziókezelő rendszereket, mint például az SCCS-t, RCS-t vagy éppen a CVS-t). Később a fejlesztők rájöttek, hogy ezzel a módszerrel nem lehet a megnövekedett tempónak megfelelő hatékonysággal dolgozni. Ekkortájt ajánlotta fel Larry McVoy zárt forrású verziókezelő rendszerét a BitKeeper-t a Linux kernel fejlesztéséhez. Linus kipróbálta, megtetszett neki így a fejlesztés a BitKeeperben folyt tovább. A Bitkeeper hatékonyságát jól jellemzi, hogy Linus később úgy nyilatkozott, hogy a Bitkeeper használatának köszönhetően megkétszereződött a Linux kernel fejlesztésének tempója. 2005 áprilisában BitMover visszavonta az ingyenes BitKeeper-t, ezért Linus úgy döntött, hogy a jövőben nem használja azt. Pár napos fejlesztés után Linus egy saját kernelfejlesztést segítő eszközzel állt elő. Az új eszköz a git nevet kapta. Azóta a Linux kernel fejlesztése ezen rendszer segítségével zajlik.
Tartalomjegyzék |
Kernelmodul
A linux kernel eltér a hagyományos értelemben vett monolitikus kernelektől abban, hogy a kód nagy része (jellemzően egy-egy adott hardware támogatásáért felelős driver, azaz "eszközmeghajtó") nemcsak a kernel állományban foglalhat helyett, hanem külön u.n. kernel modulból is betöltehető. Ez a 2.0-ás kernelben bevezetett változás jelentősen lecsökkenti a kernel méretét és megkönnyíti a fejlesztést (adott modul új verzióra cserélése újraindítás nélkül, vagy épp 3rd party modulok fejlesztése akár a kerneltől eltérő licenszel). A kernel modulok általában a /lib/modules/kernel_verzio/ könyvtárban találhatók. A 2.4 szériáig a modprobe volt a fő modultöltő, ezt a 2.6-tól a module-init-tools váltotta fel (mivel megváltozott a kernel modulokért felelős API).
Kernel paraméterek valós idejű állítása
Például az RTC tuningolása (az MPlayerhez jól jön)
- összes beállítható érték lekérése: sysctl -a
- adott érték lekérdezése: cat /proc/sys/dev/rtc/max-user-freq
- adott érték beállítása: echo 1024 > /proc/sys/dev/rtc/max-user-freq
- adott érték lekérdezése (sysctl): sysctl dev.rtc.max-user-freq
- adott érték beállítása (sysctl): sysctl -w dev.rtc.max-user-freq=1024
- beállítások állandósítása: az /etc/sysctl.conf állományba írd be: dev.rtc.max-user-freq=1024
Kapcsolódó szócikkek
- CPU affinitás
- O(1) ütemező
- Swappiness
- Jiffies
- OOPS
- Linux kernel konfigurálása
- Linux kernel patchelés
- Patchset készítés
- LVM
- Tweak
- Linux kernel 2.6.X.Y bejelentés
Speciális változatok
FIXME: realtime, mikrokernel és társaik
Külső hivatkozások
- Kernel letöltése:
- Web: http://www.kernel.org/
- Ftp: ftp://ftp.kernel.org
- Rsync: rsync.kernel.org
- Forrás böngészés
- Hírek:
- az LKML FAQ válasza néhány gyakori kérdésre
- http://www.tux.org/lkml/#s1-18 - mit jelent a ".o will taint the kernel" pl a bináris nvidia modul betöltésekor?
- http://www.tux.org/lkml/#s15-3 - miért nem c++?
- http://www.tux.org/lkml/#s15-4 - miért nem mikrokernel?
- http://www.tux.org/lkml/#s15-5 - miért használnak 'goto't?
- http://www.tux.org/lkml/#s9-16 - miért nincs lokalizáció?
- http://www.tux.org/lkml/#s9-14 - miért swappel, ha van kihasználható memória?
- Egyéb:
- A kernel számozásának elve
- LinuxChanges A 2.6 kernel változásainak részletes és könnyen olvasható ismertetése
- Linux Kernel Bug Tracker