Ukulingisa i-Linus Torvalds: Dala uhlelo lwakho lokusebenza kusuka ekuqaleni (I)

Okokuqala, phawula ukuthi lesi yindatshana yami yokuqala futhi ngiyethemba nonke niyayithanda.

I-Linus Torvals ijabule

Kulolu chungechunge sizolingisa linus torvalds, sizokwakha uhlelo lwethu lokusebenza kusuka ku-0. Kulesi siqephu sokuqala sizobona ibhuthi futhi sizobeka umbhalo esikrinini kusuka kunhlamvu yethu.

Ngokwami ​​uhlelo lokusebenza lubizwa OkulandelayoDivel. Isinqumo sokuqala okufanele sisithathe ngokushesha nje lapho sibheka uhlelo lokusebenza ukuthi ngabe i-bootloader izoba yini?

Lapha kunokuhlukahluka okuningi, futhi singazakhela esisodwa; noma kunjalo kulesi sifundo ngizosebenzisa I-GRUB, ngoba iningi lazi okuthile okuncane noma okuncane ngaye. Sakha ifolda ezoba yimpande yohlelo lwethu lokusebenza futhi lapho sakha ifolda / boot / grub

mkdir nextroot && cd nextroot

mkdir -p boot/grub

Lapho sakha ifayela le-grub.cfg ngokulandelayo:

menuentry "NextDivel" {
echo "Booting NextDivel"
multiboot /next/START.ELF
boot
}

Kuleli fayela sibonile ukuthi kanjani I-GRUB izolayisha i-kernel yethu, kulokhu, ku- /next/START.ELF. Manje kufanele senze i-kernel yethu.

Kulokhu sizodinga i- I-GCC y I-GAS (ukuhlanganisa iphrojekthi I-GNU, imvamisa iza ne-gcc). Ngakho-ke sizokwakha i-kernel.

Okokuqala senza ifayela elibizwa nge- kernel.asm. Leli fayela lizoqukatha isiqalo se-kernel yethu futhi lizophinda lichaze i-multiboot (isici samanye ama-bootloaders afana I-GRUB). Okuqukethwe kernel.asm kuzoba:

.text
.globl start
start:
jmp multiboot_entry
.align 4
multiboot_header:
.long 0x1BADB002
.long 0x00000003
.long -(0x1BADB002+0x00000003)
multiboot_entry:
movl $(stack + 0x4000), %esp
call NextKernel_Main
loop: hlt
jmp loop
.section ".bss"
.comm stack,0x4000

Konke okuphathelene ne-multiboot kumane nje ukulandela imininingwane akukho okunye. Konke kuzoqala ekuqaleni, kuzobiza i-multiboot_entry, sizobe sesichaze unhlokweni we-multiboot ku-4k yokuqala futhi sizokubeka (nge-movl).

Kamuva sibiza i-NextKernel_Main okuwumsebenzi wethu we-kernel C. Ku-loop simisa ukumisa ikhompyutha. Lokhu kuhlanganiswa ne:

as -o kernel.o -c kernel.asm

Manje sizofaka izinhlelo ku-C. Uzocabanga ukuthi manje konke kuyisiqeshana sekhekhe, sibeka i- printf en main futhi yilokho kuphela, sikwenzile.

Cha, ngoba printf y main yimisebenzi echazwa uhlelo olusebenzayo, kepha siyayakha! Singasebenzisa kuphela imisebenzi esizichaza yona.

Ezahlukweni ezizayo ngizokhuluma ngendlela yokubeka owethu umtapo wezincwadi we-C (glibc, bionic, newlibc) kepha ngezikhathi ezithile. Sikhulume ukuthi sifuna ukubeka umbhalo esikrinini, kahle sizobona ukuthi sikwenza kanjani.

Kunezinketho ezimbili, eyodwa ukubiza ifayela le- I-BIOS okunye ukuphatha imemori yesikrini ngqo. Sizokwenza lokhu kokugcina ngoba kucace bha ku-C futhi kuzosivumela nokuthi sikwenze lapho singena kwimodi evikelwe.

Sakha ifayela elibizwa nge-NextKernel_Main.c ngokuqukethwe okulandelayo:

int NextKernel_Main()
{
char *str = "NextDivel says Hello World", *ch;
unsigned short *vidmem = (unsigned short*) 0xb8000;
unsigned i;
for (ch = str, i = 0; *ch; ch++, i++)
vidmem[i] = (unsigned char) *ch | 0x0700;
return 0;
}

Ngalokhu sisebenzisa imemori ngqo I-VGA nohlamvu ngesimilo siyakubhala. Sihlanganisa ngokukhubaza i-stdlib:
gcc -o NextKernel_Main.o -c NextKernel_Main.c -nostdlib -fPIC -ffreestanding

Uma usufinyelele lapha, uzofuna ukuzama uhlelo lwakho olusha sha manje, kepha asikaqedi. Sidinga ifayili elincane elitshela umhlanganisi lapho efayilini ashiye khona isigaba ngasinye. Lokhu kwenziwa nge-linker script. Sakha i-link.ld:

ENTRY(start)
SECTIONS
{
. = 0x00100000;
.multiboot_header :
{
*(.multiboot_header)
}
.text :
{
code = .; _code = .; __code = .;
*(.text)
. = ALIGN(4096);
}
.data :
{
data = .; _data = .; __data = .;
*(.data)
*(.rodata)
. = ALIGN(4096);
}
.bss :
{
bss = .; _bss = .; __bss = .;
*(.bss)
. = ALIGN(4096);
}
end = .; _end = .; __end = .;
}

Ngalokhu sichaza ukuma kwesigaba ngasinye nendawo yokungena, qala, esikuchaze ku-kernel.asm. Manje sesingakwazi ukuhlanganisa yonke le ngxube:

gcc -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -ffreestanding -lgcc

Manje sesikopisha u-START.ELF ukuya / ngokulandelayo ngaphakathi kwefolda yethu elingisa impande yohlelo lwethu lokusebenza. Siya kufolda yezimpande yohlelo lwethu olusha lokusebenza ne-console bese siqinisekisa ukuthi kunamafayela amabili: elilodwa / boot / grub / grub.cfg nelinye / elilandelayo / i-START.ELF

Siya enkombeni ephezulu bese sibiza insiza yokudala ye-ISO ebizwa nge-GRUB i-grub-mkrescue

grub-mkrescue -o nextdivel.iso nextroot

Uma sesikwenzile lokhu sizoba ne- ISO. Le ISO ingavulwa kumakhompyutha x86 (Ama-bits angama-64) nemishini ebonakalayo. Ukuyihlola, ngizosebenzisa QEMU. Siyabiza QEMU kusuka kulayini womyalo:

qemu-system-i386 nextdivel.iso

Izoqala I-SeaBIOS futhi kamuva siyoba nakho I-GRUB. Kamuva uma konke kulungile, sizobona umusho wethu.
Uzocabanga ukuthi lokhu kunzima, ngiyaphendula, yebo kunjalo.

Ukwakha uhlelo olusebenzayo kunzima nokuthi lena lapha ayenzi lutho oluwusizo. Ezahlukweni ezizayo sizobona ukuthi singayiphatha kanjani imibala esikrinini, sigcine imemori futhi uma ngikwazi, ukuthi ungayithola kanjani idatha kusuka kukhibhodi.

Uma othile engafuni ukukopisha konke lapha, ngine-repository ku GitHub (chaza kabanzi) ngohlelo olusebenzayo OkulandelayoDivel. Uma ufuna ukuhlanganisa OkulandelayoDivel kufanele ube ne-git ne-cmake:

git clone https://github.com/AdrianArroyoCalle/next-divel
cd next-divel
mkdir build && cd build
cmake ..
make
make DESTDIR=next install
chmod +x iso.sh
./iso.sh
qemu-system-i386 nextdivel.iso

Ngiyakukhuthaza ukuthi uhlanganyele ku-NextDivel uma unesikhathi futhi ufisa ukudala uhlelo olusebenzayo. Mhlawumbe ngisho nangaphezulu kweLinux ... isikhathi sizotshela.


Amazwana ayi-85, shiya okwakho

Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   izinga kusho

    :O

    1.    nxumabiyela kusho

      AbakwaTorvalds bathathe uhlelo lokusebenza lweMinix (olususelwa ku-UNIX) laya ku-Andrew S. Tanenbaum baluthuthukisa.

      UTanenbaum uxabene noLinus, bathukana. UTanenbaum uthi iMicrokernel ikusasa (HURD, Minix new cone Microkernel).

      http://www.taringa.net/posts/linux/17215999/Linux-vs-Hurd-Kernel-Monolitico-vs-Microkernel.html

  2.   eliotime3000 kusho

    Lokhu kube okuthunyelwe okuhle kakhulu engikubonile kuze kube manje kule bhulogi. Sengivele ngifuna ukwazi ukuthi yini enye okufanele ngiyenze.

  3.   UCarlos kusho

    Hlatshwa umxhwele

  4.   i-axl kusho

    Kuyamangaza ngempela !!

  5.   umagazine kusho

    FUUUUUUU!
    yiposi elingumgogodla engake ngalibona hehe. Siyakuhalalisela u-Adrián, i-athikili yesifebe! hyper ezithakazelisayo !!! 🙂

    1.    Joaquin kusho

      Ngiyavuma. Ngicabanga lesi simo:
      Umsebenzisi we-GNU / Linux Power (ngobuso obujabulile):
      "Sengivele ngiyazi ukuthi ngihlanganisa kanjani iGentoo yami"

      UNerd (ngokwedelela): «pff, ngidale eyami i-distro ...»

      1.    desikoder kusho

        Yebo, ngingadala eyami i-linux distro. Empeleni kuyo ngakha ama-initramfs kanye ne-kernel ye-linux eshumekiwe. Akufani nokwakha uhlelo lokusebenza kune-linux distro. Okokuqala kunzima kakhulu, cishe akunakwenzeka, okwesibili, njengoba ushilo, kungaba yinoma yini, ngisho no-Ubuntu onelogo ye-xD eguqukile. Ngakho-ke bengizoyishiya kanjena:

        Umsebenzisi we-GNU / Linux Power (ngobuso obujabulile)
        - Sengivele ngiyazi ukuthi ngingahlanganisa kanjani iGentoo yami

        I-Semi-Nerd
        - Pff, ngilandele i-linux kusukela ekuqaleni futhi ngazenzela eyami i-distro

        UNerd (onesimo sokudelela)
        - pff, ngoba ngihlelile i-kernel ku-assembler naku-C

        Ukubingelela!

  6.   ama-cronos kusho

    Lokhu kuyangithakazelisa, kusalindwe izahluko ezilandelayo.

  7.   umabhebhana kusho

    Ngibone lesi sifundo esikhathini esedlule, senzelwe i-C ++
    https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System

    1.    AdrianArroyoStreet kusho

      Ngiyabonga ngesixhumanisi, ngizosibuka.

  8.   UJose Jácome kusho

    Ngingathanda i-Operating System 100% ihambisane nemidwebo ye-AMD: /

    1.    U-IvanLinux kusho

      Windows

      1.    UJose Jácome kusho

        hahaha kuWindows Catalyst ayinakho ukwesekwa kwe-OpenGL, yize ku-Linux ngingawasebenzisi wonke amandla wokuqhafaza engizoqhubeka ngilinde ukubona ukuthi kwenzekani!

        1.    khanyisile kusho

          vele ulinde i-valve ukuqeda imakethe

  9.   KZKG ^ Gaara kusho

    Umlingo, ophelele, umnikelo omuhle kakhulu, kubukeka njengochungechunge olukhulu lokuthunyelwe 🙂

  10.   O_Pixote_O kusho

    I-Buah ngithanda ukwazi ukuthi ngingahlelela kanjani ukukusiza, njengendlela yokuzijwayeza ngolwazi olufundayo futhi eyodwa iyasiza. Okwamanje ngikushiyela isiqubulo sokudonsela ukunakekela kuphrojekthi uma usuqede "Sebenzisa i-NextDivel, i-porn ibukeka ifana (noma ingcono).", Uzoshanela i-xD.

  11.   lindokuhle kusho

    Mooooooolaaa !!!!

  12.   Nordi kusho

    I-athikili enhle kakhulu, kepha ufuna ukwazi ukuthi kungani ungayilandelanga iphrojekthi yeLinux From Scratch?

    Phendula ngokucaphuna

    1.    AdrianArroyoStreet kusho

      Yebo, iLinux evela kuScratch ilungile, futhi ungasho ukuthi ngeyakho, kepha imishini impela:
      Amafonti -Landa
      -Zibambe
      -Qoqa
      -Faka
      -Ukulandela
      Lapha noma ngabe imiphumela iba mibi ekugcineni ungasho ukuthi ubuyekeze wonke amafayela.

    2.    desikoder kusho

      Njengoba kucacile ekuphawuleni kwami ​​kwangaphambilini, ngoba ayinayo izinga elifanayo lobunzima. Ngaphezu kwalokho, i-linux kusuka ekuqaleni ayiphikisani neze negama layo, ukudala uhlelo kusuka ekuqaleni.Ukwenza uhlelo kusuka ekuqaleni ukuzenzela uhlelo, ubhale i-kernel yakho, hhayi i-linux kernel, uma kungenzeka ngisho ne-bootloader yakho grub, lilo, syslinux, njll. Yize i-LFS ingeyona into encane futhi iyinkimbinkimbi impela, ayisondeli nakusondela ekuhleleni i-kernel yakho ...

      Ngaphezu kwalokho, ngivumelana no-AdrianArroyo Calle ukuthi ingumshini kakhulu, ngiyifundile ngesinye isikhathi futhi ugcine unikezela ekhasini lesithupha, bakutshela nokuthi usebenzise iziphi izinhlobo zamaphakeji ngoba uma kungenjalo imiyalelo ngeke isebenze (lokho kukhombisa ukungabi bhetyebhetye, Ngokombono wami). Ngicabanga ukuthi kungcono ukuba nokuthile komqondo wakho, uhlanganise amaphakheji owafunayo, noma uwahlelele amanye, uhlanganise i-linux kernel nangokuthula.

      Ukubingelela!

  13.   Ikhukhi kusho

    uuuoooohh !! Angikaze ngithathe okuthunyelwe njengoba kwenza lokhu.
    Sicela uqhubeke 😀

  14.   umsebenzisi we-linux kusho

    Angazi ukuthi yini okungahambi kahle:

    iphutha: asikho isihloko se-multiboot esitholakele.
    iphutha udinga ukulayisha i-kernel kuqala

    1.    AdrianArroyoStreet kusho

      Uma kuyinduduzo, ngenze iphutha elifanayo. Zama ukusebenzisa imithombo eku-GitHub, lapho iphutha selivele lixazululiwe. Noma kunjalo ngicabanga ukuthi uma ushintsha ulayini we-grub.cfg usuka ku- "multiboot /next/START.ELF" uye ku- "kernel /next/START.ELF" ungahle usebenze. Angazi kahle.

      1.    mcphiwe kusho

        Okokuqala, indawo enhle yokungena 🙂
        Nginenkinga efanayo yokulayisha i-kernel kusuka ku-grub. Noma usebenzisa imithombo yeGitHub noma ushintsha i-multiboot ye-kernel ...

        iphutha: asikho isihloko se-multiboot esitholakele.
        iphutha: ayikho i-kernel elayishiwe

        1.    AdrianArroyoStreet kusho

          Ngabe usebenzisa i-clang njengomhlanganisi? Shintshela i-gcc
          Usukhumbule ukusebenzisa iskripthi se-linker? Kuyadingeka ukuze i-linker (ld kithi) yazi ukuthi izofaka kuphi into ngayinye efayilini. Kulokhu unhlokweni we-multiboot kumele ube ekuqaleni.
          Ngabe usebenzisa uhlelo lwe-CMake? Uma uyisebenzisa ngicabanga ukuthi ayiphumeleli.
          Uma kungakusebenzeli, ngizozama ukuthola esinye isixazululo.

  15.   khourt kusho

    [+100]
    Kuhle nje !!!

  16.   okungabonakali15 kusho

    Kuhle impela really

  17.   I-Tanrax kusho

    Ngikhumula isigqoko sami. Okuthunyelwe okumangalisayo. Halala.

  18.   eyodwa kusho

    Hawu!
    Kungakuhle uma ungavula izinhlelo zokusebenza ezenziwe nge-HTML5 neJavascript ngaphandle kokusebenzisa isiphequluli, kungenzeka lokho?
    Ngikhuluma ngabo ukuthi bafana nezicelo zomdabu.
    Ngakho-ke kungaba lula ukuhlelela lolu hlelo lokusebenza 😀

    1.    AdrianArroyoStreet kusho

      Kulokhu angizukukwenza ngoba kudinga umsebenzi omningi ngemuva kepha kukhona uhlelo lokusebenza olubizwa nge- "is" olwenza lokho okushoyo. Eqinisweni umugqa womyalo yiJavaScript futhi amawindi adwetshiwe kusetshenziswa imisebenzi yeJavaScript Canvas. Onjiniyela beNintendo bakwenzile futhi manje sekuwumthombo ovulekile.

      http://code.google.com/p/es-operating-system/

      1.    eyodwa kusho

        UValla, ngiyabonga ngolwazi 😀
        Ngizobheka

  19.   pathodx kusho

    Noma ngubani ongazenzela i-OS yakhe angafa ngokuthula, ngoba izinga lobuhlakani kufanele alifeze ngalo; Kukwenza uhambisane nezulu noma isihogo.
    Ucezu lokuposa.

    1.    UMiguel kusho

      kuze kube manje akekho owaziwa ukuthi wenze kuphela okuthile okungathiwa uhlelo oluhloniphekile lokusebenza olwenziwe ekuqaleni, ngisho neLinux Torvalds njengoba usho ekuqaleni, ngoba lokhu kuqale emithonjeni ye-Unix nakho konke okunye kubhalwe ngokufana nokunye Kunomuntu oyedwa, impilo imfushane kakhulu futhi ukuqala ekuqaleni akunakucatshangwa yinoma ngubani, noma ngabe okuhlukile kuyadingeka, kuyabonakala emaphutheni amaningi enziwe ekukopisheni nasekunamathiseleni kweLinux Torvalds

      1.    i-skarmiglione kusho

        Imithombo ye-unix ivaliwe, ukusetshenziswa kwe-minix ... okungenye into.

      2.    UFelipe Robaina kusho

        nalabo abenza i-QDOS ini?
        zazisekelwe kokuthile?

  20.   Tesla kusho

    Ngokwalokho engikubonayo, ngubani ongenalo uhlelo lwabo lokusebenza kungenxa yokuthi abafuni, hahahaha.

    Manje ngokungathí sina, okuthakazelisa kakhulu! Okuningi kungaphezu kolwazi lwami olunqunyelwe, kepha ngizofunda ezinye izingxenye zalolu chungechunge ngilindele.

    Siyabonga ngokuthunyelwe!

  21.   UManuel R kusho

    Ungishiye nobuso be-O_O ... ngaphandle kwenhloso yokubukela phansi iminikelo yanoma ngubani, "ngungqondongqondo" omkhulu kunabo bonke engake ngababona muva nje. Ozithobayo.

  22.   mthokozisi kusho

    I-athikili enhle kakhulu, u-Adrián. Sicela uqhubeke…

  23.   mj kusho

    Uyadlala ngoSuku lweziwula luka-Ephreli?, Ungabi nonya "Ulingisa iLinus Torvalds: Dala uhlelo lwakho lokusebenza kusukela ekuqaleni." Angicabangi ukuthi kunzima kulabo abaphishekela ikhono elithile esikhungweni sobuchwepheshe noma eyunivesithi; kepha kimi ngingumcibisheli osafufusa (kukhona labo abathi "Noob" kepha ngizibona nginguNewbie ngokwengeziwe ngivila) lokho kuzwakala kunganyatheli umhlaba. Noma kunjalo, LESI SIQEPHU SIDALA ISIQINISEKISO ESININGI NANGAPHANDLE KOKUNGABIZI UKUTHANDA NOKUHLONIPHA UMHLELI WAKHO, HALALISELA; Into yokuqala engizoyenza ukuzama ukuqonda okungenani okuncane kwalokhu okubalulekile.
    NGIYABONGA u-Adrian Arroyo Calle, umsebenzi oncomekayo nokulethwa okuhle kwemininingwane.

  24.   UBlaire pascal kusho

    LEL okuthunyelwe okuhle, qhubeka.

  25.   I-F3niX kusho

    Que Grandioso post, esto es lo que extrañaba de desde linux. Que maravilla.

  26.   Ruby kusho

    Okuthunyelwe okuhle, ngiyabonga kakhulu.
    Angiqondanga okwenziwa yifayela le-link.ld, ngabe othile angangichazela?

    1.    AdrianArroyoStreet kusho

      Ifayela le-link.ld litshela i-linker (kulokhu ld) lapho ingxenye ngayinye yekhodi kufanele ibe kufayela eliholelekile. Sichaza nendawo yokungena ngoba njengoba singenalo uhlelo lokusebenza asikwazi ukusebenzisa okuyinhloko njengohlelo olujwayelekile, kulokhu sikhetha umsebenzi wokuqala.

  27.   Maxi kusho

    Kuhle konke okuthunyelwe kwakho! Ilinde okungu-7! Kuthiwani uma nginokungabaza, ngokwesibonelo, uma bengifuna kuphela ukusebenzisa i-algorithm, ngaphandle kwe-OS, ngazi kanjani ukuthi yini engingayisebenzisa nokuthi yini engasebenzisi uC?

    1.    AdrianArroyoStreet kusho

      Uma uyisebenzisa kanjena, ngeke ukwazi ukusebenzisa noma yini kusuka ku-stdlib, okuyilokho okusetshenziswa yiwo wonke umuntu (akukho malloc, free, printf, scanf, strcmp, njll). Konke kufanele kusetshenziswe ngqo kusuka kwimemori noma ku-ASM. Mhlawumbe esahlukweni esiphakeme ngizokukhombisa ukuthi ungayifaka kanjani ilabhulali engu-C yohlelo lokusebenza. Uma usebenzisa i-C ++ awukwazi ukusebenzisa okuhlukile futhi opharetha abasha bese ususa (futhi ngokuqinisekile ngaphezulu).

    2.    I-Swicher kusho

      Ngiyacabanga lokhu kungakunika umbono ongcono wokuthi ungakwenza kanjani.

  28.   UStefanu kusho

    Sawubona, cishe eminyakeni emi-5 eyedlule ngalandela ukushicilelwa okufanayo futhi ngakha imicroernern eqala ngendlela efanayo, inezici ezithile okufanele uzithuthukise, kepha ingakuthakazelisa, isebenza ngemodi evikelekile, yenza imisebenzi eminingi futhi yenze ukubonwa kwememori, muva nje ngisebenze kuyo disk nomshayeli we-cd ukuyenza ifinyeleleke futhi ingagijimi ku-cd ebukhoma kuphela ... Sanibonani.

  29.   Johan kusho

    Sawubona, nginephutha lapho ngisebenzisa umyalo:
    gcc -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -ukubeka eceleni -lgcc

    link.ld: 5 iphutha le-syntax
    iqoqo2: iphutha: ld ubuyise isimo sokuphuma esingu-1

    isixhumanisi.ld
    . = 0x00100000;
    isihloko se-multiboot_head: {
    * (. multiboot_header)
    }

    Kulayini 5 angiliboni iphutha, ngabe kwenzeka into efanayo kuye?

    Ngisebenza nge-virtualized debian wheezy ku-virtualbox

    1.    UJulian Reyes Escrigas kusho

      engeza ";" ekugcineni kwe * (. multiboot_header)

  30.   U-Eric Orellana Romero kusho

    Isinyathelo esihle kakhulu, nakanjani ngizolandela izahluko zalokhu okuthunyelwe, ngihlose ukufunda okuningi kukho. Ngiyabonga kakhulu ngokuthatha isikhathi ukusifundisa. Imininingwane eyodwa kulokhu, kufanele kuqashelwe ukuthi uLinus Torvalds akayena umqambi wanoma yiluphi uhlelo lokusebenza, wenza iKernel yohlelo lwe-GNU / Linux (olusetshenziswe kwenye i-OS), olusazuzisa, kepha Kubalulekile ukukhokha uRichard Stallman ngokudala iningi le-OS.

    Ngiyabonga kakhulu ngokufaka futhi ngiyethemba ukuthi uzocubungula engikubonile.

  31.   UJulian Reyes Escrigas kusho

    Bengilokhu ngizixaka nendaba isikhashana, ngibe nentshisekelo lapho nje ngifunda isihloko. kodwa umyalezo ulokhu uthola

    iphutha: asikho isihloko se-multiboot esitholakele.
    iphutha udinga ukulayisha i-kernel kuqala

    Ngilayishe engikuthathayo ngikwenze repo ku-github https://github.com/rkmax/GenyOS

    1.    UMartin Villalba kusho

      Nami kwenzeka into efanayo.Ngabe usitholile isisombululo?

  32.   Carlos kusho

    umbuzo engiqale ngawo ukwethula i-syntax futhi umugqa wemenyuentry ungitshela umyalo wokuthola ongatholakalanga ongangitshela ukuthi kungani
    nakhu engikwenzayo

    EMNYAMA @ BLACK-pc: ~ / blackroot $ menuentry «NextDivel» {
    imenyuentry: umyalo awutholakali

    1.    AdrianArroyoStreet kusho

      Okuqukethwe kwalokhu okuqukethwe akumele kufakwe kulayini womyalo, kodwa kufayela olakha elibizwa nge- grub.cfg

  33.   UNodetino kusho

    I-athikili enhle kakhulu, ngiyabonga!

  34.   David kusho

    Okumangazayo… !! kufana nje nesixhumanisi esilahlekile.

  35.   khanyisile kusho

    Ngiyazithanda izifundo zakho ze-Emulating LInus Torvalds, kepha kunesinyathelo esisodwa engingasiqondi, okulandelayo:
    Manje sesikopisha u-START.ELF ukuya / ngokulandelayo ngaphakathi kwefolda yethu elingisa impande yohlelo lwethu lokusebenza. Siya kufolda yezimpande yohlelo lwethu olusha lokusebenza ne-console bese siqinisekisa ukuthi kunamafayela amabili: elilodwa / boot / grub / grub.cfg nelinye / elilandelayo / i-START.ELF

    Siya enkombeni ephezulu bese sibiza insiza yokwenza ama-ISOs ane-GRUB ebizwa nge-grub-mkrescue

    Ngabe kukhona ongangichazela: p

    1.    AdrianArroyoStreet kusho

      Mane ukukhiqiza i-ISO encane i-GRUB engayilayisha sikopisha i-kernel ku- (the / ye-ISO, noma iyiphi ifolda) /next/START.ELF kanye nefayela lokumisa le-GRUB ku- (the / of the ISO, any folder) / boot /grub/grub.cfg. Uma lokho sekuqediwe asikayifaki i-GRUB ku-ISO futhi kukhona into ekhiqiza i-ISO kusuka kufolda bese ifaka i-GRUB ebizwa nge-grub-mkrescue. Ngemuva kwalokho ekugcineni sizogcina sine-bootable ISO efakwe i-GRUB, engafunda ukumiswa ukuze kamuva yenze i-START.ELF ngokufanele. Angazi noma ngizichazile yini, kepha esikwenzayo luhlobo lwefayela lamanga esenza ngalo i-ISO.

  36.   miguel jose guevara ukunakwa kusho

    Kuhle

  37.   Michael Moreno kusho

    Yebo, bheka uhlelo olusha hhayi kangako kepha uma uthuthukisa i-linux, ngokwesibonelo, dala i-linux exonucleus enengxenye yeseva esebenza njenge-micronucleus uma ufisa, okungukuthi, isakhiwo se-exo esinokuziphatha kwe-micronucleus okungaba kuhle futhi kube yi-linux.

    Enye into ukuthi angiyena uchwepheshe wohlelo, ama-cheesy c ++ ambalwa nje ne-java ethile, kuzokwanela mina ukunikeza uhlelo lwe-linux kernel imodyuli, ukuyigungqa, ukuyiguqula njll.

  38.   UbusikaSoldier53 kusho

    Ngaphandle kokungabaza sekuvele kufanele ngikwenze eholidini.

  39.   UFermin kusho

    Le enhle futhi iluklama futhi ilukopishe ngaluphi uhlelo?
    ngicela unginike leyo mpendulo

  40.   I-DarkMind kusho

    Lapho ngihlanganisa kusuka ku-git yakho ngithola:

    [jmponce @ jar build] $ cmake ..
    - Ukwakha isiqondisi se-NextRoot
    - Ukwenza umbhalo we-ISO
    yenza i-DESTDIR = ukufaka okulandelayo
    ./iso.sh
    - Kutholakale i-Doxygen: / usr / bin / doxygen (inguqulo etholakele "1.8.9")
    - Ukuhlela kwenziwe
    - Ukwenza kwenziwe
    - Amafayili wokwakha abhalwe ukuthi: / home / jmponce / next-divel / build
    [jmponce @ jar build] $ enze
    Iskena ukuncika kwethagethi START.ELF
    [7%] Ukwakha into ye-ASM-ATT src / CMakeFiles / START.ELF.dir / start / boot.asm.o
    [14%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / NextShellLite.cpp.o
    [21%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_Screen.cpp.o
    [28%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / NextKernel_Main.cpp.o
    [35%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_Panic.cpp.o
    [42%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_Timer.cpp.o
    [50%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_Memory.cpp.o
    [57%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_Ports.cpp.o
    [64%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_GDT.cpp.o
    [71%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_ISR.cpp.o
    [78%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_String.cpp.o
    [85%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_IRQ.cpp.o
    [92%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_IDT.cpp.o
    [100%] Ukwakha into ye-CXX src / CMakeFiles / START.ELF.dir / start / ND_Keyboard.cpp.o
    Ixhuma i-CXX ephumelelayo START.ELF
    / usr / bin / ld: Akuhambisani / usr/lib/gcc/x86_64-unknown-linux-gnu/4.9.2/libgcc.a yeqiwe ngenkathi ifuna -lgcc
    / usr / bin / ld: ayikwazi ukuthola -lgcc
    iqoqo2: iphutha: ld ubuyise isimo sokuphuma 1
    src / CMakeFiles / START.ELF.dir / build.make: 402: Imiyalo ehlulekile ye-target 'src / START.ELF'
    yenza [2]: *** [src / START.ELF] Iphutha 1
    I-CMakeFiles / Makefile2: 106: Imiyalo ehlulekile ye-target 'src / CMakeFiles / START.ELF.dir / all'
    yenza [1]: *** [src / CMakeFiles / START.ELF.dir / all] Iphutha 2
    I-Makefile: 117: Ukwehluleka kumiyalo yethagethi 'konke'
    yenza: *** [konke] Iphutha 2

    1.    AdrianArroyoStreet kusho

      Iphutha libukeka sengathi alikwazi ukuthola i-llibgcc ngoba unenguqulo engama-64-bit futhi njengamanje uhlelo lokwakha luphoqelekile ukusebenzisa ama-32-bit. Kufanele ufake iphakethe lokuhambisana ku-distro yakho noma okungcono, sebenzisa uhlelo lwe-32-bit.

      1.    URonaldo Rodriguez kusho

        Nginezingcezu ezingama-32 futhi kuvela iphutha elifanayo, usho ukuthi uhlelo lokusebenza noma ukwakheka? okwami ​​kungu-64 Bit, kepha ngisebenzisa i-32 bit Ubuntu, ungabuzi, izinkinga zezezimali, ngalokho ngikusho konke.

  41.   Jorge kusho

    Isihloko esihle kakhulu, silinde ububanzi obukhulu. Jabulela

  42.   Jhon kusho

    Kuhle ngithemba okuningi

  43.   Soid perez kusho

    Sawubona, ngiyinxusa elincane elifuna ukudala uhlelo lokusebenza olusekela zonke izinhlelo namapulatifomu ukuze onjiniyela kungadingeki babe nemishini enamandla noma izinhlelo zokusebenza noma izinhlelo kwi-pc.
    Kungakho nginentshisekelo kulokhu okuthunyelwe kepha uma ngilanda i-git yakho noma ngizama ukuyakha, konke kusebenza ngize ngikhiphe umyalo ./iso.sh noma i-grub-mkrescue -o nextdivel.iso nextroot uthola leli phutha

    "I-Grub-mkrescue: isexwayiso: I-xorriso yakho ayisekeli" -grub2-boot-info ". Ezinye izici zikhutshaziwe. Sebenzisa i-xorriso 1.2.9 noma kamuva ..
    i-grub-mkrescue: isexwayiso: I-xorriso yakho ayisekeli i - "-grub2-boot-info". Isithombe sakho se-kernel sikhulu kakhulu. I-Disk boot ikhutshaziwe. Sebenzisa i-xorriso 1.2.9 noma kamuva .. »
    Angazi nakancane ngoba ngazi okuningi ngezinhlelo zokusebenza namawebhu kodwa angazi lutho nge-grub

    1.    AdrianArroyoStreet kusho

      Ungahle udinge ukubuyekeza uhlelo lwe-xorriso ku-distro yakho. Usebenzisa yiphi i-distro nohlobo?

      1.    Soid perez kusho

        Ngisebenzisa i-xubuntu 14.04lts futhi ngizama ukusebenzisa i-xorriso kepha uShell ungitshela ukuthi ayikwazi ukuyithola futhi ngithola ukufakelwa kahle xorriso yize bengilindele ngobuqotho impendulo ethile ngoba ngibe nesipiliyoni esibi sokufaka izinto engingazazi ku-linux hehe. Ngizoyibuyekeza manje bese ngikutshele ukuthi kwenzekeni

      2.    AdrianArroyoStreet kusho

        Ngemuva kwalokho faka i-xorriso kusuka esikhungweni se-software noma umane nje uvele ku-terminal do "sudo apt-get install xorriso"

      3.    Soid perez kusho

        Sengikwenzile konke ongitshele ngakho nangokubili kwe-git nokwami ​​ngithola le xorriso 1.3.2: RockRidge fileystem manipulator, libburnia project.

        IDrayivu yamanje: -outdev 'stdio: nextdivel.iso'
        Okwamanje kwemidiya: ifayela le-stdio, elibhalwe phansi
        Isimo semidiya: asinalutho
        Isifinyezo semidiya: amaseshini ama-0, amabhlogo wedatha angu-0, idatha engu-0, mahhala ngo-1901m
        Kungezwe esithombeni se-ISO: isiqondisi '/'='/tmp/grub.OEqSzV'
        xorriso: QAPHELA: Amafayela angama-546 engezwe ngemizuzwana eyi-1
        xorriso: UKUHLULEKA: Ayikwazi ukunquma imfanelo yefayela lomthombo '/ media / gaia / Jupiter1 / ShellSystem / nextroot / nextroot': Alikho lelo fayela noma umkhombandlela
        xorriso: QAPHELA: Amafayela angama-546 engezwe ngemizuzwana eyi-1
        i-xorriso: ukukhipha isisu: -abort_on 'FAILURE' kuhlangatshezwane ne 'FAILURE'
        futhi i-corduroy angiqondi ukuthi isakhiwo sami ngu /nextroot/boot/grub/grub.cfg ne-nextroot / elandelayo / START.ELF

      4.    Soid perez kusho

        Ngiyabonga, sengikulungele ukuqhubekela phambili, umngani wangisiza wangitshela ukuthi engone ngakho yinhlangano yomkhombandlela, ngakho-ke ngiyilungisile

      5.    erik kusho

        Uxolo, ungangitshela ukuthi iyiphi inqubo oyenzile ngoba angitholi phutha lokuqalisa: alikho lelo fayela noma umkhombandlela

        ayikho i-bootable device.

  44.   Jose kusho

    Halala! Bengizokucela umusa uma ungangithumelela i-imeyili nalokho okuchaza lapha, ngididekile kancane futhi ngidinga ukuqhathanisa enginakho nalokho okuchazayo, mhlawumbe okungangicaceli ukuthi ngabe ukwenziwa kwe-grub. i-cfg yenziwa ku-terminal gcc noma ikuphi ngqo? ngiyabonga kakhulu mngani!

    1.    AdrianArroyoStreet kusho

      Udala ifayili grub.cfg nganoma yisiphi isihleli sombhalo futhi kufanele ulilondoloze ku-PROJECT_FOLDER / boot / grub / grub.cfg

  45.   jhuazano kusho

    Sawubona Adrian, okokuqala, ngiyakubongela futhi ngiyabonga ngeqhaza lakho.

    Uyazi ngenza lokhu njengomkhuba futhi ngaqala ukukuhlanganisa ngokulandela ukufundiswa kwakho, kepha ngemuva kokuqala ngithole iphutha lokuqala

    $ njenge -o kernel.o -c kernel.asm
    bash: njengoba: umyalo awutholakalanga ...
    Imiyalo efanayo yile:
    'sa'
    'ac'

    Ngisebenza ku-fedora 20, futhi angisitholi isisombululo kulokhu, ngingajabulela ukuholwa kwakho kokuthi kufanele ngishintshe okuthile ku-gcc noma kugesi

    kusengaphambili ngiyabonga

    1.    AdrianArroyoStreet kusho

      Kufanele ufake i-GAS ukuze ngibone ikhodi yephutha. Anginayo i-Fedora eseduze kodwa ngombono uma wenza i-yum install gcc-c ++ uzofaka yonke i-suite ye-GCC futhi imvamisa iza ne-GNU As.

  46.   UGaston Ramirez kusho

    Nginawe, kukhona engikwaziyo nge-C ++, C # (yize le yokugcina ingasetshenziswanga kakhulu kule ndaba) okubi ukuthi ngisenaso isipiliyoni, angikaze ngiphathe ulimi lwe-C, ukushicilelwa kwakho kuhle, Akukho okuningi engingakusho, uma nginesikhathi ngiyabona. Ngiyabonga.

  47.   UTeresita del jesus nah sanchez kusho

    Ngiyabonga kakhulu ngosizo olukhulu….

  48.   jky kusho

    Ngiyayithanda i-linux yisifunda esihle kunazo zonke esikhona, iqiniso lamawindi wami udoti kulokho engikwaziyo ukuthi umenzi we-linux ngumenzi wamawindi

  49.   Ukuhamba kusho

    Sawubona ngithola Iphutha ku-grub kusho
    iphutha: file /next/START.ELF Ayitholakalanga
    iphutha: udinga ukulayisha i-kernel kuqala

    Ungangisiza ungibhekabheka kodwa angikutholi

  50.   U-Enrique Avila kusho

    Ngiyacela, ngingawenza kanjani ubonise umlayezo othi HELLO WORLD? Ngingumqali futhi angazi okwanele

  51.   ICARLOS GUERRERO ALVAREZ kusho

    Okulandelayo kwenzeka kimi:
    gcc -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -ukubeka eceleni -lgcc
    / usr / bin / ld: kernel.o: ukuhambisa kabusha i-R_X86_64_32 emelene nophawu `isitaki 'ngeke isetshenziswe lapho kwenziwa into ye-PIE; phinda uhlanganise ne -fPIE
    / usr / bin / ld: isixhumanisi sokugcina sehlulekile: isigaba esingamelwe kokukhishwayo
    iqoqo2: iphutha: ld ubuyise isimo sokuphuma esingu-1