👋 تشريح أول كائن حي: 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()، أو تقتلك النواة لانتهاكك الحدود!