Kernel

Dinamikus Hertz állítás a 2.6-hoz

Címkék

Andrea Arcangeli egy olyan patchet készített a 2.6-os kernelhez, amellyel lehetőség nyílik arra, hogy a kernel HZ értéket dinamikusan, boot időben változtassuk meg.

A HZ érték nem más, mint a timer interrupt frekvenciája. A standard 2.4-es kernelben a HZ értéke 100 volt az x86-os rendszereken. Ez a 2.5-ös fejlesztői kernel idején 1000-re növekedett. Ha a HZ értéke 1000, akkor a timer 1/1000 másodpercenként (1ms) üt be.

A timer interrupt a rendszer lelke. Minden ennek függvényében jön létre vagy szűnik meg a kernelben. Ez a periódus a rendszer ``finomságának'' mértékegysége. A timerek 1/1000 másodpercenként bukkannak fel, az időszeletek (timeslices) 1/1000 másodpercenként válnak esedékessé, stb.A megnövelt HZ értéknek van pozitív és negatív oldala is. Minél nagyobb a HZ értéke, annál pontosabb időzítést lehet elvárni a kerneltől. A poll() és a select() függvények timer-alapúak, teljesítmény növekedést könyvelhetünk el, ha növeljük a HZ értéket. Szintén javul a processzek válaszadási képessége (latency).

A pozitív oldal mellett vannak negatív hatások is. A legnagyobb ezek közül a megnövekedett timer overhead. Azzal, hogy a HZ értéket 100-ról 1000-re növeljük, tízszer annyi timer interrupt keletkezik, ami tízszeres overhead-et jelent. Ez a korszerű számítógépeknél nem okoz problémát, de a régebbi 386/486-os gépeknél lassuláshoz vezethet. A másik probléma a jiffie átfordulás. A HZ=100 értéknél a rendszer uptime 497 naponként fordult át. Ha a HZ értékét megnöveltük 1000-re, akkor az átfordulás 49.7 naponként következett be. Ez annak volt köszönhető, hogy 32 bites változóban tárolták a jiffie értékét. A jiffies változó helyett bevezetésre került a jiffie_64, hogy a probléma megoldódjon.

Mint az látszik, a magasabb HZ nem minden rendszer esetén hoz pozitív változást. Ezért gondolta azt AA, hogy hasznos lenne egy dinamikus változtatási lehetőség.

Bővebben a KernelTrap-on itt.

Linus Torvalds: Linux 2.6.10-rc3

Címkék

Linus kiadta a 2.6.10-es Linux kernel harmadik kiadásra jelölt verzióját. Linus szeretné, ha a 2.6.10 final karácsonyra vagy hanuka ünnepére megjelenhetne. Ezért kéri a fejlesztőket, hogy kizárólag bugfixeket küldjenek.A kiadásban többnyire kisebb javítások, MIPS frissítés, ACPI, mtd, arm, uml frissítések, új i2c driverek, stb. találhatók.

Az anyag letölthető a kernel.org-ról, vagy a tükörszervereiről.

A változások listája Linus levelében.

grsecurity 2.0.2 a 2.4.28-as kernelhez

Címkék

Megjelent a grsecurity patch 2.0.2-es verziója a 2.4.28-as kernelhez. A 2.6-os kernelekhez új verzió a PaX kód elkészültével jelenik meg.Letöltés:

grsecurity-2.0.2-2.4.28.patch.gz

gradm-2.0.2.tar.gz


Bejelentés:

-------------

From: spender@grsecurity.net

To: grsecurity@grsecurity.net

Subject: [grsec] grsecurity 2.0.2 released for Linux 2.4.28

grsecurity 2.0.2 has been released for Linux 2.4.28. Changes in this

release include:

* PaX updates and addition of PaX code for MIPS, MIPS64, IA64, and

AMD64

* Chroot restrictions no longer allow zombie tasks to display in a

process listing

* Randomized PIDs optimization

* PaX's RANDKSTACK feature is disabled in the high security setting

if the CPU does not support it

* Completely rewritten logging system that significantly reduces the

.text size of the grsec-enabled kernel

* CAP_FOWNER was removed from the set of capabilities disallowed in

a chroot

* The IP address tagging table was moved into the .bss, fixing a

sparc32 booting problem

* PaX ACL hook support was added and is automatically set to the

"direct" method in the kernel configuration

* Fixed sysctl compile error when grsec is disabled

* Fixed RBAC bug with process protect flag

* Fixed any future problems with kernel role in gradm

* Solved memory problems with learning analysis: only one subject

will be resident in memory at a time during full learning analysis

* Caching was added to gradm that dramatically reduces run time of

learning analysis


The largest changes in this release were the logging system rewrite and

the learning analysis rewrite. Previously, all logging in grsecurity was

done through a single, large macro, as this was easiest (and when the

macro was first implemented, it was not very large and not called very

often). Unfortunately, as grsecurity grew, the size of that macro

increased as did the number of callers. This resulted in up to 500kb of

.text being duplicated throughout the grsecurity code. By grouping the

different types of logs and optimizing based on their similarities, I

was able to create a variable argument logging function to replace the

previous macro, resulting in cache improvements and a significantly

smaller kernel .text.

One of the most common problems with the gradm learning analysis was

that large logs caused OOM errors. This was due to unnecessary

allocations, memory leaks, and a problem with the design that required

that all logs be analyzed and reduced, then written out to disk all at

once. I've eliminated the memory leaks, removed the unnecessary

allocations, and modified the system so that after a new subject is

reduced, the generated policy is written out and all allocations for

that subject are freed. This part comes at the additional time cost of

multiple passes through the log file, however.

To speed up the parsing of the log files, I implemented caching for the

routines that insert parsed filenames into filename graphs. This reduced

CPU time for the most used function by about 1000%, as the function has

a high time complexity.

Grsecurity 2.0.3 will include further speed improvements and will

contain a configuration file for learning that will allow you to ignore

learning on certain processes, perform an inherit-based learning on

certain processes, set the cache size of the grlearn daemon, etc.

Grsecurity 2.0.2 will be released for the 2.6 series of kernels when a

PaX port is complete for the latest 2.6 kernel. As the 2.6 series of

kernels are mimicking more of a development series than a stable series,

the 2.4 series of kernels are recommended at this time.

Also, please see the note regarding sponsors on the news page.

Thanks for your support of grsecurity, and enjoy.

-Brad

Linus Torvalds: Linux 2.6.10-rc2

Címkék

Linus ma kiadta a 2.6.10-es Linux kernel második kiadásra jelölt verzióját. Régóta nem volt kiadás, így a változások meglehetősen jelentősek. Linus a továbbiakban stabilizációt szeretne, ezért kéri, hogy a 2.6.10 megjelenéséig az új funkciókat megvalósító patchekkel várjanak a fejlesztők, és csak a bugfixeket küldjék.

Mi változott?Számos driver frissült, némelyik csak triviális frissítéseket kapott, de vannak amelyek jelentősen változtak. Változások történtek a USB, ALSA, fbdev, IDE, i2c, v4l vonalon. Frissültek a ppc64, m68k, uml, parisc, arm architektúrák, változott az NTFS kód és a dokumentáció is.

Változások listája Linus levelében. Az anyag letölthető a szokásos mirrorokról.

Miért támogatott ennyi GCC verzió?

Címkék

A címben szereplő kérdés a Linux kernelre vonatkozik. Az LKML-n érdeklődött valaki, hogy miért kell a Linux kernelben aktívan támogatni a GCC fordítók ilyen széles választékát. Az egyik indok az volt, hogy azért, mert a korábbi fordítók sokkal gyorsabbak. Erre válaszként olyan kédések jöttek, hogy: ``Miért gond ez kernelfordításkor?'', ``Milyen gyakran fordítasz kernelt?''

Linus egyetértett abban, hogy az egyik ok valóban a sebesség probléma. Sok embernek fontos, hogy milyen gyorsan fordul el a kernel. De emellett más oka is van a korábbi fordítók támogatásának...Az ok az, hogy a GCC 3.x korai verziói nagyon rossz kódot generálnak, nagyon bugosak. Ahogy Linus elmondta, hosszú ideje csak egy dolog miatt érdemes gcc-t frissíteni, és ez a C++ támogatás. Az alap C támogatás szerinte minden egyes új gcc verzióban minden szempontból egyre rosszabb volt. Mint írja később javult a helyzet, de véleménye szerint a gcc 3.x nem igazán használható a sima C-hez egészen a 3.3 verzióig.

Bővebben a KernelTrap-on itt.

Linux kernel - érdekes FAQ

Címkék

Érdemes az LKML oldalán található FAQ-ba belenézni, sok - nemcsak technikai vonatkozású - kérdésre olvasható válasz a kernellel kapcsolatban.

  • Ki kicsoda típusú kérdések

    (Ki Alan Cox?

    Ki Richard M. Stallman?

    Ki Andrew S. Tanenbaum?)

  • CPU kérdések

    (Melyik a "legjobb" processzor Linuxhoz?

    Melyik a leggyorsabb?

    Milyen CPU architektúrákon futtattható Linux?)

  • Az operációs rendszert illető kérdések

    (Mik ezek a "bazárra" és "katedrálisra" hivatkozások?

    Miért lesz egyre nagyob a kernelforrás?

    Áttehetnénk a hálózatkezelést/TCP stacket user-space-be?)

  • Titokzatos kernelüzenetek

    (Mi az, hogy DriveReady SeekComplete Error?)


  • Különös kernelviselkedés

    (Miért tudok egy filerendszert több helyre mountolni?

    Miért mond a kernel 0 shared memory hasznalatot?

    Miért nem látja az összes RAM-ot?)


  • Programozási vallásháború

    (Miért C-ben/assembly-ben irtak a linux kernelt?

    Miért nem írjuk újra a kernelt C++ -ban?

    Miért nem írjuk újra a kernelt, mint microkernelt? )



    A siteon megtalálható még az Alapvető Linux kernel dokumentáció is,

    valamint itt a teljes FAQ index.