- 781 Просмотр
- Обсудить
UNIX‑среда
UNIX прост. Но надо быть гением, чтобы понять его простоту. Денис Ритчи (Dennis Ritchie)
Краткая предыстория
Первоначально операционная система UNIX была разработана в конце 1960‑х годов сотрудниками компании Bell Labs, в первую очередь Кеном Томпсоном (Kenneth Thompson), Денисом Ритчи (Dennis MacAlistair Ritchie) и Дугласом МакИлроем (Douglas McIlroy) (рис. 8.1). Уже к 1978 году система была установлена более чем на 600 персональных компьютерах, прежде всего в исследовательских институтах.
Кен Томпсон и Денис Ритчи – создатели UNIX
В начале 1980‑х годов компания AT&T, которой принадлежала Bell Labs, осознала всю ценность операционной системы UNIX, начав тем самым разработку ее коммерческой версии. Впоследствии многие компании, лицензировав UNIX‑код у AT&T, успешно разработали собственные коммерческие разновидности UNIX, такие как HP‑UX, AIX, Solaris, IRIX. В 1991 году Линус Товальдс (Linus Benedict Torvalds) опубликовал ядро Linux. Дистрибутивы этой системы (в частности, Red Hat и Debian), включающие ядро, утилиты GNU и дополнительное программное обеспечение, стали бешено популярны как среди любителей, так и среди профессионалов.
Идеи, заложенные в основу UNIX, оказали огромное влияние на развитие компьютерных операционных систем. В настоящее время UNIX‑системы признаны одними из самых надежных и производительных серверных систем. Достаточно лишь посмотреть статистику использования операционной системы на серверах. Комментарии, как говорят, излишни.
ПРИМЕЧАНИЕ
К слову будет сказано, предположение о том, что UNIX‑подобную систему трудно встретить на настольном ПК, в корне неверно. Когда фирма Apple искала основу для своей новой операционной системы, она выбрала NEXTSTEP. Данная система относится к UNIX‑семейству BSD и основана на ядре Mach. Применение модификации BSD UNIX в Mac OS X делает его одной из наиболее широко используемых версий UNIX.
«Невозможно написать абсолютно качественный код», – это скажет вам любой хороший программист, особенно если речь идет о миллионах строчек программного кода. Представьте себе следующую ситуацию. Код № 1 писала одна группа программистов, код № 2 – другая. В обоих случаях над его созданием работали профессионалы, хорошо знающие свое дело. Однако первый код был на виду и дорабатывался совместными усилиями тысяч светлых голов, постоянно оттачивался и совершенствовался. Второй код был закрыт, и только лишь горстке избранных разработчиков были доступны его тексты… Конечно, в каждом из двух описанных вариантов есть свои плюсы и минусы, однако перейдем ближе к делу.
Основное концептуальное отличие UNIX от Windows – это, конечно же, открытый код. Абсолютное большинство UNIX‑систем, включая популярные Linux‑клоны, выпускаются по GNU General Public License, которая позволяет любому желающему копировать, изменять и распространять исходный код. Открытый код постоянно дорабатывается и совершенствуется, именно поэтому в UNIX‑системах так мало уязвимостей. Этот открытый код (на то он и открытый), ко всему прочему, бесплатен.
Исходный же код Windows закрыт, именно поэтому подобный подход к безопасности часто называют "безопасность в тумане" (security through obscurity).
Из характерных особенностей организации безопасности UNIX‑систем хотелось бы отметить и следующие:
♦ глубоко продуманная технология разделения прав доступа к ресурсам;
♦ каждый из процессов выполняется строго в своем адресном пространстве (Windows этим похвастаться не может);
♦ встроенные в ядро тонко конфигурируемые инструменты безопасности (к примеру, IP‑Firewall (IPFW) FreeBSD);
ПРИМЕЧАНИЕ
В большинстве UNIX‑подобных систем можно задействовать не один, а три (чаще всего) различных межсетевых экрана; зачем это нужно и какой выигрыш от этого можно получить – ответ, в общем, очевидный.
♦ наличие таких инструментов безопасности, как chroot (более подробно см. далее) и Jail (в BSD‑системах), позволяет создать систему, устойчивую даже в случае успешной попытки взлома.
Если кому‑то из читателей данный список покажется полным, смеем заверить – перечисленное является лишь верхушкой айсберга безопасности UNIX‑систем.
Почему UNIX‑системы так любят хакеры? Наверное, потому что UNIX – это свобода действий и прозрачность кода. Как узнать, что выполняет привычная для нас программа в Windows‑среде? Интуитивно понятное пространное окно с множеством кнопок – нажимай какую хочешь, просто, как робот, бери и нажимай.
В UNIX все совсем наоборот. Не тебя контролируют, а ты. Свобода! Взял исходный код программы, подправил, как тебе надо, скомпилировал – и вот она, программа, живая и светится (рис. 8.2).
Безопасность UNIX‑систем оттачивалась не одним поколением программистов. В контексте данной главы следует упомянуть о таких техниках повышения безопасности, как chroot и Jail (для BSD‑систем).Будь-те первым, поделитесь мнением с остальными.