برنامهنویسی کرنل لینوکس - IPC بین فضای کاربری و فضای کرنل
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- ماژولهای کرنل لینوکس (LKM)
- سوکتهای Netlink
- مفهوم TLVs (مقدار طول تایپ)
- ارتباط بین فضای کاربری و فضای کرنل
- برنامهنویسی کرنل لینوکس
- Multicast از فضای کرنل به فضای کاربری
- نوتیفیکیشن مبتنی بر رویداد از فضای کرنل به فضای کاربری
پیشنیازهای دوره
- برنامهنویسی به زبان C ضروری است و باید به آن تسلط داشته باشید.
- آشنایی سطح بالا با سیستم عامل، مفید خواهد بود
- اجرای سیستم عامل لینوکس به عنوان ماشین مجازی
توضیحات دوره
به دنیای برنامهنویسی کرنل لینوکس خوش آمدید. این دوره درباره سوکتهای Netlink است که در آن به طور جامع به این فناوری میپردازیم. Netlink، سیستم کرنل است که اپلیکیشنهای فضای کاربری را قادر میسازد تا IPC دوطرفه و پیوسته با فضای کرنل برقرار کنند. در این دوره، یاد میگیریم چگونه میتوان از سوکتهای Netlink برای تبادل پیامهای Netlink بین کرنل و فضای کاربری استفاده کرد.
این دوره میتواند قدم اول شما در ورود به دنیای برنامهنویسی کرنل باشد. برای کسانی که برای اولین بار قصد نوشتن کد در کرنل را دارند، شروعی مناسب است. ما کدهای زیادی در هر دو حوزه کرنل و فضای کاربری خواهیم نوشت تا با مفهوم ارتباطات مبتنی بر Netlink آشنا شویم. نیاز دارید که در برنامهنویسی به زبان C مسلط باشید.
فهرست مطالب :
بخش 1 - راهاندازی محیط توسعه
- دستور کار، پیشنیازها و فرضیات
- چگونه دورههای برنامهنویسی کرنل را برگزار کنیم؟
- راهاندازی محیط توسعه
- نصب هدرهای کرنل لینوکس
بخش 2 - نوشتن ماژولهای کرنل لینوکس
- ماژولهای کرنل لینوکس چه هستند؟
- ماژول Hello-World در کرنل لینوکس
بخش 3 - آشنایی با سوکتهای Netlink
- رسانههای ارتباطی در سیستم
- سوکتها - به عنوان رابط یکپارچه
- یوزکیسهای ارتباطات Netlink
- پروژه Netlink برای این دوره
بخش 4 - ارتباطات Netlink - تئوری قبل از کدنویسی
- فرمت پیامهای Netlink
- انواع پیام Netlink
- پرچمهای پیام Netlink
- مدل ارتباطات Netlink
- شماره توالی در Netlink
- شناسه پورت Netlink
بخش 5 و 6 - نوشتن اولین برنامه Netlink
- سلام کردن به کرنل از فضای کاربری
- دریافت پاسخ از کرنل به فضای کاربری
بخش 7 - مفاهیم مربوط به TLV در Netlink Attributes
- مفهوم TLVs
- تجزیه بافر TLV
بخش 6 - شروع کار با پروژه Netlink
- شرح مشکل
- ارسال پیام CREATE به کرنل در Netlink
- دریافت بازخورد و پاسخ از کرنل به فضای کاربری
- ارسال پیام UPDATE به کرنل در Netlink
- ارسال پیام DELETE به کرنل در Netlink
- عملیات READ در Netlink برای خواندن داده از فضای هسته به فضای کاربری
بخش 8 - اشتراک در گروههای Netlink
- ارسال داده کرنل به چندین فرآیند در فضای کاربری
- اشتراک در گروه Multicast
- لغو اشتراک در گروه Multicast
بخش 9 - نوتیفیکیشن مبتنی بر رویداد انتخابی
- اشتراک یا لغو اشتراک در رویداد فضای کرنل
- موضوع بعدی چیست؟
این دوره برای چه کسانی مناسب است؟
- دانشجویان علوم کامپیوتر
- افراد شاغل
- فریلنسرها
- علاقهمندان به برنامهنویسی کرنل و برنامهنویسی سیستم
برنامهنویسی کرنل لینوکس - IPC بین فضای کاربری و فضای کرنل
-
دستور کار، پیشنیازها و فرضیات 04:17
-
عضویت در گروه تلگرام 00:13
-
چگونه دورههای برنامهنویسی کرنل را برگزار کنیم؟ 03:41
-
راهاندازی محیط توسعه 03:13
-
نصب هدرهای کرنل لینوکس 01:26
-
LKMs چیست؟ 02:36
-
نوشتن LKM در Hello-World 06:16
-
رسانههای ارتباطی در سیستم 05:36
-
سوکتها - به عنوان رابط یکپارچه 06:12
-
یوزکیسهای ارتباطات Netlink 03:42
-
پروژه Netlink برای این دوره 03:27
-
فرمت پیامهای Netlink 03:14
-
انواع پیامهای استاندارد در Netlink 07:32
-
پرچمهای پیام Netlink 06:45
-
مدل ارتباطات Netlink 02:52
-
شماره توالی در Netlink 03:28
-
شناسه پورت Netlink 03:05
-
پایان تئوری Netlink 02:22
-
مثال سلام کردن به NetLink 03:09
-
شماره پروتکل Netlink 02:48
-
بررسی کد LKM سلام کردن به NetLink - بخش 1 10:53
-
نوشتن APIs پشتیبانی None
-
بافرهای سوکت کرنل 04:24
-
بررسی کد LKM سلام کردن به NetLink - بخش 2 - دریافت پیام فضای کاربری 06:23
-
بررسی کد LKM سلام کردن به NetLink - بخش 3 - ارسال پاسخ به فضای کاربری 09:29
-
مدل Thread برنامه در فضای کاربر 02:19
-
API برای ارسال پیام به کرنل 06:13
-
بررسی کد - ()send_netlink_msg_to_kernel 10:20
-
Userspace.c - فلوچارت 04:43
-
Userspace.c - ارسال پیادهسازی کد 09:02
-
Userspace.c - دریافت پیادهسازی کد 08:28
-
دموی نهایی 02:19
-
مفهوم TLVs 05:21
-
تجزیه بافر TLV 04:43
-
تکلیف اجباری درباره TLVs None
-
Netlink Attributes 03:41
-
جایزه - گام بعدی 01:16
مشخصات آموزش
برنامهنویسی کرنل لینوکس - IPC بین فضای کاربری و فضای کرنل
- تاریخ به روز رسانی: 1404/06/21
- سطح دوره:مقدماتی
- تعداد درس:37
- مدت زمان :02:48:33
- حجم :1.52GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy