"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > قم ببناء نظام التشغيل الخاص بك (حقًا!): برمجة C للمبتدئين

قم ببناء نظام التشغيل الخاص بك (حقًا!): برمجة C للمبتدئين

تم النشر بتاريخ 2024-11-08
تصفح:591

قم ببناء نظام التشغيل الخاص بك: قم بتثبيت مترجم C وأدوات مثل MinGW-w64. اكتب أداة تحميل التشغيل باستخدام لغة التجميع لتحميل النواة. قم بإنشاء النواة في لغة C، بما في ذلك مترجم الأوامر. استخدم ملف Makefile لدمج أداة تحميل التشغيل والنواة في ملف "os.img". قم بتشغيل ملف "os.img" على جهاز ظاهري أو جهاز مثل VirtualBox.

Build Your Own Operating System (Really!): C Programming for Beginners

أنشئ نظام التشغيل الخاص بك (حقًا): برمجة C للمبتدئين

في عالم الكمبيوتر، نظام العمليات (OS) ) يعد من أهم البرامج. وهي مسؤولة عن إدارة موارد الأجهزة وتوفير واجهة للمستخدمين للتفاعل مع الكمبيوتر. على الرغم من أنه من السهل استخدام نظام تشغيل جاهز للاستخدام، إلا أن بناء نظام خاص بك من البداية يمكن أن يمنحك نظرة ثاقبة على الأعمال الداخلية لجهاز الكمبيوتر الخاص بك. في هذه المقالة، سنرشدك خطوة بخطوة عبر إنشاء نظام التشغيل الخاص بك باستخدام لغة البرمجة C، مما يمنحك نظرة ثاقبة حول مدى تعقيد تصميم نظام التشغيل وقوته.

الخطوة الأولى: تثبيت المترجم والأدوات

قبل أن تبدأ، ستحتاج إلى تثبيت مترجم C وبعض الأدوات الإضافية. بالنسبة للمبتدئين، يعد MinGW-w64 خيارًا جيدًا، حيث يوفر بيئة تجميع C كاملة لأنظمة Windows. يمكنك أيضًا العثور على بدائل لنظامي التشغيل Linux وmacOS.

الخطوة الثانية: كتابة محمل الإقلاع

محمل الإقلاع هو الجزء الأول من نظام التشغيل وهو المسؤول عن تحميل النواة عند بدء تشغيل الكمبيوتر. سنكتب أداة تحميل إقلاع بسيطة بلغة التجميع لأنها تتيح لنا التفاعل مباشرة مع الأجهزة. يبدو الرمز كما يلي:

; 入口点
entry:
    ; 加载内核到内存
    mov eax, 0x1000
    mov ebx, 0x100000
    mov ecx, 0x10000
    rep movsb

    ; 跳转到内核入口点
    jmp 0x1000

الخطوة 3: الإصدار الأول من النواة

الآن، لنكتب الإصدار الأول من النواة. وسيحتوي على مترجم أوامر بسيط يسمح لنا بإدخال الأوامر والتفاعل مع النظام. يبدو رمز النواة كما يلي:

#include 

int main() {
    while (1) {
        char command[256];

        // 提示用户输入命令
        printf("> ");

        // 读取命令并执行它
        scanf("%s", command);
        if (strcmp(command, "exit") == 0) {
            break;
        } else if (strcmp(command, "help") == 0) {
            printf("Available commands: exit, help\n");
        } else {
            printf("Invalid command\n");
        }
    }

    // 返回 0 以指示成功终止
    return 0;
}

الخطوة الرابعة: تجميع كل شيء معًا

الآن بعد أن أصبح لدينا محمل الإقلاع والنواة، حان الوقت لتجميع كل شيء معًا. من أجل القيام بذلك، نحن بحاجة إلى إنشاء ملف Makefile الذي يحدد عملية البناء:

bootloader: bootloader.asm
    nasm -f bin bootloader.asm

kernel: kernel.c
    gcc -ffreestanding -o kernel kernel.c

all: bootloader kernel
    dd if=bootloader of=os.img bs=512 count=1
    dd if=kernel of=os.img bs=512 seek=1

سيقوم الأمر Run make بتجميع وربط محمل الإقلاع والنواة، وإنشاء ملف صورة نظام التشغيل نظام التشغيل .img.

حالة عملية: تشغيل نظام التشغيل الخاص بك

بمجرد حصولك على صورة نظام التشغيل، يمكنك تشغيلها باستخدام جهاز افتراضي أو جهاز فعلي. لتشغيل os.img في VirtualBox:

  1. أنشئ جهازًا افتراضيًا جديدًا وحدد "أخرى" كنوع نظام التشغيل.
  2. تخصيص ما لا يقل عن 512 ميجابايت من ذاكرة الوصول العشوائي.
  3. إلحاق ملف os.img بقناة IDE الأولى للقرص الظاهري.
  4. بدء تشغيل الجهاز الظاهري.

يجب الآن تشغيل نظام التشغيل الخاص بك في VirtualBox. يمكنك التفاعل معه باستخدام موجه الأوامر.

الخلاصة

يعد إنشاء نظام التشغيل الخاص بك تجربة مثيرة ومليئة بالتحديات. باتباع هذا الدليل، ستفهم المبادئ الأساسية لتصميم نظام التشغيل وستختبر إحساس الإنجاز الذي يأتي مع إنشاء البرامج من الصفر.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3