Разделы:

Главная

О проекте

Загрузки

Документация:

Linux

BSD

Другие Unix

Программинг

HTML, XML...

Сервера

"Окна Закрой!"

MANы

 


Рабы не мы?

краткий философский очерк об операционных системах

(примечание: нижесказанное относится к открытым
системам вообще, но в качестве примера взят Linux)

Несколько лет назад в одном компьютерном журнале (кажется PC Magazine) мой взгляд упал на короткую статью-заметку о Linux размером в четверть страницы. Тогда еще не было сегодняшнего Linux-бума, и на фоне всеобщего восхищения, обсуждения, исследования и прочих проявлениях знаков внимания к Windows та статья и точка зрения ее автора смотрелась белой вороной. Смысл же ее был довольно прост - автор (к сожалению не помню имени) высказал банальное предположение: мол, система будущего - это Linux, может сейчас это еще и не видно, но вот подождите пару-тройку лет - и увидите сами. Довольно интересно взглянуть на расстановку сил сейчас и попытаться окинуть аналитическим взглядом принципы, которые обеспечили Linux стремительный взлет. Я и попробую это сделать, стараясь не быть занудным, не вдаваясь в вереницы интегральных вычислений и скучных технических терминов :)

Любая операционная система, как известно, всего лишь программа, самая обычная, почти ничем не отличающаяся от 10 PRINT "HELLO". Ее особенность лишь в том, что она - платформа для приложений, которые будут для нее написаны. Иными словами это основание здания. Отсюда следует элементарный вывод - функционирование любого приложения ограничено операционной системой, под которую оно написано. Под функционированием я имею в виду и возможности приложения, и его надежность, и его внешний вид, и его требования к ресурсам. Здание ограничено фундаментом. Его надежность не больше надежности фундамента, если фундамент не выдерживает нагрузки - падает все. Операционная система в свою очередь ограничена аппаратным обеспечением.. кажется я уже стал читать лекцию по курсу "Операционные системы" :) Вообщем идея ясна - если система ненадежна, то и все приложения, правильно они написаны или нет, все равно будут виснуть, если система чего-то не может - то и все ее приложения тоже этого не могут и т.д. (единственное исключение из этого - DOS-подобные однозадачные системы реального режима , где у программы есть полный контроль над всем наравне с операционной системой). Задачу операционной системы можно сформулировать так - обеспечить наибольшие возможности, производительность и надежность при наименьшем требовании к ресурсам компьютера. Операционная система - это не главная программа на компьютере, напротив, ее не должно быть заметно. Главное - это приложения, им надо предоставить максимум ресурсов. Многие, дочитав до этого места тяжело вздохнут :) - "Все это конечно правильно, но с реальностью не слишком соотносится. Это - лишь красивая сказка, а пока мне надо 16, 32, 64, неизвестно_сколько_дальше мегабайт памяти и жесткого диска только для запуска операционной системы. А если еще хочется полюбоваться на что-то отличное от кнопки [Start] - то еще столько же..". Как я вас понимаю :) Да, увы, реальность обычно такова. Почему же так происходит? Попробуем найти ответ..

Как пишется обыкновенная коммерческая система? Руководство компании смотрит можно ли из системы сделать деньги, если можно - вносит поправки в проект системы, что бы сделать их как можно больше, устанавливает сроки - и вперед, машина запущена. Ровно в xx:00 такого-то числа мы увидим на презентации красивую коробку. Только вот что будет внутри? И в чем недостатки такого подхода?

Первый очевидный недостаток - ограничение круга специалистов-разработчиков системы одной компанией. Это означает, что качество системы будет иметь потолок в лице наиболее квалифицированного специалиста компании. Второй - система должна быть сдана в срок, и никого не волнует, дописана ли и отлажена ли она (если вы писали коммерческие программы - вам знаком мандраж перед сдачей проекта, главное чтобы внешне все выглядело нормально, а работает оно или нет - это потом выясним :). Третий недостаток - ограничение направления развития точкой зрения руководства одной компании. Четвертый - закрытость для системного программиста и разработчика приложений, недокументированные функции..

Для начала, думаю, хватит. (Как следствие - надежность,быстродействие и минимализм приносятся в жертву внешнему виду и веяниям времени, хотя история показывает, что выживают именно надежные, а не красиво оформленные системы. Да, сначала неискушенный пользователь смотрит на внешний вид. Но, как известно, хоть по нему и встречают, то провожают уже по несколько другим параметрам). Это и называется "закрытой системой". В противовес подобным системам существуют "открытые системы", их то мы и рассмотрим на примере Linux.

Linux - открытая система. Это значит, что любой желающий может заняться ее разработкой. То есть нет фирмы, в которой надо быть, чтобы писать Linux, нет руководства, которое бы диктовало, каким должен быть Linux, что надо, а что не надо. Ну и что? - спросите вы. А вот что: это и обеспечивает наиболее быстрый рост системы, наименьшие ограничения и максимальную интеграцию с другими системами. Я выскажу крамольную мысль: большинство ограничений, накладываемых коммерческими операционными системами на приложения и ресурсы созданы искусственно. Да-да, именно исскуственно, это значит, что, например, если Windows не воспринимает файловую систему, отличную от FAT - это вовсе не потому, что это невозможно в принципе (напротив, ничего не стоит это сделать), а потому, что это - установка Microsoft, так сделано специально. Улавливаете? Коммерческим системам свойственно тянуть одеяло на себя, строить пакости конкурентам и пытаться ограничить пользователя определенными заборами, решетками и колючей проволокой. Зачем?

Ведь они же говорят что-то удобство, скорость, надежность. Вот-вот, надежность, за высоким забором с колючей проволокой и стаями голодных овчарок вы в абсолютной безопасности. Только это довольно странный взгляд на мир... Пользователя сажают в клетку. Да, там можно существовать. Это даже сначала может нравиться, и все бы ничего, если бы операционные системы были написаны только для компьютеров. Но, к сожалению ими еще управляют живые люди с логикой отличной от формул и красивых правильных схем. И им иногда хочется делать странные на взгляд некоторых производителей систем вещи, как, например, попробовать выйти за пределы этой тюрьмы. И тут их зачастую ждет разочарование... (если вы смотрели фильм "Колония" - вы меня точно поняли :)

А что же делает Linux? Правильно, он пытается найти общий язык со всеми, и показывает, что бывает, если нет искусственного ограничения на систему. Знаете, сколько файловых систем он поддерживает? Их число перевалило за 20 (похвастать таким количеством кроме него никто не может), хотя ему самому хватило бы одной единственной ext2. Зачем это нужно? Иначе бы вышла очередная операционная система "как-все", совместимая только сама с собой... А что еще? А еще Linux почти мгновенно впитывает в себя новые разработки. Пока неповоротливая производственная машина коммерческой компании расшевелится - пройдет немало времени, они еще только говорят о новых технологиях - бах! а это уже есть в Linux. Написали. За неделю. У кого-то как раз была свободная неделя и желание написать что-нибудь :) Что еще? Linux пишется так, чтобы работать когда возможно и когда невозможно, и отличается завидной живучестью.

На днях случилась забавная история. На одной машине с Linux, служащей маршрутизатором в Internet и заодно dhcp,ftp и mail сервером отказал контроллер жесткого диска. Это старенькая 486-я, с мультикартой сомнительной свежести и она (мультикарта) иногда преподносит такие сюрпризы. Винчестер там естественно только один, никакого RAID и в помине нет. Вот только заметил я это на третий день после отключения контроллера, когда попытался зайти в систему telnet'ом и получил отбой. Спустившись к машине и взглянув на консоль я понял, что же произошло. Потом я понял, что это произошло три дня назад. Linux спокойно маршрутизировал себе пакеты с локалки на выделенку и выдавал IP адреса. Не обращая внимания на потерю винчестера. И делал бы это, пока в системный блок не ударила бы молния :) (Вопрос: а как вы думаете, сколько бы прожила NT, если бы у нее отключили винчестер? :)

Многие спрашивают - "покажи мне Linux, какой он ?" Взглянув на десяток оконных менеджеров с абсолютно разным внешним видом люди обычно остаются в замешательстве, так и не поняв, что же именно из этого - Linux (это похоже на нашего советского человека, попавшего в забугорный супермаркет и увидевшего больше одного сорта колбасы :). Пользователей приучили к клетке, им трудно понять, что тут нет ограничений и на внешний вид Хочешь - Linux будет выглядеть как Windows 95, хочешь - как OS/2, хочешь - как MacOS. Не хочешь - будет только текстовая консоль :). Попробовав все, вы выберете себе свой, наиболее понравившийся оконный менеджер. А выбор богатый...И в конце концов человек понимает, что нет официального Linux, на который можно показать пальцем и сказать - "вот, это он", напротив, хамелеон Linux принимает нужный вам вид. На первый взгляд в Linux-мире государственным строем является полнейшая анархия. Это так и есть в некотором (хорошем) смысле, и именно это и является залогом его дальнейшего успеха и развития... Именно эта кажущаяся анархия в сочетании в вышеперечисленными факторами обеспечила ему растущую с каждым днем популярность.

Вообщем, аналогии напрашиваются сами - знакомство с открытой операционной системой подобно выходу из рабства. Человек, проживший всю жизнь в клетке и получивший свободу как правило просто не знает, что с ней делать, и какая от нее польза. У него есть выбор - вернуться обратно в свою родную, привычную, любимую ... или ...
Я оставляю вам место для размышлений :)



Партнёры и спонсоры проекта:

Все материалы сайта распространяются по лицензии GNU/GPL
© ProUNIX 2003-2009, UnixLib 2005-2009, SoftLib 2006-2009.