Чтение онлайн

на главную - закладки

Жанры

Спецвыпуск журнала «Хакер» 47, октябрь 2004 г.
Шрифт:
Когда мы были молодые, а компьютеры – большие

На дворе 1969 год. К компьютерам имеют доступ лишь избранные профессора крупнейших университетов. Время работы у терминала строго ограничено, и за каждой минутой загрузки машины ведется строгий учет. Стоимость одного вычислительного центра приближается к бюджету небольшой страны. Именно на такой машине, называвшейся PDP-7, программисты Денис Ритчи (Dennis Ritchie), Радд Кенедей (Rudd Canaday), Дуг Макилрой (Doug McIlroy) и Кен Томпсон (Ken Thompson) в течение месяца написали ОС, оболочку, ассемблер и редактор.

Следующей вехой развития UNIX считается его

первое портирование на машину с другой архитектурой. На более производительном PDP-11/20 UNIX был полностью переписан с ассемблера на язык Би («B»). С 1970 до 1972 UNIX развивался компанией AT&T Bell Lab. В 1973 году Ритчи и Томпсон перевели операционную систему на язык С. К этому моменту UNIX был установлен на 25 машинах – немного, но если ты вспомнишь, сколько всего компьютеров было тогда в мире, то поймешь, что означали эти инсталлы новой системы. ОС обретала новое звучание в компьютерном мире, о ней начали говорить как о серьезном проекте. Пятая редакция проекта внесла огромный вклад в развитие системы в целом – исходные коды UNIX стали доступны студентам университетов. Началась эра массового увлечения *nix и его клонами. В университете г. Беркли собирается группа разработчиков и начинается выпуск клонов UNIX – BSD-систем. После этого происходит непрерывное совершенствование исходных кодов системы, но концепция операционной системы сложилась именно в 70-е годы двадцатого столетия. Последующие версии и клоны устраняли слабые места и увеличивали функциональность программной модели, но фундаментальных изменений не вносили.

Основные плюсы системы

Многопользовательская ОС

Уже в 70-е годы ОС UNIX была многопользовательской системой, то есть за одним компьютером могло работать несколько пользователей одновременно. При этом система заботится о том, чтобы всем хватало ресурсов, чтобы пользователи не могли оказать никакого влияния друг на друга.

Многозадачность

В UNIX используется вытесняющая многозадачность, которая базируется на понятии приоритетов и квантования процессорного времени. Все процессы разбиваются по нескольким группам в зависимости от того, кто их запускает. Кроме этого, процессы-дети получают права родителей, изменение приоритета возможно только системным вызовом, инициируемым ядром или пользователем root. Основными считаются три класса: приоритет реального времени, системных процессов, класс процессов разделения времени. Но не только отношение к определенному типу приоритетов регулирует процессорное время для данного приложения, еще существует понятие кванта времени. Грубо говоря, эта переменная регламентирует, через сколько тиков системных часов следует передать управление следующему процессу.

Переносимость кода

Одним из самых существенных достоинств всех клонов UNIX является возможность переноса ОС практически под любые платформы. Если раньше ядро и некоторые драйвера были написаны на ассемблере, дающем заметный прирост производительности, но, вместе с тем, практически полную несовместимость с архитектурами, отличными от данной, то сейчас вся система написана на языке высокого уровня C. Это означает, что для запуска UNIX на любой новой архитектуре достаточно портировать компилятор языка С и пересобрать систему из исходных кодов. Таким образом, мы получаем практически универсальную ОС со множеством приложений.

Свободное распространение

Это один из основных плюсов UNIX-клонов наших дней. Изначально UNIX была платной и закрытой системой, но с течением времени все изменилось в лучшую сторону, и сейчас активно развиваются две основных лицензии

для *nix: BSD (под ней выпускается FreeBSD) и GPL. Основное отличие BSD от GPL в том, что, в принципе, по инициативе разработчиков, возможно превращение продукта из свободного в закрытый, коммерческий. Самая демократичная и популярная на сегодняшний день – это GPL, под ней выпускается Linux и его клоны. Существуют также разного вида коммерческие лицензии, основанные на продаже ОС.

Нетребовательность к ресурсам PC

На сегодняшний день для х86 *nix-системы – самые малотребовательные относительно аппаратной стороны машины. Для работы роутера на *BSD достаточно 386-го процессора и 4 мегабайт памяти. Обеспечить данные функции на других распространенных системах при такой конфигурации PC просто невозможно. Причем даже на такой слабой машине, по нынешним меркам, UNIX показывает все свои лучшие стороны. Объяснить такое поведение можно, рассмотрев архитектуру ОС более подробно.

Аксиомы UNIX-like ОС

Собственная файловая система

Основными понятиями файловых систем *nix являются следующие:

Каталог (аналогия в Windows – папка, директория) – это, прежде всего, файл, содержащий системную информацию о файлах, входящих в данный каталог. В директории могут быть каталоги более низкого уровня, обычные файлы, специальные файлы. Каталоги создает пользователь или система при выполнении определенных действий.

Обычный файл (аналогия в Windows – все файлы системы). Вся информация, хранимая на компьютере, содержится в обычных файлах. Создавать, удалять, изменять файлы может любой пользователь, имеющий права на запись в каталог и изменение файла. Именно в файлах содержатся все системные программы, настройки и данные.

Специальный файл – особый тип файлов, присущий *nix-системам. Представляет собой служебную запись на диске, символизирующую сокет, участок памяти, процесс и некоторые другие вещи. Чаще всего эти файлы имеют нулевую или очень маленькую длину и после перезагрузки удаляются. Специальные файлы создает ядро системы или прикладные программы по мере необходимости. Обычный пользователь создавать такие записи не может. Главная особенность этого типа – файлы создаются и удаляются системой автоматически, юзер чаще всего не может прочитать их содержимое – они не содержат данных, доступных для обработки.

Вся необходимая для работы с файлом информация хранится в особой системной таблице, которая является индексным дескриптором (inode) данного объекта. Индексные дескрипторы всех файлов равны по размеру – 64 байта. В них хранятся данные о типе файла, физическом расположении файла на диске, размере в байтах, дата создания, время последней модификации, последнего обращения к файлу, информация о привилегиях доступа. Все inode пронумерованы и содержатся в особом отделе файловой системы. Для ОС порядковый номер файла есть уникальное имя файла. Полное имя объекта по его номеру устанавливается с помощью таблицы иерархии каталогов.

Существует один главный администратор – root, и он бог данного хоста

Эта особенность полностью соответствует духу UNIX: если ты – админ, то это подразумевает твои обширные знания в данной области. Власти root’a хватит на любое действие в системе: от прочтения домашних каталогов пользователей до удаления всех файловых систем на жестком диске, причем он даже не получит ни одного предупреждения от системы. Концепция UNIX подразумевает грамотного админа-root’a, в отличие от творения Б.Г.

Поделиться:
Популярные книги

Штуцер и тесак

Дроздов Анатолий Федорович
1. Штуцер и тесак
Фантастика:
боевая фантастика
альтернативная история
8.78
рейтинг книги
Штуцер и тесак

Ох уж этот Мин Джин Хо 2

Кронос Александр
2. Мин Джин Хо
Фантастика:
попаданцы
5.00
рейтинг книги
Ох уж этот Мин Джин Хо 2

Хозяйка дома на холме

Скор Элен
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка дома на холме

Системный Нуб 4

Тактарин Ринат
4. Ловец душ
Фантастика:
боевая фантастика
рпг
5.00
рейтинг книги
Системный Нуб 4

Приручитель женщин-монстров. Том 7

Дорничев Дмитрий
7. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 7

Назад в СССР: 1986 Книга 5

Гаусс Максим
5. Спасти ЧАЭС
Фантастика:
попаданцы
альтернативная история
5.75
рейтинг книги
Назад в СССР: 1986 Книга 5

Жандарм 2

Семин Никита
2. Жандарм
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Жандарм 2

Гром над Академией. Часть 1

Машуков Тимур
2. Гром над миром
Фантастика:
фэнтези
боевая фантастика
5.25
рейтинг книги
Гром над Академией. Часть 1

Энфис 5

Кронос Александр
5. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 5

Не грози Дубровскому! Том V

Панарин Антон
5. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том V

Двойня для босса. Стерильные чувства

Лесневская Вероника
Любовные романы:
современные любовные романы
6.90
рейтинг книги
Двойня для босса. Стерильные чувства

Мастер 3

Чащин Валерий
3. Мастер
Фантастика:
героическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер 3

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Прогрессор поневоле

Распопов Дмитрий Викторович
2. Фараон
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прогрессор поневоле