Studium kernelu - ako na to?

linux_nadsenec

Studium kernelu - ako na to?
« kdy: 29. 03. 2016, 23:45:18 »
Zdravim, potreboval by som od rootu pomoc :)
Mam ako taku znalost jazyku C a Assembleru, niesom ziadny profesional. Jedna sa o to, ze vo volnom case si studujem nieco o linux kerneli, v com nieje problem, ale obcas narazim na take veci ako su napriklad makra pre systemove volania a neviem k tomu najst poriadne vysvetlenia (princip a dovod) a potom mam zmetok v tom co som sa naucil predtym. Otazka teda znie, ako spravnym sposobom studovat linux kernel ?


BLEK.

Re:Studium kernelu - ako na to?
« Odpověď #1 kdy: 30. 03. 2016, 11:05:25 »
znalost makier nie je vec iba kernelu, su v skoro kazdom C programe

princip je ten ze ked prekladas C program do spustitelneho tak tie makra nic ine nespravia len ten text v tom textovom subore sa nahradi inym textom

pouziva sa to kvoli prehladnosti fungovalo by aj keby programator ten text makra Copy+paste skopiroval inde , lenze to zhorsuje citatelnost

BLEK.

Re:Studium kernelu - ako na to?
« Odpověď #2 kdy: 30. 03. 2016, 11:15:58 »
zalezi co konkretne z linuxom planujes robit. su aj take knihy napriklad o tej virtualnej pamati ze ako to funguje:

https://www.kernel.org/doc/gorman/pdf/understand.pdf

virtualna pamet to je nieco ako paska turingovho stroja. mas proste kusky pasky  (tie stranky cca 4kb ale byvaju aj velke)

do tej pameti si program co bezi na linuxe dava svoje udaje, a to jadro robi tu robotu ze mu to vymiena tu pamat, nieco ako ked ti dojde zosit tak si dokupis. logicky ten proces vtedy nezhavaruje anii neskonci, len je zastaveny po velmi kratku dobu, jadro ho zastavi, vymeni pamat, a znova spusti.

skoro ten isty princip je pri windows jadre alebo mac

Daniel Kozak

Re:Studium kernelu - ako na to?
« Odpověď #3 kdy: 30. 03. 2016, 11:26:47 »
znalost makier nie je vec iba kernelu, su v skoro kazdom C programe

princip je ten ze ked prekladas C program do spustitelneho tak tie makra nic ine nespravia len ten text v tom textovom subore sa nahradi inym textom

pouziva sa to kvoli prehladnosti fungovalo by aj keby programator ten text makra Copy+paste skopiroval inde , lenze to zhorsuje citatelnost

Tak o makrech v C se toho da rict hodne, ale tvrdit ze zvysuji prehlednost a citelnost tak to chce poradnou odvahu :). Prave naopak nejhorsi na makrech je ze zpusobuji necitelnost kodu, ale bohuzel se jim obcas v jazyku jako je C neda vyhnout.

hu

Re:Studium kernelu - ako na to?
« Odpověď #4 kdy: 30. 03. 2016, 11:49:11 »
Ted me mozna nekteri budou chtit kamenovat, ale pro ziskani zakladni orientace v kernelu se mi vyplatilo ho cely natahnout do Eclipse a nechat naindexovat. Zasadni vyhoda je moznost kontextove navigace pomoci ctrl+klik, kdy to cloveka hodi na definici / deklaraci prislusneho symbolu.

Clovek toho proste musi hodne nacist, a to jak kodu, tak i textaku v /documentation.


hu

Re:Studium kernelu - ako na to?
« Odpověď #5 kdy: 30. 03. 2016, 11:49:39 »

hu

Re:Studium kernelu - ako na to?
« Odpověď #6 kdy: 30. 03. 2016, 11:57:58 »
virtualna pamet to je nieco ako paska turingovho stroja. mas proste kusky pasky  (tie stranky cca 4kb ale byvaju aj velke)

Tak teda debilnejsi definici jsem uz dlouho necetl... ano, kazda pamet je "paska turingovho stroja". OMG, to mu ma pomoct jak presne?

linux_nadsenec

Re:Studium kernelu - ako na to?
« Odpověď #7 kdy: 30. 03. 2016, 16:49:54 »
znalost makier nie je vec iba kernelu, su v skoro kazdom C programe
princip je ten ze ked prekladas C program do spustitelneho tak tie makra nic ine nespravia len ten text v tom textovom subore sa nahradi inym textom
pouziva sa to kvoli prehladnosti fungovalo by aj keby programator ten text makra Copy+paste skopiroval inde , lenze to zhorsuje citatelnost
To mi je samozrejme jasne, skor sa jedna o to, ze vyznam tych makier napriklad SYSCALL_DEFINEx. mi je nejasny. Teda asi lepsie polozena otazka je, aky je vyznam obsahu daneho makra v pripade ze je to [1..6]? Ale to by bolo asi na dlho, skor mi ide o to, kde zozeniem zdroje napriklad k timto makram a ich obsahom atd. A v tom kernely je koli makram ocividne akurat tak bordel.

linux_nadsenec

Re:Studium kernelu - ako na to?
« Odpověď #8 kdy: 30. 03. 2016, 16:54:52 »
Ted me mozna nekteri budou chtit kamenovat, ale pro ziskani zakladni orientace v kernelu se mi vyplatilo ho cely natahnout do Eclipse a nechat naindexovat. Zasadni vyhoda je moznost kontextove navigace pomoci ctrl+klik, kdy to cloveka hodi na definici / deklaraci prislusneho symbolu.
Clovek toho proste musi hodne nacist, a to jak kodu, tak i textaku v /documentation.
Dakujem za odpoved. Ja konkretnejsie pouzivam stranku http://lxr.free-electrons.com/source/

hu

Re:Studium kernelu - ako na to?
« Odpověď #9 kdy: 30. 03. 2016, 18:10:19 »
Jasnr, lxr je supr. Ja ale potřeboval rovnou psát modul, tak proto eclipse. A nechces si rovnou taky napsat třeba nejakej menší driver?  ;)

linux_nadsenec

Re:Studium kernelu - ako na to?
« Odpověď #10 kdy: 30. 03. 2016, 18:21:41 »
Jasnr, lxr je supr. Ja ale potřeboval rovnou psát modul, tak proto eclipse. A nechces si rovnou taky napsat třeba nejakej menší driver?  ;)
Tak co som testoval, tak som si spravil modul na spajany zoznam kernel vlakien, cize vpodstate nic uzitocne len take testovanie. Nechcem sa moc pustat do pisania driveru ked nemam poriadny teoreticky zaklad.

iwtu

Re:Studium kernelu - ako na to?
« Odpověď #11 kdy: 30. 03. 2016, 21:00:59 »

linux_nadsenec

Re:Studium kernelu - ako na to?
« Odpověď #12 kdy: 30. 03. 2016, 22:30:22 »
na uvod je velmi dobra http://knihy.cpress.cz/jadro-systemu-linux.html
tuto knihu som videl uz davno a som ju aj hladal, ale nenasiel som ju v ziadnej forme...

hu

Re:Studium kernelu - ako na to?
« Odpověď #13 kdy: 30. 03. 2016, 22:56:20 »
Jasnr, lxr je supr. Ja ale potřeboval rovnou psát modul, tak proto eclipse. A nechces si rovnou taky napsat třeba nejakej menší driver?  ;)
Tak co som testoval, tak som si spravil modul na spajany zoznam kernel vlakien, cize vpodstate nic uzitocne len take testovanie. Nechcem sa moc pustat do pisania driveru ked nemam poriadny teoreticky zaklad.

To je blbost. Vytahni ze šuplíku třeba dvb tuner, co ti nechodí, nebo prastarou ATM sitovku do PCI, a zkratka to rozchod. Nejlepší škola; krom psaní kódu zároveň pochopis, jak funguje byrokracie kolem jádra a to je skoro vic, než ten driver napsat.