it-swarm-eu.dev

Jak porozumět zdrojovému kódu Linuxu pro začátečníky?

Jsem student, který se zajímá o správu paměti, zejména o komponentu pro nahrazení stránky v linuxovém jádře.

Jaké jsou různé návody, které mi mohou pomoci pochopit zdroj jádra?

Snažil jsem se přečíst knihu Porozumění Linux Virtual Memory Manager od Mel Gormana a Porozumění Linuxovému jádr od Cesatiho a Boveta, ale nevysvětlují tok kontroly skrz kód. Nakonec vysvětlují různé použité datové struktury a vykonávají různé funkce. Díky tomu je kód matoucí.

Můj projekt se zabývá vyladěním algoritmu nahrazování stránek v jádru hlavního proudu a analýzou jeho výkonu na sadu pracovních vytížení. Existuje chuť linuxového jádra, které by bylo snazší pochopit (pokud ne linux-2.6.xx jádro)?

12
user16867

Zaměření na datové struktury. Porozumění datovým strukturám je obvykle důležitější než kód.

Pokud jsou zobrazeny pouze datové struktury, ale žádný kód, stále získáte obraz o systému.

Naopak, pokud je zobrazen pouze kód, ale ne datové struktury, je velmi obtížné porozumět systému.

"Ve skutečnosti tvrdím, že rozdíl mezi špatným programátorem a dobrým je v tom, zda považuje jeho kód nebo jeho datové struktury za důležitější. Špatní programátoři se o kód starají. Dobrý programátoři se obávají datových struktur a jejich vztahů." - Linus Torvalds

„Ukažte mi své vývojové diagramy a zakryjte vaše tabulky, a já budu i nadále mystifikován. Ukažte mi své tabulky a obvykle nebudu vaše vývojové diagramy potřebovat; budou zřejmé.“ - Fred Brooks.

13
Maglob

Kernel Newbies je docela dobrý, myslím

Existuje spousta lidí se zájmem dozvědět se, jak jádro funguje, myslím, že byste se tam mohli naučit něco nebo dva

4
Mahmoud Hossam

Možnost ladicího programu by mohla být užitečná.

Některé další věci, které lze udělat po vytvoření jádra s volbou debugger, je napsat několik ukázkových testovacích aplikací, které volají různá systémová volání, která vyvolá jádro, a můžete procházet jeden kus kódu jádra najednou a porozumět jeho implementaci.

3
Saroj Panda

V části Operační systémy v článku Co by měl každý vědě o počítačích vědět , Matt Might doporučil Linux Kernel Development by Love . Přestože se jedná o pokročilé téma, kniha je velmi dobře napsaná.

2
Anthony

Jedním ze způsobů, jak se naučit složitou základnu kódu, je spustit v debuggeru a zjistit, kam vás věci zavedou. Pro Linux existuje Linux Kernel Debugger .

0
LennyProgrammers