Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Документ Microsoft Office Word.doc
Скачиваний:
93
Добавлен:
16.02.2016
Размер:
413.7 Кб
Скачать

Тема 4. Операционная система linux

4.1. История Linux

4.2. Структура файловой системы Linux

4.3. Этапы загрузки системы

4.4. Конфигурирование ОС

4.5. Графический интерфейс

4.1. История Linux

В 1991 году Линус Торвальдс, финский студент, заинтересовался идеей

написать ядро операционной системы для своего персонального компьютера.

Прототипом для будущего ядра стала операционная система MINIX:

совместимая с ОС UNIX для персональных компьютеров, которая загружалась с

дискет и умещалась в очень ограниченной в те времена памяти персонального

компьютера. MINIX был создан Эндрю Таненбаумом в качестве учебной

операционной системы, демонстрирующей архитектуру и возможности UNIX,

но непригодной для полноценной работы с точки зрения программиста, а также

ограничивающей её использование только в образовательных целях лицензией.

Именно полноценное ядро для своего ПК и хотел сделать Линус Торвальдс.

Название своему ядру он дал freax, но позже оно было изменено на Linux —

гибрид имени создателя и слова UNIX.

Ключевым решением Линуса стала публикация исходных текстов ещё

малоработоспособной первой версии ядра под свободной лицензией GNU GPL.

Благодаря этому и получавшей все большее распространение сети Internet,

очень многие получили возможность самостоятельно компилировать и

тестировать это ядро, участвовать в обсуждении и исправлении ошибок, а также

присылать исправления и дополнения к исходным текстам Линуса. Теперь над

ядром работал уже не один человек, разработка пошла быстрее и эффективнее.

Линукс-системы представляют собой модульные Unix-подобные

операционные системы. В большей степени дизайн Линукс-систем базируется

на принципах, заложенных в Unix в течение 1970-х и 1980-х годов.

В 1994 году вышла версия 1.0, что свидетельствовало о том, что

разработчики наконец сочли, что ядро в целом закончено и все ошибки

(теоретически) исправлены. В настоящее время разработка ядра Linux — дело

уже гораздо большего сообщества, чем в те времена. Изменилась и роль самого

Линуса Торвальдса: теперь он не главный разработчик, а наиболее

авторитетный член сообщества, по традиции оценивающий качество исходных

текстов, которые должны быть включены в ядро, и дающий добро на их

включение.

Принципиальным шагом вперёд было именно то, что из ядра Linux,

утилит и приложений GNU впервые стало возможно сделать полностью

свободную операционную систему, то есть работать с компьютером и, более

того, разрабатывать новое программное обеспечение, пользуясь при этом только

свободным программным обеспечением. Идеал полностью некоммерческой

разработки, сформулированный Столлманом, теперь мог быть воплощён в

жизнь.

Выгода операционной системы, целиком состоящей из свободного

программного обеспечения, очевидна — собирающие эту систему не должны

никому платить за входящие в неё программы. Более того, дальнейшая

разработка и обновление имеющихся программ ведётся сообществом

разработчиков также совершенно бесплатно, то есть не нужно платить

сотрудникам, которые занимались бы этим. В итоге затраты фирмы,

собирающей дистрибутив Linux для пользователя, ограничиваются оплатой

программистов, интегрирующих разрозненные приложения в систему и

пишущих программы для стандартизации процедур установки и настройки

системы, чтобы облегчить эти задачи неподготовленному пользователю, а также

затратами на самоиздание получившегося дистрибутива. Для конечного

покупателя это означает принципиальное снижение цены на операционную

систему.

Первой успешной компанией, работающей по такой схеме, стала Red

Hat, появившаяся в 1995 году. Red Hat адресовала свои разработки не только

программистам профессионалам, но и обыкновенным пользователям и

системным администраторам, для которых компьютер — в первую очередь

офисное рабочее место или рабочий сервер. Ориентируясь на уже

существующие на рынке предложения для такого класса пользователей, Red Hat

всегда уделяла большое внимание разработке приложений с графическим

интерфейсом для выполнения типичных задач по настройке и

администрированию системы.

Всякий раз, когда свободное программное обеспечение оказывается

востребованным, немедленно возникает множество альтернативных решений —

так произошло и с дистрибутивами Linux. После 1995 года возникло (и

продолжает развиваться) огромное количество коммерческих компаний и

свободных сообществ, которые ставят своей задачей подготовку и выпуск

дистрибутивов Linux. У каждого из них — свои особенности, своя целевая

аудитория, свои приоритеты. К настоящему времени на рынке дистрибутивов

выделилось несколько лидеров, которые предлагают более или менее

универсальные решения и наиболее широко известны и используются. Помимо

уже названной Red Hat следует назвать в ряду дистрибутивов, ориентированных

на рядового пользователя SuSE, Mandriva (до 2005 года — Mandrake) и Ubuntu,

среди адресованных специалистам — Gentoo и Debian. Но помимо «крупных»

игроков на данном рынке есть гораздо большее количество менее

распространённых дистрибутивов. Теперь перед пользователем, желающим

установить Linux, встаёт вопрос выбора дистрибутива. Критерии выбора -это

задачи, которые предполагается решать с помощью Linux, уровень подготовки

пользователя, технологии, предстоящие контакты с тем сообществом, которое

занимается разработкой дистрибутива.

В настоящий момент ОС семейства Linux быстро отвоёвывают рынок у

коммерческих UNIX и Windows систем и одновременно проникают как на

настольные компьютеры конечных пользователей, так и на мобильные и

встраиваемые системы.

4.2. Структура файловой системы Linux

Операционные системы хранят данные на диске при помощи файловых

систем. Классическая файловая система представляет данные в виде вложенных

друг в друга каталогов (их ещё называют папками), в которых содержатся

файлы. Один из каталогов является «вершиной» файловой системы (а

выражаясь технически — «корнем»), в нём содержатся все остальные каталоги

и файлы.

Если жёсткий диск разбит на разделы, то на каждом разделе

организуется отдельная файловая система с собственным корнем и структурой

каталогов, при этом разделы полностью изолированы друг от друга.

В Linux корневой каталог называется «корень», а обозначается – “/”

(«слэш»). Полные имена всех остальных каталогов получаются из корня, к

которому дописываются справа имена последовательно вложенных друг в друга

каталогов. Имена каталогов в пути также разделяются символом “/” («слэш»).

Перечисленные таким образом каталоги, завершающиеся именем файла

составляют полный путь к файлу.

Относительный путь строится точно так же, как и полный —

перечислением через “/” всех названий каталогов, встретившихся при движении

к искомому каталогу или файлу. Между полным путём и относительным есть

только одно существенное различие: относительный путь начинается от

текущего каталога, в то время как полный путь всегда начинается от

корневого каталога. Относительный путь любого файла или каталога в

файловой системе может иметь любую конфигурацию: чтобы добраться до

искомого файла можно двигаться как по направлению к корневому каталогу, так

и от него. Linux различает полный и относительный пути очень просто: если

имя объекта начинается со “/” — это полный путь, в любом другом случае —

относительный.

Монтирование

Корневой каталог в Linux всегда только один, а все остальные каталоги в

него вложены, то есть для пользователя файловая система представляет собой

единое целое. В действительности, разные части файловой системы могут

находиться на совершенно разных устройствах: разных разделах жёсткого

диска, на разнообразных съёмных носителях (лазерных дисках, дискетах, флэшкартах), даже на других компьютерах (с доступом через сеть). Для того, чтобы

соорудить из этой иерархии единое дерево с одним корнем, используется

процедура монтирования.

Монтирование— это подключение в один из каталогов целой файловой

системы, находящейся где-то на другом устройстве. Для монтирования

необходим пустой каталог— он называется точкой монтирования. Точкой

монтирования может служить любой каталог, никаких ограничений на этот счёт

в Linux нет. При помощи специальной команды мы объявляем, что в данном

пока пустом каталоге нужно отображать файловую систему, доступную на

таком-то устройстве или же по сети. После этой операции в каталоге (точке

монтирования) появятся все те файлы и каталоги, которые находятся на

соответствующем устройстве. В результате пользователь может даже и не знать,

на каком устройстве какие файлы располагаются.

Подключенную таким образом («смонтированную») файловую систему

можно в любой момент отключить, после чего тот каталог, куда она была

смонтирована, снова окажется пустым.

Для Linux самой важной является корневая файловая система. Именно к

ней затем будут монтироваться все остальные файловые системы на других

устройствах. Причем корневая файловая система тоже монтируется, но только

не к другой файловой системе, а к «самой Linux», причём точкой монтирования

служит “/” (корневой каталог). Поэтому при загрузке системы прежде всего

монтируется корневая файловая система, а при остановке она размонтируется в

последнюю очередь.

Пользователю обычно не требуется выполнять монтирование и

размонтирование вручную: при загрузке системы будут смонтированы все

устройства, на которых хранятся части файловой системы, а при остановке

перед выключением системы все они будут размонтированы. Файловые

системы на съёмных носителях (лазерных дисках, дискетах и пр.) также

монтируются и размонтируются автоматически — либо при подключении

носителя, либо при обращении к соответствующему каталогу.

Стандартные каталоги

В корневом каталоге Linux-системы обычно находятся только

подкаталоги со стандартными именами. Более того, не только имена, но и тип

данных, которые могут попасть в тот или иной каталог, также

регламентированы стандартом.

Стандартное размещение файлов позволяет и человеку, и даже

программе предсказать, где находится тот или иной компонент системы. Для

человека это означает, что он сможет быстро сориентироваться в любой системе

Linux (где файловая система организована в соответствии со стандартом) и

найти то, что ему нужно. Для программ стандартное расположение файлов —

это возможность организации автоматического взаимодействия между разными

компонентами системы.

4.3. Этапы загрузки системы

Загрузка -процесс ступенчатый, причем поведение компьютера на

различных этапах загрузки определяется разными людьми -от разработчиков

аппаратной составляющей до системного администратора. Предъявляемые к

системе требования гибкости, возможности изменять ее настройку в

зависимости от аппаратной составляющей, необходимость решать разные

задачи с помощью одного и того же компьютера тоже делают процесс загрузки

ступенчатым, то есть сначала определяется профиль будущей системы, а затем

этот профиль реализуется.

Сразу после включения оперативная память компьютера классической

архитектуры чиста. Для того чтобы начать работать, процессору необходима

хоть какая-то программа. Эта программа автоматически загружается из

энергонезависимой памяти (CMOS).

Данная начальная программа может распознавать основные устройства,

на которых записана другая программа, уметь загружать эту программу в

память и передавать ей управление компьютером, а также поддерживать

интерфейс, позволяющий менять настройки в энергонезависимой памяти.

Эта программа называется BIOS (basic input-output system) и

предназначена для простейшего низкоуровневого доступа к внешним

устройствам компьютера.

Таким образом, этот этап загрузки системы можно назвать нулевым, так

как ни от какой системы он не зависит. Его задача -определить начальную

конфигурацию оборудования и произвести его настройку, а также определить, с

какого устройства будет идти дальнейшая загрузка, загрузить оттуда

специальную программу-загрузчик и запустить ее.

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

описать следующими словами: BIOS из загрузочного сектора загружает

первичный загрузчик (первый этап). Он находит вторичный загрузчик,

используя таблицу разделов, загружает его в оперативную память, а потом

запускает его (второй этап). В целом, вторичный загрузчик -это программа,

которая выводит список вариантов загрузки, то есть меню выбора загрузки

операционной системы.

Итак, досистемная загрузка проходит в три этапа.

2 BIOS определяет, с каких устройств можно производить загрузку,

затем загружает с выбранного устройства первичный загрузчик и передает ему

управление.

3 Первичный загрузчик определяет, где находится вторичный

загрузчик, загружает его и передает ему управление.

4 Вторичный загрузчик определяет, где находится ядро системы,

предлагает пользователю несколько вариантов загрузки на выбор. Его задача

загрузить в память ядро и всё необходимое для старта системы, настроить всё

это и передать управление ядру.

При рассмотрении процесса загрузки ядра в упрощенном виде

получается следующее. Процесс загрузки.

Ядро представляет собой набор подпрограмм, используемых для

организации доступа к ресурсам компьютера, обеспечения запуска и

взаимодействия процессов, проведения политики безопасности системы и для

других действий, которые могут выполняться только в режиме полного доступа.

Сначала ядро определяет аппаратное окружение. При этом задача ядра

заключается в определении списка внешних устройств, их классификации и

настройке. Далее загружается терминал, или графический интерфейс. После

идентификации пользователя происходит инициализация рабочего окружения, в

соответствии с его настройками.

Полноценно загруженная Linux-система предоставляет пользователям

множество услуг, таких как отсылка заданий на печать и обеспечение их

очереди, запуск заданий по расписанию, проверка целостности и т.п. Набор

утилит и системных программ, предназначенных для предоставления таких

услуг, принято называть подсистемами или службами.

4.4. Конфигурирование ОС

Linux предоставляет множество возможностей по настройке системы.

Как правило, настройка нужной программы или свойства системы сводится к

редактированию определённого конфигурационного файла. А так как

конфигурационные файлы являются обыкновенными текстовыми файлами, то

всё, что нужно — это выбрать любой текстовый редактор. Таким образом,

именно простой текстовый редактор и является самым мощным средством

конфигурирования любой Linux-системы.

При редактировании конфигурационных файлов желательно создавать

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

каждого редактирования следует проверять работоспособность системы. В

противном случае найти ошибку будет сложно.

4.5. Графический интерфейс

Графическая среда рабочего стола — это разновидность графических

интерфейсов пользователя. Она обеспечивает пространство, называемое

рабочим столом, на котором появляются окна, пиктограммы, панели и другие

элементы.

В Unix-подобных операционных системах наиболее популярными,

использующими X Window System, являются GNOME, KDE, Xfce.

Разработчики GNOME ориентируются на создание полностью

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

технических навыков, физических ограничений и языка, на котором они

говорят. В рамках данного проекта разрабатываются два направления: рабочая

среда, интуитивно понятная и привлекательная для пользователей; и платформа

разработки, то есть обширный каркас для создания приложений,

интегрируемых с рабочей средой.

KDE — свободная среда рабочего стола для UNIX-подобных

операционных систем, построенная на на основе кросс-платформенного

инструментария. В состав KDE входит набор тесно интегрированных между

собой программ для выполнения повседневной работы.