دوره آموزشی
دوبله زبان فارسی
طراحی کرنل سیستم عامل xv6 از ابتدا با برنامه نویسی C
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- چگونه جدول صفحه کرنل xv6 با استفاده از آدرسدهی حافظهٔ مجازی راهاندازی میشود؟
- چگونه حافظهٔ دادههای اشتراکی با استفاده از قفلهای چرخشی و قفل خواب مدیریت میشود؟
- چگونه عملیات زمانبندیشده در سیستمعامل با استفاده از وقفه تایمر فعال میشود؟
- چگونه دسترسی همزمان به دیسک با استفاده از مجازیسازی ورودی/خروجی نگاشتشده در حافظه virtio فعال میشود؟
- چگونه فراخوانیهای سیستمی در سیستمعامل تولید میشوند؟
- چگونه فرآیندهای سیستمعامل با استفاده از تکنیک زمانبندی Round Robin زمانبندی میشوند؟
- چگونه سختافزار نمایشگر و صفحهکلید با استفاده از UART 16550a متصل میشود؟
پیش نیازهای دوره
- تجربه اولیه C یا ++C
توضیحات دوره
xv6 یک کرنل پردازنده چند کرنل است که برای اهداف آموزشی طراحی شده است. این کرنل سیستم عامل با موفقیت روی ماشین مجازی qemu اجرا میشود و گزینههایی برای گسترش ویژگیها دارد. در این دوره 8 ساعته، یاد خواهید گرفت که چگونه کد برنامه C را از ابتدا بنویسید و چندین مفهوم سیستم عامل استفاده شده را درک کنید، از جمله:
- چگونگی مقداردهی اولیه زیرسیستمهای کرنل - به عنوان مثال فرآیند، حافظه، دیسک، وقفهها، trap، حالت
- شما حالتهای مختلف عملکرد کرنل را یاد میگیرید - حالت ماشین، حالت ناظر، حالت کاربر و چگونگی جابجایی بین حالتها
- چگونگی محافظت از داده حافظه اشتراکی با استفاده از قفلهای چرخشی و قفل خواب روی یک پردازنده چند کرنل
- مجازیسازی سختافزاری - چگونگی اتصال سختافزار خارجی مانند صفحه کلید و نمایشگر با استفاده از تراشه 16550a UART
- آدرسدهی حافظه مجازی و چگونگی نگاشت حافظه مجازی به حافظه فیزیکی
- چگونگی تولید فراخوانیهای سیستمی از حالت کاربر از جمله چگونگی انتقال و اجرای آن در حالت ناظر
- چگونگی مدیریت عملیات زمانبندیشده مانند ()sleep، زمانبندی در یک سیستم عامل با استفاده از وقفههای تایمر.
- تکنیکهای مدیریت دیسک از جمله بافرینگ، نگاشت بیتی، لاگینگ و غیره
- چگونگی استفاده از مجازیسازی سختافزاری برای فعالسازی دسترسی به دیسک از ماشین مجازی به سیستم میزبان با استفاده از ثباتهای نگاشت شده در حافظه VIRTIO
- تکنیک مدیریت فایل - چگونگی ذخیرهسازی فایلها و دایرکتوریها به عنوان inodeها، pipeها و فایلهای دستگاهی روی دیسک و در حافظه
- تکنیکهای مدیریت و زمانبندی فرآیند - تکنیکهای ایجاد فرآیند، تخصیص فرآیند و دستکاری فرآیند
این دوره برای چه کسانی مناسب است؟
- توسعهدهندگان مبتدی تا حرفهای C++ ،C و کرنل
طراحی کرنل سیستم عامل xv6 از ابتدا با برنامه نویسی C
-
مقدمهای بر توسعه کرنل 05:26
-
راهاندازی حافظه سیستم با استفاده از kernel .ld و چگونگی راهاندازی پشته سیستم 11:41
-
چگونگی خواندن ثبات وضعیت حالت ماشین و راهاندازی وقفه تایمر در timervec 26:54
-
چگونگی محافظت از داده حافظه اشتراکی با استفاده از قفلهای چرخشی و قفل خواب 32:05
-
چگونگی اتصال 16550a UART به عنوان دستگاه کنسول برای صفحه کلید و نمایشگر 52:03
-
چگونگی راهاندازی جدول صفحه کرنل (آدرسدهی حافظه مجازی) 41:14
-
چگونگی نگاشت آدرس مجازی جدول صفحه به حافظه فیزیکی با استفاده از KALLOC 27:15
-
آدرسدهی حافظه مجازی 2 13:33
-
چگونگی راهاندازی کنترلکننده وقفه سطح پلتفرم PLIC 15:22
-
چگونگی راهاندازی و پردازش trapها و وقفهها با استفاده از ثبات sstatus 20:26
-
چگونگی پردازش trapها و وقفهها در حالت کاربر با استفاده از uservec و usertrap 20:24
-
مجازیسازی سختافزاری با استفاده از کتابخانه virtio memory mapped io 44:30
-
چگونگی خواندن/نوشتن بین کرنل و سیستم میزبان 05:19
-
مدیریت بافر - دسترسی همزمان به حافظه با استفاده از بافرها 22:20
-
لاگینگ - لایه انتزاعی دسترسی به دیسک 27:40
-
چگونگی نگاشت بلوکهای حافظه با استفاده از نگاشت بیتی بلوکهای داده 30:13
-
ساختارهای فایل و دایرکتوری و چگونگی دسترسی به آنها با استفاده از inodeها 36:29
-
تکنیک مدیریت فایل - تخصیص فایل، خواندن، نوشتن، باز کردن، بستن، stat 13:29
-
تکنیک مدیریت pipe - خواندن، نوشتن، باز کردن، بستن، تخصیص pipe 10:51
-
چگونه یک فرآیند با استفاده از procinit ،allocproc ،fork ،reparent ،userinit را مدیریت کنید؟ 45:33
-
چگونه فراخوانی سیستم را راهاندازی کنید؟ 33:39
مشخصات آموزش
طراحی کرنل سیستم عامل xv6 از ابتدا با برنامه نویسی C
- تاریخ به روز رسانی: 1405/04/02
- سطح دوره:همه سطوح
- تعداد درس:21
- مدت زمان :09:04:50
- حجم :3.5GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy