وقتی یه Theme کمکم تبدیل شد به خونه: Leenium
من Theme زیاد عوض کردم. احتمالاً بیشتر از چیزی که واقعاً لازم بوده. `Catppuccin`، `Tokyo Night`، `Night Owl`، `Dracula` و کلی Theme دیگه که بعضیهاشون واقعاً هم خوبن و هنوزم دوس...
درانکلین
من Theme زیاد عوض کردم. احتمالاً بیشتر از چیزی که واقعاً لازم بوده. `Catppuccin`، `Tokyo Night`، `Night Owl`، `Dracula` و کلی Theme دیگه که بعضیهاشون واقعاً هم خوبن و هنوزم دوس...
این پست بهصورت مفهومی تفاوت کرنلهای مختلف لینوکس مثل Mainline، LTS، Zen، Hardened و همچنین WSL2 را توضیح میدهد. هدف این است که نشان دهد این کرنلها انتخابهای همسطح نیستند و هرکدام برای یک سناریوی مشخص طراحی شدهاند؛ بنابراین انتخاب درست کرنل به این بستگی دارد که لینوکس را کجا و برای چه کاری اجرا میکنید.
توی این پروژه از صفر یک لینوکس ۶۴ بیتی خیلی مینیمال میسازم: اول با tinyconfig و چند تنظیم دستی، یک کرنل کوچک برای x86_64 میسازم و توی QEMU بوت میکنم تا به خطای no working init found برسم. بعد، یک init فوقساده با Rust + اسمبلی مینویسم (بدون std و libc) که مستقیماً با system callها کار میکند و نقش PID 1 را میگیرد. در آخر، Lua را استاتیک کامپایل میکنم، همراه با init داخل یک initramfs میگذارم، و با ابزارهای خود کرنل یک ISO قابل بوت میسازم که میتواند Lua را روی این دنیای خیلی کوچک لینوکسی اجرا کند. هدف، ساخت یک دیستروی روزمره نیست؛ هدف این است که کوچکترین لینوکسی را بسازم که واقعاً میفهمم از درون چطور کار میکند.
دستور id چه اطلاعاتی از کاربر نمایش میدهد، چطور میشود UID و GID و گروهها را دید و کدام گزینهها کاربردیترند. همچنین نشان میدهد در چه موقعیتهایی مثل رفع خطاهای Permission، بررسی کاربران سرور یا کنترل اجرای اسکریپت، id مفید است.