د لینوس تورالډز تقلید کول: له خپل سکریچ سیسټم له (I) څخه جوړ کړئ

له هرڅه دمخه ، نظر ورکړئ چې دا زما لومړۍ مقاله ده او هیله لرم چې تاسو ټول یې خوښ کړئ.

لینوس تورالز خوښ دی

پدې لړ کې موږ تقلید کوو د لینس Torvalds، موږ د 0 څخه زموږ عملیاتي سیسټم رامینځته کوو. پدې لومړۍ برخه کې موږ به د بوټ لیدو او موږ به زموږ د کارن څخه سکرین ته متن ولیکو.

زما په قضیه کې عملیاتي سیسټم ویل کیږي NextDivel. لومړۍ پریکړه چې موږ باید ژر تر ژره وکړو چیرې چې موږ عامل سیسټم په پام کې لرو هغه څه دي چې بوټ لوډر به څه وي؟

دلته ډیری مختلف ډولونه شتون لري ، او موږ حتی کولی شو پخپله یو جوړ کړو؛ په هرصورت پدې ټیوټوریل کې زه کاروم GRUB، ځکه چې ډیری د هغه په ​​اړه لږ یا لږ څه پوهیږي. موږ یو فولډر رامینځته کوو چې زموږ د عملیاتي سیسټم ریښه وي او هلته موږ د "بوټ / ګرب فولډر" رامینځته کوو

mkdir nextroot && cd nextroot

mkdir -p boot/grub

دلته موږ د grub.cfg فایل په لاندې ډول چمتو کوو:

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

پدې فایل کې موږ ولیدل چې څنګه GRUB به زموږ کانال په دې حالت کې په /next/START.ELF کې ولګوي. اوس موږ باید خپله دانی جوړه کړو.

د دې لپاره موږ به دې ته اړتیا ولرو GCC y GAS (د پروژې راټولوونکی) GNU، معمولا د gcc سره راځي). نو موږ به دانه جوړه کړو.

لومړی موږ د کارنیل.اسم په نوم فایل جوړوو. دا فایل به زموږ د کارنال پیل مرحله ولري او ملټوبټ به وټاکي (د ځینې بوټ لوډرونو ب featureه لکه لکه GRUB). د کرنیل.اسم مینځپانګه به دا وي:

.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

په ملټي بوټ پورې اړوند هرڅه د توضیحي تعقیب لپاره دي بل څه ندي. هرڅه به په پیل کې پیل شي ، دا به ملټي بوټ_ینټري زنګ ووهي ، موږ به په لومړي 4K کې د ملټي بوټ سرلیک تعریف کړي او موږ به یې (د موویل سره) واچوو.

وروسته موږ د NextKernel_Main تلیفون کوو کوم چې زموږ د کارن C فعالیت دی. په لوپ کې موږ د کمپیوټر د بندولو لپاره ودروو. دا له سره ترکیب کوي:

as -o kernel.o -c kernel.asm

اوس موږ په سی کې برنامو ته ننوتل به تاسو فکر کوئ چې اوس هرڅه د کیک ټوټه ده ، موږ یو چاپ en اصلي او دا هغه دی ، موږ یې کړی.

ښه نه ، ځکه چاپ y اصلي دا هغه دندې دي چې د عامل سیسټم لخوا ټاکل شوي ، مګر موږ یې رامینځته کوو! موږ یوازې هغه دندې وکاروو چې موږ یې پخپله تعریف کوو.

په وروسته فصلونو کې به زه د دې په اړه وغږیږم چې څنګه زموږ خپل C کتابتون (ګلیبیک ، بایونک ، نوی لیبک) وساتو مګر وخت په وخت. موږ خبرې وکړې چې موږ غواړو متن په پرده کې وساتو ، ښه به موږ وګورو چې دا څنګه کوو.

دوه اختیارونه شتون لري ، یو یې د تلیفون کول دي BIOS او بل یې د سکرین حافظه په مستقیم ډول اداره کول دي. موږ وروستی به ترسره کوو ځکه چې دا د C څخه روښانه ده او دا به موږ ته اجازه راکړي چې دا ترسره کړو کله چې موږ خوندي حالت ته ورننوزو.

موږ د لاندې مینځپانګې سره NextCernel_Main.c په نوم فایل جوړ کوو:

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

پدې سره موږ مستقیم حافظه په پام کې نیسو VGA او د سیرت له مخې سیرت موږ دا لیکلو. موږ د stdlib په غیر فعال کولو سره تالیف کوو:
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 = .;
}

پدې سره موږ د هرې برخې موقعیت او د ننوتلو نقطه ټاکو ، پیل وکړئ ، کوم چې موږ په kernel.asm کې تعریف کړی. اوس موږ کولی شو دا ټول اعتزاز یو کړو:

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

اوس موږ START.ELF کاپي / بل زموږ په فولډر کې کاپي کوو چې زموږ د عامل سیسټم ریښې سمبالوي. موږ د کنسول سره زموږ د نوي عملیاتي سیسټم ریښې فولډر ته ځو او تصدیق کوو چې دلته دوه فایلونه شتون لري: یو /boot/grub/grub.cfg او بل /next/START.ELF.

موږ پورتنۍ ډایرکټرۍ ته ځو او د GRUB په نوم سره د ISO رامینځته کیدونکي یوټیلټی فون کوو grub-mkrescue

grub-mkrescue -o nextdivel.iso nextroot

یوځل چې موږ دا ترسره کړل نو موږ به یو ISO. دا ISO په کمپیوټرونو کې پرانيستل کیدی شي x86 (64 ټوټې هم) او مجازی ماشینونه. د دې ازموینې لپاره ، زه یې کاروم د انتخاباتو خپلواک کمیسیون. موږ زنګ ووهه د انتخاباتو خپلواک کمیسیون د بولۍ له خط څخه:

qemu-system-i386 nextdivel.iso

پیل به وکړي سیبیوس او وروسته به موږ ولرو GRUB. وروسته که هرڅه سم وي موږ به خپله جمله ووینو.
تاسو به فکر وکړئ چې دا مشکل دی ، زه ځواب ورکوم ، هو دا دی.

واقعیا د عامل سیسټم رامینځته کول ګران دي او دا چې دلته یو څه ګټور نه کوي. په راتلونکي فصلونو کې به موږ وګورو چې څنګه په سکرین کې رنګونه اداره کړئ ، حافظه خوندي کړئ او که زه وکولی شم ، نو څنګه کیبورډ څخه ډاټا ترلاسه کړم.

که څوک نه غواړي دلته هرڅه کاپي کړي ، زه په کې یو پلورنځی لرم GitHub د چليز غونډال سره (نور پراخه) NextDivel. که تاسو مرتب کول غواړئ NextDivel تاسو باید یوازې ګیټ او کمیک ولرئ:

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

زه تاسو هڅوم چې په NextDivel کې همکاري وکړئ که تاسو د عملیاتي سیسټم رامینځته کولو وخت او علاقه لرئ. شاید حتی د لینکس څخه غوره ... وخت به ووایی.


د مقالې مینځپانګه زموږ د اصولو سره سمون لري ایډیټیک اخلاق. د غلطۍ راپور ورکولو لپاره کلیک وکړئ دلته.

85 نظرونه ، خپل پریږدئ

خپله نظر پرېږدئ

ستاسو د بریښنا لیک پته به خپره نه شي.

*

*

  1. د معلوماتو لپاره مسؤل: میګیوانجل ګاتین
  2. د معلوماتو هدف: د سپیم کنټرول ، د نظر مدیریت.
  3. قانونیت: ستاسو رضایت
  4. د معلوماتو راټولول: معلومات به د قانوني مکلفیت پرته دریمې ډلې ته نه لیږدول کیږي.
  5. د معلوماتو ذخیره: ډیټابیس د Occentus شبکې (EU) لخوا کوربه شوی
  6. حقونه: په هر وخت کې تاسو کولی شئ خپل معلومات محدود ، له سره تنظیم او حذف کړئ.

  1.   elav dijo

    :O

    1.    ماریاناګوډکس dijo

      تورالډز د مینیکس عملیاتي سیسټم (له UNIX څخه اخیستل شوی) انډریو ایس تانینبوم ته واړاوه او وده یې وکړه.

      تانینبام د لینس سره جګړه درلوده ، دوی یو بل سپکاوی وکړ. تانینبوم وايي چې مایکرو کارنال راتلونکی دی (HURD ، مینیکس نوی شنک مایکرو کارنل).

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

  2.   ایلیوټیم 3000 dijo

    دا ترټولو غوره پوسټ دی چې ما تر دې دمه په دې بلاګ کې لیدلی دی. زه لا دمخه غواړم پوه شم چې نور څه باید وکړم.

  3.   کارلوس.ګوډ dijo

    متاثره اوسئ

  4.   محور dijo

    واقعیا متاثر کونکی !!

  5.   rhoconlinux dijo

    FUUUUUUUUA!
    دا هغه جټکیسټ پوسټ دی چې ما کله هم لیدلی دی. مبارکۍ اډرین ، د کسب یوه مقاله! ډیر په زړه پوری !!! 🙂

    1.    Joaquin dijo

      زه موافق یم زه د دې وضعیت تصور کوم:
      GNU / د لینکس ځواک کارونکی (د خوښ مخ سره):
      "زه لا دمخه پوهیږم چې څنګه زما ګینټو تالیف کړم"

      نیرډ (د سپک چلند سره): ff pff ، ما خپل ځان جوړ کړ ... »

      1.    ډیسیکوډر dijo

        هو ، زه کولی شم خپل لینکس ډیسټرو رامینځته کړم. په حقیقت کې پدې کې زه د سرایت شوي لینکس لپاره د انارامافس او دانی لپاره پراختیا لرم. د لینکس ډیسټرو په پرتله عملیاتي سیسټم رامینځته کولو لپاره ورته ندي. لومړی خورا ډیر مشکل دی ، نږدې ناممکن ، دوهم ، لکه څنګه چې تاسو وویل ، څه شی کیدی شي ، حتی اوباټو د ایکس ډی لوګو سره بدل شو. نو زه به دا ورته پریږدم:

        GNU / د لینکس ځواک کارونکی (د خوښ مخ سره)
        - زه دمخه پوهیږم چې څنګه زما ګینټو تنظیم کړم

        نیم نیمډ
        - پییف ، ما د سکریچ څخه یو لینکس تعقیب کړی او ما خپل ځان ګډوډ کړی دی

        مغرور (د سپک چلند سره)
        - پییف ، ځکه چې ما په کنډک کې د جواني کنډک جوړ کړی دی او په C کې

        مننه!

  6.   کرونس dijo

    دا زما لپاره په زړه پوری دی ، لاندې فصلونه په تمه دي.

  7.   abimaelmartell dijo

    ما دا لارښود یو څه وخت دمخه ولید ، دا د C ++ لپاره دی
    https://github.com/SamyPesse/How-to-Make-a-Computer-Operating-System

    1.    اډریان اریو سټریټ dijo

      د لینک څخه مننه ، زه به یې یو نظر واچوم.

  8.   جوز جاکوم dijo

    زه یو عملیاتي سیسټم غواړم 100 AM د AMD ګرافیک سره مطابقت لري: /

    1.    IvanLinux dijo

      Windows

      1.    جوز جاکوم dijo

        په وینډوز کټیسټ کې هاهاها د OpenGL ملاتړ نلري ، که څه هم په لینکس کې زه نشم کولی ټول ګرافیک ځواک وکاروم زه به انتظار وساتم چې څه پیښیږي!

        1.    beny_hm dijo

          یوازې د والو پاکولو لپاره والو ته انتظار وکړئ

  9.   KZKG ^ ګارا dijo

    جادو ، کامل ، عالي مرسته ، دا د پوسټونو لوی لړۍ په څیر ښکاري

  10.   O_Pixote_O dijo

    بواه ، زه غواړم پوه شم چې څنګه تاسو سره مرسته کولو لپاره برنامه کول ، په ساده ډول د پوهې سره تمرین کولو لپاره چې تاسو زده کوئ ، او یو څوک مرسته کوي. د اوس لپاره زه تاسو ته پروژه ته د توجه راجلبولو لپاره مقصود پریږدم یوځل چې تاسو دا بشپړ کړئ "NextDivel وکاروئ ، فحش ورته (یا غوره) ښکاري." ، تاسو به xD پاک کړئ.

  11.   دا نومول شوی dijo

    Mooooooolaaa !!!!

  12.   نورډري dijo

    خورا ښه مقاله ، مګر یوازې لیوالتیا ولې تاسو د سکریچ پروژې لینکس څخه پیروي نه ده کړې؟

    مننه!

    1.    اډریان اریو سټریټ dijo

      ښه ، د سکریچ څخه لینکس ښه دی ، او تاسو کولی شئ ووایی چې دا ستاسو دی ، مګر دا واقعیا خورا میکانیکي ده:
      - ډاونلوډ فونټونه
      -پیچ یې کړئ
      کمپیل کول
      - نصب کړئ
      - فالو کول
      دلته ، حتی که پایله په پای کې خرابه وي ، تاسو کولی شئ ووایی چې تاسو ټول فایلونه بیا کتلي دي.

    2.    ډیسیکوډر dijo

      لکه څنګه چې زما د تیرو نظر څرګند دی ، ځکه چې دا د ورته پیچلتیا کچه نلري. سربیره پردې ، د سکریچ څخه لینوکس واقعیا ندي ، د دې نوم سره مخالف دي ، د سکریچ څخه سیسټم رامینځته کول. له سکریچ څخه د سیسټم رامینځته کول پخپله پروګرام کوي ، خپل دانی لیکي ، نه د لینکس کینل ، که امکان ولري حتی ستاسو بوټلوډر پرځای grub ، lilo ، syslinux ، او نور. که څه هم LFS کومه کوچنۍ برنامه نه ده او خورا پیچلې ده ، دا حتی ستاسو د کارنل پروګرام کولو ته نږدې نه راځي ...

      سربیره پردې ، زه د اډرین اریو کالا سره موافق یم چې دا خورا میخانیکي دی ، ما دا یو څه وخت لوستلی دی او تاسو په شپږم مخ کې پای ته رسئ ، دوی تاسو ته دا هم وايي چې د کڅوړو کوم نسخې وکاروئ ځکه چې نور نو لارښوونې کار نه کوي (چې زما په نظر د انعطاف کمښت ښیې. زه فکر کوم دا به غوره وي چې تاسو خپل نظر ولرئ ، هغه کڅوړې چې تاسو یې غواړئ مرتب کړئ ، حتی یو څه برنامه کړئ ، د لینکس کارنال ترتیب کړئ او په سوله کې.

      مننه!

  13.   ککوړی dijo

    uuuoooohh !! ما هیڅکله دومره پوست نه دی نیولی لکه څومره چې دې یو کړی.
    مهرباني وکړئ دوام ورکړئ 😀

  14.   لینوکس_زر dijo

    زه نه پوهیږم څه غلط دي:

    تېروتنه: د ملټي بوټ سرکی ونه موندل شو.
    تېروتنه تاسو اړتیا لرئ لومړی دانی پیل کړئ

    1.    اډریان اریو سټریټ dijo

      که دا کوم اطمینان وي ، ما ورته غلطي وکړه. هڅه وکړئ هغه سرچینې وکاروئ چې په ګیټ هب کې دي ، هلته تېروتنه دمخه حل شوې. په هرصورت زه فکر کوم که تاسو د grub.cfg لاین د "ملټ بوټ /next/START.ELF" څخه "کارنال /next/START.ELF" ته بدل کړئ نو ممکن دا کار وکړي. زه سم نه پوهیږم.

      1.    مکپلاتانو dijo

        ترټولو لومړی ، عالي ننوتل 🙂
        زه له کرب څخه د دانی په بارولو کې ورته ستونزه لرم. حتی د GitHub سرچینو کارولو یا د دانی لپاره ملټي بوټ بدلول ...

        تېروتنه: د ملټي بوټ سرکی ونه موندل شو.
        تیروتنه

        1.    اډریان اریو سټریټ dijo

          ایا تاسو د تالیف کونکي په توګه کلنګ استعمال کوئ؟ دا د gcc لپاره بدل کړئ
          ایا تاسو د لینک سکریپټ کارولو یاد کړی؟ دا اړینه ده نو لینک ورکونکی (زموږ په قضیه کې ld) پوهیږي چې په دوسیه کې چیرې چیرې چې دا هرڅه تیروي. پدې حالت کې د ملټي بوټ سرلیک باید په پیل کې وي.
          ایا تاسو د CMake سیسټم کار کوئ؟ که تاسو دا وکاروئ زه فکر کوم چې دا ناکام نشي.
          که دا کار ونکړي ، زه به د بلې حل موندلو هڅه وکړم.

  15.   خورټ dijo

    [+100]
    بس عالي !!!

  16.   ناڅرګنده 15 dijo

    دا واقعیا ښه ده 🙂

  17.   تانراکس dijo

    زه خپله خولۍ لرم اغیزمن پوسټ. مبارک شه.

  18.   سړی dijo

    واه!
    دا به عالي وي که تاسو په HTML5 او جاواسکریپټ کې جوړ شوي غوښتنلیکونه پرته د براوزر کارولو څخه خلاص کړئ ، ایا دا امکان لري؟
    زه د دوی په اړه د اصلي غوښتنلیکونو په څیر خبرې کوم.
    نو د دې عامل سیسټم لپاره برنامه کول به اسانه وي 😀

    1.    اډریان اریو سټریټ dijo

      پدې حالت کې زه دا نه ځم ځکه چې دا د هغې ترشا ډیر ډیر کار اخلي مګر د "is" په نوم یو عملیاتي سیسټم شتون لري چې هغه څه کوي چې تاسو یې وایاست. په حقیقت کې د کمانډ لاین جاواسکریپټ دی او وینډوز د جاواسکریپټ کینوس افعال په کارولو سره رسم شوي. د نینټینډو انجینرانو دا وکړ او اوس دا خلاص سرچینه ده.

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

      1.    سړی dijo

        ویلا ، د معلوماتو لپاره مننه 😀
        زه به یی وګورم

  19.   پیټودیکس dijo

    هرڅوک چې خپل OS رامینځته کړي کولی شي په سوله ایز ډول مړ شي ، ځکه چې د فکري کچې له مخې چې هغه یې باید ترلاسه کړي؛ دا تاسو د جنت یا دوزخ سره ګډوډوي.
    د پوسټ کولو ټوټه.

    1.    Miguel dijo

      تر دې دمه هیڅ څوک ندي پیژندل شوي چې یوازې یو څه رامینځته کړي چې د سکریچ څخه رامینځته شوی ښه آپریٹنگ سیسټم وي ، حتی نه د لینکس تورالډز لکه څنګه چې تاسو په پیل کې وایاست ، دا د یونیکس سرچینو څخه پیل شوی او نور هرڅه په عام ډول لیکل شوي دي. د یو کس په پرتله ، ژوند خورا لنډ دی او د سکریچ څخه پیل کول د هیچا لپاره د پام وړ ندي ، حتی که مقابل غوښتونکی وي ، دا د لینکس تورالډز لخوا کاپي کولو او پاسټ کولو کې ډیری غلطیو کې څرګند دی

      1.    skarmiglione dijo

        د یونیکس سرچینې تړل شوي ، د منیکس کارول ... کوم چې بل څه دي.

      2.    فیلپ روبینا dijo

        او هغه څوک چې QDOS جوړ کړی؟
        د کوم شي پر بنسټ وې؟

  20.   تسلا dijo

    د هغه څه څخه چې زه یې ګورم ، څوک خپل عملیاتي سیسټم نلري ځکه چې دوی نه غواړي ، هاهاهاه.

    اوس جدي ، خورا په زړه پوري! ډیر څه زما د محدود برنامې پوهه بهر دي ، مګر زه به د دې لړۍ نورې برخې د امید سره ولولم.

    د پوسټ لپاره مننه!

  21.   مانویل R dijo

    تاسو ما د O_O مخ سره پریښود ... پرته له دې چې د چا ونډه کمه کړئ ، دا ترټولو "پرو" دی چې ما وروسته ولید. درناوی

  22.   aitor_cz dijo

    ډیره ښه مقاله ، اډرین. مهرباني وکړئ دوام ورکړئ ...

  23.   mj dijo

    ایا تاسو د اپریل فول ورځې په اړه ټوکې کول کوئ؟ ، د دې معنی مه کوئ چې "د لینس توروالډس تقلید کول: له چیرې څخه خپل عملیاتي سیسټم رامینځته کړئ." زه فکر نه کوم چې د هغو خلکو لپاره دا مشکل وي چې د ټیکنالوژۍ یا پوهنتون په ځینو انسټیټیوټ کې مسلک تعقیب کړي؛ مګر زما لپاره زه یو نوی وړونکی تیر یم (دلته داسې څوک شتون لري چې موږ ته "نوب" وایو مګر زه ځان ته ډیر نوي نومیږم ګzyم) چې داسې ښکاري چې په ځمکه قدم نه وهي. په هرصورت ، دا مقاله ډیری د تضمین او د ډبټ ایډیورریشن او د هغې د ایډیټر لپاره د درناوي ، کنټرول سره جوړوي؛ لومړی کار چې زه به یې وکړم د دې ارزښتناکه موادو لږترلږه د پوهیدلو هڅه کول دي.
    مننه چې تاسو اډریان اریو کالل ، غوره کار او د پوهې عالي وړاندې کول.

  24.   د بلیر پاسکال dijo

    د ایل ای ایل عالي پوسټ ، دا وساتئ.

  25.   F3niX dijo

    څومره عالي پوسټ ، دا هغه څه دي چې ما له لینکس څخه یادونه وکړه. په زړه پوری.

  26.   ياقوتو dijo

    عالي پوسټ ، ډیره مننه.
    زه نه پوهیدم چې د لینک.یلډ فایل څه کوي ، ایا څوک کولی شي دا ما ته تشریح کړي؟

    1.    اډریان اریو سټریټ dijo

      link.ld فایل لینکر ته وايي (پدې حالت کې ld) چیرته چې د کوډ هره برخه باید په پایله کې فایل کې وي. موږ د ننوتلو نقطه هم تعریف کړه ځکه چې موږ عملیاتي سیسټم نلرو موږ نشو کولی اصلي د نورمال برنامې په توګه وکاروو ، پدې حالت کې موږ د پیل فعالیت غوره کوو.

  27.   مکسسي dijo

    ستاسو ټول پوسټ عالي! 7 ته انتظار! څه که زه شک لرم ، د مثال په توګه ، که زه یوازې د OS څخه پرته د الګوریتم چلول وغواړم ، نو زه څنګه پوه شم چې زه څه وکولی شم او څه نه C؟

    1.    اډریان اریو سټریټ dijo

      که تاسو دا ورته وکاروئ ، نو تاسو د stdlib څخه هیڅ نشئ کارولی ، کوم چې په عملي ډول هغه څه دي چې هرڅوک یې کاروي (هیڅ مالکوټ ، وړیا ، چاپ فینټ ، سکینف ، سټریمپ او داسې نور نه). هرڅه باید د حافظې یا ASM څخه مستقیم پلي شي. شاید په لوړه فصل کې زه به تاسو ته وښیم چې څنګه د عامل سیسټم لپاره د C کتابتون نصب کړئ. که تاسو C ++ کاروئ نو تاسو نشئ کولی استثناوې او نوي او حذف آپریټرونه (او حتما نور) وکاروئ.

    2.    سویټر dijo

      زما په خيال دا دا کولی شي تاسو ته د دې د ترسره کولو په اړه غوره نظر درکړي.

  28.   Esteban dijo

    سلام ، شاوخوا 5 کاله دمخه ما ورته ورته تعقیب تعقیب کړ او مایکروکینل رامینځته کړی چې په ورته ډول پیل کیږي ، د پرمختګ لپاره ځینې اړخونه لري ، مګر دا ممکن تاسو ته علاقه ولري ، دا په محافظت حالت کې پرمخ ځي ، ملټي ټاسک اجرا کوي او د حافظې مجازی کول ترسره کوي ، وروستی ما په دې کې د ډیسک ډرایور او سي ډي ډرایو کار کړی چې دا د نصب وړ وي او نه یوازې په ژوندۍ سی ډي کې پرمخ وړم ... سلامونه.

  29.   جوهان dijo

    ګرانه ، زه د امر په پلي کولو کې ستونزه لرم:
    gcc -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -ffreestanding -lgcc

    link.ld: د ترکیب تیروتنه
    2 راټول شوی: تېروتنه: ld د وتلو 1 حالت راوتلی

    link.ld
    . = 0x00100000؛
    .ملټي بوټ_سر: {
    * (.د ملټي بوټ سر)
    }

    په 5 لین کې زه خطا نه ګورم ، ایا یو څوک ورته ورته شی ورسره پیښیږي؟

    زه په مجازی بکس کې د مجازی ډیبین Wheezy سره کار کوم

    1.    جولین رییس ایسکریګاس dijo

      "" "اضافه کړئ؛ د * په پای کې (.bbb_header)

  30.   ایریک اوریلانا رومیرو dijo

    عالي نوښت ، زه به دقیقا د دې پوسټ فصلونو تعقیب کړم ، له دې څخه د ډیر څه زده کولو اراده لرم. موږ ته د ښوونې لپاره وخت ورکولو لپاره ډیره مننه. پدې برخه کې یو واحد توضیحي ، دا باید په یاد وساتل شي چې لینس توروالډز د کوم آپریټ سیسټم جوړونکی نه دی ، هغه د GNU / لینکس سیسټم کیرنل رامینځته کړی (هغه یو چې په نورو OS کې کارول شوی دی) ، چې لاهم ارزښت لري. مګر دا مهمه ده چې ریچارډ سټالمن ته د OS په ډیریدو رامینځته کولو لپاره اړین کریډیټ ورکړئ.

    د مرستې لپاره ډیره مننه او زه امید لرم چې تاسو زما مشاهده په پام کې ونیسئ.

  31.   جولین رییس ایسکریګاس dijo

    زه د یو څه مودې لپاره د موضوع په اړه ګډوډ وم ، کله چې ما سرلیک ولولم نو مینه لرم. مګر پیغام ترلاسه کوي

    تېروتنه: د ملټي بوټ سرکی ونه موندل شو.
    تېروتنه تاسو اړتیا لرئ لومړی دانی پیل کړئ

    ما هغه څه پورته کړي چې زه یې په ګیتب کې ریپو ته اخلم https://github.com/rkmax/GenyOS

    1.    مارټین ولایلبا dijo

      ورته شی زما سره پیښیږي ایا تاسو حل وموند؟

  32.   کارلوس dijo

    یوه پوښتنه چې ما د ترکیب معرفي کول پیل کړل او د مینټینټري لیکه ما ته کومانډونټ نه و موندلی چې څوک کولی شي ما ته ووایی چې ولې
    دا هغه څه دي چې زه یې کوم

    BLACK @ BLACK-pc: ~ / تورروټ $ غورنۍ «NextDivel {
    غورنۍ: کمانډ ونه موندل شو

    1.    اډریان اریو سټریټ dijo

      د دې مینځپانګې مینځپانګې دا ندي چې په قوماندې لیکه کې ننوځي ، مګر په هغه فایل کې چې تاسو رامینځته کوئ grub.cfg

  33.   نوډیټینو dijo

    عالي مقاله ، مننه!

  34.   David dijo

    ښکلی… !! دا د ورک شوي لینک په څیر دی.

  35.   r.garciag dijo

    زه ستاسو د ایمولیټ لیونس توروالډس لارښوونې خوښوم ، مګر یو ګام شتون لري چې زه نه پوهیږم ، لاندې:
    اوس موږ START.ELF کاپي / بل زموږ په فولډر کې کاپي کوو چې زموږ د عامل سیسټم ریښې سمبالوي. موږ د کنسول سره زموږ د نوي عملیاتي سیسټم ریښې فولډر ته ځو او تصدیق کوو چې دلته دوه فایلونه شتون لري: یو /boot/grub/grub.cfg او بل /next/START.ELF.

    موږ پورتنۍ لارښود ته ځو او د GRUB-mkrescue په نوم د GRUB سره د ISO رامینځته کیدونکي افادیت غواړو

    ایا څوک کولی شي چې ما ته دا تشریح کړي: مخ

    1.    اډریان اریو سټریټ dijo

      په ساده ډول د لږترلږه ISO تولید لپاره چې GRUB کولی شي هغه پورته کړي موږ د کارن کاپي (د ISO / / هر فولډر) /next/START.ELF او GRUB تشکیلاتي فایل ته (د ISO / هر فولډر) / بوټ / ته کاپي کوو grub / grub.cfg. یوځل چې دا سرته ورسي ، نو موږ لاهم په GRU کې GRUB نه دی نصب کړی او یوټیلټ شتون لري چې ISO له فولډر څخه تولید کوي او GRUB-mkrescue په نوم GRUB نصبوي. بیا به موږ په پای کې د بوټ وړ ISO سره پای ته ورسیږو چې GRUB نصب کړی ، کوم چې کولی شي وروسته د START.ELF اجرا کولو لپاره تشکیلات ولولي. زه نه پوهیږم چې ایا ما خپل ځان تشریح کړی ، مګر څه چې موږ ترسره کوو یو ډول غلط فایل سیسټم دی چې ورسره موږ ISO رامینځته کوو.

  36.   د میګیو جوس ګیوارا اټینکو dijo

    غوره

  37.   مایکل مورینو dijo

    ښه ، واقعیا یو نوی سیسټم ته ګورئ مګر خورا نه مګر د مثال په توګه د لینکس ښه کول د سرور برخې سره د لینکس ایکسونوکلियس رامینځته کول چې د مایکرو کارنل په توګه عمل کوي که وغواړي ، نو دا د مایکروونکلس چلند سره د ایکسونو جوړښت وایی چې خورا سپر او لینکس وي.

    بله خبره دا ده چې زه په برنامه کولو کې ماهر نه یم ، یوازې یو څو شیسي سي ++ او یو څه جاوا ، دا به زما لپاره کافي وي چې د لینکس کرنل برنامې ته ماډل ورکړم ، غوټۍ ، ترمیم او داسې نور.

  38.   د ژمي سرتیری 53 dijo

    له شک پرته زه باید دمخه په رخصتۍ کې وکړم.

  39.   فرمین dijo

    دا ښه دی او دا په کوم برنامه کې ډیزاین او کوډ کوي؟
    مهرباني وکړئ ماته دا ځواب راکړه

  40.   ډارک مائنډ dijo

    کله چې ستاسو له ګیټ څخه تالیف کوم:

    [jmponce @ jar build] ma cmake ..
    - د NextRoot لارښود جوړول
    - د ISO سکریپټ جوړول
    DESTDIR = بل نصب کړئ
    ./iso.sh
    - وموندل شوی آکسیجن: / usr / bin / doox (موندل شوی نسخه "1.8.9")
    - تشکیل بشپړ شوی
    - تولید بشپړ شو
    - د جوړولو فایلونه ته: / کور / jmponce / Next-divel / build ته لیکل شوي
    [jmponce @ jar build] $ جوړ کړئ
    د هدف START.ELF انحصاري سکین کول
    [7٪] د ASM-ATT څیز جوړول src / CMakeFiles / START.ELF.dir / start / boot.asm.o
    [14٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / NextShellLite.cpp.o
    [21٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_Screen.cpp.o
    [28٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / NextKernel_Main.cpp.o
    [35٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_Panic.cpp.o
    [42٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_Timer.cpp.o
    [50٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_Memory.cpp.o
    [57٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_Ports.cpp.o
    [64٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_GDT.cpp.o
    [71٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_ISR.cpp.o
    [78٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_String.cpp.o
    [85٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_IRQ.cpp.o
    [٪ 92٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_IDT.cpp.o
    [100٪] د CXX څیز جوړول src / CMakeFiles / START.ELF.dir / پیل / ND_Keyboard.cpp.o
    د CXX اجرا کولو وړ START.ELF سره وصل کول
    / usr / bin / ld: متوافق /usr/lib/gcc/x86_64-unعلوم-linux-gnu/4.9.2/libgcc.a د -lgcc په لټه کې کولو پر مهال پریښودل شوی
    / usr / bin / ld: -lgcc نشي موندلی
    راټولیدنه: تېروتنه: ld د وتلو حالت 2 راستون شو
    src / CMakeFiles / START.ELF.dir / build.make: 402: د 'src / START.ELF' هدف لپاره لارښوونې ناکامه شوې
    [2]: *** [src / START.ELF] تېروتنه 1
    د CMakeFiles / Makefile2: 106: د 'src / CMakeFiles / START.ELF.dir / ټول' هدف لپاره لارښوونې ناکام شوې
    [1]: *** [src / CMakeFiles / START.ELF.dir / all] تېروتنه 2
    Makefile: 117: د 'ټول' هدف په لارښوونو کې پاتې راتلل
    جوړ کړئ: *** [ټولې] تېروتنه 2

    1.    اډریان اریو سټریټ dijo

      تېروتنه داسې بریښي چې دا llibgcc نشي موندلی ځکه چې تاسو 64-bit نسخه لرئ او دا مهال د جوړونې سیسټم د 32-bit کارولو ته اړ ایستل کیږي. تاسو باید په خپل ډیسټرو یا غوره کې د مطابقت کڅوړه نصب کړئ ، د 32 بټ سیسټم وکاروئ.

      1.    رونالډو روډریګز dijo

        زه 32 ټوټې لرم او ورته غلطي څرګندیږي ، ایا تاسو د عامل سیسټم یا معمارۍ معنی لرئ؟ زما 64 بیت دی ، مګر زه اوبنټو 32 بټ کاروم ، پوښتنه مه کوئ ، مالي ستونزې ، په دې سره زه دا ټول وایم.

  41.   Jorge dijo

    عالي موضوع ، د لا پراخې حوزې په تمه. هڅول

  42.   Jhon dijo

    عالي زه د نورو لپاره امید لرم

  43.   پیرډ پیرز dijo

    سلام ، زه یو ځوان سفیر یم چې غواړي یو عملیاتي سیسټم رامینځته کړي چې د ټولو برنامو او پلیټ فارمونو ملاتړ کوي ترڅو پراختیا کونکي اړتیا نلري په کمپیوټر کې ځواکمن ماشینونه یا غوښتنلیکونه یا برنامې ولري.
    له همدې امله زه پدې پوسټ کې علاقه لرم مګر کله چې زه ستاسو ګیټ ډاونلوډ کوم یا دا رامینځته کولو هڅه کوم ، هرڅه کار کوي تر هغه چې زه امر پلي نه کړم. /iso.sh یا grub-mkrescue -o nextdivel.iso nextroot تاسو دا غلطي ترلاسه کوئ

    "ګرب-مکرسکیو: خبرداری: ستاسو xorriso د" rgrub2-boot-info "ملاتړ نه کوي. ځینې ​​ب featuresې غیر فعال شوې xorriso 1.2.9 یا وروسته استعمال کړئ ..
    grub-mkrescue: चेतावनी: ستاسو xorriso د "rgrub2-boot-info" ملاتړ نه کوي. ستاسو د کرنیل عکس خورا لوی دی. د ډیسک بوټ نافعال شوی دی. xorriso 1.2.9 یا وروسته استعمال کړئ .. »
    زه واقعیا هیڅ نظر نلرم ځکه چې زه د غوښتنلیکونو او ویبونو په اړه ډیر څه پوهیږم مګر زه د ګرباب په اړه هیڅ نه پوهیږم

    1.    اډریان اریو سټریټ dijo

      تاسو اړتیا لرئ په خپل ډیسټرو کې د xorriso برنامه تازه کړئ. تاسو کوم ډیسټرو او نسخه کاروئ؟

      1.    پیرډ پیرز dijo

        زه د xubuntu 14.04lts کاروم او د xorriso پرمخ وړلو هڅه کوم مګر شیل ما ته وايي چې دا نشي موندلی او زه یې د انټرال xorriso ترلاسه کړم که څه هم زه په کلکه د یو څه ځواب تمه کوم ځکه چې زه د هغه شیانو په نصبولو کې خرابه تجربه لرم چې زه یې په لینکس هی کې نه پوهیږم. زه به همدا اوس تازه کړم او تاسو ته به ووایم چې څه پیښ شوي

      2.    اډریان اریو سټریټ dijo

        بیا د سافټویر مرکز څخه xorriso نصب کړئ یا په ساده ډول له ترمینل څخه "sudo apt-get install xorriso" وکړئ

      3.    پیرډ پیرز dijo

        ما دمخه هرڅه ترسره کړي چې تاسو ما ته ویلي دي او د ګیټ او ما دواړه سره زه دا xorriso 1.3.2 ترلاسه کوم: د راکریج فایل سیسټم مینیپولیټر ، لیبورنیا پروژه.

        د موټر چلولو اوسنی: -outdev 'stdio: nextdivel.iso'
        د میډیا اوسنی: سټډیو فایل ، د تاوولو وړ
        د میډیا حالت: تش دی
        د رسنیو لنډیز: 0 سیشنونه ، 0 د معلوماتو بلاکونه ، 0 ډاټا ، 1901 م وړیا
        د ISO عکس ته اضافه شوی: ډایرکټرۍ '/'='/tmp/grub.OEqSzV'
        xorriso: تازه کول: په 546 ثانیو کې 1 فایلونه اضافه شوي
        xorriso: ناکامي: د سرچینې دوتنې '/ میډیا / gaia / Jupiter1 / ShellSystem / Nextroot / nextroot' ځانګړتیاوې نشي ټاکلی: دا ډول دوسیه یا ډایرکټري نشته
        xorriso: تازه کول: په 546 ثانیو کې 1 فایلونه اضافه شوي
        xorriso: ورکه کول: -برټ_ون 'ناکامي' د 'ناکام' سره مخ شو
        او کورډورای زه نه پوهیږم زما جوړښت /nextroot/boot/grub/grub.cfg او نیکروټ / بل / START.ELF دی.

      4.    پیرډ پیرز dijo

        مننه ، زه چمتو یم چې پرمخ لاړ شم ، یو ملګري زما سره مرسته وکړه او ما ته یې وویل چې ما څه غلط کړي د لارښود تنظیم و ، نو ما دا تنظیم کړ او دا هغه دی

      5.    Erik dijo

        بښنه غواړم ، ایا تاسو کولی شئ ما ته ووایاست چې کومه کړنالره تاسو ترسره کړې ځکه چې زه د بوټ کولو لپاره هیڅ ستونزه نلرم: هیڅ داسې فایل یا لارښود نه

        د بوټ وړ وسیله نشته.

  44.   جوز dijo

    هڅول! زه ستاسو څخه د احسان غوښتنه کوم که تاسو کولی شئ ما ته د هغه څه سره بریښنالیک ولیږئ چې تاسو یې دلته تشریح کوئ ، زه یو څه مغشوش شوی یم او زه اړتیا لرم هغه څه پرتله کړئ چې زه یې د هغه څه سره پرتله کوم چې تاسو یې تشریح کوئ ، شاید هغه څه چې ما ته روښانه ندي هغه څه دي چې د ګرب رامینځته کول دي. cfg د ترمینل gcc کې ترسره کیږي یا په سمه توګه چیرې؟ ډیره مننه ملګريه!

    1.    اډریان اریو سټریټ dijo

      تاسو د هر متن مدیر سره فایل grub.cfg جوړ کړئ او تاسو باید دا په PROJECT_FOLDER / boot / grub / grub.cfg کې خوندي کړئ.

  45.   جهازانو dijo

    سلام اډریان ، لومړی له تاسو څخه مبارکي وایم او ستاسو د همکارۍ څخه مننه.

    تاسو پوهیږئ چې زه دا د تمرین لپاره ترسره کوم او ما ستاسو د ښوونې تعقیبولو وروسته دا یوځای کول پیل کړي ، په هرصورت پیل کولو وروسته ما لومړۍ خطا وموندله

    $ لکه -o kernel.o -c kernel.asm
    bash: لکه: کمانډ ونه موندل شو ...
    ورته حکمونه په لاندې ډول دي:
    'سا'
    'اک'

    زه په فیډورا 20 کار کوم ، او زه پدې برخه کې د حل لاره نه موندم ، زه به ستاسو لارښود تعریف کړم چې ایا زه باید په gcc یا ګاز کې یو څه بدل کړم.

    مخکې له مننه

    1.    اډریان اریو سټریټ dijo

      تاسو باید GAS نصب کړئ نو زه کولی شم د خطا کوډ وګورم. زه په لاس کې فیډورا نلرم مګر په تیوري کې که تاسو د gcc-c ++ نصب وکړئ نو تاسو به د ټول GCC سویټ نصب کړئ او دا عموما د GNU As سره راځي.

  46.   ګسټن رامیرز dijo

    زه ستاسو سره یم ، زه د C ++ ، C # په اړه یو څه پوهیږم (که څه هم دا وروستی په دې مسله کې خورا ګټور ندي) بد شی دا دی چې زه لاهم تجربه نلرم ، زه هیڅکله C ژبه نه لرم ، ستاسو خپرونه عالي ده ، زه ډیر څه نلرم ، که زه وخت ولرم زه وینم. مننه.

  47.   ټریسیټا ډیل عیسی نه سانچیز dijo

    د لوی مرستې لپاره ډیره مننه….

  48.   jky dijo

    زه لینوکس سره مینه لرم دا غوره ولسوالي ده هلته زما د وینډوز لپاره حقیقت دی یو چا ته کثافات دي چې زه پوهیږم چې د لینکس جوړونکی د وینډوز خالق دی

  49.   روډ dijo

    سلام زه په ګربو کې خطا ترلاسه کوم
    خطا: دوتنه /next/START.ELF ونه موندل شو
    تیروتنه: تاسو اړتیا لرئ لومړی دانی پیل کړئ

    ایا تاسو ما سره مرسته کولی شی او ګوګل شوی مګر زه نشم موندلی

  50.   اینریک ایولا dijo

    مهرباني وکړئ ، زه څنګه کولی شم دا د هیلو نړۍ پیغام ښکاره کړم؟ زه یو ابتکار یم او زه لاهم پوره نه پوهیږم.

  51.   کارلوس ګیریرو الوارز dijo

    لاندې ما سره پیښیږي:
    gcc -o START.ELF kernel.o NextKernel_Main.o -Tlink.ld -nostdlib -fPIC -ffreestanding -lgcc
    / usr / bin / ld: kernel.o: د سمبول against سټیک په مقابل کې R_X86_64_32 ځای په ځای کول د PIE څیز جوړولو پر مهال نشي کارول کیدی؛ د -fPIE سره بیا جوړول
    / usr / bin / ld: نهایی لینک ناکام شو: په आउटपुट کې د وړاندې کولو وړ برخه
    2 راټول شوی: تېروتنه: ld د وتلو 1 حالت راوتلی