به نام خدا پروژهی شماره یک درس سیستم های عامل آشنایی با محیط سیستم عامل FreeBSDو هسته آن مقدمه در درس سیستم عامل با جنبه های مختلف یک سیستم عامل آشنا میشوید .در بخش پروژه های درس سیستم عامل سعی داریم تا دانشجویان مفاهیم آموخته شده را به صورت عملی پیاده سازی کنند .تمرکز اصلی پروژهها بر روی زمانبندی است اما برای شروع و آشنایی اولیهی شما با محیط سیستم عامل ،FreeBSDاین پروژهی مقدماتی را در نظر گرفتهایم. همان طور که در جلسهی توجیحی توضیح داده شد ،پس از نصب صحیح ( FreeBSDترجیحاً بر روی یک ماشین مجازی) شما امکان تغییر هسته 9را خواهید داشت .در این تمرین از شما میخواهیم تا تغییرات کوچکی را در هسته سیستم عامل انجام دهید و آن را با موفقیت کامپایل کنید .در قسمت بعدی ،با مفهوم KLDها آشنا می شوید و یک نمونه از آن ایجاد میکنید. kernel پاییز 19-19 دانشکده کامپیوتردانشگاه صنعتی شریف 1 دکتر جلیلی هسته سیستم عامل FreeBSD فایلهای هستهی سیستم عامل FreeBSDدر آدرس sys/kernقرار دارند .در این پروژهها قصد داریم با زمانبندی این سیستم عامل کار کنیم که این کار با دسترسی به فایل های زمانبندی سیستم امکان پذیر میباشد .این فایلها در آدرس های زیر قرار دارند: sys/sys/sched.h )9این فایل رابط بین زمانبند و هسته ی سیستم عامل است و ارتباط سایر اجزای سیستم عامل از طریق فراخوانی توابع و استفاده از ساختارهای تعریف شده در این فایل با زمانبند بر قرار میشود. sys/kern/sched_bsd.c )9یکی از زمانبندی های مورد استفاده در ( FreeBSDزمانبندی تاریخی برگرفته از )BSD sys/kern/sched_ule.c )3زمانبندی جدید FreeBSDهمراه با مالحظات کارایی در سیستم ها و پردازندههای جدید تغییرات عمدهی مد نظر در فایل sched_ule.cداده میشود .در این بخش ،ساختاری به اسم procوجود دارد که اطالعات مربوط به هر پردازه –که شامل یک یا تعدادی ریسه است -را نگهداری میکند .باید توجه داشت که واحد زمانبندی در این سیستم عامل ،ریسه است .اطالعات مربوط به ریسه ها در ساختار threadنگهداری میشود. تعریف پروژه )9پیکربندی هسته پس از نصب FreeBSDهر ماژول ،وسیله گرداننده و یا سرویسی را که نیاز ندارید حذف کنید تا حجم هسته را کاهش دهید .سپس هسته جدید را کامپایل کرده و با استفاده از آن سیستم را راهاندازی کنید. در گزارشی که ارائه میدهید باید اندازه هسته اصلی ( )Genericو هسته ای را که خودتان پیکربندی کرده اید را بیان کنید .توجه داشته باشید که قبل از دستکاری هسته ،یک تصویر لحظهای از ماشین مجازیتان ایجاد کنید. )9اضافه کردن متغیرهای صحیح بدون عالمت 46بیتی WCETو deadlineبه ساختار td_schedدر فایل زمانبندی اصلی FreeBSDکه در باال تعریف شد. )3ثبت فراخوانی سیستمی روش رمزنگاری ROT13یکی از ساده ترین روشهای رمزنگاری است که برای ابهامنگاری در صفحات وب به کار میرود. یک ماژول قابل بارگذاری در هسته 9ایجاد کنید و با استفاده از آن یک فراخوانی سیستمی 3را ثبت کنید که یک رشته را گرفته و معادل رمزشده آن با روش ROT13را برگرداند .سپس یک KLDدیگر ایجاد کنید به برعکس یک رشته رمز )Kernel Loadable Module (KLD System Call پاییز 19-19 دانشکده کامپیوتردانشگاه صنعتی شریف 2 3 دکتر جلیلی شده را گرفته و رشته اصلی را بازگرداند .سپس یک برنامه سطح کاربر پیادهسازی کرده و صحت KLDخود را بررسی کنید. نکات تحویل پروژه )9برای این قسمت از پروژه یک مستند از نصب سیستم گروه خود ارائه دهید .در ادامه انتظار میرود که سوال مربوط به KLDرا نیز در مستند جواب دهید .فایلهای تغییر یافته در قسمت 9و 3را نیز ضمیمه کنید. )9پوشهی فشرده شدهی فایلهای خود را در ایمیلی با عنوان #std1Num_#std2Num_P1به آدرس operatingsystem911@gmail.comبفرستید stdnNum .شماره دانشجویی افراد گروه است. )3زمان تحویل پروژهی اول 92 ،آبان 19میباشد .تحویل این تمرین به صورت کتبی است پس تالش کنید تا مستندهای کاملی ارائه کنید. )6گزارشهای مشابه نمره ی منفی دریافت خواهند کرد. موفق باشید پاییز 19-19 دانشکده کامپیوتردانشگاه صنعتی شریف دکتر جلیلی
© Copyright 2025 Paperzz