گروه کاربران لینوکس دانشگاه شهید مدنی آذربایجان

لاگ دانشگاه آذربایجان :: Azarbaijan University Linux User Group

گروه کاربران لینوکس دانشگاه شهید مدنی آذربایجان

لاگ دانشگاه آذربایجان :: Azarbaijan University Linux User Group

سرویس ‏SSH

 

فعالسازی سرویس SSH  برای دسترسی امن

برای اجرای کدها و دستورات مدیریتی از راه دور مورد استفاده قرار می گیرد. که در این ارتباط از یک کلید برای امن سازی و کدگذاری ارتباط استفاده می شود. برای آگاهی از وضیعت سرویس دستور زیر را در خط فرمان وارد می کنیم :

#service sshd status

در صورت غیرفعال بودن دستور زیر را وارد می کنیم :

#service sshd start

بعد از فعالسازی این سرویس می توانیم از راه دور ارتباط راه دور و امنی با سیستم عامل برقرار کنیم.

برای برقراری این ارتباط از پورت 23 استفاده می کنیم.

برای تغییر تنظیمات پیش فرض فایل موجود در مسیر زیر را تغییر می دهیم :

\etc\sshd\sshd_conf                                                                                            

دستور dd در خط فرمان

dd

این دستور برای نوشتن یه فایل روی یه دستگاه(device) به کار میرود. منظور از دستگاه همان هارددیسک و فلش هست.

بهترین کار این دستور این است که میتوانیم فایل های image لینوکس را روی فلش رایت کنیم. این کار با دستور زیر قابل انجام است:

<dd if=<imagefile> of=<device

که به جای imagefile  مسیر فایل image  و به جای device دستگاه رو قرار بدین.

برای دیدن دستگاه مورد نظر به پوشه ی /dev مراجعه میکنیم. معمولا  پسونداول انها sd  میباشد.و بعد از آن  هم یه حرف که به ترتیب افزایش پیدا میکندبرای  مثال فرض کنید دو  هارد دارید و یک فلش هم وصل کرده اید. هارد اول : /dev/sda هارد دوم : /dev/sdb  و فلش :/dev/sdc به این ترتیب نام گذاری شده اند که برای رایت کردن روی فلش باید همین مسیر آخر را به عنوان دستگاه بدهیم . در مسیر فوق  یک سری دستگاه هستند که شبیه هارد هستند ولی پسوند شماره هم دارند. این شماره ها پارتیشن های هارد هستند.

 دستور  فوق میتواند برای بک آپ گیری هم استفاده بشود. مثلا اگه به جای imagefile مسیر یک هارد را بدهیم و به جای device مسیر یه فایل را ، اکنون حالا هارد را بک آپ گرفته ایم. برای بازگشت به حالت اولیه کافی است جای هارد و فایل را با هم عوض کنیم

 

طریقه ی نصب Mac-OS بر روی VMware در Windose

VMware Workstationنام نرم افزاری مشهور در زمینه ساخت هارد دیسک های مجازی و سیستم عامل های مجازی می باشد. به کمک این برنامه و محیط موجود در آن کاربر قادر به نصل هر نوع سیستم عاملی در آن می باشد. همچنین شما قادر خواهید بود تا با این نرم افزار علاوه بر استفاده همزمان از چند سیستم عامل از ویژگی مدیریت وظایف موجود در برنامه نیز برای سوئیچ نمودن مابین سیستم عامل های موجود در محیط مجازی استفاده نمود. استفاده از چنین محیط های مجازی دارای استفاده های مفید و فراوانی می باشد ، به عنوان مثال کاربری قصد دارد تا نرم افزاری را که به آن از نظر آلوده بودن به ویروس مشکوک است را استفاده نماید. چنین محیط مجازی برای این کار بسیار مناسب اند زیرا هیچ ارتبطی میان هارد اصلی سیستم و محیط مجازی نیست.


امکان نصب Mac-OSدر VMware های تحت سیستم عامل Mac امکان پذیر است اما امکان نصب Mac در Vmware تحت ویندوز به صورت پیش فرض امکان پذیر نیشت ولی با اعمال یکسری تغیران می توان آن را نصب کرد.






همانطور که در شکل بالا مشاهده می کنید امکان نصب Mac در VMware از قبل تعریف نشده است. برای نصب Mac ابتدا باید از اینترنت یک فایل Patch مانند به اسم unlock-all-v1.2 را دانلود کرده و نصب کنیم.



ابن فایل را پس از دانلود نصب می کنیم و در هنگام نصب پنجره ی cmd باز می شود .




پس از این که این برنامه به درستی نصب شد در آخر پیغام Starting VMware services … را مشاهده می کنیم.


پس از نصب اگر به VMware برگردیم می بینیم گزینه ی Apple Mac OS X به گزینه ها اضافه شده است.



پس از آن با انتخاب گزینه ی Apple Mac OS X و زدن کلید Next شروع به نصب Mac رد VMware می کنیم.



برای نصب هر سیستم عاملی در VMware آن را از روی CD یا هارد نصب می کنیم.  برای نصب Mac  ابتدا فایل نصبی آن را از اینترنت دانلود می کنیم اما یان فایل در ویندوز Bootable  نیست زیرا پسوند فایل های اجرایی در ویندوز .exe است اما در Mac پسوند فایل های اجرایی  .app است. برای حل این مشکل روی آیکن آن راست کلیک می کنیم و گزینه ی Show Package Contents را می زنیم سپس فولدر را باز کرده و SharedSupport را می زنیم و  InstallESD.dmg را روی Desktop یا یکی از درایو ها کپی می کنیم.برای نصب Mac در VMware در سمت رات گزینه ی CD/DVD را انتخاب می کنیم و در سمت راست تیک گزینه ی Use ios image file را انتخاب کرده و در زیر آن آدرس فایل InstallESD.dmg را کپی کردیم وارد می کنیم . سپس کلید Next را می زنیم.



پس از آن مراحل نصب به صورت زیر می باشد.




در انجا زبان مورد نظر خو را انتخاب می کنیم و Next  را می زنیم.



پس از زدن Next پنجره ی زیرباز می شود که در اینجا ما باید پارتیشن بندی انجام دهیم و سربرگ Utilites را باز کرده



در اینجا ما زا سربرگ Utilites گزینه ی Disk utility… را انخاب می کنیم .



با انتخاب این گزینه پنجره ی زیر باز می شود و در سمت چپ گزینه ی 42.95 GB virtual.. را انتخاب می کنیم.



با انتخاب این گزینه پنجره ی زیر باز می شود و ما گزینه ی اول را انتخاب می کنیم زیرا Mac OS  ما ورژن 10.9  می باشد که از ورژن 10.4 بالاتر است.



سپس اطلاعات Name و size را وارد کرده و گزینه ی Apply را می زنیم.



با زدن گزینه ی Apply پنجره ی زیر با می شود و گزینه ی partition را انتخاب می کنیم.



در اینجا پارتیشن ایجاد شده و با زدن گزینه ی Install سیستم عامل Mac شروع به نصب می کند.


در مرحله ی بعد با زدن گزینه ی Agree موافقت خود را با Lisence نرم افزار اعلام می کنیم.





زبان مورد نظر را انتخاب می کنیم.



کشور را همان US انتخاب می کنیم.



در اینجا ما فایلی برای جابه جایی نداریم بنابر این گزینه ی آخر را انتخاب می کنیم و continue را می زنیم.



Don’t sign in  را انتخاب می کنیم.



در اینجا Name ، Account  ،  password را وارد می کنیم.



گزینه ی Don’t registr را انتخاب می کنیم.






در اینجا میبینیم سیستم عامل Mac نصب شد اما نمی تواند به درستی درایور ها را شناسایی کند و همانطور که در تصویر پیداست گرافیک آن نیز درست نصب نشده است برای رفع این مشکل می توانیم نرم افزار VMware tools  را از سایت Vmware دانلود کرده و نصب کنید.این نرم افزار حتی قابلیت کپی کردن فایل از روی سیتم عامل Host  به Gest  و برعکس را به ما می دهد که در حالت عادی امکان پذیر نیست.


در اینجا نرم افزار VMware tools را نصب می کنیم.


پس از نصب می بینیم که تصویر پهن تر شده ، در اینجا گرافیک نرم افزار نیز به درستی شناسایی شده است.



کار نصب Mac بر روی VMware در محیط Windose تمام شده است.



پگاه حداد

نگین علیزاده - 882381229





پوسته پرکاربرد لینوکس

پوسته فرمان چیست؟

 

همانطور که رابط‌های گرافیکی کاربر امکان انجام امور روزمره را بر روی سیستم فراهم می‌کنند، پوسته فرمان نیز نوعی رابط کاربری ولی به صورت متنی است. تمامی اموری را که به صورت گرافیکی و با استفاده از رابط‌های گرافیکی کاربر قابل انجام هستند را می‌توانید توسط پوسته فرمان نیز انجام دهید.

برنامه های شبیه ساز ترمینال و ترمینال های مجازی  خود برنامه های دیگری موسوم به مفسرهای خط فرمان را اجرا می کنند.در حقیقت این مفسرها هستند که دستورات ورودی توسط کاربر را تفسیر کرده و برای اجرا به سیستم منتقل می کند.و راهی برای اجرا کردن برنامه ها،کار کردن با فایل ها،کامپایل کردن برنامه ها و مدیریت را ایجاد می کند.

مفسر فرمانی که به صورت پیش گزیده در گنو/لینوکس استفاده می شود،Bash نام دارد.نام آن گرفته از Bourne Again Shell  است.

 استفاده از پوسته فرمان چه مزایایی دارد؟

 

استفاده از پوسته فرمان دارای مزایای بسیاری است که برخی از آنها را در زیر بر می‌شماریم:

  • سرعت در اجرای کارها مخصوصا در کارهای تکراری.
  • قابلیت انعطاف بسیار زیاد.
  • امکان ترکیب چندین دستور برای انجام همزمان چند کار.
  • توانایی در خودکار سازی وظایف تکراری.
  • راحتی در انجام برخی از کارها.

در زیر به دو نمونه پرسش که با استفاده از دستورات Bash پاسخ داده می شود می پردازیم:


چطور می توانیم جدیدترین و قدیمی ترین فایل در یک دایرکتوری را پیدا کنیم؟


راه حل اغوا کننده،استفاده از ls  برای برونداد نام فایل های موجود، و اخذ اولین نتیجه می باشد.به طور کلی رویکرد ls نمی تواند مناسب باشد و به خاطر احتمال برخورد با کاراکترهای اختیاری(شامل سطر جدید) موجود در نام فایل ها،هرگز نباید در اسکریپت ها به کار برود. بنابراین به شیوه های دیگری برای سنجش فوق داده های (metadata) فایل، نیاز داریم.

Bash و همه نگارش های متنوع ksh می توانند زمانهای ویرایش(mtime) را با استفاده از عملگرهای -nt  و -ot در عبارت شرطی دستور مرکب،مقایسه کنند:  

# bash/ksh

unset –v latest

for file in "$dir"/*;do    

[[ $file –nt $latest ]] && latest =$file

done

یا برای یافتن قدیمی ترین:

# bash/ksh

unset –v oldest

for file in "$dir"/*;do    

[[ $file –nt $ oldest ]] && oldest =$file

done

 

به خاطر داشته باشید که mtime در مورد دایرکتوری ها،مربوط به آن شاخه ای است، که آخرین افزودن،حذف یا تغییر نام فایل در آن انجام شده است.

چطور می توانیم سطر شماره n از یک فایل را چاپ کنیم؟

یک روش این است که جهت چاپ سطر $n از فرمان"p" استفاده کنیم و به دنبال آن "q" را برای خروج از اسکریپت استفاده کنیم :


Sed –n "$n{p;q; }" "$file"


راهکار دیگر، به کاربردن AWKاست:

 

awk" NR= =$n{print;exit}"file

 

در Bash نگارش 4،با استفاده از دستور داخلی mapfile یک راهکار فشرده مختص-bash می تواند حاصل شود. با همراه کردن شناسه –n این فرمان،بیش از یک سطر می تواند در آرایهMAPFILE خوانده شود:


Mapfile –ts $((n-1)) –n 1<" $file"

echo "${MAPFILE[0]}"

 



 احدی

مروری بر کنفرانس اندرو اس تنن باوم جهت آشنایی با MINIX3


مینیکس (Minix3) پروژه تحقیقاتی/تجاری است که توسط اندرو اس تنن باوم در دانشگاه UV هلند در حال مطالعه است. در این مطلب که چکیده ای از کنفرانس پروفسور تنن باوم در رابطه با این سیستم عامل است، به آشنایی بیشتر با آن می پردازیم.

 

 


 

تاریخچه Minix3


1975 : انتشار Unix v6 توسط Bell Larbs
1977 : انتشار کتاب تشریح Unix v6 توسط John Lions
1979 : Unix v7 انتشار یافت ولی کسی حق آموزش آن را نداشت چراکه محصول حفاظت شده ای بود وسازندگان آن نمی خواستند راز سیستم عامل جدید خود را افشا کنند.
1984 : Tanenbaum یک Clone از Unix را به نام Minix  نوشت.
1987 : Minix با اهداف آموزشی رها شد.
1997 : Minix2  همراه با کتاب آن منشتر شد.
2004 : تحقیقات بر روی سیستم عامل‌های قابل اعتماد شروع شد.
2006 : نسخه‌ی سوم کتاب Minix منتشر شد.
2008 : Tanenbaum به دلیل فعالیت‌های خود در این زمینه از اتحادیه اروپا جایزه ای معادل 2.5 میلیون یورو دریافت کرد.
 2009 : اتحادیه اروپا بحثی را با موضوع "قوانین مسئولیت" (Liability Lows) برای نرم افزارها مطرح کرد، در واقع نوع خاصی از استاندارد سازی برای نرم افزار ها بود که موفقیت آمیز نبود.

2013: کار روی Minix ادامه دارد و نسخه جدید آن به تازگی منتشر شده است.


نرم افزارهای قابل اعتماد


هکرها علاقه مند هستند که برنامه نویس‌ها اینگونه بیاندیشند :
"اگر خدا می‌خواست که برنامه‌ای قابل اعتماد باشد، دگمه‌ی Reset را خلق نمی‌کرد."
همچنین مادربزرگ‌ها معتقدند :
"چرا کامپیوترها و نرم افزارها نمی تونن شبیه TV باشن. روشنش کن و برای سالها استفاده کن"


باد کردن نرم‌افزار
این بزرگترین و اصلی‌ترین دلیل غیرقابل اعتماد شدن نرم‌افزارها است. ویندوز و لینوکس دیوانه وار در حال گسترش هستند.
"سیستم عامل‌ها نیاز به بازنگری دارند"
تحقیقات لازم برای پیاده سازی سیستم‌های عامل باید از نو شکل بگیرد، چراکه سخت افزارهای نامحدود پدید آمدند با این حال بالا آمدن سیستم‌ها بیشتر از قبل طول می‌کشد که یک تناقض بزرگ است.
نرم افزارهای امروزی ویژگی‌های به درد نخور زیادی دارند و کند، بادکرده و پر ایراد هستند.

برای اینکه کامپیوترها مانند TVها شوند، باید ویژگی های زیر را به دست آورند:

  • کوچک
  • ساده
  • امن
  • Modular
  • قابل اعتماد
  • خود ترمیم گر (Self-healing)


طراحی هوشمندانه
میکروکرنل‌ها از حدود 6000 loc تشکیل می‌شوند در حالی که لینوکس بیش از 6 Million loc است. یکی از موارد مهم تعداد Bug در هر 1000 loc است. در نرم افزارهای صنعتی که همواره تحت کنترل هستند این عدد بین 5 تا 10 و در سیستم عامل FreeBSD ، 3 Bug در هر loc است.
Minix3، 18 bugs در هسته خود دارد که این عدد برای لینوکس 18000 است. همچنین درایورهای Linux تعداد bug بیشتری دارند چرا که 70% کدها، کد درایورها تشکیل می دهد.


معماری Minix3

Minix3 از یک microkernel تشکیل شده است که کارهای Basic را در سیستم انجام می‌دهد. Shell، Disk و ... بعنوان برنامه های سطح کاربر عمل می‌کنند.



فراخوانی هسته ای برای سرویس دهنده‌ها و درایورها


این فراخوانی ها با فراخوانی های سیستمی POSIX کاملا فرق دارد و فراخوان های درون هسته ای است. یک پردازش کاربر اگر بخواهد از یک I/O چیزی را بخواهد باید توسط دستور زیر این درخواست را از هسته انجام دهد و اگر هسته دارای مجوزهای لازم باشد، هسته این کار را برای او انجام خواهد داد.

•    SYS_DEVIO: read or write an I/O port


و دیگر مثالهایی از این قبیل :

•    SYS_IRQCTL: set interrupt policy for an IRQ
•    SYS_VIRCOPY: copy data to user address space
و حدودن 34 مثال دیگر از این قبیل.

قوانین کنترل مجوز دسترسی ها
Driverها و سرویس دهنده ها بعنوان پردازش های سطح کاربر اجرا می‌شوند.
حقوق دسترسی هر کسی بصورت دقیق تحت کنترل قرار دارد.


•    هر کسی حق اجرای دستورات خاصی را دارد.

•    تقسیم بندی سازمانی شکل می گیرد تا درایورها و سرویس دهنده ها در حلقه های نامتناهی گیر نیافتند.


درایورهای حالت کاربر


هر درایور بعنوان یک پردازش سطح کاربر جداگانه عمل می‌کند.
امتیازات فراتر از سطح کاربر ندارند.
توسط MMU (Memory Management Unit) حفاظت می شوند.
حق دسترسی به درگاه های I/O را ندارند.
برای کپی کردن فضاهای آدرس به درخواست از هسته نیازمندند.
"در کل قدرت چندانی ندارند"


سرویس دهنده های حالت کاربر

File Server
Process Manger
Virtual Memory Server
Date Store
Information Server
Network Server
Reincarnation Server

File Server


حالت اول : اطلاعات بر روی Cache، FS ذخیره شده اند. برنامه کاربردی از کتابخوانه سیستمی، read را فرامی‌خواند. دستور read پیغامی را به FS میفرستد که میخواهم فلان فایل را بخوانم. اگر خوش شانس باشیم، FS این فایل را بر روی خود دارد و فقط نیاز دارد که با فراخوانی SYS_TASK از هسته، بخواهد که عملیات کپی را انجام دهد. این فعالیت تقریبا 500nSec طول می کشد.

                                                                                                                                                                    
حالت دوم : در این حالت اطلاعات بر روی cache، FS قرار ندارد و باید از روی هارد دیسک خوانده شود. کاربر از طریق دستور read پیغام را به FS ارسال میکند،  FS از دیسک میخواهد که بلوک فایل مورد نظر را پیدا کند. Disk برای یافتن فایل مورد نظر از SYS میخواهد که عملیات I/O مورد نظر را انجام دهد. پس از یافتن، آن را به user تحویل می‌دهد.

Process Manager
شامل منطق لازم برای ایجاد و از بین بردن پردازه ها
مدیریت سیگنال ها


Virtual Memory Manager


به هسته می‌گوید در اینجا Memory Map برای فلان پردازش وجود دارد و هسته بدون قید و شرط آن را قبول می‌کند. در واقع VMM منطق لازم را فراهم می‌کند و مکانیزم بر عهده هسته است.
"در واقع تمامی هوشمندی سیستم و تمامی الگوریتم‌ها در بخش کاربر قرار دارند"


Data Store

یک Name Server کوچک محلی

قابل استفاده برای Recoverable Drivers
برای مثال یک درایور صوتی از کار میافتد، بعد از بازسازی و برگشت به حالت اول می تواند از طریق این Data Store، Volume  خود در حالت قبل از خرابی را مورد استفاده قرار دهد.


Information Server


برای اجرای dumpهای Memory  به کار می رود.

Network Server
پشته‌ی TCP/IP

Reincarnation Server
 والد همه‌ی درایورها و سرویس دهنده‌ها
وقتی یک درایور یا سرور از بین می‌رود، RS آن را جمع آوری می‌کند. سپس برای زنده کردن درایور یا سرور مورد نظر به جدول موجود در خود مراجعه می‌کند. RS همچنین بصورت مداوم درایورها و سرویس دهنده ها را Ping می‌کند تا از زنده بودن آن‌ها آگاه شود.
کاربر از FS  درخواست یک فایل را می‌کند، FS از Disk Drive می‌خواهد که بلوک فایل را به آن برگرداند که Disk Drive با Crash مواجه می‌شود. RS این اتفاق را تشخیص می‌دهد و کد مربوط به آن درایو را که در حافظه ذخیره کرده است، واکشی می‌کند و FS درخواست خود را به درایور جدید ارسال شده می فرستد. این سیستم خود ترمیم‌گر است.


برخی ویژگی‌های minix3


"بازگردانی درایورهای تخریب شده"
Ethernet: از نو اجرا میشود، فقط ممکن است برخی Packetها از دست بروند که معمول است.
Printer: اگر در میان عملیات باشد، راهی بجز پرینت دوباره وجود ندارد.
Audio: قطعه صوتی را از نو پخش میکند.
و ...


"در نظر بگیرید که وقوع این اتفاقها بهتر از تخریب (Crash) کل سیستم عامل است."


"قابلیت اعتماد و امنیت هسته"

  • تعداد LOC کمتر به معنی تعداد  bug کمتر است.
  • هسته کوچکتر بمعنی TCB(Trusted Computing Base) پایین‌تر است.
  • هیچ کد بیرونی (مانند کد درایورها) وارد هسته نمیشود. یکی از عوامل تخریب هسته، کد درایورهایی است که نوشته میشود و آن را تخریب می‌کند.
  • ساختار static اطلاعات در سیستم، در واقع جداول اندازه مشخص دارند و تعداد پردازش-هایی که میتوانید داشته باشید ثابت است. (256 پردازش( => میزانی RAM بخاطر بزرگ بودن جداول هدر می‌شود.
  • انتقال bugها به حالت کاربر، تعداد آن‌ها را کاهش نمی‌دهد بلکه باعث می‌شود که قدرت آنها کاهش پیدا کند.
  • "قابلیت اعتماد و امنیت ارتباطات بین پردازه‌ای"
  • ارتباطات از این دست با پیغام‌هایی با طول ثابت انجام می‌شوند.
  • پیغام‌ها ارسال می‌شوند، در صورتی که تحویل داده نشوند به سیستم میعادگاه (Rendezvous System) تحویل داده می‌شوند که نتیجتا هیچ پیغامی از بین نمی‌رود.
  • مثلا در نظر بگیرید که client پیغامی را به server ارسال می‌کند، server تلاش می‌کند که پاسخ دهد ولی client مرده است. Server توانایی ارسال را ندارد و هنگ می‌کند. این سیستم باعث ارسال غیرهمزمان پیغام شده و این مشکل را حل می‌کند.


"قابلیت اعتماد و امنیت درایورها"

  • درایورها کدهای غیرقابل اعتماد هستند وشدیدا ایزوله می‌شوند.
  • در این حالت bugها و ویروس‌ها نمی‌توانند از ماژولی به ماژول دیگر به سادگی انتقال یابند.
  • نمیتوانند به ساختار هسته دست پیدا کنند.
  • “Bad Pointer” ها فقط می‌توانند یک درایور را از بین ببرند که توسط RS ترمیم خواهد شد.
  • درایورهایی که درگیر حلقه‌های نامحدود شده‌اند، شناسایی شده و از نو راه‌اندازی می‌شوند.
  • درایورها در حالت Super user  اجرا نمی‌شوند.


“Memory Grant Table”


فایل سرور یا برخی پردازش‌های دیگر نیاز دارند که از طریق پردازش‎ها به حافظه دست پیدا کنند. وقتی از فایل سرور می‌خواهیم که بلوکی از حافظه را بخواند، باید آن را بر روی فضای آدرس ما بنویسد ولی نمی‌تواند به فضای آدرس ما دسترسی داشته باشد چراکه فقط یک پردازش سطح کاربر دیگر است.
پس چکار باید کرد؟
هر پردازشی که می‌خواهد کس دیگر در فضای آدرس آن چیزی بنویسد، یک Memory Grant Table می‌سازد. یک فراخوانی هسته‌ای می‌سازد و می‌گوید که این Memory Grant Table من است و این مقدار ورودی را در خود جای داده است و آدرس شروع خود را ارائه می‌دهد. در این Memory Grant Table مشخص می‌کند که Disk Driver که شماره پردازش آن برای مثال 9 است، از بایت 1400 تا بایت  1499 قابلیت نوشتن در Entry ایجاد شده را دارد.
زمانی که Disk Driver (یا هر درایور دیگری) می‌خواهد بر روی Memory Grant Table، فایل سرور چیزی بنویسد یک فراخوانی هسته‌ای صادر می‌کند، هسته این جدول را بررسی می‌کند تا ببیند که آیا وجود دارد یا نه و آیا Disk Driver حق نوشتن بر آن قسمت دارد یا نه.


"Fault Injection"


800 000 injection بر روی درایورهای minix3 انجام شده است. در واقع خودمان تلاش می‌کنیم در برنامه bug ایجاد کنیم تا عکس العمل سیستم را نسبت به آن ببینیم. این برنامه‌ها junk تولید نمی‌کنند بلکه سیستم عامل را آنالیز می‌کنند و معماری آن را بدست می‌آورند سپس خطاهایی معنایی در آن ایجاد می‌کند.
بعنوان مثال در داخل حلقه‌ی For، جای ≥  را با < عوض می‌کند و یا i را به j تبدیل می‌کند. هربار 100 injection انجام می‌شد و 1 ثانیه در انتظار پاسخ می‌ماند (یعنی 100 قطعه کد توسط Fault Injection تغییر می‌کند.) تا ببیند Driver از کار افتاده است یا نه که اگر نیافتاده باشد 100 injection دیگر برای آن تولید می‌کند. بعد از این حملات 18038 driver از کار افتادند ولی سیستم عامل به حیات خود ادامه داد.


"نرم‌افزارهای موجود برای minix3"


Screen : x11,Ede
Shells: bash, pdksh, zsh
Languages: C, C++, Python, Perl, PHP
Editor: emacs, vim, vile, nedit & …
Photos: imagemagic, JPEG package, XV
Utilities: GNU, BSD utilities, & …
Web: Apache, Dillo, lym & …
Mail: Pine, Pop Tart, Exim, Sirn
Database: postgres, SQLlit, MySQLclient
Other: Qemu, Mplayer, Netback, subversion
And …


موضع Minix3

  • نشان دادن اینکه سیستم‌های Multi Server می‌توانن قابل اعتماد باشند.
  • نمایش اینکه درایورها به سطح کاربر تعلق دارند.
  • تولید برنامه‌های قابل اعتماد با Fault Tolerant  بالا
  • سیستم‌هایی با سخت‌افزار کوچکتر


دلایل انتخاب Raccoon بعنوان لوگو

  • کوچک
  • بامزه
  • باهوش
  • چابک
  • Bugها را می خورد!


سعید چوبانی 891381210

زهرا عباسی 891381230