Системное программное обеспечение 3 страница
Как сделать так, чтобы все устройства ввода-вывода и драйверы выглядели примерно одинаково? Если диски, принтеры, клавиатуры и т. д. требуют различных интерфейсов, то при появлении нового устройства будет требоваться переделка операционной системы, что очень неудобно. Этот вопрос связан с интерфейсом между драйверами устройств и операционной системой. Функции драйверов, доступные системе, отличаются от драйвера к драйверу. Это означает, что функции ядра, необходимые для драйвера, тоже различаются, поэтому взаимодействие с каждым новым драйвером требует больших усилий программистов.
Существует принципиально другой подход, при котором у всех драйверов один и тот же интерфейс. При этом значительно легче установить новый драйвер, при условии, что он соответствует стандартному интерфейсу. Программисты, занимающиеся разработкой драйверов, знают, какие функции они должны реализовать и к каким функциям ядра они могут обращаться. На практике же не все устройства являются абсолютно идентичными, но обычно имеется небольшое число типов устройств, достаточно похожих друг на друга. Например, даже у блочных и символьных устройств есть много общих функций.
3,2.8. Файловые системы
Всем компьютерным приложениям нужно хранить и получать информацию. Наиболее удобной для доступа к долговременным устройствам хранения информации оказалась система, при которой пользователь назначает для той или иной совокупности данных некоторое имя. Определенный участок диска, занятый информацией, имеющей собственное имя, называется файлом. Часть ОС, работающая с файлами и обеспечивающая хранение данных на дисках и доступ к ним, называется файловой системой (ФС).
С точки зрения пользователя наиболее важным аспектом файловой системы является ее внешнее представление, т.е. именование и защита файлов, операции с файлами и т.д. Компьютеру безразлично, какое имя имеет любая программа или документ, так как он получает от ОС инструкцию подобно такой: «прочитай столько-то байт с такого-то места на диске». При этом пользователь не обязан знать, в каком физическом порядке и где именно находятся его данные. Ему достаточно потребовать от ОС прочитать документ или загрузить необходимую программу.
Одной из важнейших характеристик ОС, помимо управления памятью, ресурсами компьютера и задачами, является поддержка файловой системы — основного хранилища системной и пользовательской информации.
Файлы относятся к абстрактному механизму. Они предоставляют способ сохранить информацию на диске и считывать ее снова по мере необходимости. Пользователю не нужны такие подробности, как способ и место хранения информации, детали работы дисков. Важной характеристикой любого механизма абстракции являются принципы именования управляемых объектов, поэтому вкратце рассмотрим правила именования файлов.
Точные правила именования файлов варьируются от системы к системе, но все современные операционные системы поддерживают использование в качестве имен файлов 8-символьные текстовые строки. Так, книга, страница, карандаш являются допустимыми имена ми файлов. Часто в именах файлов также разрешается использование цифр и специальных символов, поэтому могут применяться и такие имена файлов, как 2 (лучше _2), срочный! и Рис.2-14. Многие файловые системы поддерживают имена файлов длиной до 255 символов.
В некоторых ФС различаются прописные и строчные символы, в других, таких как MS-DOS, нет. Операционные системы Windows 95 и Windows 98 используют файловую систему MS-DOS и наследуют многие ее свойства, включая именование файлов. Операционные системы Windows NT и Windows 2000 также поддерживают файловую систему MS-DOS и наследуют ее свойства. Однако у них имеется своя файловая система NTFS, обладающая отличными свойствами.
Во многих ОС имя файла может состоять из двух частей, разделенных точкой, например progr.exe. Часть имени файла после точки называется расширением файла и обычно означает тип файла. Так, в MS-DOS имя файла может содержать от 1 до 8 символов плюс через точку расширение от 0 до 3 символов. В некоторых ОС, например в UNIX, расширения файлов являются просто соглашениями, и ОС.не заставляет пользователя их строго придерживаться. Так, файл file.txt может быть текстовым файлом, но это скорее памятка пользователю, а не руководство к действию для операционной системы. Система Windows, напротив, знает о расширениях файлов и назначает каждому расширению определенное значение. Пользователи или процессы могут регистрировать расширения в ОС, указывая программу, создающую данное расширение. При двойном щелчке мышью на имени файла запускается программа, назначенная этому расширению, с именем файла в качестве параметра. Например, двойной щелчок мышью на имени file.doc запускает MS Word, который открывает файл file.doc.
Обычно пользователям бывает необходимо логически группировать свои файлы, поэтому требуется некий гибкий способ, позволяющий объединять файлы в группы. Следовательно, нужна некая общая иерархия, т.е. дерево каталогов (см. рис. 3.3). При таком подходе каждый пользователь может сам создать себе столько каталогов и подкаталогов, сколько ему нужно, группируя свои файлы естественным образом. В корневом каталоге могут быть также созданы каталоги и подкаталоги, принадлежащие различным пользователям. Возможность создавать произвольное количество подкаталогов является
мощным структурирующим инструментом, позволяющим пользователям организовать свою работу. По этой причине почти все современные файловые системы организованы подобным образом.
При организации ФС в виде дерева каталогов требуется некоторый способ указания файла. Для этого обычно используются два различных метода. В первом случае каждому файлу дается абсолютное имя пути, состоящее из имен всех каталогов от корневого до того, в котором содержится файл, и имени самого файла. Например, путь \user\abc\myfile.doc означает, что корневой каталог содержит кататог user, который, в свою очередь, содержит подкаталог abc, где находится файл myfile.doc. Абсолютные имена путей всегда начинаются от корневого каталога и являются уникальными. Если первым символом имени пути является разделитель, это означает, что путь абсолютный. Применяется и относительное имя пути. Оно используется вместе с понятием текущего каталога. Пользователь может назначить один из каталогов текущим рабочим каталогом. В этом случае все имена путей, не начинающиеся с символа разделителя, считаются относительными и отсчитываются относительно текущего каталога. Например, если текущим каталогом является \user\abc, тогда к файлу с абсолютным путем \user\abc\myfile.doc можно обратиться просто как к myfile.doc.
Итак, любая файловая система предназначена для хранения информации о физическом размещении частей файла. В ФС существует минимальная единица информации — кластер, размер которого является нижним пределом размера записываемой на носитель информации в рамках ФС. Не следует путать понятие кластера с понятием сектора, который является минимальной единицей информации со стороны аппаратного обеспечения. От ФС требуется четкое выполнение следующих действий:
• определение физического расположения частей файла;
• определение наличия свободного места и выделение его для
вновь создаваемых файлов.
Скорость выполнения этих операций напрямую зависит от самой ФС. Разные файловые системы используют различные механизмы для реализации указанных задач и имеют свои преимущества и недостатки. ФС типа FAT (File Allocation Table) представляют собой образ носителя в миниатюре, где детализация ведется до кластерного уровня, Поэтому операция поиска физических координат файла при его большой фрагментации будет затруднительна. ФС FAT16 занимает объем 128 Кб. И это позволяет легко кэшировать ее информацию. Для FAT32 эта величина для больших дисков составит = 1 Мб, что еще более затрудняет поиск физических координат фрагментированного файла. Еще хуже обстоит дело с поиском свободного места для больших файлов. Приходится просматривать практически всю таблицу. Быстродействие падает. NTFS (New Technology File System) использует более компактную форму записи, что ускоряет поиск файла. Операции с выделением места проходят быстрее. Ключевое преимущество NTFS — возможность ограничения доступа к файлам и папкам.
Важный параметр — размер кластера. Больший размер кластера гарантирует более высокую производительность за счет уменьшения самой ФС. Для NTFS увеличение кластера - болезненная процедура из-за невозможности выполнить дефрагментацию, поскольку большинство таких программ не работает с кластерами, отличными от штатных 4 Кб.
Файловые системы Microsoft Windows
Рассмотрим основные файловые системы, поддерживаемые Windows - FAT16, FAT32, NTFS, а также системы CDFS и UDF. Каждая файловая система имеет свои достоинства и недостатки.
Файловая система FAT 16 начала свое существование еще во .времена, предшествующие MS-DOS. Она поддерживается всеми ОС Microsoft для обеспечения совместимости. Ее название File Allocation Table (таблица расположения файлов) отлично отражает физическую организацию файловой системы, к основным характеристикам которой можно отнести то, что максимальный размер поддерживаемого тома HDD или его раздела не превышает 4095 Мбайт. Во времена MS-DOS 4-гигабайтные HDD казались несбыточной мечтой (роскошью были диски 20-40 Мбайт), поэтому.такой запас был вполне оправдан.
Том, отформатированный для использования FAT16, разделяется на кластеры. Размер кластера по умолчанию зависит от размера тома и может колебаться от 512 б до 64 Кб. Размер кластера может отличаться от значения по умолчанию, но должен иметь одно из значений, предписанных для этой ФС.
Не рекомендуется использовать файловую систему FAT16 на то больше 511 Мб, так как для небольших файлов дисковое пространство будет использоваться крайне неэффективно: файл размером 1 байт будет занимать 16, 32 или 64 Кб. Независимо от размера кластера файловая система FAT16 не поддерживается для томов больше 4 Гбайт.
: На рис. 3.6 показано, как организован том при использовании файловой системы FAT16.
Рис. 3.6. Организация тома в файловой системе FAT16
Единственным отличием корневого каталога от других каталогов является то, что он располагается в определенном месте и имеет фиксированное число вхождений. Так, -если число фиксированных вхождений для корневого каталога равно 512 и создано 100 подкаталогов, то в корневом каталоге можно создать не более 412 файлов.
Начиная с Windows 95 OSR2, появилась поддержка 32-битной FAT. Для систем на базе Windows NT эта файловая система впервые стала поддерживаться в Windows 2000. Если FAT16 может поддерживать тома объемом до 4 Гб, то FAT32 способна обслуживать тома объемом до 2 Тб. Размер кластера в FAT32 может изменяться от 1 (512 б) до 64 секторов (32 Кб). Для хранения значений кластеров FAT32 требуется 4 б (32 бит, а не 16, как в FAT16). Это означает, в частности, что некоторые файловые утилиты, рассчитанные на FAT16, не могут работать с FAT32.
Основным отличием FAT32 от FAT16 является то, что изменился размер логического диска. FAT32 поддерживает тома до 127 Гб. При этом, если при использовании FAT16 с 2-гигабайтными дисками требовался кластер размером в 32 Кб, то в FAT32 кластер размером в 4 Кб подходит для дисков объемом от 512 Мб до 8 Гб.
Это приводит к более эффективному использованию дискового пространства - чем меньше кластер, тем меньше места требуется для хранения файла и, как следствие, диск реже становится фрагментированным.
При применении FAT32 максимальный размер файла может достигать 4 Гб минус 2 байта. Если при использовании FAT3 6 максимальное число вхождений в корневой каталог ограничивалось 512, то FAT32 позволяет увеличить это число до 65535.
При создании файла с длинным именем Windows создает соответствующее имя в формате 8.3 и одно или более вхождении в каталог для хранения длинного имени (по 13 символов из длинного имени файла на каждое вхождение). Каждое последующее вхождение хранит соответствующую часть имени файла в формате Unicode. Такие вхождения имеют атрибуты идентификатор тома, только чтение, системный и скрытый - набор, который игнорируется MS-DOS.
В состав Windows 2000 входит поддержка новой версии файловой системы NTFS, которая, в частности, обеспечивает средства защиты информации, контроль над доступом и ряд других возможностей.
Как и при использовании FAT, основной информационной единицей в NTFS является кластер. При формировании файловой системы NTFS программа форматирования создает файл Master File Table (MTF) и другие области для хранения метаданных. Метаданные используются NTFS для реализации файловой структуры, Первые 16 записей в MTF зарезервированы самой NTFS. Местоположение файлов метаданных записано в загрузочном секторе диска. Если первая запись в MTF повреждена, NTFS считывает вторую запись для нахождения копии первой. Полная копия загрузочного сектора располагается в конце тома. В MTF хранятся метаданные, такие как копия первых четырех записей (гарантирует доступ к MTF в случае, если первый сектор поврежден). MTF содержит информацию о томе — метку и номер версии. В MTF находится таблица имен атрибутов и описания, корневой каталог и др. Остальные строки MTF содержат записи для каждого файла и каталога, расположенных на данном томе.
Обычно один файл использует одну запись в MTF, но если у файла большой набор атрибутов или он становится слишком фрагментированным, то для хранения информации о нем могут потребоваться дополнительные записи. В этом случае первая запись о файле, называемая базовой записью, хранит местоположение других записей. Данные о файлах и каталогах небольшого размера (до 1500 байт) полностью содержатся в первой записи.
В Windows 2000 обеспечивается поддержка файловой системы CDFS, отвечающей стандарту ISO 9660, описывающему расположе ние информации на CD-ROM. Поддерживаются длинные имена файлов в соответствии с ISO 9660.
Поддержка файловой системы UDF является одним из новшеств Windows 2000. Universal Disk Format — это файловая система, отвечающая стандарту ISO 13346 и используемая для обмена данными с накопителями CD-ROM и DVD.
Сравнение файловых систем Microsoft Windows
Под управлением MS Wm2000 возможно использование файловых систем FAT16, FAT32, NTFS или их комбинаций. Цифры в названии файловых систем — FAT16 и FAT32 — указывают на число бит, необходимых для хранения информации о номерах кластеров, используемых файлом. Так, в FAT16 применяется 16-битная адресация и, соответственно, возможно использование до 216 адресов. В Windows 2000 первые четыре бита таблицы расположения файлов FAT32 необходимы для собственных нужд, поэтому в FAT32 число адресов достигает 2п.
Среди преимуществ FAT16 можно отметить следующие:
• файловая система поддерживается ОС MS-DOS, Windows 95,
Windows 98, Windows NT, Windows 2000, а также некоторыми ОС
UNIX;
• существует большое число программ, позволяющих исправлять
ошибки в этой файловой системе и восстанавливать данные;
• при возникновении проблем с загрузкой с HDD система может
быть загружена с системной дискеты;
• файловая система достаточно эффективна для томов объемом
менее 256 Мб.
К недостаткам FAT16 можно отнести:
• не поддерживается резервная копия загрузочного сектора;
• в FAT16 не поддерживается встроенная защита файлов и их сжатие.
Среди преимуществ FAT32 важно отметить следующие:
• выделение дискового пространства выполняется более эффективно, особенно для дисков большого объема;
• корневой каталог в FAT32 представляет собой обычную цепочку
кластеров и может находиться в любом месте диска, благодаря
этому FAT32 не накладывает никаких ограничений на число элементов в корневом каталоге;
• за счет использования кластеров меньшего размера занятое дисковое пространство на 10—15 % меньше, чем под FAT16.
• FAT32 является более надежной файловой системой, в частности, она поддерживает возможность перемещения корневого каталога и использование резервной копии FAT.
Основные недостатки FAT32:
• размер тома под Win2000 ограничен 32 Гб;
• тома недоступны из других ОС — только из Win95 OSR2 и Win98;
• не поддерживается резервная копия загрузочного сектора;
• не поддерживается встроенная защита файлов и их сжатие.
При работе в Windows 2000 рекомендуется отформатировать все
разделы HDD под NTFS, за исключением тех конфигураций, когда используется несколько ОС (кроме Windows 2000 и Windows NT). Применение NTFS вместо FAT позволяет использовать функции, доступные в NTFS. К ним, в частности, относятся
• возможность восстановления. Эта возможность встроена в файловую систему. NTFS и гарантирует сохранность данных за счет
того, что используются протокол и некоторые алгоритмы восстановления информации;
• сжатие информации. Для томов NTFS Windows 2000 поддерживает сжатие отдельных файлов. Такие сжатые файлы могут использоваться Windows-приложениями без предварительной рас
паковки, которая происходит автоматически при чтении из
файла. При закрытии и сохранении файл снова упаковывается;
• защита файлов и каталогов. Только на томах NTFS возможно
задание атрибутов доступа к файлам и папкам;
• файловая система поддерживает резервную копию загрузочного
сектора — она располагается в конце тома;
• NTFS поддерживает систему шифрования Encrypted File System
(EFS), обеспечивающую защиту от неавторизованного доступа к
содержимому файлов.
К недостаткам NTFS относятся:
• NTFS-тома недоступны в MS-DOS, Win95 и Win98;
• для томов небольшого объема, содержащих много файлов не
большого размера, возможно снижение производительности по
сравнению с FAT
3.2,9, Рассмотрение
конкретных операционных систем
В предыдущих разделах были рассмотрены общие принципы операционных систем. В этом разделе мы познакомимся с системами UNIX, Linux и Windows, чтобы увидеть, как эти принципы работают на практике. Начнем рассмотрение примеров с операционной системы UNIX, так как она используется на различных типах компьютеров чаще, чем любая другая ОС. Система UNIX доминирует на рабочих станциях старших моделей и серверах, но она также используется и в ноутбуках и суперкомпьютерах. Система UNIX иллюстрирует множество важных принципов построения ОС, многие из которых были позаимствованы другими операционными системами. Общий обзор системы особенно важен для пользователей, знакомых только с системой Windows, скрывающей от них практически все детали системы. Хотя графические интерфейсы очень удобны, но они не обладают достаточной гибкостью и не дают представление о том, как работает система.
Существует множество клонов и версий системы UNIX, но фундаментальные принципы и системные вызовы практически для всех этих систем во многом совпадают. Сходными являются также общие стратегии реализации, алгоритмы и структуры данных.
UNIS и Linux
История UNIX начиналась в 60-е гг. прошлого столетия, когда сотрудник лаборатории Bell Labs крупнейшей телекоммуникационной компании в мире AT&T Кен Томпсон написал на ассемблере операционную систему, которая в шутку была названа UNICS (UNiplexed Information and Computing Service — примитивная информационная и вычислительная служба). Впоследствии написание этого слова стало короче, превратившись в UNIX. Однако переписывать всю систему на ассемблере заново для каждой новой машины дело трудное, поэтому Томпсон решил переписать UNIX на языке высокого уровня, который он сам специально разработал и назвал языком В. Но язык В оказался слабым, в первую очередь, из-за отсутствия в нем структур данных. Тогда коллега Томпсона Ритчи разработал следующий язык, явившийся преемником языка В, который, естественно, получил название С. Вместе Томпсон и Ритчи переписали UNIX на С. Язык С оказался как раз тем языком, который и был нужен в то время, и он сохраняет лидирующие позиции в области системного программирования до сих пор. За работу по созданию ОС UNIX Ритчи и Томпсону ассоциацией по вычислительной технике АСМ была присуждена престижная премия Тьюринга. Многие университеты старались получить копию системы UNIX.
Операционная система UNIX поставлялась с полным комплектом исходных текстов, поэтому владельцы системы могли совершенствовать ее. Новые идеи и усовершенствования системы распространялись быстро.
Version 7 (по номеру издания руководства программиста) стала первой переносимой на другие платформы версией операционной системы UNIX. На Version 7 выросло целое поколение студентов, которые содействовали распространению UNIX. К середине 80-х гг. ОС UNIX широко применялась на мини-компьютерах и рабочих станциях различных производителей. Многие компании даже приобрели лицензии на исходные тексты, чтобы производить свои версии системы UNIX. Одной из таких компаний была небольшая начинающая фирма Microsoft, в течение нескольких лет продававшая Version 7 под именем XENIX, пока ее интересы не повернулись в другую сторону.
В 1984 г. компания AT&T выпустила на рынок первый коммерческий вариант системы UNIX, System III. Через год она была заменена улучшенной версией, System V. Оригинальную систему System V сменили выпуски 2, 3 и 4 все той же System V. Каждый последующий выпуск был более сложным и громоздким, чем предшествующий. В процессе усовершенствований оригинальная идея, лежащая в основе системы UNIX, заключающаяся в простоте и элегантности.системы, была в значительной мере утрачена.
Калифорнийский университет в Беркли был одним из многих университетов, приобретших UNIX. Он разработал и выпустил улучшенные версии операционной системы, которые содержали большое количество усовершенствований. Важнейшими из них были использование виртуальной памяти и страничная подкачка файлов, что позволяло создавать программы, большие по размеру, чем физическая память. Другое изменение заключалось в поддержке имен файлов длиной более 14 символов. Реализация файловой системы также была изменена, благодаря чему работа с файловой системой стала суще ственно быстрее. Более надежной стала обработка сигналов. В 4-й версии Berkeley UNIX появилась поддержка сетей, в результате чего используемый протокол TCP/IP стал стандартом де-факто в мире UNIX, а позднее и в Internet, в котором преобладают серверы на базе системы UNIX. Университет в Беркли также добавил значительное количество утилит для системы UNIX, включая компиляторы с языков Pascal И Lisp. Все эти усовершенствования привели к тому, что многие производители компьютеров стали основывать свои версии системы UNIX на Berkeley UNIX, а не на официальной версии компании AT&T, System V В результате Berkeley UNIX получила широкое распространение в академических и исследовательских кругах.
Для того, чтобы система UNIX могла быть гарантированно запущена на любой машине, к концу 80-х при содействии Совета по стандартам Standard Boards при Институте инженеров по электротехнике и электронике IEEE была предпринята попытка объединить варианты системы. В этой работе приняли участие сотни людей из промышленных, академических и правительственных организаций. Коллективное название проекта — POSIX. Первые три буквы этого сокращения означали Portable Operating System — переносимая операционная система. Буквы IX были добавлены, чтобы имя проекта выглядело юниксообразно. Комитет POSIX выработал стандарт известный как 1003.1. Этот стандарт определяет набор библиотечных процедур, которые должна предоставлять каждая соответствующая данному стандарту система UNIX, таким образом, гарантируя, что эта программа будет работать на любой версии системы, поддерживающей данный стандарт.
Все системы, созданные разными разработчиками, большие и сложные, что противоречит оригинальной идее, лежавшей в основе UNIX. Поэтому исходные тексты систем понять одному человеку просто не под силу. В 1987 г. Эндрю Таненбаум написал на ассемблере новую юниксоподобную систему MINIX, достаточно небольшую, чтобы ее можно было, понять, с доступным полным исходным текстом для использования в учебных целях. Система функционально практически эквивалентна системе Version 7 UNIX, бывшей оплотом большинства факультетов кибернетики.
Система MINIX была одной из первых юниксообразных систем, основанных на схеме микроядра. Идея микроядра заключается в том, чтобы реализовать как можно меньше функций в ядре, в результате чего можно создать надежное и эффективное ядро. Задачи управления памятью и файловой системой были перемещены в процессы пользователя. Ядро обрабатывало передачу сообщений между процессами, не занимаясь другими задачами. По техническим причинам, связанным с архитектурой процессора Intel 8088, драйверы устройств ввода-вывода также были размещены в ядре. Файловая система и менеджер памяти работали как два раздельных пользовательских процесса.
Преимущество микроядер перед монолитными системами заключается в том, что устройство микроядра легко понять, и поддержка системы, основанной на микроядре, проще благодаря модульной структуре такой системы. Кроме того, перемещение программного обеспечения из ядра в пространство пользователя существенно повышает надежность системы, так как сбой процесса, работающего в режиме пользователя, способен нанести меньший ущерб, чем сбой компонента в режиме ядра. Основной недостаток состоит в несколько меньшей производительности, связанной с дополнительными переключениями из режима пользователя в режим ядра. На всех современных системах UNIX оконная система X Windows работает в режиме пользователя, в результате чего производительность несколько снижается, зато достигается большая модульность (в отличие от системы Windows, у которой весь графический интерфейс пользователя расположен в ядре). .
В 1991 г. финский студент Линус Торвальдс написал еще один клон системы UNIX, который назвал Linux. Это должна была быть полноценная операционная система, со многими функциями, отсутствующими в системе MINIX. Она заимствовала некоторые идеи системы MINIX, начиная со структуры дерева исходных текстов и кончая структурой файловой системы. Однако, в отличие от микроядерной системы MINIX, Linux была монолитной системой, т.е. вся ОС помещалась в ядре. Размер исходного текста приблизительно совпадал с версией MINIX. Функционально первая версия Linux также практически почти не отличалась от MINIX.
Операционная система Linux быстро росла в размерах и впоследствии развилась в полноценный клон UNIX с виртуальной памятью, более сложной файловой системой и многими другими добавленными функциями. Она была перенесена на другие платформы и теперь работает на широком спектре машин, как и UNIX.
Следующим выпуском системы Linux была версия 1.0, появившаяся в 1994 г. Она включала новую файловую систему, отображение файлов на адресное пространство памяти и совместимое с UNIX сетевое программное обеспечение. Данная версия также включала многие новые драйверы устройств.
К этому времени ОС Linux стала достаточно совместимой с UNIX, поэтому в нее было перенесено большое количество программного обеспечения UNIX, что значительно увеличило полезность этой системы. Кроме того, операционная система Linux привлекла большое количество людей, которые начали работу над ее совершенствованием и расширением.
Следующая версия - 2.0, вышла в 1996 г. Она включала в себя поддержку 64-разрядной архитектуры, симметричной многозадачности, новых сетевых протоколов и прочих многочисленных функций. Система также содержала внушительную коллекцию различных драйверов устройств.
Необычной особенностью Linux является ее бизнес-модель: это свободно распространяющееся программное обеспечение. Ее можно скачать с различных Internet-сайтов, например www.kernel.org. Система Linux поставляется вместе с лицензией, разработанной Ричардом Столманом, основателем Фонда бесплатно распространяемых программ.
Обзор операционной системы UNIX
Операционная система UNIX представляет собой интерактивную систему, используемую для одновременной поддержки нескольких процессов и нескольких пользователей. В ОС UNIX есть достаточное количество средств, позволяющих программистам и совместно работать, и управлять использованием общей информации.
ОС UNIX предназначена для опытных программистов. Это мощная и гибкая система. Она характеризуется небольшим количеством базовых элементов, которые можно комбинировать бесконечным числом способов, чтобы приспособить их для конкретного приложения. Одно из основных правил системы UNIX заключается в том, что каждая программа должна выполнять всего одну функцию, но делать это хорошо. В системе устранена бесполезная избыточность. Например, зачем писать сору, когда достаточно ср?
Операционную систему UNIX можно рассматривать в виде пирамиды (рис. 3.7). У основания пирамиды располагается аппаратное обеспечение, состоящее из ЦП, памяти, дисков, терминалов и других устройств, На аппаратном обеспечении работает система UNIX. Ее функция заключается в управлении аппаратным обеспечением и предоставлении всем программам системных вызовов. Эти системные вызовы позволяют программам создавать процессы, файлы и прочие ресурсы и управлять ими.