- کانفیگ hardening شده هسته Linux برای محیط production x64:
(قبل از کامپایل هسته Linux بهمین شکل پارامترهارو داخل فایل .config
موجود در سورس لینوکس تون اعمال کنید)
- کانفیگ hardening شده هسته Linux برای محیط production x64:
(قبل از کامپایل هسته Linux بهمین شکل پارامترهارو داخل فایل .config
موجود در سورس لینوکس تون اعمال کنید)
Virtual File System یا سیستم فایل مجازی
Virtual File System(مخفف VFS) یک ساب سیستم مهم در Kernel لینوکس هست که لایه بین filesystem و برنامه های user-space رو تشکیل میده. درواقع همه filesystem ها، با تکیه بر VFS می تونن شناسایی بشن و تبادل اطلاعات کنن. همین مسئله، برنامه های user-space رو قادر کرده که توسط دستورات موجود در VFS برای خواندن و نوشتن در filesystem های گوناگون اقدام کنن:
نکته: در اینجا منظور از لایه، همون Abstraction layer و منظور از دستورات، همون System call/SysCall هستش.
نکته 2: البته به برکت wrap های GNU C Library، کمتر پیش میاد که برنامه user-space نیاز به استفاده از System call داشته باشه.
ماژول، قطعه ی نرم افزاری در بخشی جدا از Core هسته هستش که هنگام فراخونی شدن، پیوند و فعال میشه و یکسری عملیات تعریف شده ای رو انجام میده.
این ماژول می تونه سرویس باشه، filesystem باشه، پروتکل شبکه باشه، تعدادی System call باشه و یا درایور یک سخت افزار باشه; که در هر صورت ماژول نام داره.
ماژول ها در لینوکس به دو گروه تقسیم میشن:
Built-in kernel module: که با قرار دادن سورس ماژول در داخل پوشه های سورس Kernel، همراه با Kernel کامپایل میشه.
Loadable Kernel module: که با load کردن ماژول کامپایل شده در داخل سیستم در حال اجرا فعال میشه.
در این مقاله(ها) قصد دارم برنامه نویسی هسته لینوکس 2 و 3 رو آموزش بدم.
اول برخی از اصول سیستم عامل و هسته لینوکس(از جمله Version های هسته، دانلود سورس، ساختمان دایرکتوری سورس، چگونگی نصب، Patch کردن، پیکربندی و Compile) رو معرفی می کنم و بعد به مباحث پیشرفته و برنامه نویسی(از قبیل تفاوت بین kernel-space و User-space، سازه های برنامه نویسی استفاده شده در هسته، Process ها، System-call ها، ساختمان داده هسته، Interrupt handler ها، همگاه سازی، مدیریت Time، مدیریت حافظه، سیستم فایل و خروجی/ورودی) می پردازم.
در این بین از کتابهای Advanced Linux programming، Linux Advanced Administration و Linux Kernel Development هم بهره ای می گیرم.
فهرست مندرجات: