Kako naučiti Linux kernel u kombinaciji s Godson CPU-om?

How Learn Linux Kernel Combination With Godson Cpu



Uvod: 'Istraživanje jezgre s' Jezgrom ': Istraživanje i analiza Linux jezgre na temelju Loongsona' knjiga je koja se temelji na platformi Loongson i kombinira izvorni kod za istraživanje i analizu jezgre Linux-5.x.

Broj tekstova: 1583, približno vrijeme čitanja:1minuta



Na tržištu postoji mnogo klasičnih knjiga koje analiziraju Linux jezgru, posebno one iz područja Linux kernela. Siku Quanshu ':' Dizajn i implementacija jezgre Linuxa ',' Upravljački programi Linux uređaja ',' Dubinsko razumijevanje Linux jezgre 'i' Analiza scenarija izvornog koda jezgre Linuxa '.



Međutim, s jedne strane, većina postojećih knjiga temelji se na arhitekturi X86 ili ARM, s druge strane, većina postojećih knjiga temelji se na Linux jezgri verzije 2.4 ili 2.6, iako je u njima bilo puno dobrih izvornih knjiga zadnjih godina.



Istodobno, 'standardni vodiči' koji su angažirani u razvoju jezgre Godson su 'Korisnički priručnik za procesor Longson', 'Perspektiva arhitekture MIPS' i 'Dubinsko razumijevanje Linux kernela'. Međutim, 'Korisnički priručnik za procesor Longson' ne uključuje Linux kernel 'MIPS Architecture Perspective' opisuje tradicionalni MIPS procesor, koji je predaleko od stvarnog Godsona i verzije jezgre korištene u 'Dubinskom razumijevanju Linux kernela' Prestar.

Stoga je, kao što je Zhang Fuxin, istraživač s Instituta za računarstvo Kineske akademije znanosti rekao u preporuci: ' Objavljivanje ove knjige o razvoju jezgre koja se temelji na platformi Godson poklapa se s vremenom. '

Autor: Chen Hua je bio
Liječnik, viši inženjer. Trenutni zamjenik glavnog inženjera tvrtke Jiangsu Aerospace Longmeng Information Technology Co., Ltd. odgovoran je za temeljni razvoj procesora Loongson-3. Kao Održavatelj MIPS / Loongson 3 u Linux jezgri, velika količina koda službeno se predaje Linux kernelu.



50% popusta, besplatna poštarina po cijeloj zemlji (osim udaljenih područja)
Najkorisnije za cijelu mrežu, ograničeno vrijeme 5 dana

Zašto pisati ovu knjigu?

tko sam ja? Ja sam programer koji voli i Linux i Godson. Počeo sam raditi s Linux kernelom prije 16 godina. S Loongson Computerom počeo sam raditi prije 12 godina. Prije deset godina pridružio se bazi industrijalizacije Loongson. Tijekom posljednjih deset godina odrastao je s Loongsonom. Sada je postao Održavač Godsona 3 u Linux jezgri.

Neki ljudi kažu: 'Radi ono što radiš, voli ono što radiš', ali ja mislim da je 'Voli ono što radiš, radi ono što radiš' više je u skladu s održivim razvojem. Loongson i Linux su mi omiljeni i puni su motivacije za istraživanje. Uvijek sam imao naviku bilježiti prilikom čitanja izvornog koda jezgre, jer je uostalom kapacitet ljudskog mozga ograničen i bilješke su neophodne kako se sustav znanja nastavlja širiti. Način na koji bilježim započinje s ' Izvadak koda + umjereno pojednostavljenje + analiza komentara 'Uglavnom, ali razvojem vremena i nadogradnjom verzije jezgre, ukupan broj bilješki postajao je sve veći i veći, a istoimene funkcije u različitim verzijama postale su neprepoznatljive. Stoga često moram bilježiti više izvornih kodova u bilješke. Verzija i dodajte oznaku verzije na početku isječka koda. Iako su bilješke uglavnom za samoočitavanje, kao što pokazuje drugi zakon termodinamike, čitljivost bilješki neizbježno se pogoršala (Entropija je prevelika).

Od tada se rodila ideja o organiziranju bilježaka i zapisivanju u knjige. Izvorna ideja formirana je 2013.-2014., Ali bila je 2015. kada sam počeo pisati. U procesu pisanja knjige, metoda raščlanjivanja zadržala je karakteristike pojednostavljenog koda u bilješkama što je više moguće, ali svi su usvojili najnoviju verziju LTS-a (stabilnu verziju za dugoročno održavanje), odnosno verziju 5.4.x , u izboru verzije jezgre.

Što je odabrano za ovu knjigu?

Knjiga se fokusira na platformu Loongson i uglavnom analizira izvorni kod jezgre Linux. Prvo ću dati općeniti uvod u Loongson procesor i Linux kernel te predstaviti Brz i učinkovit način čitanja koda , To jest, 'prvo pogledajte obris, a zatim žvačite riječi.'

Operativni sustav je upravitelj cijelog računala. To je u osnovi softverska platforma velikih razmjera. Prirodno je pratiti tijek izvršavanja programa. Stoga, iz jezgre Linuxa na računalu Godson Proces pokretanja Početak proučavanja Linux jezgre dobra je polazna točka za stjecanje makro dojma Loongson procesora i Linux kernela.

Jezgra je najosnovniji i najvažniji dio operativnog sustava, a njegove su tri osnovne funkcije Rukovanje prekidima / iznimkama, upravljanje memorijom, upravljanje procesima . Sadržaj ova tri poglavlja što je više moguće slijedi načela pisanja 'od osnovne do više razine' i 'širine prvo i dubine druge', što čitateljima olakšava raspored redoslijeda čitanja prema njihovim potrebama. Linux kernel podržava višestruke arhitekture kao što su X86, ARM, MIPS i PowerPC, ali pruža u osnovi dosljedno operativno sučelje za programe više razine. Stoga su dio tri osnovne funkcije jezgre specifični sadržaji povezani s arhitekturom, a dio je opći okvir koji je neovisan o arhitekturi.

Budući da je Linux integrirani operativni sustav jezgre, pogonitelji uređaja također su implementirani na sloju jezgre. Opseg upravljačkog programa uređaja vrlo je širok i ova knjiga ne može obuhvatiti sve, samo su dva uobičajena tipična Upravljački program uređaja —— Radeon grafička kartica i mrežna kartica E1000E, radi ilustracije principa.

Jezgra Linuxa opsežna je i duboka. Iako je ova knjiga pretrpana stotinama stranica, više od 20 milijuna redaka izvornog koda zapravo je samo kap u moru. Iako sam nastojao da pokrivenost sadržaja učinim sveobuhvatnijom, ona je samo uključivala Pokretanje jezgre, abnormalni prekid, upravljanje memorijom, upravljanje procesima, upravljački program uređaja i upravljanje napajanjem Čeka se nekoliko uobičajenih tema, ali gotovo ništa o sustavima datoteka, mrežnim protokolima itd.

Kako pročitati desetke milijuna redaka izvornog koda?

Čitanje izvornog koda softvera jedini je način za svakog programera, posebno za programere jezgre. jer Razvoj jezgre nije da se u velikoj mjeri ponovno izmisli kotač, već da se razumije i ponovno iskoristi postojeći okvir dizajna jezgre što je više moguće , A zatim se obratite sličnim funkcionalnim modulima da biste dodali ili prepisali traženu funkciju. Nakon integriranja cjelokupnog okvira jezgre i određenih podsustava, moguće je stati na ramena divova kako bi poboljšali sam okvir i realizirali neovisne inovacije.

Pročitajte kod s ' Prvo širina 's' Prvo dubina 'Dva puta. Kod je poput stabla. 'Prvo širina' znači da prvo moramo pronaći deblo, zatim shvatiti koliko grana ima na deblu, a zatim otići do grane od interesa kako bismo pronašli smislene lišće, a 'Dubina prvo' znači da kada naiđete na prva grana, brzo uđete duboko i pronađete sve lišće. Ova knjiga prvo preporučuje širinu, ali kad je prikladno, također morate uzeti u obzir dubinu. Stoga ova knjiga koristi ' Pogled na drvo 's' Lančani pogled 'Za raščlanjivanje izvornog koda jezgre, a to je također metoda koju ja i moji kolege često koristimo u svakodnevnom radu. Pogled na stablo ima širinu i može brzo razumjeti okosnicu velikih funkcija, lančani prikaz ima dubinu i intuitivno može razumjeti poziv ključnih funkcija. .

(Pogled na drvo)

(Lančani prikaz)

U mnogim postojećim knjigama dijagrami toka koriste se za opisivanje logike koda. Međutim, iako je dijagram toka intuitivan, sposobnost opisivanja ograničena je (osobito nedostatak hijerarhijske sposobnosti prikaza stabla), a često je teško precizno opisati postupak izvršavanja funkcije. Točan dijagram toka nacrtan s velikim naporom često gubi svoje intuitivne funkcije zbog svoje složenosti. Štoviše, dijagram toka sam ne može u potpunosti razumjeti izvorni kod, ali izvorni kod mora se usporediti s dijagramom tijeka.

Stoga se ova knjiga koristi Pojednostavljeni izvorni kod (Tj., Prikaz stabla i prikaz lanca), umjesto dijagrama toka, s jedne strane, možete brzo razumjeti složene odnose pozivanja višerazinskih funkcija, a s druge strane, ne trebate više puta prebacivati ​​između izvornog koda i dijagram toka.

Pored uvođenja prikaza stabla i lančanog pogleda, prvo poglavlje uvodnog poglavlja prvo uvodi metodu čitanja koda „prvo vidjeti obris, a zatim žvakati riječi“. Točnije, podijeljen je u četiri koraka, naime ' Odredite ulaznu točku '' Pojasnite glavni kontekst '' Pogledajte funkciju kako naziv govori '' Razumijevanje datoteke zakrpe ”。

Od početka pisanja 2015. godine, pa sve do sada, oblikovala se knjiga 'Istraživanje jezgre s' Jezgrom ': Istraživanje i analiza Linuxove jezgre na temelju Godsona', zaokreti doista nisu dovoljni za autsajdere. U procesu pisanja knjige, kad sam svima pokušao objasniti osnovni princip, shvatio sam da to prije jednostavno nisam razumio. Čak se može reći da sam najveći korisnik pisanja knjige ja sam, jer je cijeli sustav znanja uistinu sublimiran na svestrani način.

Želio bih ovu knjigu posvetiti kolegama koji zajedno rade na autonomiji informacijske industrije. Također se nadam da će ova knjiga čitateljima donijeti značajan dobitak.

50% popusta, besplatna poštarina po cijeloj zemlji (osim udaljenih područja)
Najkorisnije za cijelu mrežu, u roku od 5 dana