Kudayasho Linus Torvalds: ka abuur xoqidaada nidaamka qalliinka (VIII)

Waxaan ku laabaneynaa taxanahii casharrada ee ku saabsanaa sida loo abuuro nidaamkayaga hawlgalka. Waxaan u maleynayaa inaad aad u jeclaan doonto cutubkan maxaa yeelay waxaan ugu dambeyntii la macaamili karnaa nidaamkayaga hawlgalka. Maanta waxaan aqrin doonnaa aqbalka kumbuyuutarka. Tan awgeed, qorshuhu wuxuu lamid yahay kan saacadaha. Waa inaan si kasta u isticmaalnaa IRQs sidaa darteed waxaan u bilaabi doonnaa si la mid ah sida saacadaha.

ND_IRQ_InstallHandler (1, & ND_Keyboard_Handler);

Si kastaba ha noqotee, shaqaaleeyaha kumbuyuutarkayagu, si kastaba ha noqotee, xoogaa wuu ka dhib badan yahay maaddaama aan aqrinayno furayaasha oo aan dhigeyno keyd.

bannaanka "C" wax madhan ND_Keyboard_Handler (struct regs * r) {chargin aan saxeex lahayn scancode = ND :: Keyboard :: GetChar (); haddii (scancode! = 255) {ND :: Shaashadda :: PutChar (scancode); stringBuffer [stringPos] = lambarka sirta; stringPos ++; }}

http://gist.github.com/634afddcb3e977ea202d

Waan hubin karnaa sida aan ugu yeerayno howl la yiraahdo ND :: Keyboard :: GetChar. Halkaas ayaan ku helnaa dabeecadda kadibna haddii aysan ahayn dabeecad madhan (halkan waxaan u adeegsaday 255, waa inaan adeegsanno nidaam ka fiican) waxaan ku dhajinaynaa astaamaha shaashadda oo waxaan ku kaydineynaa boorsooyin fudud oo fudud (tani sidoo kale waa sidoo kale hagaajin ku xiran, nidaamka hadda jira ayaa buuxsami kara).

jaantus qeexan ND :: Kiiboodhka :: GetChar () {sawir aan saxeex lahayn oo aan saxeexin; scancode = (char aan la saxeexin) ND :: Dekedaha :: InputB (0x60); haddii (scancode & ND_KEYBOARD_KEY_RELEASE) {soo noqo 255; } kale {soo noqo en_US [scancode]; }} jaantus * ND :: Kiiboodhka :: GetString () {halka (stringBuffer [stringPos-1]! = '\ n') {} stringPos = 0; soo celi stringBuffer; }

http://gist.github.com/2d4f13e0b1a281c66884

Halkan waxaan ku arki karnaa sida loo helo furaha la riixay. 0x60 markasta waxaa jiri doona furaha ugu dambeeya ee la riixay. Xaqiiqdii si toos ah ayaa loo akhrin karaa iyada oo aan loo baahnayn IRQ, laakiin markaa ma garan doonno sida loo aqoonsado markii isbeddel dhacay. Halkaa waxaan ka hubinaynaa AND hawlgalka in koodhka aan helnay uu u dhigmo fure la sii daayay.

Xaaladdaas markaan soo laabanno 255 (maxaa yeelay gadaal baan iska dhaafi doonnaa) haddii kale fure ayaa la riixay. Xaaladdaas oo kale waxaannu ku soo celin doonnaa booska loo yaqaan 'en_US'. Macluumaad noocee ah ayuu ka kooban yahay barnaamijkan? Qalabkani waa waxa aan ugu yeeri lahayn khariidad-fure ama khariidad jilayaal ah. Sidaad ogtahay, luqadaha kaladuwan waxay leeyihiin kumbuyuutar kaladuwan lagumana taageeri karo markay furayaasha furayaan. Marka en_US wuxuu na siin doonaa furaha u dhigma lambar kasta wuxuuna ku shaqeyn doonaa kiiboodhka Mareykanka.

shax aan saxiixin en_US [128] = {0,27, '1', '2', '3', '4', '5', '6', '7', '8', '9', '0 ',' - ',' = ',' \ b ',' \ t ',' q ',' w ',' e ',' r ',' t ',' y ',' u ',' i ',' o ',' p ',' [','] ',' \ n ', 0, / * Ctrl * /' a ',' s ',' d ',' f ',' g ', 'h', 'j', 'k', 'l', ';', '\' ',' '', 0, / * Bidix Bidix * / '\\', 'z', 'x', 'c', 'v', 'b', 'n', 'm', ',', '.', '/', 0, / * Isbedelka saxda ah * / '*', 0, / * Alt * / '', 0, / * Caps quful * / 0,0,0,0,0,0,0,0,0,0, / * F1-F10 furayaasha * / 0, / * Lam qufulka * / 0, / * Qufulka wareeji * / 0, / * Furaha guriga * / 0, / * Falaarta kore * * 0, / * Bogga kor * / '-', 0, / * Falaarta bidix * / 0, 0, / * Falaarta midig * / '+', 0, / * Furaha dhamaadka * / 0, / * Falaarta hoose * / 0, / * Bogga hoos * / 0, / * Furaha furaha * / 0, / * Tirtir furaha * / 0,0,0, 0, 0, 11, / * F12-F0 Furayaasha * / XNUMX};

http://gist.github.com/bf52085aec05f3070b65

Waxaa sidoo kale jiray hawl qeexan oo heshay weedh. Ujeedada ayaa ah in si fudud si fudud looga helo xadhkaha ka imanaya codsiyada u baahan, xilligan oo keliya mid. Waxaan ka hadlayaa NextShellLite, oo ah nooc hoos loo dhigay oo ka mid ah qolofka mustaqbalka ee suurtagalka ah ee ay yeelan lahayd NextDivel. Ujeedada NextShellLite waa kaliya in la bixiyo qolof la dhimay si tartiib tartiib ah loogu tijaabiyo shaqooyinka cusub. Uma socdo inaan halkan dhigo lambarka qolofta laakiin waxaan ku soo daray koodhka NextDivel.

Waqtigan xaadirka ah uma shaqeyneyso barnaamij gooni ah laakiin wuxuu u shaqeynayaa sida loo yaqaan 'kernel', badanaa sababtoo ah wali kumaanaan darin ikhtiyaari ah in lagu socodsiiyo fulinta. Iyo dabcan, sawirro qaar ka mid ah sida qolofku ula shaqeeyo shaqooyinka cusub ee kumbuyuutarka.

NextShellLite


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.   dario dijo

    macalin fiican! mahadsanid 🙂

  2.   PopArch dijo

    Runtu waxay tahay, waligey maan raacin casharrada maxaa yeelay qaybtii hore waxay i siisay qalad markii aan iskudayey inaan ururiyo laakiin ma xasuusto qaladku wuxuu ahaa

  3.   Bisadda Lopez dijo

    Waan ka xumahay jaahilnimadayda jahwareerka ... xaggee laga soo qoray lambarradan? Laga soo bilaabo terminaalka ??

    1.    AdrianArroyoStreet dijo

      Xeerarku waa qayb ka mid ah koodhka isha. Uma dhigayo mid dhameystiran maxaa yeelay haddii kale boostada ayaa wada ah lambar iyo wax sharaxaad ah. Waxaan kugula talinayaa inaad akhriso casharrada bilowga haddii aad rabto inaad raacdo. Waxaad sidoo kale ka hubin kartaa lambarka isha oo buuxa halkan (http://github.com/AdrianArroyoCalle/next-divel)

  4.   kady dijo

    Sidee ayay horumarintu noqonaysaa si uusan qulqulka u dhicin?

    1.    Qufulka dijo

      Kady, weli ma hubisay koodhka keydka? Halkaas ayaa lagu qiyaasaa cabirka ugu badan, iyo sidoo kale shaqooyinka lagu xakameynayo, halkaas waxaad ku sameyn kartaa isbeddelka cabbirka ama ku hirgelin kartaa hab macquul ah oo lagu sii daayo keydka marka uu dhergo
      Waxaan iskaga tagayaa isku xidhka si aad u hubisaan https://github.com/AdrianArroyoCalle/next-divel/blob/master/src/start/ND_Keyboard.cpp

  5.   Nico dijo

    Waad salaaman tahay wax aad u xiiso badan, ma waxaad sii wadi doontaa taxanahan 'taxanaha ah' ee ku dayashada Linus Torvals?
    Miyaad kugula talin kartaa buug, macluumaad si aad u awoodo inaad sameyso kernel sidan oo kale ah?

    Saludos !!

  6.   JawaabahaVeganas.Org dijo

    Salaan Waad ku mahadsantahay casharka. Fadlan, ma kugula talin kartaa buug ku saabsan tan aad samaysay oo aan ahayn "Operating Systems" oo uu qoray Tanenbaum? Aad baad ugu mahadsantahay horay.
    Thanks.