آیا هسته لینوکس برای هر معماری سخت افزاری تفاوت داره؟ (البته که تفاوت داره اما چه جوری؟)
قسمتی از کدها متفاوته و هنگام کامپایل، انتخاب میکنید برای کدوم معماری کامپایل میکنید.
برای مثال، این دو بخش متفاوت از کدها هستش:
x86 و
ARMاینکه آیا تمامی مفاهیم سیستم عامل (حافظه مجازی، مدیریت فرآیند، چند نخی و ...) برای همه معماری ها پیاده سازی میشه و یکسانه؟
در لایههای پایین، مثلا وقتی بخواید یک ماژول بنویسید، خیر. در لایههای بالا، تقریبا بله.
بعضی از معماری های ARM که ضعیف تر از x86 یا x64 هستند، دلیلی ندارند همه مفاهیم پیچیده سیستم عامل رو پشتیبانی کنند. راه حل هسته لینوکس چیه؟
کرنل یک سیستم ماژولار هستش و لازم نیست (و گاهی امکانپذیر نیست) که تمام ماژولها رو کامپایل و استفاده کنید.