سیستم‌عامل

از ویکی‌پدیا، دانشنامهٔ آزاد
(تغییرمسیر از سیستم عامل)
پرش به: ناوبری، جستجو
فارسیрусский

سیستم‌عامل یا سامانهٔ عامل[۱] نرم‌افزاری است که مدیریت منابع رایانه را به عهده گرفته و بستری را فراهم می‌سازد که نرم‌افزار کاربردی اجرا شده و از خدمات آن استفاده کنند. سیستم‌عامل جزء ضروری‌ترین نرم‌افزارهای یک سیستم کامپیوتری است. سیستم‌عامل خدماتی به برنامه‌های کاربردی و کاربر ارائه می‌دهد. برنامه‌های کاربردی یا از طریق واسط‌های برنامه‌نویسی کاربردی[یادداشت ۱] یا از طرق فراخوانی‌های سیستم به این خدمات دسترسی دارند. با فراخوانی این واسط‌ها، برنامه‌های کاربردی می‌توانند سرویسی را از سیستم‌عامل درخواست کنند، پارامترها را انتقال دهند، و پاسخ عملیات را دریافت کنند. ممکن است کاربران با بعضی انواع واسط کاربری نرم‌افزار مثل واسط خط فرمان یا یک واسط گرافیکی کاربر با سیستم‌عامل تعامل کنند. برای کامپیوترهای دستی و رومیزی، عموماً واسط کاربری به عنوان بخشی از سیستم‌عامل در نظر گرفته می‌شود. در سیستم‌های بزرگ و چند کاربره مثل یونیکس و سیستم‌های شبیه یونیکس، واسط کاربری معمولاً به عنوان یک برنامه کاربردی که خارج از سیستم‌عامل اجرا می‌شود پیاده‌سازی می‌شود. نمونه‌هایی از محبوب‌ترین سیستم‌عامل‌های نوین شامل: اندروید، بی‌اس‌دی، آی‌اواس، لینوکس، اواس ده، کیوان‌اکس، مایکروسافت ویندوز، ویندوز فون و زد/اواس می‌باشند.

انواع سیستم‌عامل[ویرایش]

سیستم‌های بی‌درنگ[ویرایش]

سیستم‌های بی‌درنگ یا زمان واقعی یک سیستم عامل چند وظیفه‌ای است که معمولاً بعنوان یک کنترل کننده در یک کاربرد خاص استفاده می‌شوند. سیستم در این حالت می‌بایست در زمانی مشخص و معین حتماً جواب مورد نظر را بدهد. سیستم‌های کنترل آزمایش‌های علمی، تصویربرداری پزشکی، کنترل صنعتی و برخی از سیستم‌های نمایش از این دسته‌اند. هدف اصلی استفاده از سیستم‌های بی‌درنگ واکنش سریع و تضمین شده در برابر یک رویداد خارجی می‌باشد. در سیستم‌های بی‌درنگ معمولاً وسایل ذخیره‌سازی ثانویه وجود ندارد و به جای آن از حافظه‌های ROM استفاده می‌شود. سیستم‌عامل‌های پیشرفته نیز در این سیستم‌ها وجود ندارند چرا که سیستم‌عامل کاربر را از سخت‌افزار جدا می‌کند و این جداسازی باعث عدم قطعیت در زمان پاسخ‌گویی می‌شود. سیستم‌هایی که در آن مهلت زمانی[یادداشت ۲] باید پاسخ داده شود را بی‌درنگ سخت و سیستم‌هایی که مهلت زمانی را پشتیبانی نمی‌کنند بی‌درنگ نرم می‌نامند. از کاربرد سیستم‌های بی‌درنگ سخت می‌توان به کنترل موتور یک خودرو (پاسخ با تأخیر می‌تواند نتایج فاجعه‌باری را به همراه داشته باشد) و در سیستم‌های بی‌درنگ نرم می‌توان به اسکن بارکد در پایانه فروشگاه (با اینکه سرعت پاسخ‌دهی باید سریع باشد اما به حادّی سیستم‌های سخت نمی‌باشد) اشاره کرد.[۲][۳]

سیستم‌های چند کاربره[ویرایش]

سیستم‌های چند کاربره اجازه می‌دهند تا کاربران متعدد بصورت همزمان به یک سیستم کامپیوتری دسترسی داشته باشند. سیستم‌های اشتراک زمانی و کارساز وب را می‌توان بعنوان سیستم‌های چند کاربره طبقه‌بندی کرد. در سیستم‌های اشتراک زمانی تنها یک پردازنده قرار دارد که توسط مکانیزم‌های زمانبندی بین برنامه‌های مختلف کاربرها با سرعت زیاد سوئیچ می‌شود و بنابراین هر کاربر تصور می‌کند کل رایانه در اختیار اوست.[۲]

سیستم‌عامل تک پردازنده[ویرایش]

این نوع سیستم‌عامل‌ها، سیستم‌عامل‌های نسل چهارم (نسل فعلی) هستند که بر روی یک پردازنده اجرا می‌شوند. از قبیل XP,Vista,98,Me که بیشتر محصول شرکت مایکرو سافت می‌باشند.

سیستم‌عامل شبکه‌ای[ویرایش]

سیستم عاملهایی مثل ناول نت که بیشترین استفاده و امکانات این سیستم عامل برای شبکه می‌باشد.

سیستم‌عامل توزیع شده[ویرایش]

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

دلایل ایجاد سیستم‌عامل[ویرایش]

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

وظایف سیستم‌عامل[ویرایش]

سیستم‌عامل دو کار عمده انجام می‌دهد:

  1. در نگرش پایین به بالا، منابع منطقی (مانند فایل‌ها) و منابع فیزیکی (مانند دستگاه‌های سخت‌افزاری) رایانه را مدیریت و کنترل می‌کند.
  2. در نگرش بالا به پایین، وظیفه سیستم‌عامل این است که یک ماشین توسعه یافته[یادداشت ۳] یا ماشین مجازی را به کاربران ارائه کند تا آنها بتوانند آسان‌تر برنامه‌نویسی نمایند و درگیر پیچیدگی‌های سخت‌افزاری رایانه نشوند.[نیازمند منبع]

به طور کلی، وظایف سیستم‌عامل شامل موارد زیر است:

سیستم‌عامل‌های فعلی[ویرایش]

در سالهای اخیر رقابت بیشتر بین سیستم‌عامل‌های مایکروسافت ویندوز، اپل مک اواس و لینوکس جریان دارد که آماری که در ماه ژوییه ۲۰۱۱ توسط وب‌گاه W3Schools به ثبت رسیده حاکی از آن است که هم اکنون بیش از ۸۰ درصد کاربران اینترنت از سیستم‌عامل ویندوز استفاده می‌کنند.

آمار موجود که مربوط به اوت ۲۰۱۰ می‌باشد به شرح زیر است:

از سیستم‌عامل‌های مشهور کامپیوترهای شخصی می‌توان به اسامی زیر اشاره کرد:

همچنین از سیستم‌عامل‌های موجود روی گوشی‌های تلفن همراه نسل جدید می‌توان به اسامی زیر اشاره کرد:

تاریخچه سیستم عامل[ویرایش]

در آغاز[ویرایش]

اولین کامپیوترها فاقد سیستم‌عامل بودند. در اوایل سال ۱۹۶۴ فروشندگان کامپیوترهای تجاری ابزار کاملاً گسترده‌ای را برای تسهیل توسعه، زمانبندی، و اجرای کارها روی یک سیستم پردازش دسته‌ای فراهم می‌کردند. برای مثال رایانه تولید شده توسط UNI VAC.

در ابتدا سیستم‌عامل روی مین فریم‌ها مستقر می‌شد و کمی بعد سیستم‌عامل میکروکامپیوترهای ابتدایی که فقط از یک برنامه در هر زمان پشتیبانی می‌کردند و به یک زمانبند بسیار ابتدایی نیاز داشتند. هر برنامه زمانی که در حال اجرا بود تحت کنترل کامل ماشین قرار داشت. چند وظیفه‌ای (اشتراک زمانی) اولین بار در مین فریم‌ها و در ۱۹۶۰ عرضه شد. ابتدا کامپیوترها بسیار بزرگ و جاگیر بودند اما امروزه در کف یک دست جا می‌گیرند.

مین فریم‌ها[ویرایش]

میکرو کامپیوترها[ویرایش]

میکروکامپیوترهای اولیه نیاز یا ظرفیت داشتن یک سیستم‌عامل پیچیده که روی مین فریم‌ها توسعه یافته بود نداشتند.

ویژگی‌ها[ویرایش]

اجرای برنامه[ویرایش]

وقفه‌ها[ویرایش]

دسته‌بندی وقفه‌ها[ویرایش]

  • برنامه وقفه‌هایی که به دلیل بعضی شرایط حاصل از یک دستورالعمل بروز می‌کند. شامل سریز شدن محاسباتی، تقسیم بر صفر، تلاش برای اجرای یک دستورالعمل ماشین غیرمجاز و مراجعه به آدرسی خارج از فضای مجاز کاربر.
  • زمان‌سنج وقفه‌ای که توسط زمان‌سنج داخلی تولید می‌شود. این وقفه به سیستم‌عامل اجازه می‌دهد، بعضی اعمال را به طور مرتب انجام دهد.
  • ورودی/خروجیوقفه‌هایی که به وسیله کنترل کننده ورودی/خروجی تولید می‌شود، تا کامل شدن طبیعی یک عمل یا شرایط خطا را اعلام نماید.
  • نقص سخت‌افزار وقفه‌هایی که با نقص سخت‌افزاری تولید می‌شود، مثل نقص برق یا خطای توازن حافظه.

حالت حفاظت شده و ناظر[ویرایش]

مدیریت حافظه[ویرایش]

حافظه مجازی[ویرایش]

چند وظیفه‌ای[ویرایش]

دسترسی به دیسک و سیستم فایل[ویرایش]

راه اندازهای دستگاه‌ها[ویرایش]

شبکه[ویرایش]

امنیت[ویرایش]

جستارهای وابسته[ویرایش]

یادداشت[ویرایش]

  1. Application User Interface-APIs
  2. Deadline
  3. Extended Machine
  4. Multiaccess
  5. Concurrent
  6. Resource Sharing
  7. Deadlock
  8. Race Condition
  9. Interlock
  10. Starvation

منابع[ویرایش]

  1. فرهنگ واژه‌های مصوّب فرهنگستان: ۱۳۷۶ تا ۱۳۸۵، بخش دوم فارسی، صفحهٔ ۳۹۸. (دانلود از فرهنگستان)
  2. ۲٫۰ ۲٫۱ مقسمی, حمیدرضا. «فصل یک». در سیستم عامل. صفحه 32: انتشارات گسترش علوم پایه, 1389. ISBN ‎978-964-49-303-8. 
  3. «Real - time Operating System s that Support Java». W. Arnold, K. Branson, D. Chung, R. Pesigan University of California, San Diego. بازبینی‌شده در ۱۷ اوت ۲۰۱۴. 
  • آندرواس تننباوم و وودهال، طراحی و پیاده‌سازی سیستمهای عامل. چاپ چهارم ویرایش دوم ۱۳۸۱.

Операцио́нная систе́ма, сокр. ОС (англ. operating system, OS) — комплекс взаимосвязанных программ, предназначенных для управления ресурсами компьютера и организации взаимодействия с пользователем.

В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами (драйверами) — с одной стороны — и прикладными программами с другой.

Разработчикам программного обеспечения операционная система позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций (см.: интерфейс программирования приложений).

В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Windows, UNIX и UNIX-подобные системы.

История

Предшественником операционных систем следует считать служебные программы (загрузчики и мониторы), а также библиотеки часто используемых подпрограмм, начавшие разрабатываться с появлением универсальных компьютеров 1-го поколения (конец 1940-х годов). Служебные программы минимизировали физические манипуляции оператора с оборудованием, а библиотеки позволяли избежать многократного программирования одних и тех же действий (осуществления операций ввода-вывода, вычисления математических функций и т. п.).

В 19501960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы.

Пакетный режим

Необходимость оптимального использования дорогостоящих вычислительных ресурсов привела к появлению концепции «пакетного режима» исполнения программ. Пакетный режим предполагает наличие очереди программ на исполнение, причём система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора.

Разделение времени и многозадачность

Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких программ.

Необходимость в разделении времени (многозадачности, мультипрограммировании) проявилась ещё сильнее при распространении в качестве устройств ввода-вывода телетайпов (а позднее, терминалов с электронно-лучевыми дисплеями) (1960-е годы). Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в «монопольном» режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов.

Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.

Разделение полномочий

Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой.

Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора — «реальным» (в котором исполняемой программе доступно всё адресное пространство компьютера) и «защищённым» (в котором доступность адресного пространства ограничена диапазоном, выделенным при запуске программы на исполнение).

Масштаб реального времени

Применение универсальных компьютеров для управления производственными процессами потребовало реализации «масштаба реального времени» («реального времени») — синхронизации исполнения программ с внешними физическими процессами.

Включение функции масштаба реального времени позволило создавать решения, одновременно обслуживающие производственные процессы и решающие другие задачи (в пакетном режиме и/или в режиме разделения времени).

Файловые системы и структуры

Постепенная замена носителей с последовательным доступом (перфолент, перфокарт и магнитных лент) накопителями произвольного доступа (на магнитных дисках).

Файловая система — способ хранения данных на внешних запоминающих устройствах.

Функции

Основные функции:

OS/360 использовалась на большинстве компьютеров IBM начиная с 1966, включая те компьютеры, которые помогали NASA отправить человека на Луну.

Дополнительные функции:

  • Параллельное или псевдопараллельное выполнение задач (многозадачность).
  • Эффективное распределение ресурсов вычислительной системы между процессами.
  • Разграничение доступа различных процессов к ресурсам.
  • Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам.
  • Взаимодействие между процессами: обмен данными, взаимная синхронизация.
  • Защита самой системы, а также пользовательских данных и программ от действий пользователей (злонамеренных или по незнанию) или приложений.
  • Многопользовательский режим работы и разграничение прав доступа (см.: аутентификация, авторизация).

Понятие

Существуют две группы определений операционной системы: «набор программ, управляющих оборудованием» и «набор программ, управляющих другими программами». Обе они имеют свой точный технический смысл, который связан с вопросом, в каких случаях требуется операционная система.

Есть приложения вычислительной техники, для которых операционные системы излишни. Например, встроенные микрокомпьютеры, содержащиеся во многих бытовых приборах, автомобилях (иногда по десятку в каждом), простейших сотовых телефонах, постоянно исполняют лишь одну программу, запускающуюся по включении. Многие простые игровые приставки — также представляющие собой специализированные микрокомпьютеры — могут обходиться без операционной системы, запуская при включении программу, записанную на вставленном в устройство «картридже» или компакт-диске.

Операционные системы нужны:

  • если нужен универсальный механизм сохранения данных;
  • для предоставления системным библиотекам часто используемых подпрограмм;
  • для распределения полномочий;
  • необходима возможность имитации «одновременного» исполнения нескольких программ на одном компьютере;
  • для управления процессами выполнения отдельных программ.

Таким образом, современные универсальные операционные системы можно охарактеризовать, прежде всего, как:

  • использующие файловые системы (с универсальным механизмом доступа к данным),
  • многопользовательские (с разделением полномочий),
  • многозадачные (с разделением времени).

Многозадачность и распределение полномочий требуют определённой иерархии привилегий компонентов в самой операционной системе. В составе операционной системы различают три группы компонентов:

Большинство программ, как системных (входящих в операционную систему), так и прикладных, исполняются в непривилегированном («пользовательском») режиме работы процессора и получают доступ к оборудованию (и, при необходимости, к другим ресурсам ядра, а также ресурсам иных программ) только посредством системных вызовов. Ядро исполняется в привилегированном режиме: именно в этом смысле говорят, что система (точнее, её ядро) управляет оборудованием.

В определении состава операционной системы значение имеет критерий операциональной целостности (замкнутости): система должна позволять полноценно использовать (включая модификацию) свои компоненты. Поэтому в полный состав операционной системы включают и набор инструментальных средств (от текстовых редакторов до компиляторов, отладчиков и компоновщиков).

Ядро

Ядро — центральная часть операционной системы, управляющая выполнением процессов, ресурсами вычислительной системы и предоставляющая процессам координированный доступ к этим ресурсам. Основными ресурсами являются процессорное время, память и устройства ввода-вывода. Доступ к файловой системе и сетевое взаимодействие также могут быть реализованы на уровне ядра.

Как основополагающий элемент операционной системы, ядро представляет собой наиболее низкий уровень абстракции для доступа приложений к ресурсам вычислительной системы, необходимым для их работы. Как правило, ядро предоставляет такой доступ исполняемым процессам соответствующих приложений за счёт использования механизмов межпроцессного взаимодействия и обращения приложений к системным вызовам ОС.

Описанная задача может различаться в зависимости от типа архитектуры ядра и способа её реализации.

Объекты ядра ОС:

Существующие операционные системы

UNIX, стандартизация операционных систем и POSIX

К концу 1960-х годов отраслью и научно-образовательным сообществом был создан целый ряд операционных систем, реализующих все или часть очерченных выше функций. К ним относятся Atlas (Манчестерский университет), CTTS и ITSS (Массачусетский технологический институт, MIT), THE (Эйндховенский технологический университет), RS4000 (Университет Орхуса) и др. (всего эксплуатировалось более сотни различных ОС).

Наиболее развитые операционные системы, такие как OS/360 (IBM), SCOPE (CDC) и завершённый уже в 1970-х годах Multics (MIT и Bell Labs), предусматривали возможность исполнения на многопроцессорных компьютерах.

Эклектичный характер разработки операционных систем привёл к нарастанию кризисных явлений, прежде всего, связанных с чрезмерными сложностью и размерами создаваемых систем. Системы были плохо масштабируемыми (более простые не могли использовать все возможности крупных вычислительных систем; более развитые неоптимально исполнялись на малых или не могли исполняться на них вовсе) и полностью несовместимыми между собой, их разработка и совершенствование затягивались.

Задуманная и реализованная в 1969 году Кеном Томпсоном при участии нескольких коллег (включая Денниса Ритчи и Брайана Кернигана), операционная система UNIX (первоначально UNICS, что обыгрывало название Multics) вобрала в себя многие черты более ранних систем, но обладала целым рядом свойств, отличающих её от большинства предшественниц:

  • простая метафорика (два ключевых понятия: вычислительный процесс и файл);
  • компонентная архитектура: принцип «одна программа — одна функция» плюс мощные средства связывания различных программ для решения возникающих задач («оболочка»);
  • минимизация ядра (кода, выполняющегося в «реальном» (привилегированном) режиме процессора) и количества системных вызовов;
  • независимость от аппаратной архитектуры и реализация на машиннонезависимом языке программирования (язык программирования Си стал побочным продуктом разработки UNIX);
  • унификация файлов.

UNIX, благодаря своему удобству прежде всего в качестве инструментальной среды (среды разработки), обрела популярность сначала в университетах, а затем и в отрасли, получившей прототип единой операционной системы, которая могла использоваться на самых разных вычислительных системах и, более того, могла быть быстро и с минимальными усилиями перенесена на любую вновь разработанную аппаратную архитектуру.

В конце 1970-х годов сотрудники Калифорнийского университета в Беркли внесли ряд усовершенствований в исходные коды UNIX, включая работу с протоколами TCP/IP. Их разработка стала известна под именем BSD (Berkeley Software Distribution).

Задачу разработать независимую (от авторских прав Bell Labs) реализацию той же архитектуры поставил и Ричард Столлман, основатель проекта GNU.

Благодаря конкурентности реализаций архитектура UNIX стала вначале фактическим отраслевым стандартом, а затем обрела статус и стандарта юридического — ISO/IEC 9945[1] (POSIX).

Только системы, отвечающие спецификации Single UNIX Specification, имеют право носить имя UNIX. К таким системам относятся AIX, HP-UX, IRIX, Mac OS X, SCO OpenServer, Solaris, Tru64 и z/OS.

Операционные системы, следующие стандарту POSIX или опирающиеся на него, называют «POSIX-совместимыми» (чаще встречается словоупотребление «UNIX-подобные» или «семейство UNIX», но оно противоречит статусу торгового знака «UNIX», принадлежащего консорциуму The Open Group и зарезервированному для обозначения только операционных систем, строго следующих стандарту). Сертификация на совместимость со стандартом платная, из-за чего некоторые системы не проходили этот процесс, однако считаются POSIX-совместимыми по существу.

К UNIX-подобным относятся операционные системы, основанные на последней версии UNIX, выпущенной Bell Labs (System V), на разработках университета Беркли (FreeBSD, OpenBSD, NetBSD), на основе Solaris (OpenSolaris, BeleniX, Nexenta), а также Linux, разработанная в части утилит и библиотек проектом GNU и в части ядра — сообществом, возглавляемым Линусом Торвальдсом.

Стандартизация операционных систем преследует цель упрощения замены самой системы или оборудования при развитии вычислительной системы или сети и упрощении переноса прикладного программного обеспечения (строгое следование стандарту предполагает полную совместимость программ на уровне исходного текста; из-за профилирования стандарта и его развития некоторые изменения бывают всё же необходимы, но перенос программы между POSIX-совместимыми системами обходится на порядки дешевле, чем между альтернативными), а также преемственность опыта пользователей.

Самым заметным эффектом существования этого стандарта стало эффективное разворачивание Интернета в 1990-х годах.

Пост-UNIX-архитектуры

Коллектив, создавший UNIX, развил концепцию унификации объектов операционной системы, включив в исходную концепцию UNIX «устройство — это тоже файл» также и процессы, и любые другие системные, сетевые и прикладные сервисы, создав новую концепцию: «что угодно — это файл». Эта концепция стала одним из основных принципов системы Plan 9 (название было позаимствовано из фантастического триллера «План 9 из открытого космоса» Эдварда Вуда-младшего), призванной преодолеть принципиальные недостатки дизайна UNIX и сменившей «рабочую лошадку» UNIX System V на компьютерах сети Bell Labs в 1992 году.

Кроме реализации всех объектов системы в виде файлов и размещения их на едином и персональном для каждого терминала вычислительной сети пространстве (namespace), были пересмотрены другие архитектурные решения UNIX. Например, в Plan 9 отсутствует понятие «суперпользователь», и, соответственно, исключаются любые нарушения режима безопасности, связанные с нелегальным получением прав суперпользователя в системе. Для представления (хранения, обмена) информации Роб Пайк и Кен Томпсон разработали универсальную кодировку UTF-8, на сегодняшний день ставшую стандартом де-факто. Для доступа к файлам используется единый универсальный протокол 9P, по сети работающий поверх сетевого протокола (TCP или UDP). Таким образом, для прикладного ПО сети не существует — доступ к локальным и к удалённым файлам единообразен. 9P — байт-ориентированный протокол, в отличие от других подобных протоколов, являющихся блок-ориентированными. Это также результат работы концепции: доступ побайтно — к унифицированным файлам, а не поблочно — к разнообразным и сильно изменяющимися с развитием технологий устройствам. Для контроля доступа к объектам не требуется иных решений, кроме уже существующего в операционной системе контроля доступа к файлам. Новая концепция системы хранения избавила администратора системы от изнурительного труда по сопровождению архивов и предвосхитила современные системы управления версиями файлов.

Операционные системы, созданные на базе или идеях UNIX, такие как всё семейство BSD и системы Linux, постепенно перенимают новые идеи из Bell Labs. Возможно, эти новые идеи ждёт большое будущее и признание ИТ-разработчиков.

Новые концепции были использованы Робом Пайком в Inferno.

На основе Plan 9 в Испании разрабатываются системы Off++ и Plan B, носящие экспериментальный характер.

К попыткам создать пост-UNIX-архитектуру можно также отнести разработку языка программирования и операционной среды Оберон в Швейцарской высшей технической школе (ETH Zurich) под руководством профессора Никлауса Вирта.

См. также

Примечания

  1. Свежая версия ISO/IEC 9945 принята Международной организацией по стандартизации (ISO) в 2003 году.

Литература

  • Гордеев А. В. Операционные системы: Учебник для вузов. — 2-е изд. — СПб.: Питер, 2007. — 416 с. — ISBN 978-5-94723-632-3.
  • Деннинг П. Дж., Браун Р. Л. Операционные системы // Современный компьютер. — М., 1986.
  • Иртегов Д. В. Введение в операционные системы. — 2-е изд. — СПб.: BHV-СПб, 2007. — ISBN 978-5-94157-695-1.
  • Керниган Б. У., Пайк Р. У. UNIX — универсальная среда программирования = The UNIX Programming Environment. — М., 1992.
  • Олифер В. Г., Олифер Н. А. Сетевые операционные системы. — СПб.: Питер, 2002. — 544 с. — ISBN 5-272-00120-6.
  • Столлингс У. Операционные системы = Operating Systems: Internals and Design Principles. — М.: Вильямс, 2004. — 848 с. — ISBN 0-1303-1999-6.
  • Таненбаум Э. С. Многоуровневая организация ЭВМ = Structured Computer Organization. — М.: Мир, 1979. — 547 с.
  • Таненбаум Э. С. Современные операционные системы = Modern Operating Systems. — 2-е изд. — СПб.: Питер, 2005. — 1038 с. — ISBN 5-318-00299-4.
  • Таненбаум Э. С., Вудхалл А. С. Операционные системы. Разработка и реализация = Operating Systems: Design and Implementation. — 3-е изд. — СПб.: Питер, 2007. — 704 с. — ISBN 978-5-469-01403-4.
  • Шоу А. Логическое проектирование операционных систем = The Logical Design of Operating Systems. — М.: Мир, 1981. — 360 с.
  • Рэймонд Э. С. Искусство программирования для UNIX = The Art of UNIX Programming. — М.: Вильямс, 2005. — 544 с. — ISBN 5-8459-0791-8.
  • Mark G. Sobell. UNIX System V. A Practical Guide. — 3rd ed. — 1995.

Ссылки