Архітектура unix і windows - статті software

"Щоб знайти істину, кожен повинен хоч
раз в житті звільнитися від засвоєних
їм уявлень і заново побудувати
систему своїх поглядів "
- Рене Декарт.


Структуру UNIX найпростіше представити у вигляді двох шарів. Першим є ядро. Воно безпосередньо взаємодіє з залізом і забезпечує переносимість всього іншого ПО на комп'ютери з різними апаратним забезпеченням. Ядро надає програмам певний набір системних API, за допомогою яких виробляються створення процесів, управління ними, їх взаємодія і синхронізація, а також файловий ввід / вивід. Другим шаром є програмне забезпечення, прикладне або системне: командний інтерпретатор, графічна оболонка і т. Д.

Структура ОС UNIX


Заглянемо глибше в ядро ​​системи. Воно дозволяє всім іншим програмам спілкуватися з периферійними пристроями, регулює доступ до файлів, управляє пам'ять і процесами. Ядро - це зв'язковий, до якого звертаються за допомогою системних викликів (запитуючи якусь послугу). Зв'язок ця - не одностороння: ядро ​​може і повертати в разі потреби якісь дані. Основною перевагою ядра є сувора стандартизація системних API. За рахунок цього багато в чому досягається переносимість коду між різними версіями UNIX і абсолютно різним апаратним забезпеченням.

Структура ядра UNIX

Тепер більш детально розглянемо підсистему управління процесами. Вона відповідає за синхронізацію і взаємодія процесів, розподіл пам'яті і планування виконання процесів. Для всіх цих цілей в підсистему управління процесами включені три модуля, які наочно продемонстровані на схемі. Хорошим прикладом взаємодії підсистем управління файлами і процесами є завантаження файлу на виконання. В цьому випадку підсистемі управління процесів потрібно звернутися до колеги, щоб вважати виконувані файли.

Трохи вище ми перераховували системні API для керування файлами. Тепер розглянемо виклики, службовці для роботи з процесами: fork (створює новий процесу), exec (виконує процес), exit (завершує виконання процесу), wait (один із способів синхронізації), brk (управляє пам'яттю, виділеної процесу), signal (обробники винятків) і ін.

Ядро системи є критичною частиною коду, будь-які помилки, що відбуваються в ядрі, призводять до фатального краху системи - "синього екрану". Фактично - це помилки типу "Порушення загального захисту". Як тільки код ядра починає звертатися в заборонені для нього області пам'яті (спроба прочитати або записати дані, виконати невірну інструкції, перехід заборонену область) спрацьовує систему захисту пам'яті процесора, і управління передається системному оброблювачу виключень. Оброблювач виключень не може відновити коректну поведінку коду. Все, що він робить - це висновок дампа на синій екран із зазначенням типу помилки і вмісту пам'яті в області, де спрацював захист.
Користувальницькі підсистеми не настільки критично впливають на роботу системи в цілому так як вони ізольовані один від одного і від ядра засобами управління пам'яттю і власне процесором. Помилки, що виникають в додатках, виконуються на рівні користувача, тобто на менш привілейованому рівні, ніж ядро. Тому, система в змозі контролювати процес. При виникненні ж помилки або збою управління передається обробнику помилок, який називається "Doctor Watson". Він примусово завершить додаток. Ядро системи і інші підсистеми залишаються в цілості й схоронності.
Ядро UNIX / Linux має два види винятків, які зазвичай називають "oops" і "panic". Майже в кожній операційній системі паніка відбувається в тих випадках, коли ядро ​​виявляє серйозну несправність. Якщо система якимось чином пошкодила сама себе, їй потрібно зупинитися негайно, поки вона не зробить необоротних критичних змін (типу знищення файлової системи). Скрізь, де тільки можливо, UNIX / Linux намагається детектувати проблему і впоратися з нею без зупинки всієї системи. Наприклад, багато ситуацій типу "oops" призводять до завершення процесу, який нормально запустився, але потім зациклені систему. Бувають, однак, ситуації, коли все настільки погано, що повна паніка є найкращим виходом. Вважається, що користувачі стабільних версій ядра не повинні зустрічати ні "паник", ні "oops". Але в реальному світі вони іноді відбуваються.

Нещодавно знайдений "TF-баг" (дивіться тут) є хорошим прикладом паніки. Процесор намагається передати управління процесу, якого не існує. Це призводить до краху всієї системи. В даному випадку, у системи немає іншої альтернативи, ніж запанікувати.

Ядро, що поставляється з Red Hat Linux 7.3 (і деякими іншими збірками), містить баг в файлової системі ext3. Ця помилка призводить до "oops", завершуючи час від часу деякі процеси (також цей баг призводить до уповільнення всієї системи). Хоча дана помилка вже виправлена ​​(патч є і в оновленні від Red Hat), цей випадок познайомив багатьох користувачів з помилками типу "oops".

Шар абстрагування (Hardware Abstraction Layer, HAL). Повністю абстрагує код системи від конкретного апаратного обладнання. Використання HAL дозволяє забезпечити переносимість 99% коду системи між різним обладнанням.

Диспетчер вводу / виводу (Input / Output Manager). Повністю контролює потоки обміну між системою і пристроями. Драйвери пристроїв працюють в контексті I / O Manager. Якщо драйвер написаний з помилками і може привести до збою - це викличе фатальний крах ядра і всієї системи. 70% випадків фатальних збоїв ( "синій екран") - є результат некоректного поводження драйверів пристроїв.

Windows XP містить вбудований механізм контролю драйверів: правильно написаний і ретельно протестований драйвер поставляється з цифровим підписом (Driver Signing). Правильна настройка системи полягає в забороні установки драйверів без коректної підпису.

У Windows також реалізовані додаткові функції для підвищення стабільності роботи ОС. Система захисту файлів Windows автоматично запобігає випадкові зміни системних файлів операційної системи, що вносяться користувачем або додатками, ефективно захищаючи всю систему в цілому. Тобто, коли якась програма внесла зміни або просто замінила системні файли Windows, вважаючи, що у програми новіші, Windows відстежує зміни і повідомляє про це користувача, кажучи, що для стабільності системи бажано відновити вихідні файли. Так само існує підтримка декількох версій DLL, що підвищує сумісність додатків і підвищує стабільність.

В Unix / Linux графічна система існує окремо від ядра і функціонує як звичайна програма. В операційних системах Windows графічна система інтегрована в ядро. У разі використання операційної системи на робочій станції, особливо при запуску графікоемкіх додатків, можливо, краще, коли графічна система входить в ядро ​​- в цьому випадку вона може швидше працювати. А при роботі на сервері краще відділення графічної системи від ядра ОС, так як вона завантажує пам'ять і процесор. У разі Unix / Linux графічну систему можна просто відключити, до того ж, якщо системний адміністратор її все-таки хоче використовувати, в Linux є кілька графічних оболонок на вибір, деякі з них (наприклад, WindowMaker) досить слабо завантажують машину. Ця ж особливість Unix-подібних операційних систем дозволяє запускати ці ОС на машинах з дуже скромними обсягами ОЗУ і т.п. У разі Windows же графічна система занадто тісно інтегрована в ОС, тому вона повинна запускатися навіть на тих серверах, на яких вона зовсім не потрібна.

У Linux підтримуються кілька файлових систем, найбільш просунуті - це Ext2, Ext3, XFS. ОС Windows зав'язана за великим рахунком на одну файлову систему - NTFS або FAT 32. Файлові системи Ext2, Ext3, XFS за оцінками працюють швидше. Принципова ж відмінність в тому, що в UNIX / Linux взагалі немає поняття диска, фізичного або логічного. Вся робота з пристроями зберігання даних організовується через спеціальні файли пристроїв, які відображають фізичний носій (диск, стрічка і т. П) або його частини (розділи) в файлову систему.

Важлива відмінність - наявність в Windows технології ActiveX, щось подібне в Unix / Linux реалізується за допомогою CORBA і Bonobo. Ця технологія, з одного боку, надає користувачеві безліч зручностей, з іншого боку - вона ж допускала свого часу такі речі, як автоматичний запуск Outlook'ом вірусу, яке надійшло поштою. Одне з важливих відмінностей цих технологій в тому, що елементи ActiveX можуть впроваджуватися в текст HTML, що має як ряд переваг, так і недоліків.

Можна перерахувати ще ряд відмінностей Unix-подібних операційних систем від Windows, наприклад, вбудовану підтримку віддаленого доступу в Unix і відсутність оної в Windows за замовчуванням (вона реалізується в серверних версіях Windows, а також за допомогою додаткових коштів, наприклад, Citrix). В Unix / Linux і Windows сильно розрізняються мережеві підсистеми (IP-stack), по ряду оцінок мережева підсистема Unix / Linux ефективніше.

Що таке Картка покупця

Реєстрація в Клубі постійних покупців надає можливість покупцеві:

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

Замовлення з доставкою в точки Евросеть / Зв'язковий

  • працює тільки для приватних осіб;
  • оформляється за роздрібними цінами поточного прайс-листа;
  • повинен бути на суму не менше 100 руб і не більше 15 000 руб, в іншому випадку Вам запропонують оплатити додатково вартість страховки Товару (0,8% від вартості Кошики) або скористатися альтернативними способами доставки;
  • повинен бути менше 8 кг, включаючи упаковку Товару;
  • оплата при отриманні готівкою або пластиковою карткою;
  • Сума двох будь-яких сторін посилки не повинна бути більше 1,200 м;
  • відправка товару з доставкою в точки Евросеть / Зв'язковий здійснюється щодня, в 12-00, крім вихідних та святкових днів. Якщо Ваше замовлення сформований у вихідні або святкові дні, оператор буде з Вами зв'язуватися не раніше наступного робочого дня;
  • термін зберігання замовлення в точці видачі - сім днів.

Купівля за списком артикулів