Kuteedzera Linus Torvalds: gadzira yako yega sisitimu yekushandisa kubva pakutanga (VII)

Kugamuchirwa kune imwe posvo nezve maitiro ekugadzira yedu pachedu sisitimu (Zvinyorwa zvakapfuura munhevedzano: 1, 2, 3, 4, 5 y 6). Yakave iri nguva yakareba kubvira yekupedzisira posvo, kunyanya nekuda kwebug iyo yandakawana mune izvo zvatiinazvo nhasi. Tichaona maitiro ekubata wachi pane x86 mavakirwo.

Pakutanga tanga taita kuti IRQs iitwe nenzira yakajairika, asi pakanga paine dambudziko diki sezvo isu tisina kuvamisa nenzira kwayo uye takapfuudza imwe data. Isu tinozozvigadzirisa carlosorta uye ini neni tinogona kuenderera mberi tichitaura nezvekuenderera mberi.

Zvakanaka, iyo wachi iri IRQ, kunyanya yekutanga. Kuimisa, isu tinoshandisa iro basa ratakatsanangura pamusoro kuti tiise IRQs, iyo ND_IRQ_InstallHandler.

int ND_TIMER_TICKS = 0; void ND :: Nguva: Phase (int hz) {int divisor = 1193180 / hz; ND :: Zviteshi zvengarava: KubudaB (0x43,0x36); ND :: Ports :: KuburitsaB (0x40, divisor & 0xFF); ND :: Ports :: KubudaB (0x40, divisor >> 8); } void ND :: Timer :: Mira (int ticks) {unsigned marefu eticks; eticks = ND_TIMER_TICKS + zvikwekwe; apo (ND_TIMER_TICKS <eticks) {void ND :: Timer :: Setup () {ND :: Screen :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BLACK); ND :: Screen :: PutString ("\ nSetup timer ..."); ND_IRQ_InstallHandler (0, & ND_Timer_Handler); ND :: Screen :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_GREEN); ND :: Screen :: PutString ("zvaitwa"); } extern "C" isina ND_Timer_Handler (struct regs * r) {ND_TIMER_TICKS ++; kana (ND_TIMER_TICKS% 18 == 0) {// ND :: Screen :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BROWN); // ND :: Screen :: PutString ("\ nIyezve wechipiri"); TINOFANIRA KUZIVA ZVINONYANYA KUONESA}}

Iyo kodhi inomhanya seinotevera: iyo yekutanga system kufona ND :: Nguva :: Setup, iyo inodaidza ND_IRQ_InstallHandler kuisa munzvimbo yekutanga, iyo IRQ0, yekufona basa kana chiitiko chikaitika, ndiko kuti ND_Timer_Handler izvo zvinowedzera iyo ticks. Sezvo isu takamisikidza kumhanya wachi kusvika ku18 Hz, sezvatichaona gare gare, kana isu tikaipatsanura na18 ndokutipa iyo manhamba, yechipiri ingadai yapfuura.

Basa racho ND :: Nguva :: Chikamu Zvinotibatsira kugadzirisa kumhanya kweiyo timer, iyo yekuwedzeredza nhamba i1.19 .XNUMX MHz inova yakakosha kukosha. Zvakanaka, iri basa rinofanira kudaidzwa kana tichida kuchinja kumhanya kweiyo timer, nekumisikidza inoenda kuna 18,22 Hz, kukosha kwakasarudzika uko mumwe munhu anofanira kunge akasarudza mukati IBM uye ichiripo nanhasi.

Basa racho ND :: Nguva :: Mira zviri nyore, chingomirira uine chiuno apo kusvikira iyo ticks yaida kuenderera.

Mumufananidzo tinogona kuona kuti kana tikabvisa kodhi iri mukati me ND_Timer_Handler tinowana izvi:

Masekonzi mu NextDivel

Muchitsauko chinotevera tichaona maitiro ekuverenga yekuisa keyboard uye toita zvishoma deko kusangana nehurongwa hwedu. Semazuva ese, kodhi inowanikwa mukati GitHub pasi pezenisi GNU GPL v2.


Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   Noah akadaro

    Anonakidza kwazvo akateedzana ezvidzidzo, pachezvangu ndakanga ndisati ndaona akawanda nezvekugadzira kugoverwa kweLinux kubva pakutanga, uye kunyangwe zvishoma muchiSpanish uye zvakakwana. Ini ndinofunga iwe unogona kudzidza zvakawanda kubva pane izvi uye nekukurumidza pandinenge ndine nguva ndinotarisira kuzokwanisa kuita aya maitirwo.
    Chinhu choga chandinokumbira ndechekuti usanete moyo uye upedze iyo dzidziso, nekuti ini ndawana akawanda akanaka maitirwo asina kumbopedzwa.
    Kwaziso nekutenda :).

    1.    mugwagwa akadaro

      Haisi kugoverwa kwe linux, ikernel 😛

    2.    desikoder akadaro

      Wakatadza. Kugadzira linux distro hazvireve kuronga chero chinhu, semuenzaniso, mune linux kubva pakutanga iwe usaronge, zvaunoita kuisa (zvichibva pakunyora), mapakeji ekutanga anoita distro. Izvi zvakasiyana zvakanyanya. Iri kugadzira yako yega yekushandisa system. Izvo hazvina chekuita ne linux. Izvi ndizvo zvakaitwa neve torvalds muzuva rake vakafemerwa ne minix, uye neiyo hurukuro inopisa uye yakakurumbira pakati pevarvald andrew s. tanenbaum pane monolithic kernel vs microkernel.

      Kwaziso!

  2.   illukki akadaro

    Thanks che. Kusvika parizvino handina kunyatsoteerera kune yako post asi ini ndiri muchirongwa saka ndichaenda kunovatarisa.
    Thanks.

  3.   mugwagwa akadaro

    Zvakakodzera kutaura kuti mimwe mitauro inogona kushandiswa, senge Chinangwa-C (++), C ++, D kana Ngura.

    1.    AdrianArroyoStreet akadaro

      Iyi iri muC ++, kwete C. Zvisinei, zvinonetsa kuona misiyano sezvo vazhinji maC ++ vanoshanda vachitsvaga raibhurari kutsigirwa, senge nyowani uye kudzima vanoshanda. Zvingave zvinonakidza kuita system yekushandisa muRust. Iko kune chaiko IRC chiteshi yakatsaurirwa kune anoshanda masystem paRust (# ngura-osdev pa irc.mozilla.net). Chero ani anounganidza kumuchina kodhi akakosha chaizvo, kusanganisira Java kana tikashandisa GCJ.

      1.    mugwagwa akadaro

        Hongu, zvirokwazvo, Rust mutauro unonakidza kwazvo kune anoshanda masystem, nekuti hazvisi nyore chete kudzidza kupfuura C kana C ++ (ichiri kuenderera nekuchinja kunoramba kuripo, asi zviri nyore), asi zvakanyanya kuchengetedzeka.

  4.   mugwagwa akadaro

    Mumakumi manomwe zvaive zvakajairika kuronga zvakananga pahardware, isina OS.

  5.   Christopher akadaro

    Kwakanaka ... izvozvi ndinongoda kunzwisisa: 3 ...

  6.   Mmm akadaro

    Mhoro. Ndatenda zvikuru nekuda kwezvinyorwa izvi. Asi, kana ndisina ruzivo rwechirongwa, handifunge kuti ndinofanira kuzviita, handiti? Ndiri kureva, kana zvisiri zvaizove "zvakanaka, uye zvino chii chandinoteedzera nekunamatira?" ... zvinosuwisa sei, ini ndaigara ndichida kuziva maitiro epurogiramu zvakanyanya uye hapana, ini ndiri dhongi!

    1.    desikoder akadaro

      Usazvipa mhosva, iwe hausi dhongi. Kutanga, havazi vese programmers vanoziva kunyora kernel, ibasa rakareruka, uye mukuita iro rakakura. Semuenzaniso, pano munyori anogadzira akajairika madhiraivhodhi yekhibhodi uye yechiratidziri, achishandisa zvisirizvo zvakarongedzwa, inova nzira isiri kushandiswa zvachose nhasi. Iyo tty mu linux nhasi yakanyanyisa, yakaoma kwazvo, uye haitsamire pane x86 yekuvakisa iine skrini yakarongedzwa yainogona. Uye zvakare, yakawanda yekodhi iri muC inoenderana neyakavakirwa, apo chakanakira kugadzira kodhi yekuvaka mune inosangana uye kuti iyo C kodhi inoshanda mune chero processor. Nekudaro, ini handibvise kubva kumunyori, nekuti tsanga inowana hunhu izvo nhasi zvatafunga zvakajairika mu linux kernel, semuenzaniso, harisi basa riri nyore, uye zorora uine chokwadi chekuti munhu mumwechete haatombozvigona. Kune chimwe chinhu mapurojekiti mahombe senge linux, gcc, glibc, nezvimwe, hazviitwe nemunhu mumwe chete asi kune vakawanda vanobatsirana.

      Zvakare, kana iwe uchida kutanga kuita chirongwa, iwe une akati wandei madhaidhi pawebhu, kunyangwe iwe uchifanirwa kuve wakangwarira, uye sarudza akanaka magwara. Ini ndakatanga kuronga mu linux ndichisvetukira mudziva nemusoro wangu uye ndisina mvura (ndokuti, pamwe nemudiwa C mutauro), kunyangwe izvozvi ndine dzimwe pfungwa dzekutanga dze python (unova zvakare mutauro wakanaka kwazvo). Kune mamwe maC mabhuku maunoregera papeji 6 zvakanyanya zvemusoro waunowana, asi kupfuura mabhuku aya zvinhu izvi zvinowanikwa kubva muchiitiko. Izvo zvinoitika senge neOSI network modhi. Zvinyorwa nezveiyo modhi yeosi hazvigoneke kunzwisiswa kune uyo anouya, asi kana iwe ukawana saiti ine tsananguro yakanaka yematanho enetiweki, unokurumidza kuwana iwo mazano ekugadzirisa zvinyorwa zvehunyanzvi senge maRFC.

      Muchidimbu, kune akanaka mawebhusaiti uye emanyorero kunze uko, inyaya yekudzika kwazviri nekutsvaga zvakanaka zvinhu.

      Reply with quote

  7.   Mahara_DOM akadaro

    Mhoro, mushure mekuyedza zvakanyanya kugadzirisa iyo "kukanganisa: hapana multiboot musoro wakawanikwa." uye «kukanganisa kwaunoda kutanga kurongedza kernel», sezvo ini ndanga ndisingawani chero mhinduro yedambudziko rechinyorwa chekutanga, icho vamwe vakaita seni vaive nacho ... heino mhinduro, kana ichishandira mumwe munhu ...

    Ini handizive kana dzidziso yangu yechikonzero chekukanganisa iri chokwadi asi zvakadaro, mubvunzo ndewokuti kana uchinyora mafaera mune 32-bit system yekushandisa, haina kuburitsa iko kukanganisa, asi sezvo ini ndine makumi matanhatu nemasere anoshanda. system (Gnu / Linux Debian 64), uye kuti pakunyora nekuyedza ndakawana iko kukanganisa kwe "hapana multiboot musoro wakawanikwa", uye pane kusahadzika, saka mumaonero angu iko kukanganisa kuri nekuda kwenzvimbo kana kuvaka kweanoshanda system yatiri kunyora mafaera edu ... uye zvakanaka zvandakaita kuumbiridza mafaera angu, kudoma 7-bit nharaunda kana chivakwa ..
    * sudo se -o kernel.o -c kernel.asm -32
    * sudo gcc -o InoteveraKernel_Main.o -c InoteveraKernel_Main.c -nostdlib -fPIC -ffreestanding -m32
    * sudo gcc -m32 -o KUTANGA.ELF kernel.o InoteveraKernel_Main.o -Tlink.ld -nostdlib -fPIC -ffreestanding
    Chinhu chisingazivikanwe ndechekuti ndine kusahadzika hahaha, ipapo mashandiro atiri kugadzira nhanho nhanho ndeye dhizaini yeX86 kana ndiri kutadza ajajaj….

    PS: mumwe munhu kuti andibatsire pamwe nekusahadzika, uye ruregerero zvimwe zviperengo zvikanganiso kana kutaura kwangu kwakashata, uye zvakanaka ini handina kukwana saka «Kukwana kune mutengo waro»… Uye zvakanyanya kukosha, tevedzera 32-bit inoshanda system, mhinduro tsvene … .Hahaha

    1.    Martin Villalba akadaro

      Genius! Ini ndaida chaizvo kuita iyi dzidziso uye ini ndakadzika pasi pakutanga nekanganiso iyoyo haha

  8.   Oscar akadaro

    Makorokoto, uyu mupiro wakanaka kwazvo. Kubva ikozvino zvichienda mberi ini ndinogovana newe kuti rako rakanaka basa kuburikidza neni uye nevamwe richawedzerwa;

    Reply with quote