مقاله مفاهیم شبکه در سیستم عامل unix
توجه : به همراه فایل word این محصول فایل پاورپوینت (PowerPoint) و اسلاید های آن به صورت هدیه ارائه خواهد شد
مقاله مفاهیم شبکه در سیستم عامل unix دارای ۱۱۵ صفحه می باشد و دارای تنظیمات در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد مقاله مفاهیم شبکه در سیستم عامل unix کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
توجه : در صورت مشاهده بهم ریختگی احتمالی در متون زیر ،دلیل ان کپی کردن این مطالب از داخل فایل ورد می باشد و در فایل اصلی مقاله مفاهیم شبکه در سیستم عامل unix،به هیچ وجه بهم ریختگی وجود ندارد
بخشی از متن مقاله مفاهیم شبکه در سیستم عامل unix :
۱-۳- تاریخچه توسعه و تکامل یونیکس
تاریخچه طولانی یونیکس که می توان گفت بخشی از آن خوب و بخشی از آن بد می باشد , مطالعه ای است در پشتکار و استقامت, تغییرات ناگهانی در جهت توسعه نرم افزار, و جشن پیروزی تکنولوژی خوب بر روش برخورد هرج و مرج طلبانه ای که بعضی اوقات صنعت کامپیوتر با محصولات خوب پیش می گیرد .
به دهه ۱۹۶۰ برمی گردیم , هنگامی که پیشرفت و توسعه کامپیوتر حوزه کاری تعداد اندکی شرکتهای پیشگام در صنعت و دانشگاههای پیشرو بود . در این دوران اغلب تحقیقات در آزمایشگاههای بل , ام آی تی , و جنرال الکتریک ( تولیدکننده پیشروی کامپیوتر در آن زمان) صورت می گرفت . این سه کانون تحقیقاتی بر روی سیستم عاملی به نام
( Multiplexed Information and Computing System) MULTICS برای کامپیوتر بزرگ GE 645 تشریک مساعی کرده بودند . MULTICS پیروزی کاملی نبود, و بنابراین با شایستگی کنار گذاشته شد ( به همین ترتیب تلاشهایی که بر روی کامپیوترهای GE صورت گرفت) .
در ۱۹۶۹, کن تامپسون محققی در آزمایشگاههای بل و یکی از طراحان MULTICS , بازی Space Travel را برای MULTICS نوشته بود . در روزهای اشتراک زمانی, کاربران باید برای زمانی که بر روی کامپیوتر بزرگ صرف می کردند, هزینه می پرداختند . احتمالا Space Travel بازی خوبی بوده است, اما بر روی کامپیوتر بزرگ GE به خوبی اجرا نمی شد و برای بازی ۷۵ دلار هزینه در بر داشت .
حتی برای یک آزمایشگاه تحقیقاتی نیز این مقدار اسراف وحشتناکی محسوب می شد, بنابراین کن تامپسون و همکارش دنیس ریچی بازی را باز نویسی کردند تا بر روی کامپیوتر DEC PDP-7 که آن موقع در آزمایشگاههای بل بدون استفاده بود, اجرا شد . اما به منظور بردن Space Travel به DEC , تامپسون باید سیستم عامل جدیدی برای آن می نوشت و در همین نقطه بود که یونیکس امروزی ریشه گرفت .برایان کرنیگان دیگر محقق آزمایشگاههای بل به این سیستم عامل, لقب (Uuniplexed Information and computing System) UNICS را داد .
سیستم عامل فوق در این راه به عنوان یونیکس شناخته شد و به کامپیوترهای قدرتمند تری منتقل گردید . در سال ۱۹۷۲, یونیکس به طرز دقیق بر روی ۱۰ کامپیوتر در حال اجرا بود, و در سال بعد تامپسون و ریچی, یونیکس را با زبان برنامه نویسی C بازنویسی کردند . زبان برنامه نویسی C قابل حمل تر بود و کمک کرد که یونیکس به سیستم عاملی تبدیل شود که می توانست بر روی انواع متفاوتی از کامپیوترها اجرا گردد .یونیکس به عنوان یک محصول توسط سرپرست حقوقیش AT&T دچار مشکل شد, چون دولت از معرفی محصولات کامپیوتری به صورت تجاری جلوگیری می کرد؛ این موضوع تا پیش از تجزیه AT&T سایر بازیگران را از صحنه بازار کامپیوتر خارج سازد. به دلیل تقاضا, AT&T اصلا یونیکس را به دانشگاهها, دولت و بعضی از شرکتها بخشید ( با مطالبه قیمتی اسمی به منظور پرداختن هزینه مواد اولیه )
.
یونیکس در بین سالهای ۱۹۷۴ تا ۱۹۷۹ در واقع یک محصول تحقیقاتی بود که در دانشگاهها به منظور مقاصد آموزشی محبوبیت یافته بود . یونیکس ۲۹۷۴ شباهت چندانی به یونیکس ۱۹۷۹ نداشت؛ در طی این سالها برنامه های کمکی و ابزارهای بسیاری به یونیکس افزوده شدند و در همان زمان نیز صنعت کامپیوتر به سرعت توسعه یافت و با این توسعه, بازار بالقوه یونیکس رشد پیدا می کرد .
در این زمان توسعه یونیکس به آزمایشگاههای بل و AT&T محدود نمی شد . در سال ۱۹۷۴ دانشگاه برکلی کالیفرنیا کار خود را بر روی یونیکس آغاز کرد و Berkeley Software Distribution را تولید نمود . BSD, شامل بسیاری از برنامه های کمکی متداول مانند ویرایشگر متن vi و پوسته C بود که می توانیم آنها را در یونیکس امروزی پیدا کنیم . تحقیق بر روی BSD تا امروز ادامه دارد .
اما یکی از معماران BSD به نام بیل جوی, سان میکروسیستمز را پریشان و هیجان زده نمود و در آنجا کار تحقیقات و توسعه خود را بر روی یونیکس پیشرفت داد . امروزه سان یکی از رهبران بازار ایستگاه کاری یونیکس است ( مجموعه SPARCstation این شرکت برای اغلب مردم مترادف ایستگاه کاری یونیکس می باشد ), و SunOs تقریبا نگارش بسط یافته BSD است .
چندین شرکت دیگر نیز از سان سرمشق گرفتند و نگارشهای مخصوص به خودشان از یونیکس را توسعه دادند . AIX از آی بی ام, Ultrix از DEC , و HP-UX از هیوات پاکارد, همگی مثالهایی از یونیکس نیمه اختصاصی می باشند . بعضی از نگارشها, مانند Coherent از Mark Williams Company , واقعا یونیکس نیستند, بلکه این نگارش فقط نرم افزاری است که مانند یونیکس واقعی به فرمانهای یونیکس پاسخ می دهد .
در سال ۱۹۸۰ هنگامی که مایکروسافت نگارش کاهش یافته ای از یونیکس به نام زنیکس را منتشر ساخت, یونیکس در دسترس کاربران ریزکامپوترها نیز قرار گرفت . شاید میکرسافت به دلیل شکل دادن اتحادی با آی بی ام مشهورتر باشد . این اتحاد, ( Disk Operating System ) DOC میکرسافت را به معروفترین سیستم عامل ریز کامپیوتر تبدیل ساخت . مسئوایت توسعه زنیکس به عهده شرکت سانتا کروز ( شرکتی که بخشی از آن در مالکیت میکروسافت است ), گذاشته است و هم اکنون SCO UNIX محصول مهمی در دنیای یونیکس می باشد .
پیش از سال ۱۹۸۳, یونیکس وضعیت مطلوبی نداشت زیرا به طور رسمی پشتیبانی نمی شد ؛ AT&T هیچ تضمینی درباره آینده یونیکس نمی داد . این وضع در سال ۱۹۸۳ تغییر کرد, AT&T در این سال نگارش Unix system V Release 1 را منتشر ساخت و قول داد نرم افزاری که برای این نگارش ایجاد می شود با تمام نگارششهای آینده یونیکس از AT&T سازگار خواهد بود .
اما سایر نگارشهای یونیکس چه شدند ؟ در فرآیند توسعه یونیکس تعدادی ناسازگاری در نگارشهای گوناگون به وجود آمده بود که همین امر طراحی و توسعه یکنواخت نرم افزار را تا حدی مشکل می ساخت و می دانیم که هر چقدر هم سیستم عامل خوب باشد, اگر برنامه های کاربردی سودمندی وجود نداشته باشند, هیچ کس تصمیم به خریداری و استفاده از سیستم عامل را نخواهد گرفت .
AT&T به همین دلیل, اتحاد بزرگ, یعنی UNIX System V Release 4 را معرفی نمود. این جدیدترین نگارش یونیکس, محبوب ترین و پراستفاده ترین فرمانهای SunOs, BSD, UNIX System V Release 3.2 و Xenix را ترکیب می کند .
هم اکنون یونیکس در مالکیت ناول است که یونیکس را به عنوان بخشی از خرید UNIX System Labs به دست آورد . از آنجایی که صنعت یونیکس به منظور تعیین استانداردها پیش می رود, یونیکس فراتر از کنترل یک شرکت است . حتی ناول نیز شعبه یونیکس را به گروه صنعتی X/Open واگذار نموده است .
هنوز هم نگارشهای متفاوتی از یونیکس در سرتاسر بازار شناور هستند . سولاریس از سان را داریم که برای ایستگاههای کاری سان و کامپیوترهای شخصی مبتنی بر اینتل در دسترس است . Unixware از ناول را داریم ؛ و بسیاری از کاربران نیز در حال کشف قدرت یونیکس با لینوکس هستند, نگارشی با کاری مشابه یونیکس که به صورت مجانی در دسترس قرار دارد و برای کامپیوترهای شخصی نوشته شده است .
به عنوان یک کاربر, مدیر سیستم یا طراح نرم افزار, نباید درباره این نگارشهای گوناگون و این که آیا مشکلاتی برای شما ایجاد خواهند کرد, نگران باشید . این نگارشهای مختلف در یک مورد اشتراک دارند و آن یک مورد پیروی از استانداردها می باشد . در واقع, امروزه نمی توانید سیستم عامل, محدودتری پیدا کنید که آینده اش در دست تعدادی خاص باشد .
چرا استانداردها اهمیت دارند ؟ زیرا استانداردها تضمین می کنند برنامه ای کاربردی که برای بک نوع کامپیوتر طراحی می شود و از استانداردها پیروی می کند بر روی کامپیوتری از نوع دیگر نیز اجرا خواهد شد . گروههای مختلفی در شکل دهی استانداردهای یونیکس شرکت دارند : ANSI, UNIX System Labs ( موسسه استانداردهای ملی آمریکایی که استانداردهای POSIX را توسط موسسه مهندسین برق و الکترونیک, IEEE , سرپرستی می کند ) و X/Open .
۲-۳- چرا یونیکس ؟
یونیکس به دلایل گوناگونی به سیستم عامل بسیار محبوبی تبدیل شده است :
یونیکس قابل حمل است . چون یونیکس به زبان برنامه نویسی C نوشته می شود و مقید به هیچ سخت افزار خاصی نمی باشد, تقریبا به هر نوع کامپیوتری برده شده است . کامپیوترهای شخصی, آمیگاها, مکینتاشها, ایستگاههای کاری, کامپیوترهای کوچک, کامپیوترهای بزرگ, و سوپر کامپیوتر ها از هر نوعی, سیستم عامل یونیکس را اجرا می کنند .
این موضوع یعنی نرم افزاری که بر روی کامپیوتری نوشته می شود , به کامپیوتر دیگری قابل انتقال است . شرکتها دیگر به تولید کننده واحدی وابسته نمی باشند . آیا تا کنون عبارت فنی سیستمهای باز را شنیده اید ؟ از دیدگاههای مختلفی این عبارت مترادف یونیکس می باشد . در خرید سخت افزار و نرم افزاری که بایستی بتواند در طرح محاسباتی شما مجتمع گردد, آزاد هستید. بله, همیشه در هنگام آمیختن انواع و معماریهای سخت افزاری متفاوت مشکلاتی وجود خواهد داشت ,
اما حداقل لزومی ندارد که تمام تجهیزات خود را از تولیدکننده یا فروشنده واحدی خریداری کنید . چنین تولیدکننده ای می تواند با سخت افزار و نرم افزار اختصاصی, شما را در موقعیت سختی قرار دهد . نمی خرد . در عوض, سیستم عاملی را انتخاب می کنید که قادر به اجرای برنامه های کاربردی دلخواهتان باشد . یونیکس برنامه های کاربردی قدرتمندی را در تقریبا هر نوع نرم افزار از نشر الکترونیکی تا خوکارسازی اداری را دارا می باشد .
• یونیکس سیستم عاملی چندکاره می باشد . به طور همزمان بیش از یک کاربر می توانند از سیستم یونیکس استفاده کنند . منابع سخت افزاری با ارزش مانند چاپگرها و سرویس دهنده های بزرگ توسط افراد بسیاری قابل استفاده می باشند.
• یونیکس سیستم عاملی چند وظیفه ای می باشد . می توانید دو وظیفه را به طور همزمان انجام دهید : به عنوان مثال می توانید در هنگامی که پست الکترونیکی خود را می خوانید, در پس زمینه پرونده ای متنی را قالب بندی کنید . در حین آنکه مفهوم چند وظیفه ای احتمالا آن قدری که برای نظریه دانان کامپیوتر اهمیت دارد, برای اغلب کاربران حائز اهمیت نیست, اما بعضی از اوقات عملی است که در اختیارداشتن آن مفید می باشد .
• شبکه سازی در یونیکس تعبیه شده است . امروزه یکی از بزرگترین چالشها, متصل ساختن انواع متفاوتی از کامپیوترها در سرتاسر نواحی کوچک و بزرگ می باشد . در یونیکس, شبکه سازی در برنامه ها و برنامه های کمکی گوناگونی تعبیه می شود .
۳-۳- سیستم عاملهای سازگار با یونیکس
برخی از سیستم های عامل سازگار با یونیکس در زیر معرفی شده اند :
Solaria محصول شرکت Sun Microsystems
IRIX محصول شرکت Silicon Graphics
AIX محصول شرکت IBM
HP-UX محصول شرکت Hewlen Packard
SCO-UNIX محصول شرکت Santa Cruz Operation.Inc
FreeBSD نسخه رایگان یونیکس محصول دانشگاه برکلی آمریکا
OpenBSD محصول دانشگاه برکلی به همراه کدهای برنامه آن . این سیستم عامل با شعار » تلاش برای خلق امن ترین سیستم دنیا « ارائه شده است .
• Linux سیستم عاملی است به همراه کدهای رایگان که ابتدا توسط یک دانشجوی فنلاندی به نام لینوس توروالدز نوشته شد و بعدا توسط شرکتهای مختلفی ( با قیمت ناچیز) توسعه یافت . اسامی شرکتهایی که نسخه های لینوکس را تولید و عرضه کرده اند, عبارتند از :
Readhat Caldera
Corel Debian
Slackware Storm
SuSE YellowDog
Turbo Linux Mandarke
• SunOS نسخه قدیمی تر یونیکس که قبل از سولاریس توسط شرکت Sun Microsystem تهیه شده بود و هنوز در برخی از محیطها استفاده می شود .
تمام این نسخه های متعدد, عظیم و جهانی از تفکر افرادی نشات گرفته اند که سی یال پیش در شرکت AT&T و در سکوت و بدون حمایتهای جهانی اقدام به پیاده سازی یونیکس کردند . بسیاری از آنها امروزه در دوران کهولت هستند و آن گذشته روشن را به دست فراموشی سپرده اند و برخی نیز در نقش پیش کسوتان و پدران معنوی هنوز در پالایش و رشد آن می کوشند .
سیستم مدیریت فایل, فراخوانی روالهای سیستمی, فرامین و برخی از گزینه های پیکر بندی در نسخه های گوناگون یونیکس به روشهای متفاوتی پیاده سازی شده اند که این تفاوتها ناشی از نیاز تکنولوژیک روز بوده است ؛ ولی در مجموع خطوط اصلی این سیستم عامل توسط دو موسسه تعیین می شود :
• گروه توسعه یونیکس در شرکت AT&T
• گروه توسعه یونیکس BSD در دانشگاه برکلی
سولاریس, HP-UX از خطوط تعیین شده توسط AT&T تبعیت می کنند در حالی که FreeBSD , OpenBSD و لینوکس به گروه توسعه BSD گرایش دارند . سیستمهای عامل AIX و IRIX تلفیقی از نکات برجسته خط مشی هردو گرئه هستند لذا اندکی پیچیده تر به نظر می رسند .
۴-۳- معماری یونیکس
یونیکس مانند MS-DOS و OS/2 یک سیستم عامل است : نرم افزاری که کامپیوتر فیزیکی را کنترل و فرامین ما را تفسیر می کند .
سیستم عامل اعمال بسیاری انجام می دهد :
• عملا برنامه را اجرا می کند . هنگامی که نام پرونده را در خط فرمان وارد می کنید, سیستم عامل با بارگذاری برنامه در حافظه کامپیوتر و اجرای آن کنترل را به دست می گیرد . تنظیمها در سیستم عامل می توانند در کارآیی واقعی برنامه ها اثر بگذارند .
• تمام ورودی و خروجی را در کامپیوتر کنترل می کند . هنگامی که پرئنده ای را حذف می کنید سیستم عامل به کار خود ادامه می دهد و رکوردی از این پرونده را حذف می نماید . هنگامی که پرونده ای را ذخیره می کنید, سیستم عامل تضمین می کند که پرونده فوق بر روی پرونده موجودی نوشته نمی شود . سیستم عامل آنچه را که بر روی نمایشگر ( یا نمایشگرها ) نمایش می یابد, کنترل می کند و امکان می دهد که فرامین را توسط صفحه کلید یا ماوس وارد کنید .
یونیکس این اعمال را از طریق سه بخش مجزا اما بسیار یکپارچه انجام می دهد : پوسته و. هسته .
هسته, مسئول تمام اعمال اولیه سیستم عامل می باشد . هسته در اولیه ترین سطح خود, وظیفه اداره حافظه کامپیوتر و چگونگی تخصیص دستورالعملهای نرم افزاری به این حافظه, اجرای تمام فرامین, سرپرستی سیستم پرونده, رسیدگی به خطاها و غیره را به عهده دارد . هنگامی که کامپیوتر روشن می شود,
هسته شروع به کار می کند و بدون توجه به نرم افزار یا یا پوسته ای که اجرا می کنید, در حافظه باقی می ماند . به عنوان یک کاربر, نیازی نیست که درباره هسته فکر کنید ؛ تنها باید بدانید که هسته کار می کند . سیستم پرونده به پیگیری پرونده ها و محل قرارگیری آنها می پردازد . هر چیزی در یونیکس, خواه پرونده ای که در یک پردازشگر متن ایجاد می شود یا راه اندازی که برای فرستادن دستورالعملها به چاپگر استفاده می گردد, در پرونده ای شامل می شود . اگر زمینه داس یا مکینتاش را داشته باشید, متوجه شباهتهای زیادی بین زیرفهرستها ی داس و زیر فهرستهای یونیکس خواهید شد .
پوسته یا مفسر خط فرمان, بخشی از یونیکس است که عملا در اغلب موارد در حال استفاده از آن خواهید بود . در اصل پوسته ها دستورالعملها را می گیرند و آنها را به دستوراتی قابل فهم توسط هسته تبدیل می کنند . هنگامی که برنامه را اجرا می کنید, به پوسته می گویید که برنامه ای از هسته را اجرا نماید .
۱-۴-۳- هسته سیستم عامل و پروسه ها
یونیکس از ساختار پیمانه ای ( ماجولار) استفاده کرده است به گونه ای که در پائین ترین سطح یک هسته با بستر سخت افزار درگیر است و تمام برنامه ها به صورت هویتی مستقل حول هسته شکل می گیرند . در یونیکس هسته خودش یک برنامه اجرایی است که قبل از هر برنامه دیگر اجرا می شودو کنترل کل سخت افزار را به دست می گیرد و دسترسی پروسه ها به سخت افزار فقط از طریق هسته ممکن است . این هسته در سیستم عامل یونیکس Kernel نامیده شده است . هسته، قلب ( و مغز) سیستم عامل محسوب می شود و هیچ برنامه ای بدون آن نخواهد توانست از مؤلفه های سخت افزاری سیستم استفاده نماید .
برای شروع اجرای یک برنامه در محیط یونیکس، هسته یک پروسه ایجاد می نماید . پروسه برنامه ای در حال اجراست که دو قسمت زیر را در بر می گیرد :
• کدهای اجرایی برنامه
• حافظه اختصاص داده شده به آن برنامه به عنوان فضای کاری ( Workspace ) ( تفاوت مفهوم برنامه – program – با پروسه – procces – از همین نکته ناشی می شود .)
برنامه – program – در حال اجرا مثل سرویس دهنده وب و پست الکترونیکی که فضا و منابع لازم را در اختیار دارند پروسه نامیده می شوند . پروسه ها را به صورت حبابهایی (یا بادکنک) فرض کنید که بر روی هسته سیستم عامل تشکیل می شوند و تمام هستی و بضاعت خود را از هسته دارند و هر گونه اختلال در هسته آنها را نابود خواهد کرد . هسته با ایجاد پروسه ها این حبابها را خلق می کند و بر عملکرد آنها نظارت دارد : CPU را در اختیار آنها قرار می دهد به سادگی آنها را نابود می کند .
محیط یونیکس محیطی چند وظیفه ای یا Multitask است و بالطبع در هر لحظه فقط یکی از پروسه ها، CPU را در اختیار دارد . پروسه های مختلف به صورت اشتراک زمانی ( Time Sharing ) از CPU استفاده می کنند و هسته به کمک سخت افزار، زمان در اختیار گرفتن CPU توسط یک پروسه را تنظیم و کنترل می نماید .
هسته سیستم عامل همچنین فضای حافظه مورد نیاز را در اختیار پروسه ها قرار می دهد و باز هم به کمک سخت افزار جلوی تخطی پروسه ها از حریم فضای حافظه اختصاص یافته به آنها را در بر می گیرد . فضای حافظه اختصاص داده شده به هر پروسه، از دسترس پروسه های دیگر مراقبت خواهد شد و هر پروسه ای که سعی کند در خارج از فضای حافظه خود چیزی بنویسد یا بخواند توسط هسته سیستم عامل متوقف (و نابود) خواهد شد .
۲-۴-۳- ساختار سیستم پرونده یونیکس
در سیستم عامل یونیکس هر چیزی به صورت یک پرونده تلقی و مدل می شود مثلا حتی دستگاههای جانبی مانند چاپگر یا پورتهای مخابره داده در قالب یک فایل مدل شده اد و برنامه نویس وقتی می خواهد اطلاعاتی را چاپ کند یا آنها را به منظور مخابره روی پورت COM بفرستد، به سادگی فایل استاندارد آن را باز کرده ، درون آن می نویسد و سپس فایل را می بندد .
این یکی از مفاهیم عالی یونیکس است که در سطح برنامه نویسی، برنامه نویس درگیر جزئیات سخت افزاری و نرم افزاری این ابزارها نخواهد شد بلکه این جزئیات در سطح سیستم عامل حل و فصل می شود . عناصر پروسه ها، صفها و بافرها نیز به صورت فایل مدل سازی شده اند . به بیان ساده، پرونده، ساختار کامپیوتر به منظور نگهداری اطلاعات می باشد . این اطلاعات در قالبی الکترونیکی قابل استفاده توسط کامپیوتر- بر حسب بیتها- ذخیره می گردند .
بیت صفر یا یک است ؛ هنگامی که این بیتها در کنار یکدیگر قرار می گیرند، کاراکترهایی را شکل می دهند که من و شما قادر به تشخیص آنها می باشیم . در هر بایت هشت بیت، در هر کیلوبایت ۱۰۲۴ بایت، و در هر مگابایت ۱۰۴۸۵۷۶ بایت وجود دارد .
البته نیازی به پیگیری تمام ۱۰۴۸۵۷۶ بایت در مستند یک مگا بایتی خود ندارید ؛ یونیکس نیز برای همین است . فقط باید با استفاده از فرمانی در یونیکس (مانند cat) یا برنامه ای کاربردی (واژه پرداز، صفحه گسترده، مدیر پایگاه داده ها، برنامه نشر رومیزی و غیره) پرونده را ایجاد و آن را نامگذاری کنید .
هر پرونده ای دارای نام می باشد . نام پرونده حداکثر ۱۴ کاراکتر می باشد (در System V Release 4 طول اسامی پرونده می تواند نامحدود باشد، اما اگر ۱۴ کاراکتر اول در دو پرونده مجزا یکسان باشند، Release 4 اسامی این دو پرونده را یکسان در نظر می گیرد) . در سایر نگارشهای یونیکس، مانند BSD، می توان اسامی پرونده بسیار طولانی تر تا ۲۵۶ کاراکتر را داشت.
در هنگام نامگذاری پرونده ها در سیستم یونیکس رسومی وجود دارد . با وجود این که پسوندهای پرونده در یونیکس الزامی نمی باشند، اما این پسوندهای سه کاراکتری که توسط داس تحمیل می گردند، به منظور نشان دادن محتوی پرونده به استانداردی غیررسمی در یونیکس تبدیل شده اند .
ساختار پرونده در یونیکس را می توانید به عنوان نوعی شجره نامه در نظر بگیرید . اگر بخواهیم فنی صحبت کنیم ، سیستم پرونده یونیکس، سیستم پرونده سلسله مراتبی نامیده می شود .
نکته :
از آنجایی که سیستم عامل یونیکس با زبان برنامه نویسی C نوشته شده است نسبت به بزرگی و کوچکی حروف حساس است .
در راس سیستم فایل یونیکس شاخه root قرار دارد که به سادگی شاخه */* نامگذاری شده است و تمام شاخه ها و فایلها را در بر می گیرد. تمام زیر شاخه های دیگر ( Subdirectories ) درون این شاخه قرار می گیرند و کاربران فقط به برخی از آنان دسترسی خواهند داشت . عالیترین سطح دسترسی به سیستم فایل در اختیار کاربری است که ریشه (با تمام زیرشاخه های آن) تسلط دارد . در محیط یونیکس اگر چنین مجوزی داشته با شید با تغییر شاخه به شاخه / در راس سیستم فایل قرار خواهید گرفت که این کار با اجرای دستور زیر ممکن خواهد بود .
cd \
هر فایل درون یکی از شاخه های این ساختار درختی ذخیره می شود و برای دسترسی به آن غیر از نام فایل باید سلسله مراتب شاخه های آن نیز مشخص باشد . مثلا اگر فایلی با نام hack.txt داشته باشید که در شاخه Usr ذخیره شده با آدرس usr/hack.tex قابل شناسایی و ذخیره و بازیابی است .
۳-۴-۳- پوسته یونیکس
هنگامی که با سیستم یونیکس ارتباط برقرار می کنید، فورا به پوسته برقراری ارتباط خود می روید . اطلاعات مربوط به این پوسته، همچنین سایر اطلاعات برقراری ارتباط، و اطلاعات برقراری ارتباط تمام کاربران سیستم، در پرونده /etc/passwd قرار دارد (واضح است که این پرونده ابزاری برای مدیر سیستم می باشد، و برای کاربر مدام نمی باشد) . این پرونده بر حسب کاربر سازمان دهی می شود که در آن هر خط حاوی اطلاعات اولیه ای مانند، ID برقراری ارتباط و غیره درباره هر کاربر می باشد .
آخرین فیلد در خط مربوط به شما، پوسته ای را که بعد از برقراری ارتباط قصد اجرای آن را دارید، فهرست می کند . این امر نقش بسیار مهمی در استفاده روزمره از یونیکس ندارد، اما نشان می دهد که هر جنبه ای از کاربرد یونیکس به نوعی توسط پوسته اداره می شود . پوسته مانند هر برنامه یونیکس یک برنامه می باشد . اما با مسئولیت بسیار مهم و منحصر به فردی تقویت می گردد :
پوسته نقش میانجی بین را بین کاربر و سیستم یونیکس ایفا می کند . به کلامی دیگر, پوسته دستورالعملهای کاربر را به دستورالعملهای قابل رسیدگی برای سیستم یونیکس ترجمه می کند . پوسته تمام جنبه های استفاده از یونیکس را آسان می سازد, به سیستم می گوید که پرونده های به خصوص را در کجا پیدا کند, فهرست شخصی شما در کجا قرار دارد و در کل چگونه با حضورتان به عنوان یک کاربر سروکار داشته باشید . این اطلاعات محیط یونیکس نامیده می شود, واژه ای که با شروع به تغییر دادن و پیشرفته ساختن استفاده خود از یونیکس مکررا با آن برخورد خواهید کرد .
یونیکس, پوسته های بسیاری دارد . در اغلب موارد, تمایل بر این است که از پوشه انتخاب شده توسط مدیر سیستم استفاده کنید, زیرا این کار باعث به وجودآمدن سطحی از انطباق بین کاربران می شود . سایر کاربران در ایستگاههای کاری تک کاربره و ایستگاههای شخصی در انتخاب پوسته کمی از آزادی بیشتری برخوردار هستند . در اینجا برخی از پوسته های معروف توضیح داده می شوند :
• Sh , پوسته Bourene . این پوسته ای است که در سال ۱۹۷۹ با نشر System V از یونیکس عرضه گردید, و از آن موقع تا کنون چندان تغییر نکرده است . این پوسته نام طراح خود, Stephen Bourne را یدک می کشد .
• Ksh , یا پوسته Korn . این پوسته توسط David Korn در آزمایشگاههای بل طراحی گردید, پوسته Korn با افزودن خصوصیات مفیدی که ابتدا در پوسته C معرفی شدند (مانند تاریخچه کار و نامهای مستعار) بر مبنای عملکرد پوسته Bourne ساخته می شود . علاوه بر این دست نوشته ها و برنامه هایی که برای پوسته Bourne نوشته می شوند, بدون هیچ تغییری در پوسته Korn قابل استفاده هستند .
• Csh , پوسته C . این پوسته توسط بیل جوی (بنیانگذار شرکت Sun Microsystems ) در حالی که بر روی نگارش یونیکس برکلی ( یا BSD ) کار می کرد, طراحی گردید . پوسته C با معرفی تاریخچه کار, نامهای مستعار و سایر خصوصیات نسبت به پوسته Burn بهبود می یابد . این پوسته مانند زبان برنامه نویسی C , ساختیافته است . C و یونیکس تاریخچه مشترک مهمی دارند, خود یونیکس به زبان برنامه نویسی C طراحی شد و این عامل مهمی برای بردن آن به بسیاری از معمارریهای متفاوت سخت افزاری بود .
اغلب طراحی برنامه یونیکس به زبان برنامه نویسی C صورت می گیرد .
• Jsh , پوسته کار . گسترشی از پوسته Bourn می باشد . پوسته کار ابزارهایی تخصصی را برای رسیدگی به چندین کار شکل می دهد .
• bash یا Bourn Again Shell . این پوسته توسط Free Software Foundation طراحی گردید . پوسته bash نیز با افزودن خصوصیات مفیدی که در پوسته های C و Korn یافت می شود, بر مبنای پوسته Bourn ساخته می گردد .
۵-۳- پروسه های کلیدی یونیکس
تمام پروسه هایی که به عنوان سرویس دهنده های کلیدی سیستم اجرا می شوند از عمومی ترین آنها یعنی سرویس دهنده وب تا کم کاربردترین آنها (مثل Character Generator) باید توسط پروسه های دیگر راه اندازی و فعال شوند . یعنی پروسه های سرویس دهنده به صورت مستقل و قائم به خود اجرا نخواهند شد بلکه پروسه های کلیدی دیگری آنها را راه اندازی خواهند کرد . به عبارت دیگر هسته خود را درگیر اجرای پروسه های مختلف نمی کند بلکه چند پروسه مدیریتی و کلیدی را اجرا کرده و وظیفه فعال سازی و اجرای پروسه های سرویس دهنده را به این پروسه های کلیدی محول می نماید . این پروسه های کلیدی که در حین راه اندازی سیستم اجرا می شوند به شرح ذیل هستند :
۱-۵-۳- پروسه init
این دایمون معمولا اولین پروسه ای است که پس از هسته, شروع به کار می کند و پدر تمام پروسه های کاربردی است که پس از راه اندازی سیستم, اجرا می شوند . این پروسه پس از پوت شدن سیستم, اسکریپتهای پیکر بندی پیکر بندی را اجرا می نماید تا راه اندازی سیستم با اجرا شدن پروسه های لازم تکمیل گردد . محل قرارگرفتن اسکریپتهای پیکربندی سیستم, به طور معمول /etc/rc.d. /etc/init.d می باشد . بر اساس این فایلها پروسه های ثبت وقایع (logger ), برنامه زمانبندی و پروسه های راه انداز واسطهای شبکه (Network Interface ) پیکربندی و اجرا می شوند . همچنین init , متولی راه اندازی پروسه سرویس دهنده های مهمی است که پس از اجرا به صورت دایمون به یک شماره پورت خاص گوش می دهند, ترافیک بسته های TPC یا UDP را دریافت و پردازش می کنند و با کاربران در تمایل هستند . برخی از این دایمونها عبارتند از :
Httpd : سرویس دهنده وب که تقاضای HTTP و HTTPS را پردازش می کند و به طور معمول به پورت شماره ۸۰ گوش می دهد .
Sendmail : سرویس دهنده پست الکترونیکی در محیط یونیکس که به پورت شماره ۲۵ گوش می کند .
NFS : پروسه سرویس دهنده ای که در محیط یونیکس فایلها را به اشتراک می گذارد . (Network File System ) این سرویس دهنده در ابتدا توسط شرکت Sun Microsystems ابداع شد ولی بعدا تمام سیستمهای عامل سازگار با یونیکس از آن بهره گرفتند .
در ادامه این سه سرویس دهنده را اندکی بیشتر بررسی خواهیم کرد . این پروسه ها پس از اجرا, به شماره پورت مربوطه گوش داده و به حالت انتظار فرو می روند تا زمانی که تقاضای یک ارتباط دریافت شود یا ترافیکی به آن شماره پورت وارد گردد .
دقت کنید که سه سرویس دهنده فوق دارای حجم ترافیک ورود بسیار بالایی هستند و باید به طور دائم در حافظه آماده پردازش این ترافیک باشند لذا احضار آنها روی سیستم فایل تاخیر زیادی به سیستم تحمیل خواهد کرد به همین دلیل این پروسه های سرویس دهنده, به طور مستقل توسط init در حین راه اندازی سیستم اجرا شده و به طور ثابت و دائم در حافظه باقی خواهند ماند . از طرف دیگر سرویسهای دیگری مثل TelNet یا FTP به طور مداوم مورد استفاده قرار نمی گیرند و ترافیک زیادی ندارند لذا به صورت دائم و مستقل به حافظه بار نخواهند شد .
اگر تمام پروسه های سرویس دهنده ای که به یک شماره پورت خاص گوش می دهند به درون حافظه بار شوند و به طور مستقل و دائم به حالت انتظار بروند, کارآیی سیستم را کاهش داده و منابع آن با لاخص حافظه را تلف خواهند کرد . برای افزایش کارآیی و صرفه جویی در منابع سیستم به غیر از پروسه های Httpd , NFS و Sendmail که مستقیما توسط init اجرا می شوند, هیچ پروسه ای نمی تواند به طور مستقل به یک شماره پورت گوش بدهد . در یونیکس پروسه ای به نام (Internet Daemon) inetd وجود دارد که به تمام شماره پورتهای TCP یا UDP گوش می دهد و در هنگام ورود ترافیک به هر یک از پورتها پروسه های متناظر با آن را فراخوانی کرده و اجرا می نماید .
- در صورتی که به هر دلیلی موفق به دانلود فایل مورد نظر نشدید با ما تماس بگیرید.