русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Архитектура аппаратного обеспечения


Дата добавления: 2015-07-09; просмотров: 774; Нарушение авторских прав


Большинство коммерческих версий UNIX созданы для одного или небольшого количества архитектур аппаратного обеспечения. HP-UX работает только на платформах PA-RISC и Itanium, Solaris - на SPARC и x86, а AIX предназначен только для процессоров POWER.

Благодаря этим ограничениям, UNIX-производители могут относительно свободно модифицировать свой код для этих архитектур и использовать любое преимущество своей архитектуры. Поскольку они прекрасно знают поддерживаемые ими устройства, то их драйверы работают лучше, и им не нужно учитывать ограничения BIOS, характерные для ПК.

Linux, с другой стороны, исторически разрабатывался для обеспечения максимальной совместимости. Linux доступен на различных архитектурах, а число устройств ввода/вывода и прочей периферии, которая может использоваться с этой ОС, почти безгранично. Разработчики не могут заранее знать, какое конкретное оборудование будет установлено в компьютере, и часто не могут обеспечить его эффективное использование. Одним из примеров является управление памятью на Linux. Ранее Linux использовал сегментную модель памяти, первоначально разработанную для x86. Сейчас он адаптирован для использования страничной памяти, но все еще сохраняет некоторые требования к сегментной памяти, что вызывает проблемы, если архитектура не поддерживает сегментированную память. Это не является проблемой для UNIX-производителей. Они точно знают, на каком оборудовании будет работать их UNIX.

 

Ядро

Ядро является сердцем операционной системы. Исходный код ядра коммерческих дистрибутивов UNIX является собственностью их разработчиков и не распространяется за пределы компании. Полностью противоположная ситуация с Linux. Процедуры для компиляции и исправления ядер и драйверов весьма различны. Для Linux и других операционных систем с открытым исходным кодом патч может быть выпущен в виде исходного кода, и конечный пользователь может установить, проверить и даже модифицировать его. Эти патчи обычно проверены не так тщательно как патчи от поставщиков коммерческих ОС UNIX. Поскольку нет полного списка приложений и сред, которые должны быть оттестированы для корректной работы на Linux, Linux-разработчики зависят от конечных пользователей и других разработчиков, которые будут отлавливать ошибки.



Поставщики коммерческих UNIX-дистрибутивов выпускают ядра только в виде исполняемого кода. Некоторые релизы являются монолитными, тогда как другие позволяют обновить только какой-нибудь конкретный модуль ядра. Но в любом случае этот релиз предоставляется только в форме исполняемого кода. Если необходимо обновление, администратор должен ждать, пока производитель выпустит патч в бинарном коде, однако его может утешить то, что производитель выполнит тщательную проверку своего патча на обратную совместимость.

Все коммерческие версии UNIX в некоторой степени эволюционировали до модульного ядра. Драйверы и отдельные особенности ОС доступны как отдельные компоненты и могут быть по необходимости загружены или выгружены из ядра. Но открытая модульная архитектура Linux гораздо гибче. Однако гибкость и адаптируемость Linux означают и постоянное изменение. Исходный код Linux постоянно меняется, и, по прихоти разработчика, может поменяться API. Когда модуль или драйвер написан для коммерческой версии UNIX, он проработает гораздо дольше, чем тот же драйвер для Linux.

 



<== предыдущая лекция | следующая лекция ==>
Технические различия | Поддержка файловой системы


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.265 сек.