Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lekcija_Modul_1.docx
Скачиваний:
1
Добавлен:
14.08.2019
Размер:
53.16 Кб
Скачать
      1. Історія minix 3

За часів молодості UNIX (версії 6) її вихідні коди були широко

доступні за ліцензією AT & T і активно вивчалися. Джон Лайонс (John Lions) з

університету Нового Південного Уельсу в Австралії навіть написав невелику

брошуру, крок за кроком описує роботу UNIX [82]. З дозволу AT & T

ця брошура використовувалася в багатьох університетських курсах по

операційним системам. З виходом версії 7 стало ясно, що система UNIX перетворилася в

дорогий комерційний продукт, тому ліцензія, під якою поширювалася

версія 7, забороняла викладання вихідного коду на навчальних курсах, щоб не

піддавати ризику його статус комерційного секрету. Тому багато

університети просто припинили вивчення UNIX, задовольняючись однією теорією.

На жаль, вивчення однієї тільки теорії формує у студентів

однобокий погляд на те, який насправді може бути операційна система.

У книгах і курсах, присвячених операційним системам, в подробицях

розглядаються чисто теоретичні питання, наприклад алгоритми планування

планування, які на практиці не настільки важливі. Дійсно важливі речі, такі

як введення-виведення та файлові системи, часто опускаються, так як їм не

присвячено досить теорії.

Щоб виправити ситуацію, один з авторів цієї книги (Е. Таненбаум) вирішив

написати власну операційну систему, яка з точки зору

користувача сумісна з UNIX, але всередині абсолютно самостійна. Так як у цій

системі не використовується ні строчки коду AT & T, вона не потрапляє під дію

ліцензійних обмежень і може вільно використовуватися при навчанні.

Таким чином, студенти можуть «розкривати» реальну операційну систему,

щоб побачити, як вона влаштована зсередини, точно так само, як студенти-медики

розкривають жаб. Назва MINIX походить від mini-UNIX, так як ця

система досить мала, щоб навіть початківець міг зрозуміти, як вона працює.

У MINIX є і ще одна перевага перед UNIX. Вона на десять років молодше

UNIX, тому її код більшою мірою має модульної структурою.

Наприклад, починаючи з першої версії MINIX, файлова система і менеджер пам'яті

взагалі не є частиною операційної системи, а працюють як окремі

користувальницькі програми. В поточному номері ОС (MINIX 3) така

модульність поширилася і на драйвери пристроїв введення-виведення - всі вони, за

винятком драйвера годин, виконуються в режимі користувача. Інше

відмінність у тому, що система UNIX створювалася, щоб бути ефективною, а MINIX -

щоб бути зрозумілою (наскільки може бути зрозумілим текст будь-якої програми

з тисяч сторінок). Тому, наприклад, в коді системи MINIX є

безліч коментарів.

ОС MINIX розроблялася в розрахунку на сумісність з UNIX версії 7. Ця

версія була обрана за основу завдяки її простоті і елегантності. Іноді

кажуть, що версія 7 краще не тільки в порівнянні з попередніми версіями, але

і в порівнянні з наступними. З пришестям POSIX, розвиток MINIX

початок прагнути до нового стандарту, підтримуючи в той же час зворотну

сумісність з існуючими програмами. Це - звичайний для комп'ютерної

індустрії шлях розвитку, так як жоден виробник не захоче постачати

систему, якої ніхто не може користуватися. Розглянута в цій книзі

система MINIX версії 3 базується на стандарті POSIX.

Як і UNIX, ОС MINIX написана на мові програмування С, щоб

спростити її перенесення на різні комп'ютери. Перша реалізація призначалася

для IBM PC, а потім система була перенесена на цілий ряд інших платформ.

Притримуючись філософії «менше та краще», MINIX спочатку не

вимагала для роботи жорсткого диска, тим самим вписуючись в студентський

бюджет (зараз це може здатися дивним, але в середині 80-х, коли ОС

MINIX вперше побачила світ, жорсткі диски все ще були дорогої

дивиною). З часом і функціональність, і об'єм системи росли, і в підсумку

потрібен жорсткий диск. Але філософія MINIX не була забута, і для

роботи цілком достатньо розділу об'ємом 200 Мбайт. На противагу цьому,

навіть невелика система Linux на сьогоднішній день потребує 500 Мбайт

дискового простору, а для установки основних програм необхідно

кілька гігабайтів.

Для середнього користувача, що сидить за IBM PC, MINIX мало відрізняється від

UNIX. Є стандартні програми, такі як cat, grep, Is, make, що

виконують ті ж дії, що і їх аналоги в UNIX. Як і сама операційна

система, ці програми були повністю переписані автором, студентами і

деякими іншими присвяченими людьми, щоб уникнути використання коду,

є власністю AT & T або інших компаній. В даний час

існує велика кількість безкоштовно розповсюджуваних програм, і в

багатьох випадках їх вдалося перенести (Рекомпілірування) на MINIX.

Розвиток MINIX тривав протягом 10 років. В результаті в 1997 році

з'явилася система MINIX версії 2, а з нею - і друга редакція цієї книги,

описує нову операційну систему. Зміни були значними, але

еволюційними, приміром, від 16-розрядного процесора 8088 в реальному режимі

і гнучких дисків був зроблений перехід до 32-розрядному процесору 386 в

захищеному режимі і використання жорсткого диска.

Некваплива і систематична робота тривала до 2004 року, коли

Ненбаум прийшов до висновку про те, що програмне забезпечення стало занадто

громіздким і втратило надійність. Він вирішив вдихнути в MINIX нове життя

і спільно з програмістами і студентами Університету Вріе (Vrije Universiteit)

в Амстердамі створив операційну систему MINIX 3. Вона вийшла в

результаті значної переробки попередніх версій: структура ядра була змінена,

його обсяг скорочений, а акцент зроблений на модульності і надійності. Нова

версія призначена як для персональних комп'ютерів, так і для вбудованих

систем, де компактність, модульність і надійність є першорядними

факторами. Незважаючи на наполегливе бажання деяких розробників

повністю перейменувати операційну систему, в кінцевому рахунку було вирішено

назвати її MINIX 3, оскільки ім'я MINIX вже отримало достатню

популярність. Аналогічним чином вчинила і фірма Apple, залишаючи свою колишню

операційну систему Mac OS 9 і замінюючи її варіантом Berkley Unix. Нова

ОС отримала ім'я Mac OS X, а не APPLIX або щось подібне.

Фундаментальні зміни мали місце і в сімействі Windows, проте операційні

системи зберегли первісне ім'я.

Обсяг ядра MINIX 3 складає менше 4000 рядків виконуваного коду, у той час

як обсяг Windows, Linux, FreeBSD або будь-який інший операційної системи

складає мільйони рядків. Компактність ядра важлива, оскільки помилки в ньому

мають значно більш деструктивний ефект, ніж помилки в

користувацьких програмах, а із зростанням обсягу коду зростає і кількість помилок. В результаті

скрупульозного дослідження [6] було встановлено, що число виявлених

помилок на 1000 рядків виконуваного програмного коду становить від 6 до 16.

Слід очікувати, що фактичне число помилок в коді набагато вище, оскільки

дослідникам відомі лише помилки, які вдалося виявити. Згідно

іншим дослідженням [95], навіть після 12 випусків програмного забезпечення

в ньому залишається приблизно 6% файлів, що містять помилки, які виявляються

згодом. Крім того, в певний момент рівень помилок

стабілізується, а не продовжує асимптотично прагнути до нуля. Цей результат

підтверджується дослідженням надійних версій Linux і OpenBSD за допомогою

простого автоматичного інструменту перевірки. В ядрі виявляються

сотні помилок, переважно в драйверах пристроїв [20, 42]. З цієї причини

в MINIX 3 драйвери були виключені з ядра. У режимі користувача

шкідливий ефект від містяться в них помилок значно менше.

Операційна система MINIX 3 буде використовуватися у всіх прикладах,

представлених у цій книзі. Проте більшість коментарів, що стосуються

системних викликів MINIX 3 (на противагу коментарям про

безпосередній код), актуально для інших систем UNIX. Слід мати цю ремарку

на увазі при читанні тексту.

Відступаючи від теми, можна сказати кілька слів про LINUX і зв'язку LINUX

з MINIX. Незабаром після створення MINIX для обговорення цієї операційної

системи була сформована група новин. За кілька тижнів на неї

підписалося понад сорок тисяч чоловік, і більшість з них хотіли додати

в систему безліч нових можливостей, щоб зробити її краще і більше (або

просто більше). Кожен день кілька сотень людей давали поради, пропонували

ідеї і фрагменти коду. Творець системи кілька років успішно

чинив опір цьому натиску, щоб система залишалася досить компактною і зрозумілою

для студентів. Деякі користувачі, незадоволені MS-DOS, розглядали

існуючу альтернативу у вигляді MINIX (з вихідним кодом) як стимул

спонукальний мотив для придбання персонального комп'ютера.

Одним з таких користувачів став фінський студент на ім'я Лінус Торвальдс. Він встановив MINIX на свій новий комп'ютер і ретельно вивчив вихідний код. Торвальдс хотів мати можливість читати групи новин (зокрема - comp.os.minix) не тільки в університеті, а й у себе вдома,проте в MINIX відсутні необхідні для цього кошти. Він написав

відсутню програму, але виявив, що потрібний йому драйвер терміналу також

відсутня. Тоді він своїми силами вирішив і цю проблему. Коли він зіткнувся

із завданням завантаження і збереження кореспонденції, він написав дисковий

драйвер і створив файлову систему. У серпні 1991 року в розпорядженні Торвальдса

було власне примітивне ядро ​​операційної системи. 25 серпня 1991

він оприлюднив свої досягнення в групі comp.os.minix. Інші люди

зацікавилися його роботою і стали брати в ній участь. В результаті 13 березня

1994 світ побачила операційна система LINUX версії 1.0. З цієї дати

і починається відлік існування LINUX.

LINUX є яскравим досягненням руху відкритого вихідного коду, в

становленні якого свою роль зіграла і операційна система MINIX. Під

багатьох середовищах LINUX конкурує з UNIX та Windows. Частково це

обумовлено тим, що продуктивність персональних комп'ютерів, що підтримують

LINUX, порівнянна з продуктивністю спеціалізованих RISC-систем,

необхідних деякими реалізаціями UNIX. Інші програми з відкритим

вихідним кодом, особливо веб-сервер Apache і база даних MySQL,

вдало взаємодіють з LINUX в ​​комерційних додатках. LINUX, Apache,

MySQL, а також мови програмування Perl і РНР з відкритими кодами

часто спільно використовуються на веб-серверах. Іноді їх в сукупності

позначають акронімом LAMP.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]