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
Citace od: BLEK. 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
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
Citace od: BLEK. kdy 30. 03. 2016, 11:15: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?
Citace od: BLEK. 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
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.
Citace od: hu 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.
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? ;)
Citace od: hu 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? ;)
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
Citace od: iwtu kdy 30. 03. 2016, 21:00:59
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...
Citace od: linux_nadsenec kdy 30. 03. 2016, 18:21:41
Citace od: hu 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? ;)
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.
Citace od: linux_nadsenec kdy 30. 03. 2016, 22:30:22
Citace od: iwtu kdy 30. 03. 2016, 21:00:59
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/)
Citace od: linux_nadsenec kdy 30. 03. 2016, 22:30:22
Citace od: iwtu kdy 30. 03. 2016, 21:00:59
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.
Citace od: iwtu kdy 01. 04. 2016, 10:23:15
Citace od: linux_nadsenec kdy 30. 03. 2016, 22:30:22
Citace od: iwtu kdy 30. 03. 2016, 21:00:59
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.
Citace od: faha kdy 01. 04. 2016, 11:59:24
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
Citace od: hu kdy 30. 03. 2016, 22:56:20
Citace od: linux_nadsenec kdy 30. 03. 2016, 18:21:41
Citace od: hu 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? ;)
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.
Citace od: linux_nadsenec kdy 01. 04. 2016, 20:53:44
Citace od: iwtu kdy 01. 04. 2016, 10:23:15
Citace od: linux_nadsenec kdy 30. 03. 2016, 22:30:22
Citace od: iwtu kdy 30. 03. 2016, 21:00:59
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.
Citace od: iwtu kdy 02. 04. 2016, 17:21:20
Citace od: linux_nadsenec kdy 01. 04. 2016, 20:53:44
Citace od: iwtu kdy 01. 04. 2016, 10:23:15
Citace od: linux_nadsenec kdy 30. 03. 2016, 22:30:22
Citace od: iwtu kdy 30. 03. 2016, 21:00:59
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?
Citace od: iwtu kdy 03. 04. 2016, 02:30:17
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..
Citace od: iwtu kdy 03. 04. 2016, 23:37:29
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
Citace od: iwtu kdy 03. 04. 2016, 23:37:29
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