معماری یونیکس

**معماری [[یونیکس]]** یک معماری سیستم برای سیستم‌عامل کامپیوتر است که از فلسفه یونیکس پیروی می‌کند. این معماری ممکن است به استانداردهایی مانند مشخصات یونیکس واحد (SUS) یا مشابه آن استاندارد پازیکس از مؤسسه مهندسان برق و الکترونیک پایبند باشد. هیچ مقاله منتشر شده‌ای نمی‌تواند تمام مطالب سیستم عامل‌ها با معماری یونیکس را توصیف کند و این مسئله تا حدی تبعات جنگ یونیکس‌ها می‌باشد.

## تعریف
سیستم عامل‌های بسیاری هستند که معماری آن‌ها شبه‌یونیکس است که یک مثال قابل توجه آن توزیع لینوکس می‌باشد. تفاوت‌ها میان سیستم‌های یونیکس و سیستم‌های شبه یونیکس موضوع اصلی درگیری‌های قانونی میان صاحبان نام تجاری یونیکس، اوپن گروپ، و بعضی توسعه دهنده‌ها بوده که علت آن، اعتراض صاحبان نام تجاری یونیکس به عبارت «شبه یونیکس» و عبارت‌های مشابه آن است.

برای مشاهده تفاوت‌ها میان معماری‌های مشخصات یونیکس واحد (SUS) و سایر معماری‌های مشابه، صفحه شبه‌یونیکس را مشاهده کنید.

## هسته (سیستم عامل)
هسته یونیکس - اجزاء کلیدی یا هسته سیستم عامل - شامل بسیاری از زیرسیستم‌ها مانند مدیریت فرایند، زمان‌بندی، مدیریت فایل، مدیریت دستگاه، مدیریت شبکه، مدیریت حافظه، مدیریت وقفه و مدیریت سخت‌افزارها می‌باشد.

هر یک از زیرسیستم‌ها امکانات مربوط به خود را دارند:
* همروندی: از آنجایی که یونیکس یک سیستم عامل چند پردازشی است، بسیاری از فرایندها به صورت هم‌زمان اجرا می‌شوند تا باعث بالا رفتن عملکرد سیستم شوند.
* حافظه مجازی: زیرسیستم مدیریت حافظه از ایده حافظه مجازی استفاده می‌کند و برای همین دلیلی برای نگرانی کاربران برای اندازه برنامه قابل اجرا و اندازه رم استفاده شده وجود ندارد.
* صفحه‌بندی: این کار تکنیکی برای به حداقل رساندن گسستگی درونی و همچنین بیرونی در حافظه فیزیکی است.
* فایل سیستم مجازی (VFS): فایل سیستم مجازی یک سامانه فایل‌بندی است که به کاربر کمک می‌کند تا پیچیدگی‌های مختلف سامانه فایل بندی را پنهان کند. یک کاربر می‌تواند از همان فراخوانی‌های مربوط به سیستم فایل استاندارد برای دسترسی به سیستم‌های فایل مختلف استفاده کند.

هسته خدمات گفته شده بالا و بسیاری دیگر از خدمات را فراهم می‌کند: وقفه و مدیریت تله (Trap)، حفظ فاصله میان کاریر و فضای سیستم، تماس با سامانه (System Call)، مدیریت تایمر و ساعت، مدیریت توصیف‌گر پرونده.

## امکانات
بعضی از امکانات کلیدی ایده معماری یونیکس به شرح زیر می‌باشد:
* سیستم‌های تحت یونیکس از هسته سیستم عامل متمرکز استفاده می‌کنند که فعالیت‌های سیستم و فرایند را مدیریت می‌کند.
* تمام نرم‌افزارهای غیر هسته در فرآیندهای جداگانه و مدیریت شده توسط هسته سازماندهی شده‌اند.
* سیستم‌های یونیکس چند منظوره پیشگیرانه هستند: چندین فرایند می‌توانند به‌طور همزمان یا در بازه‌های زمانی کوچک و تقریباً همزمان اجرا شوند و هر فرایند می‌تواند قطع شود و توسط هسته از اجرا خارج شود. این کار به عنوان مدیریت ریسمان شناخته می‌شود.
* فایل‌ها بر روی دیسک در یک سیستم فایل سلسله مراتبی، با یک مکان واحد در بالای سیستم با هر دو فایل و دایرکتوری، زیر شاخه‌ها، زیر زیر شاخه‌ها و غیره در آن ذخیره می‌شوند.
* با چند استثنا، دستگاه‌ها و برخی از انواع ارتباطات بین فرایندها به صورت فایل یا شبه فایل در سلسله مراتب سیستم فایل مدیریت و قابل مشاهده هستند. این به عنوان همه چیز یک فایل است شناخته می‌شود. با این حال، لینوس توروالدز بیان می‌کند که این نادرست است و بهتر است به عنوان «همه چیز جریانی از بایت ها» بازنویسی شود.

سیستم عامل یونیکس از ویژگی‌ها و قابلیت‌های زیر پشتیبانی می‌کند:
* چند منظوره و چند کاربره هستند
* رابط برنامه‌نویسی
* استفاده از فایل‌ها به عنوان انتزاع از دستگاه‌ها و اشیاء دیگر
* شبکه داخلی (TCP/IP استاندارد می‌باشد)
* فرایندهای خدمات مداوم سیستم "Daemons" گفته می‌شوند و توسط init یا inet مدیریت می‌شوند.

## نقد
کتاب راهنمای یونیکس‌بیزاران بعضی از امکانات گفته شده فوق را تحت عنوان شکست از نقطه نظر کاربر معرفی می‌کند. با این حال، اگرچه برخی از اطلاعات کاملاً قدیمی هستند و نمی‌توان آنها را برای یونیکس‌های مدرن یا سیستم عامل‌های مشابه یونیکس مانند لینوکس اعمال کرد. اریک ریموند کشف کرده‌است که بسیاری از مسائل همچنان وجود دارند، در حالی که برخی دیگر حل شده‌اند. ریموند نتیجه می‌گیرد که همه مفاهیم پشت یونیکس را نمی‌توان غیرکاربردی تلقی کرد، حتی اگر قصد کتاب ممکن است این باشد که یونیکس را ضعیف نشان دهد بدون اینکه بحث با توسعه دهندگان را تشویق کند تا در واقع مشکلات را برطرف کنند.

## منابع

رده:سیستم‌عامل‌ها بر پایه معماری
رده:مقاله‌های ایجادشده توسط ایجادگر
رده:یونیکس
رده:معماری رایانه