Ku dayashada Linus Torvalds: ka abuur xoqitaanka (VII) nidaamkaaga hawlgalka

Ku soo dhowow qoraal kale oo ku saabsan sida loo abuuro nidaamkayaga hawlgalka (Maqaallada hore ee taxanaha: 1, 2, 3, 4, 5 y 6). Waqti badan ayey qaadatay tan iyo qormadii ugu dambeysay, inta badan waxaa ugu wacan cillad aan ka helay waxa aan maanta heysano. Waan arki doonnaa sida saacadaha loogu xaliyo naqshadaha x86.

Markii hore waxaan ku hawlgelin jirnay IRQs qaab guud, laakiin waxaa jiray dhibaato yar maadaama aanan si sax ah u hawlgelin oo aan gudbinay xog dheeri ah. Waxaan ugu dambeyntii hagaajinaynaa Carlosorta oo aniga iyo anigu waan sii wadi karnaa inaan faallo ka bixino sida loo sii wado.

Hagaag, saacaddu waa IRQ, gaar ahaan tan koowaad. Si aan u qaabeyno waxaan u adeegsan doonnaa shaqadii aan horey u qeexnay in aan si guud u rakibno IRQs, ND_IRQ_InstallHandler.

int ND_TIMER_TICKS = 0; madhan ND :: Waqtiga :: Waqtiga (int hz) {int divisor = 1193180 / hz; ND :: Dekedaha :: Wax soo SaarkaB (0x43,0x36); ND :: Dekedaha :: Wax soo saarkaB (0x40, kala qaybiye & 0xFF); ND :: Dekedaha :: Wax soo saarkaB (0x40, kala qaybiye >> 8); } waxba kama jiraan ND :: Waqtiga :: Sug (int ticks) {etick dheer oo aan saxiixin; eticks = ND_TIMER_TICKS + saxarro; halka (ND_TIMER_TICKS <eticks) {waxba kama jiraan ND :: Waqtiga :: Muddeynta () {ND :: Shaashadda :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BLACK); ND :: Shaashadda :: PutString ("\ n Waqtiga dejinta ..."); ND_IRQ_InstallHandler (0, & ND_Timer_Handler); ND :: Shaashadda :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_GREEN); ND :: Shaashadda :: PutString ("waa la qabtay"); } bannaanka "C" madhan ND_Timer_Handler (dhisme regs * r) {ND_TIMER_TICKS ++; haddii (ND_TIMER_TICKS% 18 == 0) {// ND :: Shaashad :: Shaashadda :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BROWN); // ND :: Shaashadda :: PutString ("\ n Hal ilbiriqsi ka badan"); WAA IN AAN SAMEYNO SCREEN SCREEN}}

Koodhku wuxuu u socdaa sida soo socota: nidaamka bilowgu wuxuu u yeeraa ND :: Saacad :: Muddo, oo soo waca ND_IRQ_InstallHandler si aad u geliso booska koowaad, IRQ0, oo ah shaqa soo wicitaan markii ay dhacdo dhacdo, taasi waa ND_Timer_Handler taasi waxay kordhisaa shilinta. Maaddaama aan saacadda u dejinnay 18 Hz, sida aan gadaal ka arki doonno, haddii aan u qaybinno 18 oo aan innaga siinno tiro ka kooban, ilbidhiqsi ayaa dhaafi lahaa.

Shaqada ND :: Waqtiga :: Wajiga Waxay naga caawinaysaa inaan hagaajino xawaaraha saacad, tiradaas xad-dhaafka ahi waa 1.19 MHz oo ah qiime guud. Hagaag, waa inaan wacnaa shaqadan hadii aan rabno inaan bedelno xawaaraha saacad, marka loo eego waxay ku socotaa 18,22 Hz, qiimo gaar ah oo ay tahay inuu qof ku go'aansado gudaha IBM wayna jirtaa ilaa maanta.

Shaqada ND :: Saacad :: Sug waa quruxsan tahay fudud, kaliya sug la loop a halka ilaa shilinta loo baahan yahay in la sii wado.

Sawirka waxaan ku arki karnaa haddii aan kaxeyno koodhka gudaha ND_Timer_Handler waxaan helnaa tan:

Ilbiriqsiyo NextDivel

Cutubka xiga waxaan ku arki doonaa sida loo aqriyo teebabka kumbuyuutarka oo wax yar loo sameeyo qolof si aan ula macaamilno nidaamkayaga. Sida had iyo jeer, koodhka waxaa laga heli karaa GitHub hoos shatiga GNU GPL v2.


Ka tag faalladaada

cinwaanka email aan la daabacin doonaa. Beeraha loo baahan yahay waxaa lagu calaamadeeyay la *

*

*

  1. Masuul ka ah xogta: Miguel Ángel Gatón
  2. Ujeedada xogta: Xakamaynta SPAM, maaraynta faallooyinka.
  3. Sharci: Oggolaanshahaaga
  4. Isgaarsiinta xogta: Xogta looma gudbin doono dhinacyada saddexaad marka laga reebo waajibaadka sharciga ah.
  5. Kaydinta xogta: Macluumaadka ay martigelisay Shabakadaha Occentus (EU)
  6. Xuquuqda: Waqti kasta oo aad xadidi karto, soo ceshan karto oo tirtiri karto macluumaadkaaga.

  1.   Nuux dijo

    Taxaneyaal aad u xiiso badan oo casharro ah, shaqsiyan ma aanan arkin wax badan oo ku saabsan abuurista qaybinta Linux laga bilaabo xoq, iyo xitaa ka yar Isbaanishka oo sidaas dhammaystiran. Waxaan u maleynayaa inaad waxbadan ka baran karto arinkaan isla marka aan helo waqti ayaan rajeynayaa inaan awoodo inaan sameeyo casharradan.
    Waxa kaliya ee aan ku weydiisanayo ayaa ah inaadan niyad jabin oo aad dhameyso casharka, tan iyo markii aan helay casharro badan oo wanaagsan oo aan weligood dhammaanayn.
    Salaan iyo mahadsanid :).

    1.    wadadeeye dijo

      Maahan qaybinta Linux, waa kernel 😛.

    2.    desikoder dijo

      Waad khaldantahay Abuuritaanka Linux distro macnaheedu ma aha in wax la diyaariyo, tusaale ahaan, in Linux-ka laga soo bilaabo xoqidaada aadan barnaamij ka sameyn, waxa aad sameysid waa rakib (oo ku saleysan isku-dubbaridka), xirmooyinka aasaasiga ah ee ka kooban distro. Tani waa mid aad u kala duwan. Waxay abuureysaa nidaam aad ku shaqeyso. Wax shaqo ah kuma lahan Linux. Tani waa waxa torvalds ay sameeyeen maalintiisii ​​oo ay dhiirrigelisay minix, iyo doodaas kulul ee caanka ah ee u dhexeeya torvalds iyo Andrew s. tanenbaum on yar yar monolithic vs microkernel.

      Waad ku mahadsan tahay!

  2.   illukki dijo

    Mahadsanid che. Ilaa iyo hada fiiro badan ma siinin qoraalkaaga laakiin waxaan ku jiraa mashruuc markaa waan eegi doonaa.
    Thanks.

  3.   wadadeeye dijo

    Waxaa xusid mudan in luuqado kale la isticmaali karo, sida Objective-C (++), C ++, D ama Rust.

    1.    AdrianArroyoStreet dijo

      Midkani wuxuu ku jiraa C ++, maahan C. Si kastaba ha noqotee, way adag tahay in la arko kala duwanaanshaha maaddaama hawlwadeenno badan oo C ++ ah ay u baahan yihiin taageero maktabad, sida kuwa cusub iyo kuwa tirtira. Waxay noqon laheyd mid aad u xiiso badan in laga sameeyo nidaam qalliin Rust. Xaqiiqdii waxaa jira kanaal IRC ah oo loogu talagalay nidaamyada ka shaqeeya Rust (# rust-osdev on irc.mozilla.net). Qof kasta oo isku duba rida lambarka mashiinka ayaa runtii mudan, oo ay ku jiraan Java haddii aan isticmaalno GCJ.

      1.    wadadeeye dijo

        Haa, runtii, miridhku waa luqad aad u xiiso badan oo loogu talagalay nidaamyada hawlgalka, maxaa yeelay ma aha oo kaliya inay ka fududahay barashada C ama C ++ (wali way ku sii socotaa isbeddelada isdaba jooga ah, laakiin way ka sahlan tahay), laakiin way ka ammaan badan tahay.

  4.   wadadeeye dijo

    Sanadihii 70-meeyadii waxay ahayd wax iska caadi ah in si toos ah barnaamij loogu diyaariyo qalabka, OS la'aan.

  5.   Christopher dijo

    Aad u fiican ... hadda waxaan u baahanahay inaan fahmo: 3 ...

  6.   mmm dijo

    Salaan. Aad baad ugu mahadsantahay qodobadan. Laakiin, haddii aanan lahayn aqoonta barnaamijyada, uma maleynayo inay tahay inaan sameeyo, sax? Waxaan ula jeedaa, haddii kale, waxay noqon laheyd «wanaagsan, oo haddaa maxaan nuqul ka sameeyaa oo dhajiyaa?» ... waa wax laga xumaado, marwalba waxaan doonayay inaan ogaado sida loo sameeyo barnaamij aad u badan oo aan waxba ahayn, waxaan ahay dameer ka badan!

    1.    desikoder dijo

      Ha is eedeyn, dameer ma tihid. Marka hore, barnaamijyadu ma wada yaqaanaan sida wax loo qoro, waa hawl aad u fudud, ficilkeeduna ka weyn yahay. Tusaale ahaan, halkan qoraagu wuxuu u abuurayaa wadayaal guud kumbuyuutarka iyo shaashadda, isagoo adeegsanaya shaashadda, taas oo ah hab aan maanta la isticmaali karin Tty-ka ku jira Linux maanta waa mid aad iyo aad u dhib badan, kumana tiirsana naqshadaha x86 oo leh shaashad shaashadeed meesha ay ku jirto. Intaas waxaa sii dheer, in badan oo ka mid ah koodhadhka 'C' waxay kuxiran yihiin qaab dhismeedka, marka ugu habboon ay tahay in laga dhigo nambarka dhismaha qaab dhismeedka iyo in lambarka C uu ku shaqeynayo processor kasta. Si kastaba ha noqotee, kama dhimayo qoraaga, sababtoo ah kernel wuxuu helayaa astaamaha aan maanta u aragno inay caadi yihiin kernel Linux ah, tusaale ahaan, ma ahan hawl fudud, oo naso in la hubiyo in qof keliya uusan gabi ahaanba awood u lahayn inuu sameeyo. Wax uun mashruucyada waaweyn sida linux, gcc, glibc, iwm, malahan qof kaliya laakiin waxaa jira wada shaqeyn badan.

      Sidoo kale, haddii aad rabto inaad bilowdo barnaamijka, waxaad ku haysaa hageyaal fara badan oo shabakadda ah, in kasta oo ay tahay inaad taxaddar muujiso, oo aad doorato hagayaasha wanaagsan. Waxaan bilaabay barnaamij ka mid ah Linux oo ku boodaya barkadda madaxayga iyo biyo la'aan (taas oo ah, luqadda C ee la jecel yahay), in kastoo hadda aan haysto fikrado aasaasi ah oo loo yaqaan 'Python' (oo waliba ah luuqad aad u wanaagsan). Waxa jira buugaagta C qaarkood oo aad kaga tagto bogga 6aad inta badan madax xanuunka ku soo dhaca, laakiin in ka badan buugaagta waxyaalahan ayaa laga soo qaatay khibrad. Waxay u dhacdaa sidii qaabka shabakadda OSI. Dukumiintiyada ku saabsan qaabka osi gebi ahaanba waa wax aan macquul aheyn in la fahmo qofka cusub, laakiin haddii aad hesho goob sharaxaad fiican ka heleysa lakabyada shabakada, waxaad si deg deg ah u heleysaa fikradaha wax looga qabanayo dukumiintiyada farsamada sida RFCs.

      Marka la soo koobo, waxaa jira degello internet iyo buugag wanaagsan oo meesha yaalla, waa arrin hoos loogu dhaadhaco oo laga helo agab wanaagsan.

      Salaan

  7.   Bilaash_DOM dijo

    Waad salaaman tihiin, ka dib isku daygii oo dhan si aad u xalliso "khaladka: lama helin cinwaano badan". iyo «qalad waxaad u baahan tahay inaad marka hore rarto xarkaha», maadaama aanan meel ka heli karin xalka dhibaatada maqaalka ugu horreeya, oo qaar aniga ila mid ahi ay haysteen ... halkan waa xalka, haddii ay qof u shaqeyso ...

    Ma aqaano haddii aragtidayda sababta qaladku sax tahay laakiin si kastaba ha noqotee, su'aashu waxay tahay in markii la ururinayo faylasha nidaamka hawlgalka 32-bit, ma aysan soo saarin qaladka, laakiin maaddaama aan haysto 64-bit nidaamka hawlgalka (Gnu / Linux Debian 7), iyo in markii la uruurinayay oo la tijaabinayay aan tuuray khaladka "no headboot header found", waxaana jira shaki, markaa fekerkeyga khaladka waxaa sabab u ah deegaanka ama qaab dhismeedka nidaamka qalliinka ee aan ku soo uruurineyno feylasha ... iyo sidoo kale wixii aan sameeyay ayaa isku soo ururinaya feylahayga, anigoo tilmaamaya deegaanka ama dhismaha 32-bit ah
    * sudo as -o kernel.o -c kernel.asm -32
    * sudo gcc -o NextKernel_Main.o -c NextKernel_Main.c -nostdlib -fPIC -rereandanding -m32
    * sudo gcc -m32 -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -rerereandanding
    Arinta la yaabka leh ayaa ah in shaki iga jiro hahaha, markaa nidaamka qalliinka ee aan usameyneyno talaabo talaabo waa qaab dhismeedka x86 mise waan qaldanahay ajajaj….

    PS: qof iga caawiya shakiga, kana raali ahaada khaladaadka higgaadinta qaarkood ama muuqaalkayga xun, oo sifiican uma lihi sidaa darteed «Qummanaantu qiimaheeda ayaa leh» And. H .Hhaha

    1.    martin Villalba dijo

      Caqli badan! Runtii waxaan rabay inaan sameeyo casharkaan waxanan ku dagay bilawgii qaladkaas haha

  8.   Oscar dijo

    Hambalyo, waa tabaruc aad u wanaagsan. Wixii hada ka dambeeya waxaan kula wadaagayaa in shaqadaada wanaagsan ee aad ii soo martay aniga iyo dadka kaleba la kordhin doono;

    Salaan