Ю. Вахалия - UNIX изнутри (2003) (1114670), страница 11
Текст из файла (страница 11)
А такие возможности, как разделяемые библиотеки, потребовали поддержки различных форматов выполняемых файлов. Система 1ЛЧ1Х стала поддерживать зти форматы, оставив традиционный а.опт для совместимости. Одновременное сосуществование мультимедийных приложений и программ, функционирующих в режиме реального времени, потребовало поддержки планирования для различных типов приложений.
Рис. 1.1. Традиционное ядро пн!Х В итоге 11МХ превращалась в более гибкую операционную систему, которая бы поддерживала несколько различных методов выполнения одной и той же задачи. Это потребовало разработки многих более гибких структур, таких как интерфейс чпоое/чЬ, системный вызов ехес, планирование процессов, а также сегментную архитектуру памяти. Современное ядро 1)Х1Х похоже на систему, показанную на рис. 1.2. В каждом из внешних кругов представлен интерфейс, который может быть реализован различными способами.
1.3. Оглянемся назад, посмотрим вперед 1ЛЧ1Х заметно изменилась после своего первого представления. Несмотря на достаточно скромный «выход в свет» она завоевала большую популярность. Во второй половине 80-х годов операционную систему 1)Х1Х выбрали многие коммерческие организации, учебные заведения и научно-исследователь- 1.3. Оглянемся назад, посмотрим вперед 51 Отображен файлов ез Отображенив устройств нез Анонимно отображение Процессы разделением времени Процессы реального времени Драйвер диска Драйвер накопител на магнитн лентах истемные процессы Сетевой драйвер Драйвер терминала Рис.
1.2. Современное ядро 0яйх 1.3.1. Преимущества 0й!Х 13Х1Х завоевала такую высокую степень популярности, на которую, возможно, даже не рассчитывали ее разработчики. Одной из главных причин успеха являлся способ распространения системы. Корпорация АТЛЕТ, ограниченная законами в своих возможностях, продавала лицензии и исходные коды системы по достаточно низкой цене, поэтому 1ЛЧ1Х стала популярной среди многих пользователей по всему миру. Так как в комплект поставки входили и исходные коды, пользователи имели возможность экспериментировать с ними, улучшать их, а также обмениваться друг с другом созданными изменениями.
Корпорация АТбтТ встраивала многие из новшеств в следующие версии системы. ские лаборатории. Чаще всего результатом приобретения того или иного варианта системы был осознанный выбор. Позже позиции УХ1Х были потеснены корпорацией М1сгозо1с, предлагающей операционные системы семейства Ю1пт1оя з. Постепенно ОС БХ1Х стала проигрывать в битве за рынок настольных систем. В этом разделе мы проведем анализ причин ее успеха и популярности, а также факты, не позволившие УХ1Х покорить мир, 62 Глава 1.
Введение Разработчики из Беркли также поддерживали эту традицию. Развитие системы 1)Ь11Х оказалось очень открытым процессом. Добавления поступали из учебных заведений, коммерческих организаций и от хакеров-энтузиастов из разных континентов и стран мира. Даже после коммерциализации 1)Ь)1Х многие производители ОС поддержали концепцию открытых систем и сделали свои разработки доступными для других, создавая спецификации открытых систем, такие как Ь)ЕБ. Оригинальная версия 1)Ь11Х имела хороший дизайн, который являлся базисом последующего успеха более поздних реализаций и вариантов системы. Одну из сильнейших сторон системы можно охарактеризовать выражением «красота в краткости» 112].
Ядро небольшого размера имело минимальный набор основных служб. Утилиты небольшого размера производили малый объем манипуляций с данными. Механизм конвейера совместно с программируемой оболочкой позволял пользователям комбинировать эти утилиты различными способами, создавая мощные, производительные инструменты. Файловая система ()Ь)1Х является примером вышеописанного подхода. В отличие от других операционных систем, обладающих сложными методами доступа к файлам, такими как /па!ехеЫ зедиепйа! Ассеев Мег)кк! (Индексированный последовательный доступ к файлам, 15АМ) или Н!егагспгса! 5едиепГ!а! Асееве МегйоИ (Иерархический последовательный доступ к файлам, 13АР), система (Л~11Х интерпретирует файлы как простую последовательность байтов.
Приложения могут записывать в содержимое файлов любую структуру и использовать различные собственные методы доступа, не ставя об этом в известность операционную систему. Многие системные приложения используют для представления своих данных символьные строки. К примеру, важнейшие базы данных, такие как /е1с/развил!, /етс/ЙтаЬ и /е1с/1туз, являются обычными текстовыми файлами. Возможно, что структурированное хранение информации в двоичном формате представляется более эффективным, однако представление в виде текста позволило пользователям легко просматривать и производить манипуляции с этими файлами без применения специальных инструментов. Текст является общей, универсальной и обладающей высокой степенью переносимости формой данных, которые можно легко обрабатывать множеством различных утилит.
Еще одной особенностью системы 1)Ь11Х стал простой унифицированный интерфейс с устройствами ввода-вывода. Представляя все устройства как файлы, система позволяет пользователям применять один и тот же набор команд и системных вызовов для доступа и работы с различными устройствами, равно как и для работы с файлами.
Разработчики могут создавать программы, производящие ввод-вывод, не заботясь, с чем именно производится обмен, с файлом, терминалом пользователя, принтером или другим устройством. Таким образом, используемый совместно с перенаправлением данных интерфейс ввода-вывода системы УМ1Х вЂ” простой и одновременно мощный.
Причиной успеха и распространения 1ЛЧ1Х стала ее высокая степень переносимости. Большая часть ядра системы написана на языке С. Это по- 1.3. Оглянемся назад, посмотрим вперед 53 зволило относительно легко адаптировать 1Лч1Х к новым аппаратным платформам, Первая реализация системы появилась на популярной тогда машине РОР-11 и затем была перенесена на ЧАХ-11, имевшую не меньшую популярность. Многие производители «железа» после создания новых компьютеров имеют возможность просто перенести на них уже имеющуюся систему 1)л11Х вместо того, чтобы создавать для своих разработок операционную систему заново. 1.3.2. Недостатки 0й!Х Известно, что любая медаль имеет две стороны.
Рассказав о преимуществах системы 1)ЫХ, необходимо привести и ее недостатки. Один из наиболее обьекгивных обзоров 1)М1Х был создан не кем иным, как Денисом Ритчи. В январе 1987 года на конференции 1)8ЕМ1Х в разделе «Ретроспективы 1ЛЯ1Х» Ритчи сделал доклад, где провел анализ многих недостатков системы 1131, которые кратко описаны ниже.
Хотя 1Л~ПХ изначально была весьма простой системой, это вскоре закончилось. Например, АТЛЕТ добавила в стандартную библиотеку ввода-вывода буферизацию данных, что повысило ее эффективность и сделало программы переносимыми на не-1ЛМ1Х-системы. Библиотека разрасталась и стала более сложной, чем системный вызов, лежащий в ее основе. Системные вызовы геао и»тг11е были неделимыми операциями над файлами, в то время как буферизация библиотеки ввода-вывода уничтожила эту цельность.
1)111Х сама по себе являлась замечательной операционной системой, однако большинству пользователей нужна была не сама система, а, в первую очередь, возможность выполнять определенное приложение. Пользователей не интересовала элегантность структуры файловой системы или модели вычислений. Они хотели работать с определенными программами (например, текстовыми редакторами, финансовыми пакетами или программами для создания изображений), потратив на это минимум расходов и усилий.
Недостатки простого унифицированного (обычно графического) пользовательского интерфейса в первых системах 1)Х1Х были основной причиной его неприятия массами. Как сказал Ритчи: «1ЛХ1Х является простой и понятной системой, но чтобы понять и принять ее простоту, требуется гений (или, как минимум, программист)». Получилось так, что элегантность и эстетичность, свойственная 1)Х1Х, требует от пользователей, желающих эффективно работать в системе, творческого мышления и определенной изобретательности. Однако большинство пользователей предпочитают простые в изучении интегрированные многофункциональные программы, подобные тем, что применяются на персональных компьютерах.
В какой-то степени система 1)Х1Х явилась жертвой своего собственного успеха. Простота лицензионных условий и переноса на различные аппарат- 54 Глава 1. Введение ные платформы стала причиной неконтролируемого роста и лавинообразного распространения различных реализаций ОС. Каждый пользователь имел право вносить свои собственные изменения в систему, в результате группы разработчиков часто создавали несовместимые между собой варианты. Изначально существовали две основные ветви развития 13Ь1!Х, разрабатываемые компаниями АТе.Т и ВБР.
Каждая реализация имела оригинальную файловую систему, архитектуру памяти, сигналы и принципы работы с терминалами. Позже другие поставщики предложили новые варианты 13Ь11Х, стараясь привести их к некоторой степени совместимости с реализациями АТЛЕТ и ВБР.
Однако чем дальше, тем все менее предсказуемой становилась ситуация, а разработчикам приложений требовалось все больше усилий, чтобы приспособить свои программы ко всем различным вариантам 1)л11Х. Стандартизация систем стала лишь частичным решением проблемы, так как встретила определенное сопротивление. Поставщики стремились добавить в свои разработки какие-либо уникальные функции, стараясь создать продукт, имеющий отличия от остальных, и тем самых показать его преимущества среди конкурирующих вариантов. Ричард Рашид (ЫсЬагд КазЬЫ), один из разработчиков системы МасЬ, предложил свою версию причин неудач ПЬ11Х.
Во вступлении к курсу лекций о системе МасЬ (МасЬ 1.ессцге Бег1ез 116]) Рашид сказал, что причиной создания ОС МасЬ стало наблюдение за эволюционированием системы ПЬ11Х, которая имела минимальные возможности для построения инструментов пользователя. Большие сложные инструменты создавались путем комбинирования множества простых функций. Однако такой подход не был перенесен на ядро системы.
Традиционное ядро ПЬ11Х было недостаточно гибким и расширяемым, оно имело минимальные возможности для дополнительного использования кода. Позже разработчики стали просто добавлять новые коды в ядро системы, делая его основой для новых функциональных средств. Ядро очень быстро стало раздутым, сложным и абсолютно немодульным.
Разработчики МасЬ попытались решить зти проблемы, переписав систему заново с нуля, взяв за основу небольшое количество основных функций. В современных реализациях ПЬ11Х вышеописанная система решается различными способами, например добавляются гибкие структуры к подсистемам, как это было описано в разделе 1.2.9. 1.4. Границы повествования книги Эта книга описывает современные системы ПЬ11Х. С целью полноты описания и передачи определенного исторического контекста приводится краткий рассказ о возможностях ранних реализаций ОС. В настоящее время существует множество вариантов системы ПЬ11Х, каждая из которых по-своему уникальна.