В 1991 году 22-летний финский аспирант по Линус Торвальдс (Linus Torvalds) столкнулся с дилеммой. Он хотел, но не мог себе позволить рыночные версии Unix: мощной и гибкой компьютерной операционной системы, продаваемой по цене 5000 долларов за программное обеспечение и еще 10000 долларов за специализированную рабочую станцию. (Операционная система, будь то Unix, Microsoft Windows или Mac OS - это программное обеспечение, позволяющее приложениям - таким как текстовые редакторы - использовать ваш компьютер).
Торвальдс решил создать клон Unix для персонального компьютера. Он разработал простое ядро (центральную часть операционной системы) и поместил его в Интернет. Он призвал всех попробовать эту "программу для хакеров, созданную хакером". Позже он защитил ее общей открытой лицензией (General Public License - GPL) организации Free Software Foundation, которая делает программное обеспечение свободным и доступным всем. Эта лицензия требует от любого, кто изменил такое программное обеспечение, сделать изменения доступными для всех остальных пользователей. Использование Linux росло как на дрожжах. Возникло сообщество разработчиков Linux и к 2003 году их самоорганизующаяся совместная работа привела к продукту, который управляет десятками миллионов компьютеров по всему миру.
Теперь многие руководители стоят перед необходимостью принять решения о крупных вложениях в Linux. Это не всегда просто. Linux внушает мифический страх, неуверенность и сомнения. Мифы часто содержат зерно истины. Давайте разберемся.
Миф: Linux - это религиозное движение, основанное на идеализме и миссионерском порыве.
Реальность: Порыв в Linux существует. Но прагматичные руководители в Hewlett-Packard, IBM и Oracle внесли значительные части своих корпоративных возможностей в Linux. Sun, проигрывающий Linux, теперь продает компьютеры со встроенным Linux. IBM отбросила гордое наследие доморощенных операционных систем в пользу этого выскочки. Эти решения основаны на экономике, а не на порыве.
Миф: Иск SCO запятнал репутацию Linux.
Реальность: SCO Group, компания из штата Юта, владеющая некоторой интеллектуальной собственностью Unix, подала в марте в суд на IBM на основании того, что Голубой гигант перенес эту собственность в Linux. Два месяца спустя, SCO начала угрожать и корпоративным пользователям. Клиенты не купились на это. Коммерческое издание Internet Week опросило 2172 читателя и 91% из них заявили, что этот иск не повлияет на их планы.
Миф: Linux годится только для некритических приложений.
Реальность: Linux дебютировал в некритических областях, таких как электронная почта и управление принтерами. Теперь Goldman Sachs сообщает, что доля Linux в продажах корпоративных вычислительных серверах вырастет до 25% в 2005 году от 15% в 2002. DaimlerChrysler заменил три суперкомпьютера, моделирующих автомобильные аварии на 108 компьютеров Intel под управлением Linux, сэкономив 40% при ожидаемом повышении производительности на 20%. E-Trade использует Linux для онлайновых торгов акциями. Мультфильм Dreamworks "Синбад: легенда семи морей" был целиком создан на рабочих станциях под управлением Linux. "Система боя будущего" армии США (не спрашивайте) ценой в 26 миллиардов долларов будет использовать Linux.
Миф: Linux никогда не окажется на рабочем столе.
Реальность: Я не хочу Linux на моем настольном компьютере! Я люблю простоту, разнообразие приложений, все эти крутилки и звоночки Microsoft Windows. С другой стороны, некоторые компании считают, что дешевле предоставлять сотрудникам, скажем, центра обработки телефонных вызовов, персональные компьютеры с ограниченной функциональностью под управлением Linux. Это еще и полезно: меньше соблазн бродить по Сети или играть в компьютерные игры. А для домашних потребителей электронный магазин Wall-Mart предлагает предустановленный персональный компьютер марки Microtel под управлением Linux за 199,98 долларов. В предложение входит большая коллекция приложений с открытыми исходными текстами, от текстового процессора до изощренного редактора фотографий. Consumer Reports сообщает, что Microtel неуклюжий, но просто подождем одно-два поколения продукта.
Миф: Успех Linux объясняется его бесплатностью.
Реальность: Linux бесплатен, поэтому с ним трудно конкурировать. Но не так просто бесплатен, как бесплатное пиво. Он еще и свободен, как английский язык, потому что кто угодно может посмотреть, как он работает и добавить новые части, которые сделают его лучше. И он свободен тем, что работает на компьютерах многих производителей, что означает большую конкуренцию. Linux еще и лучше. Он надежен. Он не часто рушится. Он сопротивляется к атакам хакеров. Благодаря Linux вы можете иметь пирожное (открытость и конкуренцию) и есть его (надежность).
Миф: Linux тяжело сопровождать.
Реальность: Обычные люди - не одержимые компьютерами - не хотят с ним возиться. Даже одержимым компьютерщикам требуется особая смекалка. Не беспокойтесь. Сегодняшние компьютерные факультеты выпускают Linux-гуру пачками. А компании, занимающиеся технической поддержкой, уже готовы и могут взять на себя ваши проблемы.
Миф: Немногие программные продукты работают под Linux.
Реальность: Правда, вы не можете получить MS Office для Linux и множество крупных пакетов еще не работает под ним - пока. Крупные поставщики приложений Oracle и SAP теперь выпускают продукцию для Linux, и другие следуют за ними. SAP вскоре ожидает, что 10% ее продаж будет работать под Linux.
Миф: Открытые исходные тексты означают множество конкурирующих стандартов.
Реальность: Существует несколько версий Linux, но ситуация находится под контролем. Red Hat, основанная канадцем Бобом Янгом (Bob Young), выпускает Linux, который является сокрушительно доминирующим стандартом де-факто.
Миф: Microsoft сильнее всех пострадает от Linux.
Реальность: Microsoft сталкивается с рисками от распространения Linux. Но другие, такие как Sun, уже потеряли больше. Goldman Sachs заявил, что небольшой прирост доли рынка Linux произойдет за счет прихода из под Microsoft. Большая часть придет с других форм Unix и вымирающих закрытых систем от таких компаний как IBM. Тем не менее, конкуренция побуждает Microsoft уплотнить свою экономику, разнообразить свои предложения и повысить надежность продуктов. Я предсказываю, что Microsoft, как это сделала IBM в начале 1990-х, выйдет из этого поединка улучшенной и усиленной компанией.
Итого: Linux вам на пользу. Не сбрасывайте со счетов проблемы и риски, но и не давайте им пугать вас.
Ответов на вопрос "А что же такое Linux?" можно найти множество. Очень многие считают, что Linux - это только ядро. Но одно только ядро бесполезно для пользователя. Хотя ядро, несомненно, основа ОС Linux, пользователю все время приходится работать с прикладными программами. Эти программы не менее важны, чем ядро. Поэтому Linux - это совокупность ядра и основных прикладных программ, которые обычно бывают установлены на каждом компьютере с этой операционной системой. Объединение ядра и прикладных программ в единое целое проявляется и в названии системы: GNU/Linux. GNU - это проект по созданию комплекса программ, подобного тому, что обычно сопровождает Unix-подобную систему.
GNU/Linux был сделан по образу и подобию Unix - целого класса операционных систем, имеющих общий корень. Для любого человека, ранее пользовавшегося другой Unix-подобной системой, Linux не покажется чем-то особенным. Но Unix сильно отличается от Windows, MacOS и даже MS-DOS, при создании второй версии которой разработчиками было очень много позаимствовано из Unix (например, древовидная структура каталогов, перенаправление ввода-вывода и т.д.). Таким образом, все, что говорится о Linux по большей части применимо к любому Unix-у.
Сторонникам Linux часто предъявляются претензии, что при разговоре о преимуществах Linux они перечисляют недостатки Windows. Но зачастую это бывает неизбежно, поскольку все познается в сравнении, а большинство пользователей компьютеров сейчас знакомы только с Windows. Итак, что же дает Linux?
- Командная строка.
В MS-DOS и Windows командная строка неудобна в использовании, что внушает отвращение к ней пользователям, а язык командных файлов сравнительно беден. В Unix пользовательский интерфейс* командной строки приближен к совершенству, в комплекте с системой идет множество полезных утилит, которые можно использовать с командной строки, а скрипты* позволяют автоматизировать множество задач. Работа с командной строки намного эффективнее, чем работа на мышке. Несомненно, нужно помнить команды*, ключи* и другие параметры команд, но основные команды очень быстро запоминается, а по другим можно заглянуть в справочник. Многим пользователям на самом деле нужно всего несколько команд. А для тех пользователей, которые не хотят или не могут запомнить команды, системный администратор может настроить Linux так, чтобы для этих пользователей все нужные им программы запускались автоматически. Работа в командной строке не сложнее графического интерфейса Windows, просто она другая. Может быть она менее наглядна, но профессионалам она позволяет работать намного более эффективно. Даже графический интерфейс Unix - X Window System (Иксы) не предполагает отказа от командной строки и никогда ей не противопоставлялся, как в Windows. Многие графические приложения могут управляться с командной строки, сочетая преимущества обоих методов.
Под Linux существуют и программы типа Norton-а - Midnight Commander например.
Для некоторых приложений (например, для программы электронной почты) графика не является обязательной и это снижает их требования к системе.
Командная строка повышает эффективность работы профессиональных пользователей, но ее использование не является обязательным.
- "Понятность" системы.
Linux кажется "черным ящиком" только поначалу. С опытом приходит понимание системы. Профессионалам часто бывает достаточно одного взгляда на ранее не встречавшуюся им проблему для того, чтобы успешно разрешить ее. Это происходит от того, что известны принципы работы системы, ее "генеральная линия". Можно ткнуть пальцем в любой файл в любом каталоге и, при желании, узнать зачем он нужен и почему находится именно в этом каталоге. По крайней мере, как правило, бывает сразу понятно к какой программе этот файл относится. Это понимание дает возможность избавляться от ненужных файлов без боязни, что это сделает систему или какое-либо приложение неработоспособным. Можно оставить только необходимые для какого-то конкретного приложения файлы и запускать Linux с одной дискеты или использовать эту систему во встраиваемых приложениях.
Linux предоставляет развитые возможности для диагностики проблем, такие как лог-файлы*, утилита strace* и встроенные во многие программы средства отладки. Эти же средства позволяют составить представление о том, как работает та или иная программа, даже если нет желания или возможности изучать ее исходные тексты.
Систематизация файлов тоже помогает разбираться в файловой системе. Например, все программы, которые предназначены для запуска пользователем находятся в каталоге bin, все конфигурационные файлы в etc, а библиотеки в lib.
Все настройки программ находятся в простых текстовых файлах, которые можно редактировать любым текстовым редактором. Формат настроечных файлов, как правило, описан в документации или в самом конфигурационном файле при помощи комментариев. Почти всегда можно оставить свои комментарии на заметку. Стандартный текстовый формат конфигурационных и системных файлов упрощает процедуры резервного копирования и клонирования системы.
Linux снижает затраты на администрирование системы за счет своей предсказуемости, развитых средств диагностики и конфигурации при помощи текстовых файлов.
- Открытость исходных текстов системы.
Linux создавался добровольцами, которые модифицировали систему под свои нужды. Открытость исходных текстов - ключевой момент в этом процессе. Лицензия GPL* позволяет не только просматривать исходные тексты ядра* и всех программ, но и модифицировать их, и даже распространять модифицированные версии. С такой лицензией исчезает зависимость пользователей от разработчиков ПО. Если группа разработчиков какого-либо проекта бросит разработку, то их дело может продолжить другая заинтересованная группа. Кажется, что большинству пользователей исходники системы и ни к чему, поскольку они не умеют программировать, но очень часто немножко поправить программу можно и без этого. А для фирмы иногда бывает удобно нанять программиста или сделать заказ другой фирме для того, чтобы они дополнили используемые ими программы необходимыми возможностями. Это наверняка обойдется дешевле, чем разрабатывать ПО с нуля. Также имеется возможность выбора фирмы, предоставляющей поддержку. Когда она не нужна (если, скажем, есть свои специалисты), то за нее можно не платить, а если нужна - есть выбор среди нескольких конкурирующих фирм.
Лицензия Linux защищает интересы конечных пользователей, а не производителя ПО. Часто именно лицензия являются решающим аргументом в пользу Linux.
- Бесплатность и легальность.
Конечно в России все программное обеспечение бесплатное, но иногда легальность использования ПО имеет значение.
- Удобство программирования.
Продуманный интерфейс* прикладных программ с ядром и библиотеками играет очень важную роль при создании приложений. Он ускоряет разработку приложений, уменьшает их размер при той же функциональности и повышает качество. API* Linux совместим с POSIX (Portable Operating System Interface) - стандартом для Unix-систем. Это воплощение опыта развития Unix, многих лет работы. Он проверен временем и используется во множестве систем. Этот интерфейс стабилен, он не изменится неожиданно кардинальным образом. Программы написанные под Linux как правило достаточно легко переносятся в любую среду, которая поддерживает POSIX.
Linux включает в себя компилятор C и C++, Perl. Все это поставляется с исходниками. Linux в основном написан на языке С, который является одной из самых удачных разработок за всю историю компьютерной отрасли. GNU C, по мнению многих программистов, является одним из лучших среди компиляторов C.
Если какая-то часть программы может быть полезна для других программ, то ее стараются выделить в библиотеку. Множество таких библиотек распространяются через Интернет под лицензией GPL*. Лицензия позволяет программистам использовать код, написанный другими людьми.
Простота интерфейсов Linux ведет к улучшению качества программного обеспечения и к снижению затрат на его создание.
- Удаленное управление.
Linux имеет очень развитые средства удаленного управления. Причем управлять машиной под управлением Linux можно с любой другой системы, где есть программа эмулятор терминала (в отличие, например, от Windows NT). Если машина подключена в Интернет, то управлять ей можно практически с любой другой машины, также подключенной в Интернет, быстрое подключение не требуется. Удаленное управление рабочими станциями сокращает затраты на администрирование сети, поскольку системному администратору не нужно даже вставать со стула для того, чтобы, например, поставить какое-либо программное обеспечение на все рабочие станции с Linux. Графическая среда поддерживает отображение графики на другой машине и даже запуск разных приложений с разных систем с отображением их на одном экране. При этом приложения сохраняют возможность взаимодействовать между собой (например, имеют общий буфер обмена).
- Многопользовательская работа.
Unix (и Linux) был изначально ориентирован на то, что одним компьютером могут пользоваться одновременно несколько человек. Но даже если компьютером обычно пользуется только один человек, такой подход все равно помогает разделить пользовательские настройки от системных, т.е. тех, которые относятся ко всем пользователям и к системе в целом. Такое разделение положительно сказывается на устойчивости и безопасности системы. Приложения изначально пишутся с учетом того, что ими может пользоваться несколько пользователей сразу и, как правило, не требуют прав записи в системные каталоги. Все настройки они сохраняют в собственном, т.н. "домашнем" каталоге пользователя. Каждый пользователь может настроить систему в соответствии со своими предпочтениями и это не вызовет проблем у других пользователей. Обычно работа ведется под пользователем, у которого нет прав испортить что-то за пределами своего каталога, а настройка системы производится под суперпользователем по мере необходимости. Многопользовательский режим позволяет производить настройку системы не прерывая работы пользователей.
Работа в системе под пользователем с ограниченными правами позволяет предотвратить повреждение системы при неаккуратных действиях пользователя, а отсутствие доступа на запись к системным каталогам не приносит неудобств.
- Стабильность.
Возможность обновления системных библиотек, загрузки и выгрузки драйверов устройств, обновление практически любых программ на ходу позволяют месяцами обходиться без перезагрузки системы, а следовательно и без прерывания функционирования сервисов и работы пользователей. Перезагрузка Linux требуется только в случае upgrade машины или обновления ядра*.
В Linux, как и во всем созданном людьми, иногда проявляются ошибки, но они крайне редко приводят с серьезному сбою системы и, благодаря доступности исходных текстов, довольно быстро исправляются. Это же относится и к проблемам безопасности, которые часто исправляются в течение нескольких часов после их обнаружения.
- Гибкая файловая система.
Файловая система Linux предусматривает такие средства, как точки монтирования*, символьные* и жесткие ссылки*. Это позволяет эффективно распределять место на диске и решать проблемы, когда какая-либо программа требует файл в определенном каталоге, а он на самом деле в системе находится в другом месте.
У Linux не могут быть одни только достоинства, есть и недостатки:
- Система все еще слишком сложна для непрофессиональных пользователей. Этот недостаток не может быть решен за счет создания средств конфигурирования системы с графическим или web-интерфейсом, поскольку разработчики прикладных программ в большинстве не заинтересованы в таких конфигураторах. А разработчики этих средств конфигурирования не могут успеть за развитием других частей системы. Добавление элементов управления в программу-конфигуратор обходится несравнимо дороже, чем добавление пары строчек в текстовый файл. Создание документации может только частично сгладить проблему, так как прочтение очень большого объема документации отнимает много времени. Да и разработчики свободного ПО не очень рвутся документировать свои программы. Их можно понять, они ведь программисты, а не писатели технической документации. Возможно создание простых в установке дистрибутивов с приемлемыми для большинства пользователей настройками "по умолчанию", но на всех не угодишь. Убивать мощь Linux ради простоты конфигурирования недопустимо!
- Разработка драйверов* устройств для Linux пока отстает от Windows. Она затрудняется тем, что драйверы* под Linux пишутся самими пользователями оборудования, вместо фирм-производителей. Поддерживаются только самые популярные устройства. Для написания драйвера под Linux от производителей требуется открыть детали интерфейса с их оборудованием (не внутреннего устройства!). Многие производители считают, что это может привести к разглашению их ноу-хау и нанести ущерб их бизнесу. Разработка бинарных (без исходных текстов) драйверов для Linux затруднена, поскольку модули* ядра*, в виде которых обычно распространяются драйверы*, не предназначены для переносимости между разными версиями Linux, а новые версии выходят очень часто.
- Разработчики популярного коммерческого ПО пока не торопятся портировать* свои приложения под Linux. Они ожидают момента, когда Linux наберет "критическую массу", т.е. пока расходы на портирование не станут меньше доходов от продажи продукта пользователям Linux. Но, в то же время, многие пользователи не спешат переходить на Linux, поскольку под ним нет привычного им программного обеспечения. Но во-первых Linux быстро набирает "массу", а во-вторых в конце концов конкуренция на рынке ПО делает свое дело: производители ПО опасаются, что пользователи могут, не дожидаясь завершения портирования их продукта под Linux, перейти на продукт конкурирующей фирмы.
- Linux разрабатывается интернациональной командой и их языком общения является английский. Вся документация также создается на этом языке. Только небольшая часть этой документации переведена на русский язык, что создает трудности для пользователей, не читающих по-английски. Система слишком сложна, чтобы в ней можно было разобраться без документации, а найти что-то на русском языке на тему бывает очень трудно.
- Различия между дистрибутивами Linux создает трудности при поддержке. Стандартизация необходима, но дистрибутивы различаются и будут различаться программами установки, процедурами установки ПО. К тому же производители ПО нередко тестируют свои продукты только на одном дистрибутиве Linux - на самом распространенном. Дистрибутивы, конечно, все совместимы между собой (это все Linux!), но иногда бывают трудности, связанные с тем, что различаются версии библиотек, ядра*, процедура начальной загрузки, а иногда даже пути к каким-либо ключевым файлам. Все эти проблемы решаемые, но лучше бы их не было.
Есть еще некоторые недостатки, но они носят частный характер и будут исправлены по мере развития системы. Я старался обратить внимание на такие недостатки, которые не имеют решения в ближайшей перспективе.
(с) Андрей Лерман
Писано 07.11.2000 под Linux.



