مقدمه
سیستم عامل یونیکس یک سیستم عامل عمومی است.
این سیستم عامل به طور گسترده در کاربردهای backend، برروی سرورها، در workstationهای قوی و … مورد استفاده قرار میگیرد. این سیستم عامل یکی از بهترین طراحیهای سیستم عامل در زمان خود میباشد.
خصوصیات سیستم عامل Unix:
- طراحی و عملکرد ساده.
- قابلیت انتقال.
- پردازش پس زمینه(کاربردهای Database و …).
- سیستم سلسله مراتبی.
- قابلیت چند کاربره.
- قابلیت انجام همزمان چندین عملیات(چند وظیفهای).
- امنیت بالا.
- سیستم عامل Interactive(هم کنشی).
- امکانات ارتباطی.
- سهولت استفاده.
نرم افزارهای هوشمند:
- ابزار دستکاری متن: cut، grep، tr و ….
- فیلترهای پیشرفته: sed، awk، و …..
- ابزار آرایش اسناد: troff، nroff، و …
- زبانهای برنامه نویسی مختلف: C، C++، Java و ….
- محاسبهگرهای Interactive: bc، dc و ….
- ابزارهای پیشرفته: lex، yacc.
تاریخچه
شروع یونیکس با پروژه MULTICS بود که اختصار سیستم محاسبه و عملکرد تسهیم شده میباشد.
پروژه MULTICS در اواسط دهه ۱۹۶۰ به عنوان پروژه مشترک توسط General Electeric، MIT و Bell Laboratories شروع شد. در سال ۱۹۶۹ ،Bell Laboratories از پروژه خارج شد.
یکی از اعضای آزمایشگاه بل“Ken Thompson” بود: او اصول پروژه MULTICS را قبول داشت ولی احساس میکرد که پیچیده است و میتواند با گونه های ساده تر نیز انجام شود.
در سال ۱۹۶۹ او اولین نسخه یونیکس را نوشت که UNIC نامیده شد. نام UNICS برگرفته از “UNI-PLEXED” Operating System است که بعدا UNIX نامیده شد.
خصایص و توانمندیهای یونیکس:
- توانایی حمل (transportability) : با اندکی تغییر برروی کدهای سیستم یونیکسمی توان آن را به راحتی بر روی انواع سخت افزارها نصب کرد .
- توانایی چند وظیفگی (multitasking)وچنداستفادکنندگی (multiuser) : یونیکس اجرای چند کار در یک زمان را مهیا می سازد و همچنین استفاده همزمان چند استفادکننده را از ترمینالهای مختلف فراهم میکند .
- خدمات ارتباطی و اطلاع رسانی : خدمات ارسال پیام بلادرنگ را برای یک استفادکننده ، مکالمههای ترمینالی ، ارسال پستالکترونیک ، ارسال اعلامیه برای همه کاربران و… از تواناییهای یونیکس است .
- مدیریت دسترسی به سیستم : قابلیت حفاظت دسترسی به سیستم و منابع آن و تأمین اهداف زیر از توانایی های یونیکس است :
- تعیین ترمینالهای قابل دسترسی عمومی و ممتاز بین کلیه ترمینالها
- معرفی استفادکنندگان عادی و ممتاز در گروههای مختلف جهت انجام عملیات حفاظتی
- تعیین محدودههای عملیاتی و اطلاعاتی هر کاربر
- قابلیت عملیات در شرایط تک استفادکنندگی و چند استفادکنندگی
- قابلیت تغییر شخصیت یک کاربر در حین استفاده با رعایت ضوابط امنیتی
- تغییرپذیری محیط استفاده : برای دست یافتن کاربر به محیط دلخواه ، در یونیکس میتوان کلیترین سطح یعنی مفسر فرمان تا جزییترین سطح یعنی کلیدهای کنترلی ترمینال را به دلخواه تغییر داد و تنظیم کرد .
- خدمات شبکهای : یونیکس کلیه پروتکلهای شبکهای ارتباطی استاندارد را جهت برپاسازی شبکههای کامپیوتری و راه دور در جهان ، در بردارد.
- امکانات مدیریت و مهندسی نرمافزار : وجود ابزارهای قدرتمند برای مدیریت پروژههای نرم افزاری و مهندسی نرمافزار از دیگر ارکان یونیکس است .
معرفی سیستم عامل Unix
ساختار کلی
کوچک زیباست . این اساس یونیکس است. برای درک مفهوم این جمله باید سیستم عاملهای نسل سوم را ( که یونیکس نیز از آنهاست) به یاد آورید . سیستمهای دایناسورواری بودند که برای انجام همه کار طراحی شده بودند . سیستم عامل ماشینهای IBM 360 نمونه خوبی در این مقوله است. سیستم عاملی که توان شبیه سازی تقریبا تمامی سیستمهای عرضه شده تا قبل از خود را داشت و فهرست اشکالات آن یک دفتر به قطر دفتر راهنمای تلفن را تشکیل میداد!
ساختارهای اطلاعاتی غول آسا سیستمهای ذخیرهسازی پرونده بسیار پیچیده زبانهای برنامه نویسی چون پی ال وان و کوبول که کاربران را تنها در یک سو جهت میداد و در کل دیکتارتوری IBM که هر استفاده کنندهای را در شبکهای غولآسا اسیر میکرد. تیم های برنامه نوسی IBM که چون خدایان غیر قابل دسترسی بودند و همه جا با احترام درباره آنها صحبت میشد. چیزی که هیچ کس حتی جرات فکر کردن درباره آن را نمیکرد اصلاح در کاری بود که IBM و دیگر پیروان آن عرضه میکردند. دورانی که یک برنامه نویس حرفه ای سیستم، مدت زمان درازی را فقط برای یادگیری سیستم عامل صرف میکرد و با احساس شرم اشکالات سیستم عامل را اگر از کم هوشی خود نمیدانست به IBM اطلاع میداد. چه بسیار برنامه های بزرگ تجاری که دوباره نویسی میشدند، زیرا سیستم عامل امکان اتصال برنامههای دیگر را به آنها نمیداد.
به هر حال یونیکس وارد بازار شد. سیستم عاملی که همه چیز در آن به هم شبیه بود، نحوه چاپ روی چاپگر نوشتن روی صفحه پایانی و یا ذخیره اطلاعات در پرونده ها همه و همه به یک صورت انجام میپذیرفت. و از همه مهم تر لیست برنامه سیستم عامل را در هر کتابخانه ای میشد پیدا کرد. برنامه های یونیکس به راحتی میتوانند ورودی و خروجی خود را به برنامه های دیگر بدهند و بدین صورت هیچگاه نیازی به برنامه های غول آسا پیدا نمیشود. هر سیستمی هر چقدر هم پیچیده باشد میتواند از مجموعه از برنامه های کوچک به وجود آید که ورودی و خروجی خود را به یکدیگر متصل نموده اند.
برای به دست آوردن دیدی کلی از یونیکس، شناخت عوامل زیر ضروری است:
۱- پیکر بندی سیستم عامل: هسته مرکزی سیستم عامل یونیکس جز کوچکی از آن را تشکیل میدهد ولی این جز از اهمیت اساسی برخوردار است که رابط کاربر و سیستم عامل میباشد و در شکل ۱ مشهود است.
این ساختار کلی شبیه به ساختار PC-DOS است. Kernal یا هسته مرکزی در آنجا از دو پرونده IBMBIO.sys و IBMDOS.sys تشکیل میشود و پیوست پروندهای به نام command.com است. تفاوت در ویژگی های هسته مرکزی و قدرت بسیار بیشتر پوسته های یونیکس است. اولا هر سیستم یونیکس دارای چند پوسته است که کاربر میتواند هر کدام را که بخواهد انتخاب کند. (پوسته استاندارد، پوسته محدود، پوسته تصویری، پوستهC، پوسته UUCP) هر کدام از این پوسته ها قابلیت های متفاوتی دارند.
یونیکس ار روش انتقال به دورن، و انتقال به بیرون نیز استفاده می کند. در این روش اگر حجم پرونده در حال اجرا بیش از ظرفیت حافظه ماشین باشد . مقداری از محتویات حافظه به دیسک سخت منتقل میشود و حافظه را در اختیار پرونده درحال اجرا قرار میدهد . پس از اتمام پرونده یا پایان نوبت آن محتویات منتقل شده دوباره به حافظه باز میگردند. این روش به یونیکس اجازه میدهد پرونده هایی بزرگتر از حجم حافظه اصلی سیستم را در آن واحد اجرارکند.
یونیکس برای برقراری ارتباط بین عملیات مختلف سیستم روشهای بسیار جالبی را در اختیار کاربران قرار می دهد. استفاده از حافظه به اشتراک گذارده شده، خط لوله ها کنترل کننده های خط و انتقال پیام از روش هایی هستند که دو یا چند برنامه درحال اجرا می توانند با هم ارتباط برقرار کنند.
ساختار
Kernel: در واقع قلب سیستم عامل بوده و با سخت افزار و بیشتر واحدهای وظیفه در ارتباط است.
Shell: بخشی است که در واقع خواسته کاربر را پردازش میکند. وقتیکه کاربر در ترمینال دستوری را مینویسد، این واحد دستور را تفسیر کرده و برنامه مورد نیاز را فراخوانی مینماید.قلب سیستم عامل بوده و با سخت افزار و بیشتر واحدهای وظیفه در ارتباط است.
Command and Utilities: دستورات و برنامه های مختلفی هستند که کاربر در کارهای روزانه میتواند از آنها استفاده نماید: cp، mv، cat و grep.
Files and Directories: تمام داده های در یونیکس درون فایلها و درون دایرکتوریها سازماندهی شده اند. این دایرکتوریها به صورت یک ساختار درختی سازماندهی شده اند که file system نامیده میشود.
مشخصات
- چند کاربره: قابلیت چند کاربره بودن یونیکس امکان این را فراهم میسازد که چند نفر هم زمان از یک کامپیوتر برای انجام کارهایشان استفاده کنند.
- چند وظیفه ای: این قابلیت امکان انجام چند عملیات به صورت همزمان را فراهم میسازد. در واقع یک کاربر میتواند چند عملیات را همزمان انجام دهد.
- سهولت برنامه نویسی: سیستم عامل یونیکس فوق العاده قابلیت برنامه ریزی دارد، واحد shell در یونیکس تمام اجزا لازم نظیر ساختارهای کنترلی و شرطی را داد.
- امنیت: یونیکس امکان اشتراک داده را فراهم میسازد. هر کاربر باید یک نام و کلمه عبور داشته باشد و دسترسی به داده دیگر کاربران بدون اجازه آنها امکانپذیر نخواهد بود.
- قابلیت حمل: یونیکس قابلیت حمل دارد زیرا در زبان سطح بالا نوشته شده و در نتیجه میتواند در کامپیوترهای مختلف اجرا شود.
نرم افزار سیستم یونیکس
استفادکنندگان یونیکس با کمک برنامه واسط Shell که مرتباً با کرنل در تماس است ، میتوانند نیاز خود را از سیستم برآورده سازند . شکل زیر این ارتباط را نشان می دهد.
USER |
SHELL PROGRAM |
KERNEL PROGRAM |
HARDWARE |
ورود به سیستم
جهت ورود به سیستم بایستی عمل logging in را انجام داد تا :
- یونیکس صحت مشخصات کاربر را در استفاده از سیستم بررسی نماید.
- یونیکس محیط مناسب را برای عملیات مورد نیازکاربر فراهم آورد .
ضمناً با توجه به زمان ورود و خروج کاربر ، عملیات حسابداری ( accounting) کاربر نیز انجام شود .
در سیستم های چند استفاده کننده تنها کسانی حق استفاده از سیستم را دارند که username و password منحصر بفردی را از مدیریت سیستم دریافت کرده باشند واز طریق آن میتوانند از منابع سیستم بصورت اشتراکی استفاده کنند .
یونیکس پس از بررسی username و password کاربر، در صورتیکه اجازه استفاده از سیستم را داشته باشد ، پرامپت Shell خود را نشان میدهد وگرنه مجدداً درخواست login جدید را میکند و در صورت چند مرتبه شکست خط ارتباطی قطع خواهدشد .
login: username
******* :password
کاربر به کمک فرمان passwod میتواند رمز عبور خود را تغییر دهد .
خروج از سیستم
با فرمان logoff می توان از سیستم خارج شد، به این معنا که کاربر تقاضای دیگری از سیستم ندارد.
فرمان ها در یونیکس
شکل کلی فرمان ها در یونیکس به صورت زیر است که در آن اسم فرامین را باید به حروف کوچک تایپ کرد:
[…command [option…] [argument
option: رفتار یک دستور را مشخص میکند و با علامت (- یا +)همراه است.
دسته بندی فرمان ها
فرمان های یونیکس را می توان به صورت زیر دسته بندی کرد:
اطلاع از وضعیت کنونی سیستم:
مثل فرمان های :
tty: گرفتن اسم ترمینال
date : تنظیم تاریخ سیستم
who : مشخصات کاربران جاری سیستم
pwd : نمایش مسیر جاری
مدیریت فایل ها و فهرست ها:
مثل فرمان های :
ls : نمایش لیست فایلها و فهرستها
cat: ایجاد و نمایش فایلهای متنی
cp : کپی برداری فایلها
rm : حذف فایلها
mv : انتقال فایلها
od : نمایش فایلهای باینری
find : ستجوی فایلها
ln : ایجاد پیوند برای فایل
mkdir : ساخت فهرست
rmdir : حذف فهرست
cd : تغییر فهرست جاری
vi : ویرایشگر فایلها
مدیریت پردازش :
مثل فرمان های :
ps : مشخصات برنامههای در حال اجرا
kill : خاتمه دادن به اجرای فرایند
nice : تغییر الویت اجرای فرایند
فرامین ارتباطی :
مثل فرمان های :
talk : ارتباط محاوره ای با دیگری
write : ارسال پیام به دیگری
mail : ارسال نامه الکترونیک به دیگران
مدیریت فایل
مدیریت فایل در یونیکس
هسته یونیکس تمام پرونده ها را به صورت جریانی از بایت ها در نظر میگیرد. هر گونه ساختار منطقی دخلی مخصوص کاربرد است. ولی یونیکس متوجه ساختار فیزیکی پرونده هاست.
چهار نوع پرونده از هم تمیز داده میشوند:
- عادی: پرونده هایی که حاوی اطلاعات وارد شده توسط کاربرد، برنامه های کاربردی، یا برنامه سودمند سیستم هستند.
- فهرست راهنما: حاوی لیستی از اسامی پرونده ها و اشاره گرها به گروه های شاخص است که بعدا توضیح داده میشود. فهرست های راهنما به صورت سلسله مراتبی سازمان یافته اند. پرونده های فهرست راهنما در واقع پرونده های عادی هستند که امتیاز حفاظتی نوشتن را دارند به طوری که فقط سیستم پرونده میتواند در آنان بنویسد در حالی که دستیابی برنامه های کاربردی برای خواندن میسر است.
- خاص: برای دستیابی به دستگاه های جنبی مانند پایانه ها و چاپگرها به کار میروند. هر دستگاه ورودی خروجی با یک پرونده خاص مربوط است.
در این بخش اداره پرونده های عادی مورد نظر است که در اغلب سیستم ها به عنوان پرونده تلقی می شوند.
فایلها، مجموعه اطلاعاتی هستند که بر روی حافظه کمکی ذخیره شده اند . فهرست ها نیز جهت طبقه بندی فایل ها بکار می روند .مدیریت فایلها و فهرست ها در یک سیستم چند استفاده کنندها از اهمیت خاصی برخوردار است .
یونیکس ازمدل سلسله مراتبی و ساختار درختی در سیستم فایلها استفاده میکند و با تعیین محدوده دسترسی هر کاربر امنیت فایلها را تضمین میکند .
برای دسترسی به فایلها بایستی مسیر آنها را به درستی بیان نمود که هر مسیر متشکل از اسامی فهرستها میباشد که با « / » از هم جدا شده اند .
یونیکس اطلاعات زیر را در رابطه با هر فایل نگهداری میکند :
دسترسی های مجاز (access privilage)
نوع فایل
تاریخ ایجاد
تاریخ آخرین اصلاح
تاریخ آخرین دسترسی
اندازه فایل
محل دقیق فایل روی دیسک
گره های شاخص
تمام این پرونده های یونیکس توسط سیستم عامل و به وسیله گره های شاخص اداره میشوند. گره شاخص ساختاری کنترلی است که حاوی اطلاعات کلیدی مورد نیاز سیستم عامل برای یک پرونده مشخص است. ممکن است چندین اسم پرونده به گره شاخص واحدی مربوط باشند ولی یک گره شاخص فعال فقط مربوط به یک پرونده است وهر پرونده فقط با یک گره شاخص کنترل میشود.
خصیصه های پرونده و همچنین اجازه ها و دیگر اطلاعات کنترلی، در گره شاخص ذخیره میشود.
تخصیص پرونده
تخصیص پرونده براساس بلوک انجام می پذیرد، تخصیص پویا و بر حسب نیاز است و به صورت پیش تخصیص نیست. بنابر این بلوک های یک پرونده روی دیسک لزوما پیوسته نیستند. از یک روش شاخص بندی برای دنبال کردن پرونده ها استفاده میشود. بخشی از شاخص در گره شاخص پرونده ذخیره شده است. گره شاخص شامل ۳۹ بایت اطلاعات آدرس می باشد که به صورت ۱۳ آدرس ۳ بایتی با اشاره گر سازمان یافته است. ۱۰ آدرس اول به ۱۰ بلوک داده های اول پرونده اشاره می کنند. اگر اندازه پرونده بیش از ۱۰ بلوک باشد یک یا چند سطح دسترسی غیر مستقیم به ترتیب زیر به کار گرفته میشود:
- آدرس یازدهم در گره شاخص به بلوکی روی دیسک اشاره دارد و این بلوک حاوی بخش بعدی شاخص است که به آن بلوک غیر مستقیم یک سطحی می گویند. این بلوک حاوی اشاره گرهای بلوک های بعدی در پروندهاست.
- اگر پرونده شامل بلوکهای بیشتری باشد آدرس دوازدهم در گره شاخص اشاره به بلوک غیر مستقیم دو سطحی دارد. این بلوک حاوی لیستی از آدرس های بلوک های غیر مستقیم یک سطحی به نوبه خود شامل اشاره گره های بلوک های پرونده هستند.
- اگر هنوز هم پرونده شامل بلوکهای بیشتری باشد آدرس سیزدهم در گره شاخص اشاره به بلوک غیرمستقیم سه سطحی دارد که این سطح سوم شاخص بندی است. این بلوک به بهای غیر مستقیم دو سطحی اضافه اشاره دارد.
مجموع تعداد بلوک های داده ها در یک پرونده به ظرفیت بلوک های با اندازه ثابت در سیستم بستگی دارد. در unix system V طول بلوک یک کیلو بایت است و هر بلوک میتواند مجموعا ۲۵۶ آدرس بلوک را نگه دارد. پس با این طرح حداکثر اندازه یک پرونده بیش از ۱۶ گیگا بایت خواهد شد.
انواع فایل ها
در یونیکس فایلها به سه نوع اصلی تقسیم میشوند :
- فایلهای معمولی: کاربران برای ذخیره اطلاعات از این گونه فایلها استفاده میکنند . این فایلها دو نوعند : فایلهای متنی و فایلهای باینری
- فایلهای فهرست : به منظور نگهداری سیستم سلسله مراتبی فایلها، یونیکس از فایلهای فهرست استفاده میکند . این فایلها حاوی لیست فایلها هستند . کاربران فقط مجاز به خواندن اطلاعات این فایلها هستند و فقط سیستم مجاز به نوشتن در اینگونه فایلهاست .
- فایلهای ویژه :این فایلها برای ایجاد ارتباط با دستگاههای سختافزاری مورد استفاده قرار میگیرند، مانند دستگاههای I//O . یونیکس به هر فایل ویژه دو شماره اختصاص میدهد ، شماره اصلی و شماره فرعی ، که کرنل با این شمارهها مشخص میکند که کدام سخت افزار ورودی /خروجی بطور منطقی به کدام فایل ویژه ، متصل شدهاست .اکثر فایلهای ویژه در فهرست /dev ذخیره شدهاند.مانند tty0x برای ترمینال و lp0 برای چاپگر خطی و…فایلهای ویژه واسطهای مابین برنامههای همه منظوره کاربردی و روالهای داخلی کرنل هستند تا جزئیات سختافزاری را از دید برنامه کاربردی مخفی کنند .مالکیت فایلهای ویژه در اختیار سیستم است .
عملیات بر روی فایل ها
در سیستم یونیکس سه عمل بر روی فایل انجام می شود :
الف) خواندن
ب) نوشتن ( ایجاد ، تغییر ، حذف )
ج)اجرا کردن (بارشدن در حافظه و اجرای دستورات )
از طرفی هر فایل به یک گروه خاص اختصاص داده می شود .(گروه مجموعه ای از کاربران هستند که نیاز به منابع مشترک دارند .)
محافظت دستیابی فایلها در یونیکس به دو عامل بستگی دارد :
الف) نوع دسترسی تخصیص داده شده به فایل (خواندن ، نوشتن ، اجراکردن)
ب) کاربری که درخواست دسترسی دارد
در ارتباط با دسترسی به فایل ، سه نوع استفاده کننده وجود دارد :
۱)مالک فایل ۲) اعضای یک گروه ۳)بقیه افراد ( others)
مدیر سیستم نیز تنها کاربری است که با نام superuser از فایل میتواند استفاده کند.
مالک فایل بادستور chmod میتواند کنترل اجازه دسترسی به فایل را در دست داشتهباشد .مالکیت فایل با دستور chown و گروه فایل با دستور chgrp تغییر میکند .superuser نیز میتواند حالت فایلها را عوض کند.بسیاری از فایلهای یونیکس بوسیله چند اسم شناخته میشوند ، تعداد این اسامی ،تعداد پیوند آن فایل نامیده می شود .با فرمان ln می توان چندین اسم برای یک فایل ایجاد کرد .
فرمان های مدیریت فایل
مشاهده لیست فایل ها:
اصلی ترین فرمان جهت لیست نمودن فایلها در یک فهرست، فرمان ls است که با –l در آن به عنوان option می توان جزئیات کاملی از فایلها دریافت کرد:
تغییر حالت دسترسی به فایل :
با فرمان chmod مالک فایل می تواند حالت دسترسی به فایل را تغییر دهد .
chmod [who] op-code mode file…
who: برای مالک حرف u، برای گروه حرف g،برای دیگران حرف oو برای تمام کاربران حرف a میباشد .
op-code: برای اضافه نمودن اجازه (+) ،برای حذف نمودن اجازه (-) و برای انتساب اجازه (=) میباشد.
mode : برای خواندن حرف r، برای نوشتن حرف wو برای اجرا حرف x میباشد .
مثال:
$ chmod go-rw poem
اجازه خواندن ونوشتن را از گروه و دیگران سلب میکند.
$ chmod a=rw readme
به همه اجازه خواندن و نوشتن میدهد.
اگر اجازه نوشتن فایلی را حذف کنید ، فایل قابل حذف کردن نخواهد بود و اگر اجازه خواندن را سلب کنید ، محتویات فایل نیز قابل مشاهده نمی باشد .
تغییر مالکیت فایل :
مالک فایل از طریق فرمان زیر میتواند فایل هایی که به او تعلق دارد را به تملک دیگری در آورد. بازگرداندن مالکیت تنها از طریق مالک جدید امکان پذیر است .
chown owner file…
مثال:
$ chown root * مالکیت تمام فایلها را به مدیر سیستم میدهد
تغییر دادن گروه یک فایل :
با فرمان روبرو میتوان فایل را به یک گروه نسبت داد.
chgrp group file…
group باید یکی از گروه های معتبر که در فایل /etc/group معرفی شده اند ، باشد .
تعیین نوع فایل :
به کمک فرمان file میتوان نوع فایل را تشخیص داد .
file file…
این فرمان فایلهای زبان c ، زبان فرترن ، زبان اسمبلی ،فایل متنی ،فایل متنی انگلیسی، متن با کد اسکی و فهرست ها را تشخیص میدهد .
ایجاد و ویرایش فایلها:
یونیکس ویرایشگری به نام vi دارد که به کمک آن میتوان فایل جدیدی ساخت و یا فایلهای موجود را ویرایش کرد .در این ویراستار امکانات متعددی جهت ویرایش فایلها موجود است که بحث در باره آن در این مستند ضروری بنظر نمی رسد .
مدیریت پردازش
فرایند:
یک فرایند یک برنامه در حال اجراست . سیستم یونیکس برای کنترل نمودن فرایندهای در حال اجرا برنامه های مختلفی را فراهم ساخته است . هر فرایند با یک شماره واحد شناخته میشود که به آن شماره PID یا شماره مشخصه می گویند . فرایندهای باشماره مشخصه ۰ و ۱ فرایندهای ویژه سیستم هستند . فرایند شماره ۰ ، کرنل سیستم و فرایند شماره ۱، init process نام داردکه وظیفه بر پاسازی ساختار فرایندها را برعهده دارد.
هر فرایندی توسط فرایند دیگری که فرایند پدر نامیده میشود ، ایجاد میشود .به تعبیری پدربزرگ تمام فرایندها،فرایند شماره ۱ می باشد. شماره مشخصه بقیه فرایندها در محدوده ۲ تا ۳۰۰۰۰ قرار دارد.
فرمان های مدیریت پردازش:
اطلاع از فرایندهای فعال:
ps، مهمترین برنامه است که وضعیت فرایندهای کنونی را نشان میدهد.این فرمان اطلاعات کاملی از فرایندهای در حال اجرا به شرح زیر نشان می دهد :
F S UID PID PPID C PRI NI ADDR SZ WCHAN tty TIME CMD
CMD: نام فرایند
TIME: زمان مصرف شده برای اجرای فرایند
tty: ترمینال کنترلی فرایند
WCHAN : اگر فرایند تقاضایی دارد که در دسترس نیست ، باید منتظر بماند ، علت انتظار در این فیلد بصورت یک آدرس نوشته می شود و اگر فرایند در حال اجرا باشد این فیلد خالی است .
SZ: اندازه فرایند در حافظه
ADDR : اگر فرایند در حافظه باشد آدرس حافظه وگرنه آدرس دیسک است.
NI : عددی که در محاسبه الویت بکار می رود.
PRI : الویت فرایند (اعداد بزرگتر الویت کمتری دارند )
C :زمان مصرف شده cpu جهت زمانبندی فرایند
PPID :شماره مشخصه فرایند پدر
PID : شماره مشخصه فرایند
UID : مالک فرایند
S : حالت فرایند( SLEEP,WAIT, TERMINATE,RUN,PAUSE)
F : به flagختصاص داده شده به فرایند را که حالت اجرای آن را نشان میدهد.(در حافظه ، در انتظار I/O ، در حال SWAP و…)
خاتمه دادن به فرایند:
اگر به برنامه در حال اجرا دیگر نیازی نیست ،با سیگنال quit نمی توان آن را خاتمه داد، چون shell فرایندهای در حال اجرا را از سیگنالها محافطت میکند .ولی با فرمان kill میتوان فرایند را خاتمه داد.
kill [-signal_no] PID
PID ، شماره مشخصه فرایند است که به محض اجرای فرایند توسط shell نشان داده میشود ( با فرمان ps نیز می توان PID فرایند را بدست آورد) .به کمک شماره signal_no می توان نحوه خاتمه دادن به برنامه را تنظیم کرد.
محافظت فرایند از سیگنالهای quit و hangup :
معمولاً به هنگام خروج از یونیکس با فرمان logoff ، کرنل سیگنال hungup را به تمام فرایندهای در حال کار ازسال می کند تا به وسیله این سیگنال خاتمه یابند . این کار برای مواردی که خط ارتباطی بصورت غیر عمد قطع میشود ، مطلوب نیست .یونیکس به کمک فرمان nohup ، امکان اجرای برنامهها ، حتی در صورت logoff را فراهم می آورد.این فرمان مانع از ارسال سیگنال خاتمه یافتن به برنامه مورد نظر میشود .
nohup command
command برنامه ای است که به هنگام logoff یا قطع ناخواسته ارتباط باز هم بکار خود ادامه میدهد.این فرمان خروجی های برنامه فوق را در فایلی به نام nohup.out در فهرست جاری ذخیره می کند .
کاستن الویت فرآیند
اجرای یک فرایند توسط cpu انجام میشود و cpu قطعاتی از زمان (time slice) را به هر فرایند اختصاص میدهد . اندازه time slice تحت تأثیر الویتی است که کرنل به هنگام زمانبندی به فرایند نسبت می دهد . هر چه الویت برنامه بیشتر باشد time slice های بزرگتری به برنامه اختصاص می یابد.
اگر اولویت کمتری به برنامه اختصاص دهیم ، برنامه کندتر از دیگر برنامه ها اجرا می شود . برنامه هایی که بیشتر از منابع سیستم استفاده می کنند، بهتر است با اولویت کمتری اجرا شوند تا کمتر باعث کند شدن سیستم شوند.
فرمان nice باعث کاهش اولویت یک فرایند می شود :
nice [-increment] commandline
محدوده آرگومان increment ، یک الی نه می باشد . مقدار این آرگومان به مقدار nice فرضی فرایند ها که عدد ۲۰ می باشد ، اضافه می شود و بدین ترتیب کمیت nice فرایند افزایش یافته و اولویت فرایند کم می شود .
اگر از آرگومان فوق استفاده نشود مقدار پیش فرض ۱۰ در نظر گرفته می شود و کمیت nice فرایند بربر ۳۰ خواهد شد . کاربران عادی تنها می توانند الویت برنامه های خود را کاهش دهند ولی superuser (کسی که با نام root از سیستم استفاده می کند) می تواند الویت برنامه های خود را افزایش دهد ، در اینصورت باید increment را بصورت عدد منفی وارد کرد.
نیازمندی های سخت افزاری
RAM: دارای ۲۵۶ مگابایت
Hard Derive: حداقل ۱۰ و حداکثر مقدار بستگی به نیاز کاربر دارد.
Video : حداقل ۸۰۰*۶۰۰
Mouse : موس هر موردی میتواند باشد.
REMOVAL MEDIA : اکثرا SCSI
PRINTER : تقریبا هر پرینتر موازی یا سریال میتواند استفاده شود.
MODEM : اکثرا سریال، ولی هر موردی که DOS بتواند از آن استفاده کند یونیکس هم می تواند.
NIC : موارد Intel,HP,Novell,3Com می توانند استفاده شوند ولی Clones پیشنهاد نمی شوند.