Linux для начинающих

Введение в программирование и системное администрирование в Linux

Материалы на этой странице помогут вам сделать первые шаги в качестве разработчика приложений или системного администратора Linux®.


Новые статьи и руководства по Linux на сайте developerWorks

В разделе Linux на сайте developerWorks содержатся сотни статей, руководств и советов, посвященных разработке приложений и системному администрированию в Linux.

Однако этот немалый объем информации может легко сбить с толку начинающих, поэтому мы создали страницы для тех, кто только приступает к изучению Linux и пока не знает, с чего начать. На этих страницах основы Linux объясняются в контексте тем, рассматриваемых в статьях, руководствах и советах в разделе developerWorks. Кроме того, вы также узнаете об образовательных сервисах, семинарах и продуктах IBM, которые помогут вам в дальнейшем изучении Linux.


Что такое Linux?

Коротко говоря, Linux - это операционная система. ОС Linux была создана в октябре 1991 г. студентом университета Хельсинки Линусом Торвальдсом (Linus Torvalds, название Linux образовано от словосочетания Linus's UNIX - "UNIX Линуса"). Сам по себе Linux - это ядро системы. В нем реализована поддержка многозадачности, многопользовательского режима, управления устройствами, памятью и выполнением приложений.

Обычные пользователи никогда не станут интересоваться такими подробностями работы операционной системы, как внутреннее устройство ядра. Это удел лишь небольшой когорты избранных - энтузиастов и профессионалов.

Однако даже если вы сами не планируете вносить изменения в ядро или просто заглядывать в его недра, вы всегда сможете найти подрядчиков, который сделают эту работу за вас. При этом аналогичные модификации в операционной системе с закрытой архитектурой, как правило, являются значительно более трудоемким и дорогим делом.

Самое главное, что должны знать начинающие программисты для Linux - это то, что нечетные номера версий (2.3, 2.5, 2.7 и т.д.) присваиваются экспериментальным ядрам, находящимся в разработке. Стабильные выпущенные ядра всегда имеют четные номера версий (2.4, 2.6, 2.8 и т.д.).

Типичный дистрибутив Linux включает не только ядро, но и множество прикладных программ и утилит. При этом большинство программ, как прикладных, так и системных, являются частью проекта GNU - фонда свободного программного обеспечения (Free Software Foundation). GNU - это рекурсивная аббревиатура, означающая "GNU's Not UNIX" (GNU - не UNIX).

Ядро Linux и приложения GNU распространяются под открытой лицензией GNU (General Public License - GPL). Лучший способ разобраться с GNU GPL - это прочитать условия лицензионного соглашения. Возможно, это будет чрезмерным упрощением, но основная идея GPL заключается в том, что пользователи кода, распространяемого под этой лицензией, могут с ним свободно экспериментировать.

  • Настоятельно рекомендуется прочитать интересный очерк История Linux (EN), написанный Ларсом Вирзениусом (Lars Wirzenius), работавшим вместе с Линусом Торвальдсом.
  • На сайте Linux Online представлены новости и материалы из независимых источников.
  • IBM LinuxLine - это выходящая раз в две недели новостная рассылка, в которой приводится сводная информация о важных тенденциях, рыночных и ситуационных исследованиях, а также инициативах IBM, имеющих отношение к Linux.

В чем различия между Linux и UNIX?

Linux - это не UNIX, хотя она создавалась в строгом соответствии принципам UNIX. IBM предоставляет продукты как для Linux, так и для UNIX (а также многих других платформ). Созданная в лаборатории Bell Labs компании AT&T в 1969 г. UNIX (название происходит от более ранней операционной системы Multics) представляет собой надежную, гибкую и дружественную к разработчикам вычислительную среду. Изначально она была разработана для семейства микрокомпьютеров PDP компании Digital Equipment Corporation (DEC), но со временем превратилась в наиболее популярную операционную систему общего назначения, которой нашлось применение во всех вычислительных задачах, включая те, для решения которых исторически использовались мэйнфреймы.

IBM выпускает версии продуктов для Linux, UNIX и множества других систем.

  • На странице Продукты IBM приведены ссылки на аппаратное и программное обеспечение, услуги по поддержке, консалтингу и многое другое.
  • Просмотр основного сайта IBM удобно начать с главной страницы.

Спустя 20 с лишним лет с момента появления UNIX ее постепенно начала вытеснять из некоторых областей применения операционная система Linux. Linux - это не UNIX, она лишь очень на нее похожа. Для ряда задач лучше подходит Linux, для других же по-прежнему предпочтительнее UNIX. Между Linux и UNIX поддерживается хорошая совместимость, поэтому приложения, написанные по определенным принципам, достаточно легко переносить с одной системы на другу. Обратитесь по ссылкам, приведенным ниже, за более подробной информацией о месте UNIX в ряду продуктов и услуг IBM.


Зачем следует изучать Linux?

Будучи свободным программным обеспечением, выпускаемым под лицензией GNU GPL, Linux избавляет разработчиков от дублирования функциональности в каждом новом проекте. Образно выражаясь, семейство приложений GNU представляет собой бесплатный строительный материал, из которого можно создавать независимые проекты. Критики свободного программного обеспечения часто заявляют, что низкие начальные затраты на свободное ПО могут обернуться экономической катастрофой для ИТ-индустрии. Однако есть и другая, не менее, а возможно, и более вероятная гипотеза, заключающаяся в том, что свободное ПО сыграет в ИТ такую же роль, какую первый печатный станок Гутенберга сыграл в книгопечатании.


Чем Linux может быть мне полезен?

То, какая из систем семейства Linux подходит вам лучше всего, а также насколько глубоко следует изучать ее архитектуру перед началом работы, зависит от конечного результата, которого вы хотите от нее добиться.

Linux - это идеальная платформа для изучения программирования под Linux, экспериментирования с ядром и даже для разработки под UNIX. Кроме того, для нее существует множество приложений, в том числе игр, клиентов электронной почты, Web-браузеров, настольных издательских систем и т.д.

Благодаря своей гибкости и конфигурируемости Linux также является превосходной платформой для профессионального программного обеспечения - как свободного, так и закрытого. Она пользуется широкой популярностью во многих областях, от серверов связующего уровня и встроенного программного обеспечения до кластеров, суперкомпьютеров и портативных устройств. IBM участвовала в проектах по созданию контрольно-кассовых аппаратов и даже наручных часов, работающих под управлением Linux. Другие компании использовали Linux на таких устройствах, как мобильные телефоны, Sony PlayStation, TiVo и Sharp Zaurus.

По условиям GNU GPL все изменения в исходном коде приложения должны быть открыты для его пользователей. Однако это не означает, что модифицированный код должен быть доступен для общего пользования (именно этот важный нюанс часто упускают критики свободного программного обеспечения). Например, в случае контрольно-кассовых аппаратов на базе Linux было бы небезопасно открывать код для всех заинтересованных лиц. Вместо этого лицензия GNU GPL лишь требует, чтобы изменения были предоставлены пользователям данного программного обеспечения.


Как начать работать с Linux?

Если вы ранее не работали с Linux или использовали ее только в качестве настольной операционной системы, вам следует ознакомиться хотя бы с основами системного администрирования и обеспечения безопасности. В отличие от коммерческих операционных систем, которые стараются автоматизировать эти действия, Linux не обещает защиту от возможных необдуманных действий, а также приведение системы в порядок после вашей работы; вам придется позаботиться об этом самому. К счастью, основные действия по администрированию и обеспечению безопасности довольно просты. Во многом администрирование современных систем семейств Linux и UNIX значительно проще, чем администрирование популярных коммерческих настольных операционных систем благодаря своей прозрачности.

Несмотря на то, что для Linux существует несколько графических сред, поддерживающих функции администрирования, проще всего управлять системой из командной строки. При работе с командной строкой вы получаете в свое распоряжение десятки полезных команд и несколько систем текстовой документации.

Существует немало электронных и печатных ресурсов для тех, кто делает первые шаги в мире Linux. Вы можете обращаться к Web-сайтам, статьям, книгам, группам пользователей Linux (Linux User Group - LUG), которые собираются вместе в разных городах и странах и при этом отличаются исключительной доброжелательностью по отношению к новым пользователям Linux.


Как использовать Linux в процессе разработки приложений?

Linux - это превосходная платформа для программирования. Она соответствует стандартам GCC, поэтому вы можете загрузить весь набор средств проекта GNU для программирования и отладки и использовать их по вашему усмотрению в пределах условий лицензии GNU GPL. В свою очередь, коммерческие средства разработки, подобно закрытым операционным системам, могут обойтись в немалую сумму. Хотя они действительно могут быть необходимы в отдельных проектах, где их приобретение обосновано, они не способны заменить бесплатное программное обеспечение для начинающих, а также многих профессионалов. Если вы рассчитываете использовать Linux в качестве платформы для создания приложений, не забудьте предварительно разобраться с администрированием и системой безопасности. Разработчик, не знающий тонкостей работы с собственным компьютером - это абсурд.

Соответствие стандартам - неотъемлемое качество Linux. Разработчики этой системы уделяют особое внимание тому, чтобы функциональный и базирующиеся на нем слои системы оставались открытыми, поддерживали взаимодействие с приложениями и удовлетворяли стандартам.

  • Организация Linux Standard Base (LSB) предоставляет спецификации и программы сертификации, ориентированные на Linux. LSB является рабочей группой в консорциуме открытых стандартов (Free Standards Group - FSB).
  • Организация The Open Group, которую часто ассоциируют с UNIX, - это независимый от компаний-поставщиков и технологий консорциум, задачей которого является безопасное и надежное взаимодействие в мире вычислительных технологий.
  • Комитет по стандартам для переносимых приложений IEEE (Portable Application Standards Committee - PASC) отвечает за UNIX-стандарты семейства POSIX.
  • Документы серии "Request for Comments" (EN) (запросы комментариев - RFC) представляют собой технические и организационные замечания по вопросам, касающимся сети Интернет. Процесс их публикации, осуществляемый секретариатом IETF, играет важную роль в стандартизации Интернета.

Какие языки программирования можно использовать в Linux?

В дополнение к таким бессмертным гигантам, как Fortran и C/C++, существует множество скриптовых и других языков программирования, для которых Linux является родной или наиболее подходящей операционной системой. Наиболее популярными из них являются Perl, Python, PHP и Tcl.

Динамично развивающиеся новые языки и технологии, такие как Java и XML, прекрасно совместимы с Linux. То же относится и к менее широко распространенным языкам, в том числе Logo, Rebol, Smalltalk и многим другим.


Как развивать навыки работы с Linux?

Если вы планируете использовать Linux в качестве платформы для сложного приложения или программного комплекса, то вас заинтересуют такие аспекты, как редактирование ядра, различия между файловыми системами и другие подробности работы системы.

Другой набор навыков, который требуется разработчикам мощных приложений и игр, - это тонкая настройка компьютера под управлением Linux, кластера или сети в целях оптимизации производительности. Это требует знаний в таких областях, как многозадачность, управление потоками, кластеры и другие загадочные и сложные аспекты системного администрирования. Освоение этих умений на требует столько храбрости, как внесение изменений в ядро, однако также может быть сопряжено с определенными трудностями.

Подразделение IBM Learning Services предлагает обучающие курсы, охватывающие широкий круг вопросов, начиная от основ Linux и заканчивая самыми специализированными аспектами, а также программы сертификации (о последних речь пойдет ниже). На сайте IBM Developer Solutions представлены статьи и путеводители по продуктам IBM, а на главном сайте IBM можно найти множество материалов по программному обеспечению, большая часть которого работает в Linux. Наконец, на сайте IBM developerWorks содержатся статьи, руководства и другие материалы по Linux и ряду других открытых и бесплатных технологий, в том числе XML, Web-сервисы, Java, вычислительным сетям и беспроводным устройствам.


Как подтвердить свои навыки работы с Linux?

Для сертификации специалистов в Linux существуют программы консорциума, независимые тесты, а также экзамены, спонсируемые отдельными компаниями. Сайт IBM developerWorks и подразделение IBM Training предлагают ряд образовательных программ для получения необходимых для аттестации навыков.

  • Некоммерческая организация Linux Professional Institute (LPI) предлагает три степени сертификации для системных администраторов. Для получения сертификата первой степени необходимо сдать экзамены LPIC-1 (101 и 102), а второй степени - экзамены LPIC-2 (201 и 202). Для сертификата третьей степени обязательно иметь действительный сертификат второй степени, а также успешно сдать базовый экзамен 301 (LPIC-3). Для аттестации старшего уровня могут также потребоваться дополнительные специализированные экзамены.
  • Перед тем как сдавать сертификационные экзамены LPI рекомендуется изучить обширную коллекцию пособий по сдаче тестов (EN) на сайте developerWorks.

Какие продукты IBM имеют версии для Linux?

Linux отлично подходит для работы стандартных программ, начиная от офисных приложений, таких как текстовые процессоры и электронные таблицы, до систем управления базами данных, средств публикации в Интернете и серверов. Такие продукты IBM, как DB2, Lotus, Tivoli и WebSphere, способны работать в Linux, причем IBM - далеко не единственная передовая компания-разработчик, считающая, что Linux - превосходная платформа для связующего программного обеспечения. Несмотря на недопонимание и злословие, особенно со стороны самопровозглашенной киберэлиты, связующее ПО - это одна из важнейших, а для многих пользователей - важнейшая причина, по которой им необходимы компьютеры. Открытость Linux позволяет компаниям-разработчикам связующего ПО тонко настраивать свои решения для удовлетворения запросов пользователей в степени, недостижимой в случае закрытых систем.

  • Поддержка Linux со стороны IBM исчисляется миллиардами долларов и широко известна. В свою очередь поддержка разработчиков для Linux облегчает задачу создания приложений для этой системы. Вне зависимости от того, занимаетесь вы рутинной работой или инновационным проектом, ознакомьтесь с перечнем связующего программного обеспечения IBM для Linux (EN) и другими материалами сайта Linux в IBM.
  • Вы можете загрузить ознакомительные версии программного обеспечения для Linux непосредственно с сайта developerWorks.
  • Обратите внимание на Rational - многофункциональный пакет продуктов под Linux для поддержки всех стадий жизненного цикла проектов по создания программного обеспечения. Решения Rational используют Eclipse в качестве инструментальной платформы и могут применяться компаниями-разработчиками для повышения качества и сокращения временных затрат при создании приложений.
  • На Web-сайте DB2 для Linux (EN) содержатся информация, программное обеспечение и ссылки на материалы о флагмане линейки решений IBM для управления базами данных в Linux.
  • В разделе WebSphere (EN) вы найдете ответы на все ваши вопросы об этом сервере приложений и связующей инфраструктуре.
  • Программное обеспечение Lotus, известное в основном благодаря поддержке коллективной работы и обмена сообщениями, включает интегрированные решения для сетевых конференций, онлайнового обучения, управления знаниями и многое другое.
  • Технологии Tivoli расширяют функции системного администрирования и помогают интегрировать компьютеры под управлением Linux с другими компонентами IT-инфраструктуры.

Каковы перспективы Linux?

Благодаря своей открытости и гибкости Linux получила широкое распространение в лабораториях и других исследовательских организациях, разрабатывающих самые передовые технологические решения. В IBM исследования ведутся во всех областях информационных технологий, начиная от физических аспектов до когнитивных наук и инновационных подходов к созданию приложений. При этом ученые в IBM также занимаются фундаментальными исследованиями. Во всех этих областях часто используется Linux.

Компьютеры под управлением Linux можно легко объединять в кластеры для проведения беспрецедентных экспериментов, создания прототипов, моделирования и тестирования. Более того, аналогичным образом можно использовать широкий спектр бесплатного программного обеспечения, созданного для Linux. Потенциал и возможности современных вычислительных ресурсов в значительной степени остаются неисчерпанными, несмотря на такие захватывающие инновационные технологии, как вычислительные сети, беспроводные приложения с голосовым управлением, искусственный интеллект и квантовые вычисления. Надежность, открытость и гибкость Linux - залог того, что эта система будет и впредь занимать передовые позиции в области создания новых технологий.