Линукс. Привыкайте выбирать!
Дилетанты часто упрекают Linux в недостатке программного обеспечения - но, если вам ещё не довелось поработать со свободной ОС в достаточно тесном контакте, смею вас заверить: обвинение это надуманное. Уж с чем, с чем, а с дефицитом софта здесь столкнуться не придётся. Под Linux и Юникс-совместимые системы в целом придумано и написано столько всего, что чаще возникает обратная ситуация. Ну, посудите сами, как быть, если для решения одной и той же задачи есть сразу два отличных инструмента, друг другу мало в чём уступающих? "Видовое разнообразие" Линукса, необычное и даже непривычное для выходцев из миров MS Windows и Mac OS X, объясняется просто. Представьте сами, как развиваются коммерческие программы: до какого-то момента они идут бок о бок, но затем один из конкурентов захватывает решающее преимущество - и его противникам остаётся лишь свернуть свою деятельность, потому что вкладывать деньги в разработку становится невыгодно. Так обстоит дело, к примеру, с офисным пакетом MS Office. Но в мире свободного софта всё иначе. Да, пусть кто-то сделал замечательную программу, у которой миллионы сторонников - ничто не мешает группе энтузиастов запустить параллельный проект, возможно даже воспользовавшись исходниками соперника (свободные лицензии такое позволяют - это называется форк )! Ведь дело здесь упирается не в деньги, а в интерес и необходимость. И что остаётся бедным пользователям? Только спорить до хрипоты, чья софтинка лучше! :-) Классический пример такого рода - десктоп-менеджеры или, как их ещё называют, пользовательские среды KDE и GNOME. Легенда гласит, что в далёком 1996-ом году среди линуксоидов, давно открывших для себя Интернет и графический режим, появились личности недовольные эстетикой и вообще принципами работы с программами для X Window (Иксов). Разработчики тогда не особо задумывались над пользовательским интерфейсом своих поделок - точнее, задумываться-то они задумывались, но попыток причесать всё под одну гребёнку не делали. В результате разные программы на одном рабочем столе и выглядели по-разному, и ощущались по-разному, и подход к себе требовали разный. Среди недовольных был и немецкий студент Матиас Этрих. Который сам, быть может, ещё бы и потерпел - настоящим линуксоидам не пристало пасовать перед бытовыми трудностями! - но вот его подруга переносить такой разнобой на дух не могла. Так что Этрих вооружился мало кому известным инструментарием Qt и в один прекрасный осенний денёк основал проект соответствующего названия - Kool Desktop Environment, а попросту KDE. Начинание Этриха нашло достаточно сторонников, и меньше чем за два года им удалось выпустить версию 1.0. Правда, Qt в то время ещё не был полностью свободным, поэтому, глядя на почин Этриха, под флагом GNU самообразовалась ещё одна группа энтузиастов, решивших сработать свой desktop environment, но уже на истинно свободном графическом движке. Такого на тот момент не существовало, поэтому "альтернативщики" использовали в качестве основы доработанный графический движок GTK+, придуманный для графического же редактора The GIMP. Несмотря на несерьёзное начало, конкурент KDE был наречён суперважным GNU Network Object Model Environment, что со временем сократилось до аббревиатуры GNOME, а сегодня иначе как просто Гномом (Gnome) его никто уже и не именует. Надо сказать, помимо "степеней свободы" графических тулкитов между KDE и Gnome изначально было немало принципиальных отличий. К примеру, KDE предполагалось писать с использованием C++, тогда как Gnome - на чистом C. Впрочем очень быстро приверженцы обеих проектов избавились от своей принципиальности, что принесло только пользу. Сегодня KDE и Gnome - огромные и очень сложные распределённые проекты, в работе которых принимают участие тысячи человек со всего света. Это и энтузиасты, и наёмные работники всех мастей, труд которых оплачивают крупные компании (последним такое участие выгодно, поскольку они сами пользуются плодами совместного труда, да ещё и влияют на процесс разработки). Координация деятельности ведётся главным образом через десятки почтовых конференций, но регулярно и те, и другие устраивают оффлайновые, живые встречи разработчиков. Чтобы понять, зачем городили весь этот огород, представьте себе структуру современного Linux-десктопа снизу вверх. В самом низу, в основе всего лежит ядро операционной системы. Над ним обитают драйверы, системные утилиты и приложения, работающие в текстовой консоли. Выше стоит X-сервер, который умеет рисовать графические окошки. Далее расположены приложения для "Иксов" (Firefox, OpenOffice, Evolution и т.п. и т.д.). В принципе, этого достаточно, однако смотреть на голые окна X Window удовольствия мало, да и переключаться между ними как-то нужно - поэтому были придуманы оконные менеджеры (window manager). К этому классу программ относятся Blackbox, Fluxbox, XFVM и многие другие. Оконные менеджеры декорируют иксовые окна, помогают переключаться между ними и обмениваться данными. А неудовлетворённость оконными менеджерами привела к рождению ещё более высокоуровневых программ - так называемых пользовательских сред (desktop environment), таких как Gnome и KDE. Десктоп-среда не только рисует рамки для окошек, но и вводит единый стандарт для интерфейса прикладных программ, оговаривая как должно выглядеть и где располагаться меню программы, панельки для вывода актуальной информации. Кроме того десктоп-среда создаёт виртуальный рабочий стол и заботится об элементах на нём (иконках). Она же помогает пользователю добраться до различных настроек операционной системы, упрощая множество низкоуровневых задач - таких, к примеру, как настройка принтера или выставление нужного разрешения экрана. Энтузиазма разработчиков KDE и Gnome хватило и на разработку прикладных программ специально для своих проектов. Приверженцы Gnome гордятся файловым менеджером Nautilus, графическим процессором The GIMP, пакетом векторной графики Inkscape, "почтовиком" Evolution и электронной таблицей Gnumeric. Арьергард KDE - браузер Konqueror (основа знаменитого Safari для Mac OS X), непревзойдённая "писалка" K3b, лёгкий офисный пакет KOffice. Сложность десктоп-сред обеспечила интересный побочный эффект. Поскольку и KDE, и Gnome как бы собраны из десятков "элементов-кубиков", отвечающих каждый за свою функцию, появляется возможность заменять одни кубики другими, и добавлять новые. Так в Gnome роль оконного менеджера выполняет Metacity - но если его функции вас не устроят, его можно заменить на другой, более удобный. А на рабочий стол KDE можно навесить полупрозрачное окошко, демонстрирующие какую-нибудь полезную информацию (к примеру, прогноз погоды) - это делает SuperKaramba. Эти и другие модификации в совокупности с активным использованием векторной графики (замечали, что иконки в Линуксе можно масштабировать и так, и сяк - и они остаются столь же красивыми и ровными?) и постоянными инновациями в X-сервер (последний писк моды - использование цветных динамических теней от окон) превращают рабочий стол линуксоида в предмет, буквально потрясающий воображение. Но вернёмся к нашим баранам и подведём итог. Современная линуксовая десктоп-среда способна обеспечить среднего пользователя всем необходимым для повседневной работы. Итог просто удручающий. Плачевный итог. Ну как в таких условиях можно сделать рациональный выбор? Как можно осмысленно выбирать, если все отличия сведены по сути дела к особенностям внешнего вида? Gnome - традиционно строгий, минималистичный, прямо-таки настраивающий на рабочий лад. KDE, напротив, более динамичен и богат на украшательства, менее серьёзен (многие называют его интерфейс "мультяшным"). Но и тот, и другой свою задачу исполняет отлично, так как же выбрать? Прямой результат этой дилеммы - бурные дискуссии, возникающие на форумах Сети едва ли не каждый день. Десятки, сотни и тысячи приверженцев KDE ломают копья об идеологических врагов из лагеря Gnome, и последние отвечают взаимностью, на войне как на войне - все средства хороши. Так что аргументы, идущие в ход, варьируются от сравнений производительности до данных социологических исследований, в ходе которых оценивалась скорость освоения десктопа начинающим юзером. Вспоминать всё это нет никаких сил, но прочувствовать накал страстей можно по забавной истории, случившейся месяца три назад. В одну из конференций разработчиков Gnome обратился некий эксперт по компьютерной печати с вопросом, как заставить Gnome показывать больше настроек для установленного в системе принтера. В ответ представитель Gnome-сообщества объяснил, что принтерный диалог Гнома специально упрощён до предела, дабы не вводить пользователей в заблуждение. На беду, та ветка попалась на глаза самому Линусу Торвальдсу, который с присущей ему "дипломатичностью" заявил буквально следующее: "Если вы делаете продукт для идиотов, то пользоваться им только идиоты и будут. В своём стремлении к упрощению Gnome давно перешагнул ту отметку, за которой он уже не в состоянии делать то, что мне нужно. Так что просто скажите человеку, чтобы он использовал KDE!". Дискуссия, разгоревшаяся после этого на форуме Slashdot, насчитывает без малого полторы тысячи постов. Типичный надо сказать случай... :-) Теперь вы понимаете, как сложно посоветовать KDE или Gnome, и не попасть после этого под град камней со стороны приверженцев того или другого. Но я всё же рискну сделать это - для тех, кто только начинает свой путь к Linux. Выбирайте KDE - и вот по каким причинам. Во-первых, над KDE трудится б о льшее число разработчиков и пользователей, что, в частности, выливается и в б о льшую скорость работы самой среды. Во-вторых, в KDE доступно больше функций и параметров настройки, что позволяет экспериментировать с системой в более широких пределах. В-третьих, дизайн KDE считается более похожим на MS Windows, так что вы сможете быстрее освоиться. Наконец, в-четвёртых, вы ничего не теряете: в KDE легко запускаются программы для Gnome (как, кстати, и в Gnome - для KDE). А после того как освоитесь, сможете перебраться в любую другую среду по вкусу - хотя бы и в Gnome. Так, как сделал автор этих строк :-) Линукс. Привыкайте выбирать! :-) Вопреки распространённому мнению, активно поддерживаемому популярной прессой, Linux - не волшебная палочка, способная одним взмахом, за секунду, чудесным образом преобразить ваш компьютер и жизнь. Возможно, я развенчаю сейчас чью-то мечту, но Линукс на самом деле - всего лишь ещё одна операционная система с хорошим набором прикладных программ. Безусловно, она способна творить удивительные вещи, местами даже граничащие с чудом - но только в руках пользователя, который не пожалеет труда и времени на огранку доставшегося ему алмазного кристаллика и превращение его в сияющий бриллиант. Запустить Linux и опробовать по-быстрому десяток-другой программ сегодня уже не проблема, это не потребует даже от полного новичка никаких специальных знаний. Для этого достаточно воспользоваться одним из "живых" дистрибутивов вроде Knoppix [linux.su/knoppixa.shtml]. Но всё это, в принципе, можно проделать и в других операционках. А вот если вы претендуете на что-то б о льшее, что-то, чего можно добиться только от Линукса, знайте, что вам придётся потрудиться. Пример? Пожалуй, самым ярким примером этого является пресловутая защищённость Linux от вирусов и хакерских нападений. Вы ведь слышали, что вирусов для Linux не бывает, а хакеры "скорее сломают зубы, нежели прорвутся сквозь защиту обычного Linux-дистрибутива"? Увы, всё это - очередной миф. Но! В силах каждого пользователя, даже начинающего, воплотить этот миф в реальность! Прежде всего, позвольте разуверить тех из вас, кто считает, что вирусов, размножающихся в Линуксе, не существует. Вирусы такие есть, и известно их на сегодняшний день как минимум около сотни. Многие антивирусные компании следят за появлением линуксовой заразы и регулярно пополняют базы для своих "лечебных" программ (взгляните, к примеру, на совсем свеженького Linux Lupper-I). Второй прискорбный факт - наличие в коде Linux (включая и Ядро, и системные утилиты, и прикладной софт) уязвимостей: увы, принцип открытых исходников не гарантирует отсутствие "дыр", а лишь помогает их быстрее находить и устранять. Так что опасных ошибок в Линуксе тысячи и тысячи, существуют даже особые базы данных для программ-сканеров, позволяющие быстро проверить систему на наличие известных "дыр" (интересующимся стоит обратить внимание на хакерский дистрибутив WHAX [linux.su/whax.shtml]). Но откуда же растут ноги у расхожей байки про "абсолютный иммунитет" Linux? Определить это совсем несложно. Полчаса блужданий по Сети - и вы сами убедитесь, что ни один из известных вирусов под Linux не вызвал массовой эпидемии. Вспоминая о том, какую страшную жатву собирают даже самые простые и глупые почтовые вирусы среди пользователей MS Windows (эпидемии там охватывают сотни тысяч и даже миллионы компьютеров), трудно не согласиться с мнением, что Linux обладает-таки врождённой защитой. Впрочем, спросите у любого security-специалиста и вам ответят: защищённость - это не свойство, а процесс. Идеальных операционных систем не бывает, и Линукс не исключение. Почему при всех своих слабостях Linux почти не подвержен эпидемическим вспышкам? Простого ответа на этот вопрос не существует, но вот несколько наиболее популярных предположений. Во-первых, в Линуксе реализована эффективная система разграничения прав доступа к файлам и ресурсам. Попросту говоря, то, что позволено администратору системы (root), не позволено рядовому юзеру. И пусть на домашней машине Root и юзер - один и тот же человек. Главное, что вирус, проникнув в систему через программы юзера, получит только его же самые, рядового пользователя, права - и не сможет, к примеру, уничтожить важные системные файлы. Во-вторых, Линукс - очень динамичная система, которая непрерывно меняется. Готов поспорить, на всём белом свете не найдётся двух линуксовых инсталляций, идентичных друг другу даже на 90%. Картина здесь в корне отличается от той, что имеется в мире MS Windows. Установив на компьютер Windows XP, вы получаете систему как две капли воды похожу на миллионы других. Установив Linux, вы сразу же меняете его, компилируя Ядро, меняя файлы конфигурации, подбирая только вам одному интересный софт и часто собирая его из исходников. В Линуксе нет доминирующей программы, вроде Outlook в MS Windows. И даже популярные линуксовые программы, такие как Firefox, в разных инсталляциях выглядят по-разному - ведь они скомпилированы для разных процессоров, разных дистрибутивов, разных конфигураций. Это здорово усложняет задачу вирусописателям, которым требуется учесть всё разнообразие программного обеспечения. Наконец, в-третьих, есть масса мелочей, добавляющих вирусописателям головной боли. Среди них - невозможность просто так, одним кликом запустить текстовый файл (нужно присвоить ему соответствующий атрибут), действующий повсеместно принцип уведомления пользователя о происходящем и предоставления ему права самому решать, как поступить в потенциально опасной ситуации и т.п. Всё это не раз приводило к анекдотическим ситуациям, заслуженно вписанным теперь в анналы истории. Так, самым нашумевшим вирусом для Linux стал червь Bliss, появившийся во второй половине 90-ых. Цеплявшийся к исполняемым файлам и обученный распространяться по сети, Bliss был представлен разработчиками антивирусов как страшная угроза, хотя на самом деле оказался всего лишь остроумной поделкой линуксоида, кажется, даже не скрывавшего своего имени. Начало "эпидемии" положил автор вируса, опубликовавший исходные тексты в известной онлайн-конференции по безопасности и пообещав выпустить их под лицензией GPL. Позже выяснилось, что Bliss содержит команду для самоизлечения (для очистки компьютера достаточно было запустить вирус в консоли, указав особый ключ), его код отлично документирован, а помимо размножения, он пытается оптимизировать исходники ядра Linux на заражённом компьютере, чтобы после следующей компиляции персоналка работала шустрее. Другая забавная история, регулярно всплывающая в линуксоидных форумах, сводится к попыткам запуска под Linux "виндовых" вирусов. Скучающие от слишком благополучной жизни пользователи Linux развлекаются тем, что размножают импортированную из MS Windows заразу в среде Wine. Наконец, стоит вспомнить уникальный проект ClamAV - свободного антивируса, развиваемого энтузиастами. ClamAV знает "в лицо" более сорока тысяч вирусов всех мастей, но, как вы наверняка уже догадались, из-за недостатка заразы под Линуксом, вынужден обслуживать Windows-машины: работая в среде Linux, он обезвреживает вирусы для MS Windows. Однако, вернёмся к тому, с чего начинали. Linux способна оградить вас от вирусов и хакерских атак, но только в том случае, если вы поможете системе проявить её лучшие свойства. Поэтому если вы только начинаете, следуйте простым правилам. Выполняйте всю повседневную работу от имени рядового пользователя, root-аккаунт задействуйте только для администрирования системы. Удалите все ненужные программы, постарайтесь избавиться от программ неизвестного назначения, отключите все сервисы, которые вами не используются. Устанавливая программы, пользуйтесь только официальными файловыми архивами, а набравшись опыта, по возможности собирайте новые программы из исходников. Вот, пожалуй, и всё. Забудьте про антивирусы и - приятной вам работы! :-) За те восемь-десять лет, которые Linux находится в поле зрения широкой публики, на сетевых форумах об этой операционной системе было сказано немало и хорошего, и плохого, и справедливого, и не очень. На форумах время бежит быстрей, так что пока программисты завершают очередной миллион строк кода, в миллионе дискуссий спорщики всех мастей сломают друг о друга десять миллионов копий. Но рано или поздно каждому из тех, кто так или иначе причастен к свободной ОС, кто имеет к ней хотя бы отдалённое отношение, так вот рано или поздно каждому приходилось отвечать на вопрос: чем же таким отличается Linux от других популярных операционных систем, что делает её уникальной? Открытые исходники? Да. Необычный интерфейс пользователя? Несомненно. Особые принципы внутреннего устройства? Да, пожалуй. Стабильность, защищённость, функциональность, насыщенность программным обеспечением, возможность свободного распространения, дружелюбность (или недружелюбность) и так далее, и так далее - сколько пользователей, столько и мнений. Но рискну утверждать, что одна из важнейших чёрточек Linux так и остаётся неназванной, хотя вня всяких сомнений, о ней знает большинство. Угадаете? Врождённая лёгкость разработки программ. Linux - словно фантастический конструктор для взрослых, заполучив который можно по прилагающимся чертежам быстро построить несколько готовых схем, в которых сразу же изменить что пожелаете, а то и вовсе возвести свою систему с нуля. И результат будет отнюдь не игрушечный, пригодный к серьёзной работе. По сравнению с Линуксом, Microsoft Windows или Mac OS X - намертво запаянные модели, добавить в которые что-то новое, что-то от себя, а тем более разобрать на запчасти несравненно сложней. Здесь же всё просто как дважды два. Заполучив любой дистрибутив Линукс (ну, хорошо, почти любой - за очень редким исключением), откройте консоль, создайте текстовый файлик hello.c следующего содержания main(){printf("Hello,world!\n");} и введите пару "магических" команд gcc hello.c -o hello И ваша первая, вами собственноручно написанная программа для Линукса уже работает! Волшебно, не правда ли? Не нужно бежать в магазин за компактом с варезной копией последнего компилятора, не нужно тратить время на долгие инсталляции многосотмегабайтных пакетов, не нужно искать "кряк", не нужно вообще ничего - с вашим дистрибутивом Linux вы уже получили всё что вам необходимо для разработки ваших собственных программ и модификации существующих, включая и ядро операционной системы. Но, конечно, так было не всегда. Текущее положение вещей вполне можно назвать светлым будущим - временем, о котором мечтало не одно поколение хакеров, строивших его своим трудом. Выполняя манипуляции, описанные абзацем выше, вы (возможно, о том не подозревая) задействовали среду разработки GCC [gcc.gnu.org] - могучий инструмент, по важности стоящий в одном ряду с ядром Linux, а по возрасту гораздо старше Ядра. История GCC уходит корнями в середину 80-ых годов, когда по-настоящему свободных средств для разработки программного обеспечения просто не существовало! В те годы должно быть уже знакомый вам американский хакер Ричард Столлмен задумал проект GNU - свободной операционной системы со свободными прикладными программами. Но представьте сами, как можно писать свободный софт без свободных же средств разработки? Тогда Столлмен и решил разработать новый компилятор для языка C. В первое время GNU C Compiler (GCC) был лишь надстройкой над другим компилятором, Pastel, бывшим тогда популярным в научной среде, но из-за ограничений последнего быстро перерос в самостоятельный проект. Совершенствование GCC оказалось делом непростым и хотя первая версия была готова уже в 1985, относительно стабильным он стал лишь несколько лет спустя. К середине 90-ых, когда GCC уже орудовали десятки тысяч Linux-хакеров, слишком медленная эволюция компилятора, ход работ над которым контролировал всё тот же Столлмен, стала вызывать нарекания и в конце концов привела к появлению параллельного проекта. Несколько хакеров-одиночек и компания Cygnus, строившая бизнес на разработках GNU, взяли исходники GCC и начали добавлять в них экспериментальные новшества. Форк GCC получил название EGCS (Experimental/Enhanced GNU Compiler System) и получился настолько удачным, что в 1999 году разработчики оригинального компилятора приняли решение объединить проекты, учтя наработки EGCS. Говорят, с этого момента GCC несколько потерял в качестве, зато выиграл в скорости развития. А скорость была нужна - ведь к тому моменту GCC стал уже мультиплатформенным, мультиязыковым инструментом! Действительно, GCC родился как компилятор C, но по мере взросления он вбирал в себя новые языки. Поэтому со временем его название стали расшифровывать как GNU Compiler Collection (букв. коллекция компиляторов проекта GNU) - и это справедливо, если учесть, сколько языков он поддерживает к настоящему моменту. Среди них C и C++, Fortran и Java, Pascal, Ada, Modula-3 и ряд других. Одновременно GCC учился генерировать код для разных архитектур. Сегодня с помощью одного компилятора можно вести разработку программ для 32- и 64-битных процессоров Intel и AMD, процессоров семейств Alpha и ARM, Motorola и MIPS, PowerPC и SPARC, многих, многих других. GCC служит как бы надстройкой для разноязычных, разноплатформенных компиляторов, общаясь с ними на одном внутреннем языке, что позволяет использовать одни и те же команды, уменьшить количество ошибок. Свобода и универсальность GCC сослужили ему хорошую службу. Сегодня GCC является стандартным компилятором для нескольких популярнейших операционных систем (с его помощью строятся почти все Юникс-совместимые ОС, включая и Mac OS X), и встретить его можно на компьютерах самых разных размеров и назначения - от персоналок до наладонников и обратно до суперкомпьютеров. Конечно, одним только GCC спектр свободных средств разработки не ограничивается. Скажите спасибо тысячам безвестных хакеров, имена которых затерялись в мириадах строчек кода: Linux сегодня благоволит девелоперам и, углубившись в список доступных для установки пакетов, в любом дистрибутиве вы отыщете не один десяток инструментов для написания, компиляции и отладки кода. Но всё же, разбираясь с Python или формируя компонент XML в новомодном визуальном редакторе, продираясь сквозь дебри Perl или редактируя Java, вспоминайте иногда, на каком кирпичике основано благополуче светлого будущего, в котором нам с вами выпало счастье жить :-)
Страница сайта http://silicontaiga.ru
Оригинал находится по адресу http://silicontaiga.ru/home.asp?artId=5316 |