Kwaikwayon Linus Torvalds: ƙirƙiri tsarin aikinku daga karce (VII)

Barka da zuwa wani rubutu game da yadda za mu ƙirƙiri namu tsarin aiki (Labaran da suka gabata a cikin jerin: 1, 2, 3, 4, 5 y 6). Ya daɗe sosai tun farkon rubutun, musamman saboda kwaro wanda na samo a cikin abin da muke da shi a yau. Za mu gani yadda ake sarrafa agogo akan gine-ginen x86.

A baya mun kunna IRQs ta hanya madaidaiciya, amma akwai wata karamar matsala tunda bamu kunna su daidai kuma mun wuce ƙarin bayanai. A ƙarshe mun gyara shi Carlosorta kuma ni da ni zan iya ci gaba da bayani kan yadda za a ci gaba.

Da kyau, agogo IRQ ne, musamman na farko. Don saita shi za mu yi amfani da aikin da muka bayyana a baya don shigar da IRQ iri-iri, ND_IRQ_InstallHandler.

int ND_TIMER_TICKS = 0; mara amfani ND :: Lokaci :: Lokaci (int hz) {int divisor = 1193180 / hz; ND :: Tashar jiragen ruwa :: FitarwaB (0x43,0x36); ND :: Tashar jiragen ruwa :: FitarwaB (0x40, rarrabuwa & 0xFF); ND :: Tashar jiragen ruwa :: FitarwaB (0x40, rarrabuwa >> 8); } mara amfani ND :: Mai ƙidayar lokaci :: Jira (int ticks) {tsararru masu tsattsauran ra'ayi; eticks = ND_TIMER_TICKS + kaska; yayin (ND_TIMER_TICKS <eticks) {marasa amfani ND :: Mai ƙidayar lokaci :: Saita () {ND :: Allon :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BLACK); ND :: Allon :: PutString ("\ nShigar da lokaci ..."); ND_IRQ_InstallHandler (0, & ND_Timer_Handler); ND :: Allon :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_GREEN); ND :: Allon :: PutString ("yi"); } hanyar waje "C" fankar ND_Timer_Handler (Tsarin tsari * r) {ND_TIMER_TICKS ++; idan (ND_TIMER_TICKS% 18 == 0) {// ND :: Allon :: SetColor (ND_SIDE_FOREGROUND, ND_COLOR_BROWN); // ND :: Allon :: PutString ("\ nWanda ya fi na biyu"); ZAMUYI SHAFIN KWALLIYA}}

Lambar tana gudana kamar haka: tsarin farawa yana kira ND :: Mai ƙidayar lokaci :: Saita, wanda ke kira ND_IRQ_InstallHandler don sakawa a wuri na farko, IRQ0, aikin kira ne lokacin da abin ya faru, ma'ana ND_Timer_Handler hakan yana karawa da ticks. Kamar yadda muka sanya saurin agogo zuwa 18 Hz, kamar yadda za mu gani a gaba, idan muka raba shi da 18 kuma ya ba mu lamba, na biyu zai wuce.

Aikin ND :: Mai ƙidayar lokaci :: Lokaci Yana taimaka mana mu daidaita saurin lokaci lokaci. Da kyau, ya kamata a kira wannan aikin idan muna son canza saurin lokaci lokaci, ta hanyar tsoho yana zuwa 18,22 Hz, ƙimar musamman wanda dole ne wani ya yanke shawara a ciki IBM kuma ya wanzu har zuwa yau.

Aikin ND :: Mai ƙidayar lokaci :: Jira yana da sauki, kawai jira tare da madauki yayin da har sai da ticks da ake bukata don ci gaba.

A cikin hoto zamu iya ganin cewa idan muka ɓoye lambar a cikin ND_Timer_Handler zamu sami wannan:

Seconds a cikin NextDivel

A babi na gaba zamu ga yadda ake karanta shigar da keyboard da kuma yin kadan harsashi don mu'amala da tsarin mu. Kamar koyaushe, lambar yana samuwa a ciki GitHub ƙarƙashin lasisi GNU GPL v2.


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   Nuhu m

    Jerin darussan masu ban sha'awa masu ban sha'awa, da kaina ban ga da yawa game da ƙirƙirar rarraba Linux daga ɓata ba, har ma da ƙasa da Spanish da cikakke. Ina tsammanin zaku iya koyan abubuwa da yawa daga wannan kuma da zarar na sami lokaci ina fatan zan iya yin waɗannan koyarwar.
    Abinda kawai nake tambaya shine kada ku karaya kuma ku gama koyarwar, tunda na sami ingantattun koyarwa da yawa wadanda basu karewa ba.
    Gaisuwa da godiya :).

    1.    mai bin hanya m

      Ba rarrabawar Linux bane, kwaya ce 😛.

    2.    desikoder m

      Kayi kuskure. Irƙirar Linux distro ba yana nuna shirye-shiryen komai ba, misali, a cikin wani linzamin kwamfuta daga karce ba ku shiryawa, abin da kuke yi shi ne girka (bisa ga tattarawa), kunshin abubuwan yau da kullun waɗanda suka zama distro. Wannan ya bambanta. Yana ƙirƙirar tsarin aikin ku. Ba shi da alaƙa da Linux. Wannan shine abin da torvalds suka yi a zamaninsa wanda aka yi wahayi zuwa da minix, kuma tare da wannan zazzafar sanannen tattaunawa tsakanin torvalds and andrew s. tanenbaum akan kwayar monolithic vs microkernel.

      Na gode!

  2.   illuki m

    Na gode che. Har zuwa yanzu ban mai da hankali sosai ba a kan sakonku ba amma ina cikin wani aiki don haka zan duba su.
    Na gode.

  3.   mai bin hanya m

    Yana da kyau a faɗi cewa ana iya amfani da wasu yarukan, kamar Objective-C (++), C ++, D ko Rust.

    1.    AdrianArroyoStreet m

      Wannan yana cikin C ++, ba C. Duk da haka, yana da wuya a ga bambance-bambance tunda yawancin masu aiki na C ++ suna buƙatar tallafin ɗakin karatu, kamar sababbi da share masu aiki. Zai zama da ban sha'awa sosai don yin tsarin aiki a Tsatsa. Da gaske akwai tashar IRC da aka keɓe don tsarin aiki akan Tsatsa (# tsatsa-osdev akan irc.mozilla.net). Duk wanda ya tsara lambar injin yana da ƙimar gaske, gami da Java idan muna amfani da GCJ.

      1.    mai bin hanya m

        Ee, hakika, Tsatsa harshe ne mai ban sha'awa sosai ga tsarin aiki, saboda ba kawai ya fi sauƙi a koya ba fiye da C ko C ++ (har yanzu yana ci gaba da canje-canje na ci gaba, amma ya fi sauƙi), amma ya fi aminci.

  4.   mai bin hanya m

    A cikin shekarun 70 ya kasance gama gari don shirya kai tsaye akan kayan aiki, ba tare da OS ba.

  5.   Christopher m

    Kyakkyawan ... yanzu kawai ina buƙatar fahimta: 3 ...

  6.   Mmm m

    Barka dai. Na gode sosai da wadannan labaran. Amma, idan ba ni da ilimin ilimin shirye-shirye, ban tsammanin ya kamata in yi ba, dama? Ina nufin, idan ba haka ba, zai zama «mai kyau, kuma yanzu menene zan kwafa da liƙa?» ... abin takaici, koyaushe ina son sanin yadda ake shirya abubuwa da yawa kuma ba komai, Na fi na jaki !

    1.    desikoder m

      Kar ka zargi kanka, kai ba jaki bane. Da farko dai, ba dukkan masu shirye-shirye bane suka san yadda ake rubuta kwaya ba, aiki ne mai sauki kadan, kuma a aikace ya fi girma. Misali, a nan marubucin ya kirkiro direbobi masu amfani da kwayoyi da allo, suna sarrafa tsararren allo, wanda hanya ce wacce ba a amfani da ita kwata-kwata. Tty a cikin Linux a yau suna da matukar rikitarwa, kuma basu dogara da gine-ginen x86 suna da tsararren allo a wurinsu ba. Kari akan haka, yawancin lambar C sun dogara da gine-gine, lokacin da abin da yakamata shine sanya lambar gine-gine a cikin mai tarawa da lambar C don yin aiki akan kowane mai sarrafawa. Koyaya, ban raina marubucin ba, saboda wannan kwaya tana samun halaye waɗanda a yau muke ɗaukar al'ada a cikin kwayar linux, alal misali, ba abu ne mai sauƙi ba, kuma za ku iya tabbata cewa mutum guda ba shi da cikakken ikon yin shi. Don wani abu manyan ayyuka kamar Linux, gcc, glibc, da sauransu, ba mutum ɗaya bane yayi su amma akwai masu haɗin gwiwa dayawa.

      Hakanan, idan kuna son fara shirye-shirye, kuna da 'yan jagorori kaɗan akan yanar gizo, kodayake dole ne ku kiyaye kuma zaɓi jagororin da suka dace. Na fara shirye-shirye a cikin tsalle-tsalle cikin Linux tare da kaina ba ruwa (ma'ana, tare da ƙaunataccen harshen C), kodayake yanzu ina da wasu ra'ayoyi na asali game da Python (wanda shi ma yare ne mai kyau). Akwai wasu littattafan C waɗanda kuke ba da su a shafi na 6 kamar yawan ciwon kai da kuka samu, amma fiye da littattafan waɗannan abubuwan ana samun su ne ta hanyar gogewa. Yana faruwa kamar yadda tsarin tsarin OSI yake. Takaddun shaida akan samfurin osi ba shi yiwuwa a fahimta ga sabon shiga, amma idan kun sami rukunin yanar gizo tare da kyakkyawar bayani game da hanyoyin yanar gizo zaku hanzarta samun dabaru don aiki da takaddun fasaha kamar RFCs.

      A takaice, akwai shafukan yanar gizo masu kyau da kuma littattafai a can waje, lamari ne na sauka zuwa gareshi da kuma samun kayan kirki.

      gaisuwa

  7.   Kyauta_DOM m

    Barka dai, bayan ƙoƙari sosai don warware "kuskuren: ba a sami rubutun kai da yawa ba." kuma «kuskure kuna buƙatar fara ɗaukar kernel ɗin farko», tunda ban sami mafita ba game da matsalar labarin farko, wanda wasu kamar ni suka samu ... ga mafita anan, idan tayi aiki ga wani ...

    Ban sani ba idan ka'ida ta ta dalilin kuskuren daidai ce amma dai dai, tambayar ita ce yayin tattara fayiloli a cikin tsarin aiki 32-bit, bai haifar da kuskuren ba, amma tunda ina da 64-bit tsarin aiki (Gnu / Linux Debian 7), kuma lokacin da nake tattarawa da gwaji na jefa kuskuren "ba a sami rubutun kai da yawa ba", kuma akwai shakku, to a ganina kuskuren ya samo asali ne daga mahalli ko gine-ginen aiki tsarin da muke tattara fayilolinmu ... kuma da kyau abin da na yi shi ne tattara fayiloli na, keɓance mahalli ko gine-ginen 32-bit ..
    * sudo as -o kwaya.o -c kernel.asm -32
    * sudo gcc -o NextKernel_Main.o -c NextKernel_Main.c -nostdlib -fPIC -bayarwa -m32
    * sudo gcc -m32 -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -ffreestanding
    Abu mai ban mamaki shine ina da wasu shakku hahaha, to tsarin aiki da muke kirkira mataki zuwa mataki shine na tsarin x86 ko kuma nayi kuskure ajajaj….

    PS: Wani ya taimake ni da shakku, kuma ya ba da uzuri ga wasu kuskuren kuskure ko kuma mummunan magana ta, kuma da kyau ban zama cikakke ba don haka "Cikakke yana da farashinsa" ... Kuma mafi mahimmanci, yin koyi da tsarin aiki mai 32-bit, mai tsarki bayani H .Hahaha

    1.    Martin Villalba m

      Hankali! Ina matukar son yin wannan karatun kuma na tashi da farko tare da wannan kuskuren haha

  8.   Oscar m

    Taya murna, gudummawa ce matuka. Daga yanzu na raba muku cewa kyakkyawan aikinku ta wurina da wasu za a faɗaɗa;

    gaisuwa