1.2. Что такое Linux?
Linux — это свободная операционная система, исходные коды которой открыты для всеобщего просмотра и даже внесения изменений.
Основа ядра ОС была создана в 1991 году студентом Хельсинкского университета (University of Helsinki) по имени Линус Торвальдс (Linus Torvalds). Он написал костяк, функционально схожий с Unix-системами, и выложил его для всеобщего просмотра с просьбой помогать ему в улучшении и наращивании возможностей новой ОС. Откликнулось достаточно много людей, и работа закипела.
Хакеры из различных стран присоединились к этому проекту на общественных началах и начали создавать самую скандальную ОС. А буза вокруг Linux возникает чуть ли не каждый день, потому что ОС получила большое распространение и является абсолютно бесплатной. Некоторые производители программного обеспечения считают этот проект перспективным, другие (например, Microsoft) — периодически превращают во врага.
Официальная версия ядра ОС под номером 1.0 была выпущена в 1994 году, т.е. через три года после первых "слухов" о Linux. Такая скорость разработки была достигнута благодаря большому количеству профессионалов, которые согласились развивать интересную задумку Линуса.
ОС Linux — это многопользовательская и многозадачная система, которая позволяет работать с компьютером сразу нескольким пользователям и выполнять одновременно разные задачи.
Почему именно эта ОС получила такое признание, ведь были и есть другие открытые проекты, а по реализации даже лучше Linux? Я связываю эту популярность с тем, что Linux создавался хакерами и для хакеров. Очень приятно, когда ты работаешь в операционной системе, в которой есть частичка тебя. Любой пользователь может вносить в исходный код системы любые изменения и не бояться преследования со стороны закона.
Изначально популярность среди администраторов росла благодаря тому, что эта ОС поддерживала основные стандарты Unix, к которым относятся POSIX, System V и BSD. При этом система была написана для дешевой (по сравнению с дорогостоящими серверами Sun и IBM) платформы x86 и обладала всеми необходимыми возможностями. Таким образом, многие фирмы смогли оптимизировать свои расходы на организацию инфраструктуры информационных технологий (ИТ) за счет перевода некоторых серверных задач на бесплатный продукт — Linux.
Среди первых задач, которые стали доверять Linux, — организация Web-сервера, и с ней ОС справляется великолепно. Трудно точно оценить, какой процент пользователей сейчас использует Linux, но большинство статистических анализов показывает, что на Linux совместно с сервером Apache приходится большая часть.
На данный момент в Linux можно сделать практически все. Для этой ОС написано уже множество продуктов, которые распространяются бесплатно и позволяют решать всевозможные задачи. Компьютеры с установленной Linux используют в различных областях науки, экономики и техники, в том числе и при создании специальных эффектов для кино.
Не менее важным фактором популярности стала демократичность ОС. Вас не ограничивают в возможностях и не заставляют следовать определенным предпочтениям разработчика. В комплект поставки ОС включается по несколько программ одинакового назначения, например, несколько браузеров или офисных программ. В Windows такое невозможно. Мы, наверное, никогда не увидим в одном дистрибутиве браузеры Internet Explorer, Mozilla и Opera (самостоятельные коммерческие продукты). В Linux конкуренция действительно свободная, и никто не запрещает использовать сторонние разработки и не борется с этим.
1.3. Открытый исходный код — это безопасно?
Бытует мнение, что программы с открытым исходным кодом надежнее и безопаснее, чем коммерческие.
Сторонники этого утверждения считают, что такую систему исследуют много людей разными способами и тем самым выявляют все возможные погрешности. ОС Windows XP показывает достаточно высокую надежность и безопасность, хотя является коммерческим продуктом. А самое главное, что ошибки исправляются своевременно, доступны для свободного скачивания и легки в установке.
Да, искать ошибки на уровне кода совместно с тестированием готового продукта намного проще и эффективнее, но результат далек от идеала. Несмотря на массовое тестирование в Linux достаточно часто находят ляпсусы. А если посмотреть, какая армия пользователей обследовала последние версии Windows, то можно было бы подумать, что она станет безупречной. Тестирование — это одно, а применение в "боевых условиях" демонстрирует совершенно непредсказуемые результаты.
Открытость в отношении Linux имеет одно преимущество — отличное соотношение цены и качества. Возможность бесплатно установить ОС позволяет сэкономить большие деньги. Но затраты появятся в плане поддержки, которая для Linux стоит достаточно дорого, поэтому со своевременными обновлениями могут возникнуть проблемы. К тому же администрирование Linux требует больших навыков и умений, чем Windows. Отсутствуют мастера, которые облегчат жизнь. Необходимо знать команды Linux и уметь ими пользоваться без подсказки. Именно поэтому эта ОС до сих пор не поселилась в наших домах.
Почему же Linux так сложна? Ответ прост. Производительность и удобство — несовместимые вещи. В Windows все предельно ясно, но для выполнения какой-либо операции может понадобиться множество щелчков мыши и просмотр нескольких диалоговых окон, что отнимает драгоценное время. В Linux нужно запустить консоль и выполнить нужную директиву. Проблема только в том, что надо помнить множество команд.
ОС Windows везде, где только можно, использует визуальное представление и графический интерфейс. В Linux же графические утилиты слишком просты и зачастую не обладают достаточными возможностями, но это поправимо, и сейчас появляется все больше оконных утилит, упрощающих процесс настройки. Пройдет какое-то время, и Linux станет тривиальной в применении и при этом сохранит всю мощь и скорость использования командной строки.
Так как настройка Linux — достаточно сложная процедура, требующая высокой квалификации, очень часто именно из-за неправильно установленных параметров эта система попадает под огонь хакеров. Любая система (Windows, Linux или Mac OS X) с настройками по умолчанию далека от идеала. Часто безопасностью жертвуют для обеспечения производительности или удобства. В некоторых программах включаются сервисные функции, которые облегчают работу администратора (например, отладка в интерпретаторе PHP), но и упрощают взлом со стороны хакера. Именно поэтому безопасность системы напрямую зависит только от человека, который ее обслуживает.
Наша задача не просто научиться работать с ОС Linux, а делать это эффективно, т.е. суметь настроить ее на максимальную производительность и безопасность. Именно такую цель мы и поставим перед собой.
И все же, безопасность Linux выше, чем Windows, и это не связано с открытостью или закрытостью исходного кода. В Linux многие вопросы решены лучше, чем в Windows, например, работа с памятью, определенная область которой выделяется при запуске программы. Выйти за ее пределы невозможно (только в крайних случаях, для обмена данными с другими приложениями). А в Windows каждая программа может получить доступ к любому участку памяти, вплоть до системного. Это грозит тем, что программа по ошибке может изменить чужую область памяти и даже разрушить систему.
Начиная с Windows 2000, подсистема работы с оперативной памятью улучшилась, но она все равно несовершенна. Например, ОС Linux после завершения программы сама может очистить память, потому что точно знает, где, сколько и под какие нужды было ее выделено. В Windows это реализовать сложнее, поэтому можно только надеяться на совершенствование кода.
1.4. Ядро
Ядро — это сердце ОС, в котором реализовано управление физическими и программными ресурсами компьютера. Помимо этого оно позволяет получить доступ к различному железу. Например, ранние версии ядра обеспечивали работу только двух USB-устройств: клавиатура и мышь. Начиная с версии 2.4, встроена поддержка USB-видеокамер, принтеров и других устройств.
Номер версии ядра Linux состоит из трех чисел:
□ первое (старший номер) — указывает на значительные изменения в ядре;
□ второе (младший номер) — характеризует появление небольших изменений. По нему можно определить, является ядро проверенным или предназначено для тестирования и нет уверенности, что оно не содержит ошибок. Если число четное, то ядро прошло тщательное тестирование. В противном случае установка данной версии не гарантирует стабильной работы;
□ третье — номер очередного рабочего релиза (сборка). В некоторых случаях это число опускают. Например, мы в этой главе уже говорили о ветке 2.4, и в данном случае не указана именно сборка.
Вы должны самостоятельно обновлять ядро или помогать в тестировании нестабильных версий. Новые версии ядра можно скачать по адресу www.kernel.org или с сайта производителя вашего дистрибутива.