آشنایی با توسعه Linux kernel
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- با درکی سطح بالا از زیرسیستمهای مختلف kernel، چگونگی عملکرد Linux kernel را بیاموزید.
- محیط توسعه خود را برای بررسی در توسعه Linux kernel بر روی یک ماشین مجازی VirtualBox راهاندازی کنید.
- مفاهیم مهم مرتبط با سیستمعاملهای مدرن را بیاموزید.
- چگونگی کامپایل سفارشی و بوت کردن یک ایمیج باینری از منابع رسمی Linux kernel را بیاموزید.
- چگونگی ایجاد یک ایمیج بوتشونده لینوکس با Linux kernel کامپایلشده سفارشی و BusyBox به عنوان فضای کاربری را بیاموزید.
- چگونگی ایجاد ایمیج initramfs سفارشی با BusyBox به عنوان فضای کاربری را بیاموزید.
- چگونگی ناوبری در سورس کد kernel، یادگیری ویژگیهای جدید و APIs را بیاموزید.
- چگونگی ایجاد ماژولهای Linux kernel و درک فرآیند توسعه ماژولهای kernel قابل بارگذاری را بیاموزید.
- چگونگی واسطهگری با procfs و debugfs از طریق ماژولهای kernel قابل بارگذاری را بیاموزید.
- نکات، تکنیکها و بهترین شیوهها را برای تبدیل شدن به یک توسعهدهنده ماهر Linux kernel بیاموزید.
- چگونگی ایجاد پچهایی را که میتوانند به جامعه رسمی Linux kernel ارسال شوند، بیاموزید.
پیش نیازهای دوره
- مهارتهای برنامهنویسی با استفاده از زبان برنامهنویسی C
- دانش رابط خط فرمان لینوکس: استفاده از Bash Shell، اسکریپتنویسی اولیه Shell و فرمان های اولیه لینوکس برای مدیریت فایلها و فرآیندها
- درک اولیه از معماری سختافزار کامپیوتر
- یک لپتاپ و دسکتاپ مبتنی بر معماری x86 (Intel / AMD) با حافظه کافی (حداقل 16 گیگابایت) و فضای ذخیرهسازی (حداقل 128 گیگابایت) با پشتیبانی از اجرای ماشینهای مجازی VirtualBox
- یک سیستمعامل فعال: ویندوز 10 به بالا، macOS (x86) یا هر توزیع دسکتاپ لینوکس با آخرین نسخه VirtualBox نصب شده
توضیحات دوره
این دوره یک مقدمه جامع بر طراحی و معماری Linux kernel را ارائه میدهد و هدف آن تجهیز شما به دانش نظری و مهارتهای عملی است. مدرس با پوشش مفاهیم و اصطلاحات ضروری سیستمعامل شروع خواهمد کرد تا اطمینان حاصل شود که اصولی قوی دارید. از آنجا، به جزئیات پیچیده عملکرد Linux kernel خواهید پرداخت و یاد میگیرید که چگونه آن را از سورس کد بسازید و یک سیستم لینوکسی بوتشونده کاملاً کاربردی و سفارشی ایجاد کنید. این شامل راهاندازی یک محیط کاربری BusyBox برای تکمیل سیستمعامل است که به شما درکی عملی از اجزای داخلی سیستم میدهد.
علاوه بر ساخت kernel، این دوره به شما آموزش میدهد که چگونه ماژولهای Linux kernel خود را با بررسی عمیق ماژولهای kernel قابل بارگذاری (LKMs) توسعه دهید. شما چگونگی گسترش پویای عملکرد kernel را کشف خواهید کرد، که شما را قادر میسازد ماژولها را به طور موثر ایجاد، بارگذاری و اشکالزدایی کنید. این دوره همچنین به ویژگیهای کلیدی مانند kthreads، واسطهگری با سیستمفایل procfs (/proc)، که به شما امکان میدهد هرگونه آمار مربوط به ماژول و kernel را به فضای کاربری نمایش دهید، و همچنین واسطهگری با debugfs (/sys/kernel/debug)، که به شما امکان میدهد متغیرها را از درون فضای kernel برای تشخیص و اشکالزدایی به فضای کاربری نمایش دهید، میپردازد.
علاوه بر این، شما با یادگیری چگونگی ایجاد پچها و اعمال آنها طبق گردش کار رسمی توسعه Linux kernel، تجربه مشارکت در Linux kernel را کسب خواهید کرد. پس از اتمام این دوره، در بررسی، مدیریت و اصلاح سورس کد Linux kernel ماهر خواهید بود و آماده خواهید شد تا در مسیر تبدیل شدن به یک توسعهدهنده ماهر Linux kernel قدم بردارید.
این دوره برای چه کسانی مناسب است؟
- علاقهمندان به لینوکس در سطح مبتدی که علاقهمند به بررسی در اجزای داخلی و توسعه Linux kernel هستند.
- مهندسان سیستم که بر روی سایر سیستمعاملها کار میکنند و علاقهمند به بررسی در ویژگیهای Linux kernel هستند.
- توسعهدهندگان Linux kernel و توسعهدهندگان درایور دستگاه که علاقهمند به بازبینی دانش خود در مورد مفاهیم اصولی Linux kernel هستند.
آشنایی با توسعه Linux kernel
-
بررسی اکوسیستم لینوکس و پشته سیستمعامل 24:26
-
تاریخچه مختصر لینوکس 55:56
-
ویژگیهای کلیدی Linux kernel 16:36
-
فرآیند توسعه Linux kernel 57:03
-
نصب ArchLinux روی ماشین مجازی VirtualBox (ویندوز، لینوکس و macOS x86) 26:37
-
مفاهیم اصولی مرتبط با طراحی و معماری سیستمعاملها 01:35:00
-
معماری سطح بالای یک kernel سیستمعامل 01:13:09
-
زیرسیستمهای IRQ و سایر ویژگیهای kernel اصلی 37:39
-
معماری Monolithic در مقابل Microkernel 41:50
-
مالتی تسکینگ تعاونی در مقابل پیشگیرانه 30:56
-
حافظه مجازی و صفحهبندی درخواستی 56:31
-
ساخت یک ایمیج kernel سفارشی از منابع و بوت کردن kernel جدید 01:59:16
-
بوت کردن ایمیج سفارشی لینوکس با BusyBox به عنوان فضای کاربری 58:29
-
ایجاد یک ایمیج بوتشونده لینوکس سفارشی با استفاده از initramfs و BusyBox 50:40
-
درک پارادایم "همه چیز یک فایل است" در لینوکس 01:21:49
-
زیرسیستمهای Linux kernel و لایههای معماری اصلی 34:06
-
ساختار درخت منابع Linux kernel: یک مرور کلی سطح بالا 01:13:17
-
ناوبری در منابع Kernel با استفاده از cscope و LXR 22:27
-
فرآیند بوت Linux Kernel: بررسی کد سطح بالای بوت kernel اصلی 34:37
-
فرآیند بوت Linux Kernel: از مقداردهی اولیه زیرسیستم تا init فضای کاربری 38:09
-
بررسی ماژولهای kernel قابل بارگذاری 53:19
-
نوشتن اولین ماژول kernel قابل بارگذاری شما 01:11:15
-
ماژول kernel قابل بارگذاری: ویژگیها و تشخیصها 01:17:33
-
بررسی kthreads و پارامترهای ماژول 01:06:42
-
اعتبارسنجی پارامترهای ماژول 41:08
-
ایجاد ماژولهای kernel قابل بارگذاری بر اساس چندین فایل منبع 01:14:58
-
انتقال پارامترهای ماژول و مدیریت ماژولها از طریق نامهای مستعار ماژول 01:16:41
-
توسعه یک ماژول kernel قابل بارگذاری برای افزودن ورودیها به سیستمفایل - proc (procfs) 01:02:23
-
نمایش متغیرها به عنوان فایل در سیستمفایل اشکالزدایی (/sys/kernel/debug) 34:18
-
ایجاد و ارسال پچها به جامعه Linux Kernel 47:34
-
نکات پایانی و مسیرهای آینده 10:04
مشخصات آموزش
آشنایی با توسعه Linux kernel
- تاریخ به روز رسانی: 1404/06/21
- سطح دوره:مقدماتی
- تعداد درس:31
- مدت زمان :27:30:59
- حجم :22.29GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy