Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: linux_nadsenec 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 ?
-
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
-
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
-
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.
-
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.
-
Jeste prihodim relevantni odkaz: https://wiki.eclipse.org/HowTo_use_the_CDT_to_navigate_Linux_kernel_source
-
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?
-
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.
-
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/ (http://lxr.free-electrons.com/source/)
-
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? ;)
-
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.
-
na uvod je velmi dobra http://knihy.cpress.cz/jadro-systemu-linux.html
-
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...
-
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.
-
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...
Zkusils něco pohledat tady?
https://www.root.cz/knihy/ (https://www.root.cz/knihy/)
https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#linux (https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md#linux)
http://www.tldp.org/ (http://www.tldp.org/)
-
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...
Mozem Ti ju poziciat, ak chces.
-
Mrkněte na kernelnewbies.org , případne by se Vám možná mohl líbit projekt Kernel Janitors, což jsou takové "uklížečky" kernel kódu, je to užitečné a jako start kernel hackera to není špatné, krom jiného pochopíte i "štábní kulturu".
http://kernelnewbies.org/KernelJanitors
http://kernelnewbies.org/KernelJanitors/Todo
F.
-
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...
Mozem Ti ju poziciat, ak chces.
To by bolo idealne, ako som cital na internete, je to kvalitna kniha pre zaciatocnikov.
-
Mrkněte na kernelnewbies.org , případne by se Vám možná mohl líbit projekt Kernel Janitors, což jsou takové "uklížečky" kernel kódu, je to užitečné a jako start kernel hackera to není špatné, krom jiného pochopíte i "štábní kulturu".
http://kernelnewbies.org/KernelJanitors
http://kernelnewbies.org/KernelJanitors/Todo
F.
Dakujem, snad sa niekam dopracujem s timito vsetkymi zdrojmi :)
-
Začal bych tady https://github.com/torvalds/linux/blob/master/init/main.c#L479
-
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.
Mas nejaky tip, kde zohnat specifikaciu, ako ma ten driver fungovat? Stacil by Windows driver + debugger, to by som mozno dokazal. Este schopnejsi by to mozno dokazali aj s logickym analyzatorom a bez driverov. Alebo ti najschopnejsi tak, ako sa zevraj robila priemyselna spionaz - freza a mikroskop. Dokazem napisat boilerplate kod, aby sa driver pustil pri tom najdenom zariadeni, ale neviem, co do zariadenia posielat a kde a aky vystup mam ocakavat.
-
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...
Mozem Ti ju poziciat, ak chces.
To by bolo idealne, ako som cital na internete, je to kvalitna kniha pre zaciatocnikov.
Napis svoj mail.
-
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...
Mozem Ti ju poziciat, ak chces.
To by bolo idealne, ako som cital na internete, je to kvalitna kniha pre zaciatocnikov.
Napis svoj mail.
prave vytvoreny: random159852@gmail.com
-
Hele, ked si nevies dat normalny mail, tak kasli na to. Mas aspon 15?
-
Hele, ked si nevies dat normalny mail, tak kasli na to. Mas aspon 15?
mam 18, a mail pouzivam iba na skolu, a mam tam svoje realne meno, to uz som si mohol rovno sem do "Jméno" dat svoje prave meno. Ale tak nemusis to uz riesit, na upnito som uz nasiel tu knihu.
-
Hej, cely internet sa poserie z Tvojho realneho mena. Ked nie si ochotny niest za svoje nazory zodpovednost, nelez na internet..
-
Hej, cely internet sa poserie z Tvojho realneho mena. Ked nie si ochotny niest za svoje nazory zodpovednost, nelez na internet..
Koukám, jeden paranoik a hned se někteří lidé mohou zbláznit :D
-
Hej, cely internet sa poserie z Tvojho realneho mena. Ked nie si ochotny niest za svoje nazory zodpovednost, nelez na internet..
Řekl iwtu :D
-
omg, chce hackovat jadro a knihu si uwarezit nevie :P