Угледање на Линуса Торвалдса: Креирајте свој властити оперативни систем од нуле (И)

Пре свега, коментаришите да је ово мој први чланак и да желим да вам се свиди.

Линус Торвалс срећан

У овој серији ћемо се угледати Линус Торвалдс, креираћемо наш оперативни систем од 0. У овој првој епизоди ћемо видети боот и поставићемо текст на екран из нашег језгра.

У мом случају се зове оперативни систем НектДивел. Прва одлука коју морамо донети чим размотримо оперативни систем је шта ће бити боотлоадер?

Овде постоји више варијанти, а једну бисмо могли и сами да створимо; међутим у овом упутству ћу се користити ГРУБ, јер већина зна више или мање нешто о њему. Креирамо директоријум који ће бити корен нашег оперативног система и тамо креирамо директоријум / боот / груб

mkdir nextroot && cd nextroot

mkdir -p boot/grub

Тамо креирамо датотеку груб.цфг на следећи начин:

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

У овој датотеци смо видели како ГРУБ учитаће наше језгро, у овом случају, у /нект/СТАРТ.ЕЛФ. Сада морамо створити свој кернел.

За ово ће нам требати ГЦЦ y ГАС (асемблер пројекта ГНУ-, обично долази са гцц). Дакле, креираћемо језгро.

Прво направимо датотеку звану кернел.асм. Ова датотека ће садржати почетну тачку нашег језгра и такође ће дефинисати мултибоот (карактеристика неких покретачких програма попут ГРУБ). Садржај кернел.асм ће бити:

.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

Све што је везано за мултибоот је једноставно следити спецификацију и ништа друго. Све ће почети у старту, зваће мултибоот_ентри, дефинисаћемо заглавље мултибоот-а у првих 4к и поставићемо га (са мовл).

Касније зовемо НектКернел_Маин који је наша функција кернела Ц. У петљи заустављамо рачунар. Ово се компајлира са:

as -o kernel.o -c kernel.asm

Сада ћемо ући у програмирање на Ц. Помислићете да је сада све само колач, ставили смо принтф en главни и то је то, успели смо.

Па не, пошто принтф y главни то су функције које дефинише оперативни систем, али ми их креирамо! Можемо да користимо само функције које сами дефинишемо.

У каснијим поглављима говорићу о томе како ставити сопствену Ц библиотеку (глибц, биониц, невлибц), али с времена на време. Разговарали смо да желимо да ставимо текст на екран, па ћемо видети како ћемо то урадити.

Постоје две могућности, једна је да позовете БИОС а друго је директно управљање меморијом екрана. Урадићемо ово друго јер је јасније из Ц, а такође ће нам то омогућити када уђемо у заштићени режим.

Креирамо датотеку која се зове НектКернел_Маин.ц следећег садржаја:

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;
}

Овим директно управљамо меморијом ХДМИ и лик по карактер пишемо. Компајлирамо деактивирањем стдлиб:
gcc -o NextKernel_Main.o -c NextKernel_Main.c -nostdlib -fPIC -ffreestanding

Ако сте стигли толико далеко, сада ћете желети да испробате свој потпуно нови оперативни систем, али још нисмо завршили. Потребна нам је мала датотека која компајлеру говори где у датотеци треба да напусти сваки одељак. То се ради помоћу скрипте за повезивање. Креирамо линк.лд:

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 = .;
}

Овим дефинишемо положај сваког одељка и улазну тачку, старт, коју смо дефинисали у кернел.асм. Сада можемо објединити сву ову измишљотину:

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

Сада копирамо СТАРТ.ЕЛФ у / нект у нашу фасциклу која симулира корен нашег оперативног система. Идемо у основну фасциклу нашег новог оперативног система са конзолом и проверавамо да постоје две датотеке: једна /боот/груб/груб.цфг и друга /нект/СТАРТ.ЕЛФ.

Идемо у горњи директоријум и позивамо услужни програм за креирање ИСО-а са позваним ГРУБ-ом груб-мкресцуе

grub-mkrescue -o nextdivel.iso nextroot

Када ово урадимо, имаћемо ИСО. Овај ИСО се може отворити на рачунарима x86 (64 бита такође) и виртуелне машине. Да бих је тестирао, користићу КЕМУ. Ми зовемо КЕМУ из командне линије:

qemu-system-i386 nextdivel.iso

Ће почети СеаБИОС а касније ћемо имати ГРУБ. Касније, ако је све тачно, видећемо нашу фразу.
Помислићете да је ово тешко, одговарам, јесте.

Стварно је стварање оперативног система тешко и овај овде не чини ништа корисно. У будућим поглављима видећемо како се рукује бојама на екрану, резервише меморија и ако могу како се преузимају подаци са тастатуре.

Ако неко не жели да копира све овде, имам спремиште на ГитХуб (детаљније) са оперативним системом НектДивел. Ако желите да саставите НектДивел морате имати гит и цмаке:

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

Подстичем вас да сарађујете на НектДивелу ако имате времена и жеље да креирате оперативни систем. Можда чак и супериорнији од Линука ... време ће показати.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

    1.    марианогаудик дијо

      Торвалдс је однео оперативни систем Миник (изведен из УНИКС-а) Андреву С. Таненбауму и побољшао га.

      Таненбаум се потукао са Линусом, вређали су се. Таненбаум каже да је Мицрокернел будућност (ХУРД, Миник нови конус Мицрокернел).

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

  1.   елиотиме3000 дијо

    Ово је најбољи пост који сам до сада видео на овом блогу. Већ желим да знам шта још да радим.

  2.   Царлос.Гуде дијо

    Будите импресионирани

  3.   акл дијо

    Заиста импресивно !!

  4.   рхоцонлинук дијо

    ФУУУУУУУА!
    То је геекиест пост који сам икад видео хехе. Честитамо Адриан, чланак о курви! хипер занимљиво !!! 🙂

    1.    Јоакуин дијо

      Слажем. Замишљам ову ситуацију:
      ГНУ / Линук Повер Усер (са срећним лицем):
      „Већ знам како да саставим свој Гентоо“

      Нерд (са презривим ставом): «пфф, створио сам свој дистро ...»

      1.    десикодер дијо

        Да, могу да креирам свој властити Линук дистро. Заправо у њему развијам инитрамфс и кернел за уграђени линук. Није исто створити оперативни систем него линук дистрибуцију. Први је много тежи, готово немогућ, други, као што сте рекли, може бити било шта, чак и Убунту са промењеним логотипом кД. Па бих оставио овако:

        ГНУ / Линук Повер Усер (са срећним лицем)
        - Већ знам како да саставим свој Гентоо

        Семи-Нерд
        - Пфф, пратио сам линук од нуле и направио сам свој дистро

        Штребер (са презирним ставом)
        - пфф, јер сам програмирао кернел у асемблеру и на Ц.

        САЛУДОС!

  5.   Цронос дијо

    Ово ми је занимљиво, у очекивању следећих поглавља.

  6.   абимаелмартелл дијо

    Видео сам овај водич пре извесног времена, он је за Ц ++
    https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System

    1.    АдрианАрроиоСтреет дијо

      Хвала на линку, погледаћу.

  7.   Јосе Јацоме дијо

    Желим оперативни систем 100% компатибилан са АМД графиком: /

    1.    ИванЛинук дијо

      виндовс

      1.    Јосе Јацоме дијо

        хахаха у оперативном систему Виндовс Цаталист нема подршку за ОпенГЛ, иако у Линуку не могу да искористим сву графичку снагу коју ћу чекати да видим шта ће се догодити!

        1.    бени_хм дијо

          само сачекајте да вентил збрише тржиште

  8.   КЗКГ ^ Гаара дијо

    Магичан, савршен, одличан допринос, изгледа као сјајна серија објава 🙂

  9.   О_Пикоте_О дијо

    Буах, волео бих да знам како да програмирам како бих ти помогао, једноставно као начин вежбања са знањем које учиш и помажеш му. За сада вам остављам мото да скренете пажњу на пројекат када га завршите "Користите НектДивел, порно изгледа исто (или боље).", ​​Помести ћете кД.

  10.   тхиснамеисфалсе дијо

    Мооооооолааа !!!!

  11.   нордри дијо

    Врло добар чланак, али само знатижељан зашто нисте пратили пројекат Линук Фром Сцратцх?

    поздрави

    1.    АдрианАрроиоСтреет дијо

      Па, Линук из Сцратцха је у реду и можете рећи да је ваш, али заиста је врло механички:
      -Преузми фонтове
      -Поправи их
      -Саставити
      -Инсталирај
      -Следећи
      Овде, чак и ако је резултат на крају лошији, можете рећи да сте прегледали све датотеке.

    2.    десикодер дијо

      Као што је јасно из мог претходног коментара, јер нема исти ниво сложености. Даље, линук од нуле заправо није, супротно његовом имену, стварање система од нуле. Стварање система од нуле програмирате га сами, пишете своје језгро, а не линук кернел, ако је могуће чак и свој покретачки програм уместо груб, лило, сислинук итд. Иако ЛФС није мали подвиг и прилично је сложен, није ни близу програмирању вашег сопственог језгра ...

      Поред тога, слажем се са АдрианАрроио Цаллеом да је превише механички, прочитао сам га некада и на крају одустанете од шесте странице, такође вам кажу да користите које верзије пакета јер у супротном упутства не раде (то показује недостатак флексибилности, по мом мишљењу). Мислим да је боље имати нешто по својој идеји, компајлирати пакете које желите, чак и неке програмирати, компајлирати линук кернел и то у миру.

      САЛУДОС!

  12.   колачић дијо

    уууоооохх !! Никад нисам снимио пост толико као овај.
    Молим вас, наставите 😀

  13.   линук_усер дијо

    Не знам шта није у реду:

    грешка: није пронађено заглавље са више покрета.
    грешка прво треба да учитате кернел

    1.    АдрианАрроиоСтреет дијо

      Ако је нека утеха, и ја сам погрешио. Покушајте да користите изворе који се налазе у ГитХуб-у, тамо је грешка већ решена. У сваком случају мислим да ако промените груб.цфг линију из "мултибоот /нект/СТАРТ.ЕЛФ" у "кернел /нект/СТАРТ.ЕЛФ", можда ће то функционисати. Незнам тачно.

      1.    мцплатано дијо

        Пре свега, величанствени улаз 🙂
        Имам исти проблем са учитавањем кернела из груб-а. Чак и коришћење ГитХуб извора или промена мултибоот-а за кернел ...

        грешка: није пронађено заглавље са више покрета.
        грешка: нема учитаног језгра

        1.    АдрианАрроиоСтреет дијо

          Да ли користите цланг као компајлер? Промените га за гцц
          Да ли сте се сетили да користите линкер скрипту? Неопходно је да повезивач (лд у нашем случају) зна где ће у датотеку ставити сваку ствар. У овом случају заглавље са више покрета мора бити на почетку.
          Да ли користите систем ЦМаке? Ако га користите, мислим да неће успети.
          Ако вам не успе, покушаћу да нађем друго решење.

  14.   кхоурт дијо

    [+100]
    Сјајно !!!

  15.   невидљивКСНУМКС дијо

    Заиста је супер 🙂

  16.   Танрак дијо

    Скидам капу. Импресиван пост. Честитам.

  17.   човек дијо

    Воха!
    Било би сјајно када бисте могли да отворите апликације направљене у ХТМЛ5 и Јавасцрипту без потребе да користите прегледач, да ли је то могуће?
    Говорим о њима као о изворним апликацијама.
    Тако да би било лако програмирати за овај оперативни систем 😀

    1.    АдрианАрроиоСтреет дијо

      У овом случају то нећу учинити, јер је потребно пуно више рада, али постоји оперативни систем под називом „ис“ који ради оно што ви кажете. Заправо је командна линија ЈаваСцрипт, а прозори се цртају помоћу ЈаваСцрипт Цанвас функција. Нинтендови инжењери су то урадили и сада је то отворени извор.

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

      1.    човек дијо

        Валла, хвала на информацијама 😀
        погледаћу

  18.   патодк дијо

    Ко год може да направи свој ОС може мирно да умре, будући да интелектуални ниво мора да постигне с њим; Тера вас да се ослободите неба или пакла.
    Комад поста.

    1.    Мигуел дијо

      до сада нико није знао да је направио само нешто за шта се може рећи да је пристојан оперативни систем направљен од нуле, чак ни Линук Торвалдс као што сте рекли на почетку, јер је ово почело из Уник извора, а све остало је заједничко аутору више него код једне особе, живот је врло кратак и започињање од нуле је незамисливо за било кога, чак и ако се жели супротно, то је видљиво у многим грешкама које је Линук Торвалдс направио при копирању и лепљењу

      1.    скармиглионе дијо

        Уник извори су затворени, употреба миника ... што је нешто друго.

      2.    Фелипе Робаина дијо

        а они који су направили КДОС шта?
        били засновани на нечему?

  19.   Тесла дијо

    Колико видим, ко нема свој оперативни систем је зато што не жели, хахахаха.

    Сад озбиљно, врло занимљиво! Много је тога што превазилази моје ограничено знање програмирања, али нестрпљиво ћу читати остале делове ове серије.

    Хвала на посту!

  20.   Мануел Р. дијо

    Оставио си ме са О_О лицем ... без намере да потцењујем доприносе било кога, то је највише "за" које сам видео у последње време. Поздрави.

  21.   аитор_цз дијо

    Врло добар чланак, Адриан. Молим те настави…

  22.   mj дијо

    Да ли се шалите на Први април? Не будите злобни: „Угледање на Линуса Торвалдса: Створите свој оперативни систем од нуле“. Мислим да онима који настављају каријеру у неком технолошком институту или на универзитету није тешко; али ја сам за себе стреличар почетник (постоје они који нас зову „Нооб“, али себе сматрам више лењим новајлијом) што звучи као да се не корача на копно. У сваком случају, ОВАЈ ЧЛАНАК СТВАРА ПУНО РАДОСТИ И БЕЗ СУМЊЕНОГ ДИВОВАЊА И ПОШТОВАЊА ЊЕГОВОГ УРЕДНИКА, ЧЕСТИТАМО; Прво што ћу учинити је покушати да разумем бар мало овог вредног материјала.
    ХВАЛА, Адриан Арроио Цалле, одличан рад и племенита испорука знања.

  23.   Блаире пасцал дијо

    ЛЕЛ Одличан пост, настави тако.

  24.   Ф3ниКс дијо

    Какав сјајан пост, ово је оно што сам пропустио desde linux. Предивна.

  25.   рубин дијо

    Сјајан пост, пуно вам хвала.
    Нисам разумео шта ради датотека линк.лд, може ли неко да ми то објасни?

    1.    АдрианАрроиоСтреет дијо

      Датотека линк.лд говори повезивачу (у овом случају лд) где би сваки део кода требао бити у резултујућој датотеци. Такође дефинишемо улазну тачку, будући да немамо оперативни систем, не можемо користити маин као нормалан програм, у овом случају бирамо функцију покретања.

  26.   Маки дијо

    Сјајно за све ваше поруке! Чека се 7! Шта ако сумњам, на пример, ако сам желео само да покренем алгоритам, без ОС-а, како да знам шта могу да користим, а шта не Ц?

    1.    АдрианАрроиоСтреет дијо

      Ако га користите овако, не бисте могли да употребите ништа од стдлиб-а, што је практично оно што сви користе (без маллоц-а, бесплатног, принтф, сцанф, стрцмп, итд.). Све се мора имплементирати директно из меморије или АСМ-а. Можда ћу вам у вишем поглављу показати како инсталирати Ц библиотеку за оперативни систем. Ако користите Ц ++, не можете користити изузетке и операторе нев и делете (и сигурно више).

    2.    Свицхер дијо

      ја мислим ово може вам дати бољу идеју како то учинити.

  27.   Естебан дијо

    Поздрав, пре отприлике 5 година пратио сам сличну публикацију и развио микро језгро која започиње на исти начин, има неке аспекте које треба побољшати, али можда ће вас занимати, ради у заштићеном режиму, извршава мултитаскинг и врши виртуелизацију меморије, у последње време сам радио на томе погонитељ диска и цд погон како би се могао инсталирати, а не само радити на ЦД-у уживо ... Поздрав.

  28.   Јохан дијо

    Поштовани, имам грешку приликом извршавања наредбе:
    гцц -о СТАРТ.ЕЛФ кернел.о НектКернел_Маин.о -Тлинк.лд -ностдлиб -фПИЦ -ффреестандинг -лгцц

    линк.лд: грешка у синтакси 5
    цоллецт2: еррор: лд вратио 1 статус излаза

    линк.лд
    . = 0к00100000;
    .мултибоот_хеадер: {
    * (. мултибоот_хеадер)
    }

    У 5. реду не видим грешку, да ли неко исто?

    Радим са виртуелизованим дебиан вхеези-ом у виртуалбок-у

    1.    Јулиан Реиес Есцригас дијо

      Додајте ";" на крају * (. мултибоот_хеадер)

  29.   Ериц Ореллана Ромеро дијо

    Одлична иницијатива, сигурно ћу пратити поглавља овог поста, намеравајући да научим пуно из њега. Пуно вам хвала што сте одвојили време да нас подучите. Један једини детаљ у вези с тим, треба напоменути да Линус Торвалдс није творац ниједног оперативног система, он је створио језгро ГНУ / Линук система (оног који је коришћен у другим ОС-има), што још увек вреди, али је Важно је приписати признање Рицхарду Сталлману за стварање већине ОС-а.

    Хвала вам пуно на доприносу и надам се да ћете размотрити моје запажање.

  30.   Јулиан Реиес Есцригас дијо

    Неко време сам се зезао са темом, заинтересовао сам се чим сам прочитао наслов. али порука непрестано добија

    грешка: није пронађено заглавље са више покрета.
    грешка прво треба да учитате кернел

    Отпремио сам оно што снимим у репо на гитхуб https://github.com/rkmax/GenyOS

    1.    Мартин Виллалба дијо

      Исто се дешава и мени. Јесте ли пронашли решење?

  31.   Карлос дијо

    питање које сам почео да уводим у синтаксу и мени за улазак у мени каже ми да наредба није пронађена ко би могао да ми каже зашто
    то је оно што радим

    БЛАЦК @ БЛАЦК-пц: ~ / блацкроот $ менуентри «НектДивел» {
    менуентри: наредба није пронађена

    1.    АдрианАрроиоСтреет дијо

      Садржај овог садржаја не треба унети у командну линију, већ у датотеку коју креирате под називом груб.цфг

  32.   Нодетино дијо

    Одличан чланак, хвала!

  33.   Давид дијо

    Спектакуларно… !! то је баш као карика која недостаје.

  34.   р.гарциаг дијо

    Свиђају ми се ваши емулацијски водичи за ЛИнус Торвалдс, али један корак који не разумем је следећи:
    Сада копирамо СТАРТ.ЕЛФ у / нект у нашу фасциклу која симулира корен нашег оперативног система. Идемо у основну фасциклу нашег новог оперативног система са конзолом и проверавамо да постоје две датотеке: једна /боот/груб/груб.цфг и друга /нект/СТАРТ.ЕЛФ.

    Идемо у горњи директоријум и позивамо услужни програм за креирање ИСО-а помоћу ГРУБ-а који се зове груб-мкресцуе

    Да ли би ми неко могао објаснити: стр

    1.    АдрианАрроиоСтреет дијо

      Једноставно да генеришемо минимум ИСО-а који ГРУБ може учитати, копирамо кернел у (/ ИСО-а, било који директоријум) /нект/СТАРТ.ЕЛФ и ГРУБ-ову конфигурациону датотеку у (/ ИСО-а, било који фолдер) / боот / груб / груб.цфг. Када је то завршено, још увек нисмо инсталирали ГРУБ на ИСО и постоји услужни програм који генерише ИСО из фасцикле и инсталира ГРУБ под називом груб-мкресцуе. Тада бисмо коначно завршили са покретачким ИСО-ом на који је инсталиран ГРУБ, који може прочитати конфигурацију да би касније исправно извршио СТАРТ.ЕЛФ. Не знам да ли сам објаснио, али оно што радимо је врста лажног система датотека помоћу којег генеришемо ИСО.

  35.   мигуел јосе гуевара атенцио дијо

    Буенисимо

  36.   Мицхаел Морено дијо

    Па, заиста погледајте нови систем не толико, али ако побољшате линук, на пример, створите линук еконуцлеус са серверском компонентом која делује као микронуклеус ако желите, то јест, егзо структуру са микронуклеусним понашањем која би била супер и линук.

    Друга ствар је што нисам стручњак за програмирање, само неколико сирастих ц ++-а и неке Јава-е, било би ми довољно да дам линук кернел програму модул, да га истрошим, изменим итд.

  37.   ВинтерСолдиер53 дијо

    Без сумње већ морам на одмор.

  38.   Фермин дијо

    Овај добар и у ком програму га дизајнирате и кодирате
    молим вас дајте ми тај одговор

  39.   ДаркМинд дијо

    Када компајлирам из вашег гита, добијам:

    [јмпонце @ буилд буилд] $ цмаке ..
    - Креирање директоријума НектРоот
    - Генерирање ИСО скрипте
    направи ДЕСТДИР = следећу инсталацију
    ./исо.сх
    - Пронађени кисеоник: / уср / бин / докиген (пронађена верзија „1.8.9“)
    - Конфигурисање завршено
    - Генерирање завршено
    - Датотеке за изградњу су написане на: / хоме / јмпонце / нект-дивел / буилд
    [јмпонце @ буилд буилд] $ маке
    Скенирање зависности циља СТАРТ.ЕЛФ
    [7%] Изградња АСМ-АТТ објекта срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / боот.асм.о
    [14%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НектСхеллЛите.цпп.о
    [21%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Сцреен.цпп.о
    [28%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НектКернел_Маин.цпп.о
    [35%] Изградња ЦКСКС објекта срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Паниц.цпп.о
    [42%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Тимер.цпп.о
    [50%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Мемори.цпп.о
    [57%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Портс.цпп.о
    [64%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_ГДТ.цпп.о
    [71%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_ИСР.цпп.о
    [78%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Стринг.цпп.о
    [85%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_ИРК.цпп.о
    [92%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_ИДТ.цпп.о
    [100%] Изградња објекта ЦКСКС срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / старт / НД_Кеибоард.цпп.о
    Повезивање извршне датотеке ЦКСКС СТАРТ.ЕЛФ
    / уср / бин / лд: Некомпатибилно /уср/либ/гцц/к86_64-ункновн-линук-гну/4.9.2/либгцц.а прескаче се док се тражи -лгцц
    / уср / бин / лд: не могу пронаћи -лгцц
    цоллецт2: грешка: лд вратио статус излаза 1
    срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / буилд.маке: 402: Неуспешна упутства за циљ 'срц / СТАРТ.ЕЛФ'
    маке [2]: *** [срц / СТАРТ.ЕЛФ] Грешка 1
    ЦМакеФилес / Макефиле2: 106: нису успела упутства за циљ 'срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / алл'
    маке [1]: *** [срц / ЦМакеФилес / СТАРТ.ЕЛФ.дир / алл] Грешка 2
    Макефиле: 117: Неуспех у упутствима за циљ „сви“
    маке: *** [алл] Грешка 2

    1.    АдрианАрроиоСтреет дијо

      Чини се да је грешка у томе што не може да пронађе ллибгцц јер имате 64-битну верзију и тренутно је систем за изградњу приморан да користи 32-битну. Требали бисте инсталирати пакет компатибилности на ваш дистро систем или боље, користите 32-битни систем.

      1.    Роналдо Родригуез дијо

        Имам 32 бита и добијам исту грешку, да ли мислите на оперативни систем или архитектуру? мој је 64-битни, али користим Убунту 32-битни, не питајте, финансијски проблеми, уз то кажем све.

  40.   Јорге дијо

    Одлична тема, чека се већи обим. Живели

  41.   Јхон дијо

    Сјајно надам се још

  42.   Соид перез дијо

    Здраво, ја сам млади амбасадор који жели да створи оперативни систем који подржава све програме и платформе, тако да програмери не морају да имају моћне машине или апликације или програме на рачунару.
    Због тога ме занима овај пост, али када преузмем ваш гит или покушам да га креирам, све функционише док не извршим наредбу ./исо.сх или груб-мкресцуе -о нектдивел.исо нектроот добијете ову грешку

    „Груб-мкресцуе: упозорење: Ваш коррисо не подржава„ –груб2-боот-инфо “. Неке функције су онемогућене. Користите коррисо 1.2.9 или новији ..
    груб-мкресцуе: упозорење: Ваш коррисо не подржава "–груб2-боот-инфо". Слика вашег језгра је превелика. Покретање диска је онемогућено. Користите коррисо 1.2.9 или новији .. »
    Заиста немам појма јер знам пуно о апликацијама и мрежама, али не знам ништа о грубу

    1.    АдрианАрроиоСтреет дијо

      Можда ће бити потребно да ажурирате коррисо програм на вашој дистрибуцији. Који дистро и верзију користите?

      1.    Соид перез дијо

        Користим кубунту 14.04лтс и покушавам да покренем коррисо, али љуска ми каже да га не може пронаћи и добијам апт-гет инсталл коррисо, иако сам искрено очекивао неки одговор, јер сам имао лоше искуство са инсталирањем ствари које не знам у линуку хехе. Одмах ћу га ажурирати и рећи ћу вам шта се догодило

      2.    АдрианАрроиоСтреет дијо

        Затим инсталирајте коррисо из софтверског центра или једноставно са терминала урадите "судо апт-гет инсталл коррисо"

      3.    Соид перез дијо

        Већ сам урадио све што сте ми рекли и са гит-ом и са мојим добијам овај коррисо 1.3.2: манипулатор датотечним системом РоцкРидге, пројекат либбурниа.

        Погонска струја: -оутдев 'стдио: нектдивел.исо'
        Медијска струја: стдио датотека, заменљива
        Статус медија: празно
        Резиме медија: 0 сесија, 0 блокова података, 0 података, 1901м бесплатно
        Додато у ИСО слику: директоријум '/'='/тмп/груб.ОЕкСзВ'
        коррисо: УПДАТЕ: 546 датотека је додато за 1 секунду
        коррисо: ФАИЛУРЕ: Није могуће одредити атрибуте изворне датотеке '/ медиа / гаиа / Јупитер1 / СхеллСистем / нектроот / нектроот': Нема такве датотеке или директоријума
        коррисо: УПДАТЕ: 546 датотека је додато за 1 секунду
        коррисо: абортинг: -аборт_он 'ФАИЛУРЕ' нађен 'ФАИЛУРЕ'
        и кордуор Не разумем да је моја структура /нектроот/боот/груб/груб.цфг и нектроот / нект / СТАРТ.ЕЛФ

      4.    Соид перез дијо

        Хвала, спреман сам да идем напред, пријатељ ми је помогао и рекао ми је шта сам погрешио у организацији именика, па сам га прилагодио и то је то

      5.    Ерик дијо

        Извините, можете ли ми рећи коју сте процедуру извршили пошто нисам добио грешку за покретање: нема такву датотеку или директоријум

        нема уређаја за покретање.

  43.   Хозе дијо

    Живели! Хтео сам да вас замолим за услугу ако бисте ми могли послати е-маил са оним што овде објашњавате, мало сам се збунио и морам да упоредим оно што имам са оним што објашњавате, можда ми није јасно да ли је стварање грубе. цфг се ради у терминалу гцц или где тачно? пуно хвала пријатељу!

    1.    АдрианАрроиоСтреет дијо

      Датотеку груб.цфг креирате било којим уређивачем текста и морате је сачувати у ПРОЈЕЦТ_ФОЛДЕР / боот / груб / груб.цфг

  44.   Јхуазано дијо

    Поздрав Адриан, пре свега, честитам ти и захваљујем на доприносу.

    Знате да ово радим за вежбу и почео сам да састављам након вашег подучавања, али након покретања пронашао сам прву грешку

    $ као -о кернел.о -ц кернел.асм
    басх: ​​ас: наредба није пронађена ...
    Сличне команде су:
    'са'
    'ац'

    Радим на Федори 20 и не могу да нађем решење у том погледу, ценио бих ваше смернице да ли треба да променим мало гцц или гас

    унапријед хвала

    1.    АдрианАрроиоСтреет дијо

      Морате инсталирати ГАС да бих могао да видим код грешке. Немам Федору при руци, али у теорији, ако иум инсталирате гцц-ц ++, инсталираћете цео ГЦЦ пакет и ГНУ као што обично долази са њим.

  45.   Гастон Рамирез дијо

    Ја сам с вама, знам нешто о Ц ++, Ц # (иако овај последњи у овом питању није превише користан) лоша ствар је што ми још увек недостаје искуства, никад не рукујем језиком Ц, ваша публикација је сјајна, Немам пуно да кажем, ако имам времена видим. Хвала вам.

  46.   Тересита дел јесус нах санцхез дијо

    Пуно вам хвала на великој помоћи….

  47.   јки дијо

    Волим линук, то је најбољи дистрикт који постоји, истина за мој Виндовс је смеће за које знам да је творац линука креатор прозора

  48.   Вози дијо

    Здраво, добио сам грешку у поруци груб
    грешка: датотека /нект/СТАРТ.ЕЛФ Није пронађена
    грешка: прво морате учитати кернел

    Можете ли ми помоћи и погуглати, али не могу да нађем

  49.   Енрикуе Авила дијо

    Молим вас, како могу да прикажем поруку ПОЗДРАВ СВЕТ? Почетник сам и још увек не знам довољно

  50.   ЦАРЛОС ГУЕРРЕРО АЛВАРЕЗ дијо

    Следеће ми се дешава:
    гцц -о СТАРТ.ЕЛФ кернел.о НектКернел_Маин.о -Тлинк.лд -ностдлиб -фПИЦ -ффреестандинг -лгцц
    / уср / бин / лд: кернел.о: пресељење Р_Кс86_64_32 против симбола `стацк 'не може се користити приликом прављења ПИЕ објекта; рекомпајлирати са -фПИЕ
    / уср / бин / лд: коначна веза није успела: нерепрезентативни одељак на излазу
    цоллецт2: еррор: лд вратио 1 статус излаза