Следующей вехой развития 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 показывает все свои лучшие стороны. Объяснить такое поведение можно, рассмотрев архитектуру ОС более подробно.
Собственная файловая система
Основными понятиями файловых систем *nix являются следующие:
Каталог (аналогия в Windows – папка, директория) – это, прежде всего, файл, содержащий системную информацию о файлах, входящих в данный каталог. В директории могут быть каталоги более низкого уровня, обычные файлы, специальные файлы. Каталоги создает пользователь или система при выполнении определенных действий.
Обычный файл (аналогия в Windows – все файлы системы). Вся информация, хранимая на компьютере, содержится в обычных файлах. Создавать, удалять, изменять файлы может любой пользователь, имеющий права на запись в каталог и изменение файла. Именно в файлах содержатся все системные программы, настройки и данные.