Skip to content

👋 تشريح أول كائن حي: user/hello/src/main.rs ​

هذا الملف الصغير هو إثبات قاطع على أن معمارية نظامنا العظيم تعمل بشكل مثالي. إنه أول برنامج "غريب" ومستقل يتم تحميله وتشغيله بنجاح داخل النظام.

1. التمرد على النظام القياسي ​

rust
#![no_std]
#![no_main]

use qos_api;

هذا البرنامج يرفض استخدام مكتبة std الخاصة بـ Rust أو libc الخاصة بـ Linux. إنه يطلب مكتبتنا القياسية الخاصة qos_api لكي يتحدث لغة النظام.

2. الدخول إلى الحياة ​

rust
#[no_mangle]
pub extern "C" fn _start() -> ! {
    qos_api::print("[Hello] First real ELF program on QOS!\n");
    
    // إنهاء بسلام
    qos_api::exit();
}

البرنامج يبدأ من دالة _start وليس main. الخطوة الأولى: يقوم باستدعاء دالة print التي بدورها تقوم بتجهيز مسجلات المعالج وضرب جرس الـ syscall لتستيقظ النواة وتطبع النص. الخطوة الثانية والأهم: يستدعي exit. ماذا لو لم يستدعِها؟ سيعود البرنامج إلى نقطة الصفر (التي لا تحتوي على شيء) وسينهار المعالج وتغضب النواة وتقتله بخطأ (Page Fault)!

هكذا بنينا نظاماً صارماً: إما أن تنهي حياتك بسلام عبر exit()، أو تقتلك النواة لانتهاكك الحدود!

تم تطويره بحب بواسطة مجتمع Qtoom.