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

Speciális változatok

FIXME: realtime, mikrokernel és társaik

Külső hivatkozások