Операционные системы - статьи

         

Каковы основные отличия Unix от других OS?


Unix состоит из ядра с включенными в него драйверами и из утилит

(внешних по отношению к ядру программ). Если надо изменить конфигурацию

(добавить устройство, изменить порт или прерывание), то ядро пересобирают

(перелинковывают) из обьектных модулей или (напр., во FreeBSD) из исходников.

/* Это не совсем верно. Некоторые параметры пожно поправить без пересборки.

Существуют также loadable kernel modules. */

В противоположность Unix'у Windows (если не уточняется, какая, то имеются

в виду 3.11, 95 и NT) и OS/2 при загрузке фактически на ходу прилинковывают

драйверы. При этом компактность собранного ядра и повторное использование

общего кода на порядок ниже, чем у Unix. Кроме того, при неизменной

конфигурации системы ядро Unix без переделки (потребуется изменить только

стартовую часть BIOS) может быть записан в ПЗУ и выполняться _не_загружаясь_

в ОЗУ. Компактность кода особенно важна, т.к. ядро и драйверы никогда

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

Unix - самая многоплатформенная OS. WindowsNT пытается подражать ему,

но пока это плохо удается - после отказа от MIPS и POWER-PC, W'NT остались

всего на двух платформы - традиционная i*86 и DEC Alpha. Переносимость

программ с одной версии Unix на другую ограничена. Неаккуратно написанная

программа, не учитывающая различий в реализациях Unix, делающая необоснованные

предположения типа 'переменная integer должна занимать четыре байта' может

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

чем например пернести с OS/2 на NT.



Содержание раздела