Системы с открытым кодом. Часть 1/1

pic

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

Программное обеспечение — что это такое и какое оно бывает

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

1. Наличие по умолчанию:

• незагружаемое («прошитое») программное обеспечение, например — BIOS
• загружаемое программное обеспечение, например – операционная система (здесь и далее по тексту ОС).

2. По выполняемым функциям:

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

3. По типу лицензирования:

• свободное, бесплатно распространяемое ПО (Freeware)
• условно или частично бесплатное ПО (Shareware)
• платное или ограниченное ПО (commercial proprietary software).

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

Незагружаемое программное обеспечение, также часто называемое встраиваемым или «прошитым», — это такой набор программ, который управляет устройством или набором устройств на низком уровне и записывается в постоянную память, которая находится внутри устройства. Необходимость такого ПО определяется тем, что все производители разрабатывают собственные модели разного оборудования, которое может внутри существенно отличаться, но должно при этом оставаться совместимым с другим оборудованием. Это достигается за счет встраиваемого программного обеспечения, часто называемого базовой системой ввода-вывода (BIOS – Basic Input Output System), потому что совместимость лучше всего достигается именно на этапе ввода-вывода.

Загружаемое программное обеспечение интересует нас гораздо больше, потому что это те самые программы, которые загружаются с внешнего носителя информации в оперативную память компьютерного оборудования. Это, прежде всего, операционные системы – такие, как Linux или Microsoft Windows.

Системное программное обеспечение. Формально системное программное обеспечение — это набор программ, имеющих максимальные привилегии и обеспечивающих взаимодействие прикладных программ с оборудованием. Важнейшей частью системного программного обеспечения является операционная система, которая определяется следующим образом: «Операционная система — основной вид системного ПО, комплекс программ, обеспечивающий управление аппаратными средствами компьютера, работу с файлами, ввод и вывод данных, а также выполнение прикладных программ и утилит. Общими словами, операционная система — это первый и основной набор программ, загружающийся в компьютер. Помимо вышеуказанных функций ОС может осуществлять и другие, например предоставление пользовательского интерфейса, сетевое взаимодействие и т. п. С 1990-х наиболее распространенными операционными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы». (Материал из Википедии — свободной энциклопедии – http://ru.wikipedia.org) Пожалуй, этим все и сказано.

Прикладное программное обеспечение — это программы, написанные для пользователей или самими пользователями, для задания компьютеру конкретной работы. К наиболее известным каждому программам можно отнести просмотрщики web-страниц (например, Microsoft Internet Explorer или Mozila Firefox), текстовые и графические редакторы (например, Microsoft Word или Adobe Photoshop) и тому подобное.

И, наконец, самое тонкое разделение программного обеспечения – по способу его лицензирования.
Как вы наверняка знаете, программное обеспечение не является чем-то материальным, таким как автомобиль или гамбургер. Господа бухгалтеры вообще относят программное обеспечение к нематериальным активам, и они абсолютно правы, потому что программы – это набор двоичных данных, скомпонованных программистами. И хотя без программного обеспечения не работает ни один компьютер – ПО без компьютера тоже работать не будет. И тогда возникает интересный вопрос: почему ПО стоит денег и что, собственно, стоит денег и немалых!

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

Платное или ограниченное ПО (commercial proprietary software) – это самый закрытый способ лицензирования, когда клиенту отмеряют лицензии небольшими и строго ограниченными дозами, а получение исходных текстов программ является задачей практически невыполнимой. Как правило, получение исходных текстов программ, распространяемых в рамках такой лицензионной политики, сопровождается подписыванием строго конфиденциальных документов, сами исходные тексты могут стоить гораздо дороже двоичной копии, а раскрытие исходных кодов третьей стороне влечет за собой ужасные и разорительные штрафные санкции, что, впрочем, не мешает и даже способствует компьютерному пиратству. Как правило, копия программы предоставляется только после подписания соответствующего лицензионного соглашения и оплаты денег в кассу. Образцом таких лицензий может служить лицензия компании Microsoft Corporation.

Условно или частично бесплатное ПО (Shareware) представляет собой более мягкий способ распространения ПО, когда получение копии программы доступно бесплатно в течение определенного промежутка времени (trial) или с ограниченными функциями (самое нужное, конечно, за деньги), что, по мнению производителей, должно способствовать стремлению пользователя купить коммерческий вариант продукта. В общем, как на восточном базаре – можно посмотреть и даже попробовать, но для полного удовольствия все-таки придется платить. Исходные тексты такого ПО в большинстве случаев также предоставляются за деньги или не предоставляются вообще. К примерам такой лицензионной политики можно отнести популярный антивирус Dr. Web.

И наконец, самый интересный тип лицензирования, появившийся благодаря замечательному человеку Ричарду Столмэну, основателю фонда свободного программного обеспечения (FSF – Free Software Foundation) и проекта GNU — свободное, бесплатно распространяемое ПО (Freeware). Смысл этой лицензии – полная благотворительность, то есть каждый пользователь может свободно получать исходные тексты и двоичную копию программы, использовать ее для любых целей, а также вносить в нее любые изменения по собственному усмотрению. Побочным эффектом этой лицензии является отсутствие каких-либо гарантий со стороны автора или авторов. С текстом этой лицензии любой желающий может ознакомиться на сайте проекта GNU – http://www.gnu.org

На этом, пожалуй, можно закончить терминологическую часть и перейти к сути вопроса.

Рынок программного обеспечения
Начнем с того, что размеры этого рынка просто поражают, потому что он сопоставим с годовым бюджетом США или Китая, то есть имеет просто гигантские цифры. В 2005 году объем мирового рынка ПО оценивается в 607,8 миллиарда долларов, и этот рынок собирается увеличиться в 3 раза к 2010 году (согласно предварительным результатам, представленным Gartner Dataquest). Каждый из нас наверняка слышал про некоего Билла Гейтса, который сколотил себе на этом весьма приличное состояние, превышающее 100 миллиардов долларов, и сделал это всего за каких-нибудь 25 лет.

Сам рынок программного обеспечения появился сравнительно недавно – в 50-60 годах прошлого столетия, и в те далекие годы он был сравнительно небольшим, что было связано с большой дороговизной оборудования, уникальностью этого оборудования и его исключительной ненадежностью. На 5 минут рабочего времени тогда приходилось 4 часа ремонтных работ, а стоимость вычислительной техники при тех ценах составляла миллионы долларов США. Позже после изобретения интегральной схемы появилась уникальная возможность снизить стоимость компьютера в десятки раз и сделать его применение значительно более массовым, что автоматически увеличило количество пользователей, а рынок ПО расширился в десятки раз.
Об эволюции рынка ПО и определивших его факторах и пойдет речь ниже.

Два слова о первоисточниках: микросхема, UNIX и Internet
Поскольку целью данной статьи не является изучение истории компьютерной техники, то мы остановимся на некоторых основных моментах, которые имеют значение.
Элементной базой современного компьютера является сверхбольшая интегральная схема (далее упоминается как микросхема). Это означает, что основная логика и элементы управления скомпонованы в нескольких квадратных сантиметрах кремния. Микросхемами являются процессор, оперативная память, базовая логика материнской платы. По сути, любое компьютерное устройство содержит в себе одну или несколько микросхем. Встраиваемое ПО (BIOS) и операционная система управляют работой этих микросхем и после включения и загрузки компьютера размещаются в них же. Не углубляясь в подробности, можно сказать, что развитие элементной базы компьютерной техники в течение последних тридцати лет заключается в том, чтобы заставить микросхему работать быстрее и запихать в нее больше элементов, что сказывается на возможностях компьютера. Этот бурный процесс нашел отражение в законе Майкла Мура, сотрудника компании Intel, который гласит, что каждые 1,5 года частота процессора и количество составляющих его транзисторов удваивается.

Как было сказано выше, одной из микросхем является центральный процессор — CPU (хотя многие пользователи обозначают этим понятием системный блок, что очень неправильно и даже вредно). Процессоры выпускаются разными фирмами, среди которых наиболее известными являются Intel, AMD и IBM. Каждый производитель пытается сделать свой процессор наилучшим и поэтому развивает собственную идеологию того, как процессор должен работать и как он должен взаимодействовать с другими устройствами, а также какой внутренний набор команд он должен использовать. Эти характеристики процессора часто называют архитектурой процессора. Когда производители программного обеспечения производят свои программные продукты, последние ориентируются на поддержку конкретных процессоров конкретных производителей. Поэтому программное обеспечение, написанное под одну архитектуру процессора, как правило, не получается использовать на процессоре с другой архитектурой. Если же это сделать можно, то такое программное обеспечение называется переносимым.

Вторым китом, определившим развитие рынка программного обеспечения, является операционная система Unix. Это произошло потому, что Unix был первой переносимой операционной системой, в отличие от своих предшественников, что означало возможность его установки на любое имеющееся или новое оборудование с небольшими доработками. Проект Unix начался с Multics — проекта многопользовательской операционной системы, обеспечивающей удобный доступ большому числу пользователей к вычислительным ресурсам, который разрабатывался специалистами AT&T Bell Labs с 1965 по 1969 год, но так и не был доведен до стадии коммерческого продукта. Идеи, заложенные в этом проекте, нашли неожиданный выход в реализации ОС Unix, написанный сотрудниками Bell Labs — Кеном Томпсоном и Деннисом Ритчи. Первая редакция этой ОС была опубликована в 1971 году и с этого момента начала свое победоносное шествие по миру информационных технологий, распадаясь на семейства и конкретные реализации. В настоящее время существует множество воплощений идеологии Unix во множестве ОС как коммерческих, так и бесплатных. Основными достоинствами ОС Unix являются:

• переносимость, так как вся система, в отличие от ее предшественников, написана на языке высокого уровня (язык программирования C), и поэтому ее можно перенести с минимальными трудозатратами на любую новую модель компьютера. Для этого понадобятся компилятор языка C и сравнительно небольшие трудозатраты
• надежность (все-таки 35 лет существования!)
• открытость, то есть система изучена всесторонне и досконально
• совместимость, то есть большинство функций стандартизировано и работает одинаково на разных моделях разных производителей.

Операционная система Unix оказала колоссальное влияние на все последующие операционные системы и стала стандартом «де-факто». Все современные операционные системы в той или иной мере используют ее багаж.
И, наконец, третьим китом в развитии рынка программного обеспечения стал Internet. История Internet превосходно описана различными источниками, поэтому можно упомянуть только тот факт, что это вторая по величине (после телефонной) глобальная мировая сеть, созданная как оружие холодной войны и ставшая средством глобализации. Сегодня половина разрабатываемого программного обеспечения ориентирована на Internet или использует его для различных целей (например – регулярное обновление ПО).
Что касается развития рынка ПО за все эти годы, то он развивался стремительно, непропорционально возрастая особенно с середины 80 годов, когда компьютер стал по-настоящему персональным и доступным людям со средним достатком.

Системы с закрытым кодом
Системы с закрытым кодом – это такое ПО, исходные тексты которого производитель вам не отдаст ни за какие коврижки, разве что из чистого золота. Дело все в том, что каждая компания-производитель или индивидуальный разработчик ПО хочет, чтобы их продукт был наиболее продаваемым и успешным, и поэтому вкладывает в него не одно «know-how», в том числе и защиту от несанкционированного копирования. Последнее по логике должно осложнить жизнь компьютерными пиратами. Кроме того, каждый разработчик ПО панически опасается того, что его драгоценная идея попадет к конкуренту.
Рассмотрим плюсы и минусы систем с закрытым кодом. Начнем с плюсов:

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

Однако есть и минусы, с которыми конечные потребители сталкивались, и неоднократно. Это:

• стоимость лицензии на ПО и ограниченные сроки ее действия
• сравнительно небольшой штат разработчиков, который не часто меняется
• медлительность с выпуском версий, которые нужны потребителю сегодня. Зачастую это связано с затянутым циклом написания программного обеспечения и его последующим тестированием и подготовкой документации
• медленная реакция службы технической поддержки (и как здесь не вспомнить о компании Microsoft, когда очередного исправления приходится ждать несколько месяцев)
• высокая стоимость технической поддержки (к примеру, за один только вопрос по телефону или электронной почте в ту же компанию Microsoft придется заплатить от 99 до 200 долларов США)
• высокая стоимость добавления необходимых конкретному клиенту функций (может стоить гораздо больше, чем стоимость лицензии на ПО в стандартной поставке)
• и, наконец, практически недоступные исходные коды, исключающие возможность исправления или доработки купленного ПО.

Системы с открытым кодом
ПО с открытым кодом (Open Source) является прямой противоположностью системам с закрытым кодом. Это ПО также может быть и платным, и коммерческим, но у вас появляется возможность его самостоятельной доработки до нужного функционала. Тем не менее основную массу ПО с открытым кодом составляет так называемое условно-бесплатное ПО.
Это значит, что при соблюдении определенных ограничений Лицензионного соглашения (как же без него!) вы можете им пользоваться для собственных целей, не платя за это ни копейки, причем делать это совершенно официально.
Что касается лицензионных соглашений, то эта тема подробнее будет рассмотрена ниже.
А сейчас назовем плюсы и минусы открытого ПО. Плюсы:

• бесплатность, если и не всех продуктов, то явного большинства из них
• открытый код программ
• высокое качество. Зачастую качество ПО с открытым кодом значительно превосходит коммерческие аналоги. Примерами такого ПО могут служить знаменитый Web-сервер Apache, графический редактор GIMP, электронные офисы Open Office и KDE Office, СУБД MySQL, браузер Mozilla Firefox и многие другие
• как правило, высокая скорость реакции разработчиков на найденные ошибки или недочеты. Сюда же можно отнести возможность прямого взаимодействия с авторами того или иного программного пакета.

К минусам можно отнести следующее:

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

pic

Ленивый пингвин против хитрого Билла
История открытого ПО неразрывно связана с двумя проектами – это проекты GNU и Linux, поэтому, пользуясь случаем, представляем.
Фонд свободного ПО (FSF) и проект GNU (www.GNU.org)
FSF (Free Software Foundation) – это Фонд свободного программного обеспечения, который является очень хорошим и интересным примером благородства в сфере высоких технологий. По сути дела это уникальное образование в современном мире программирования. Многим нашим системным администраторам и программистам приходилось работать с программами из FSF. Особенно хорошо известен компилятор GCC (GNU C Compiler) — самый лучший и по сей день компилятор языка C.
GNU – это виртуальный проект, в рамках которого объединено свыше 10000 независимых программных пакетов всех мастей. Сама аббревиатура тоже не менее интересна, потому что является рекурсивной анаграммой: GNU is not UNIX (GNU – это не UNIX). Дело в том, что UNIX не является свободным ПО, и в настоящий момент права на него принадлежат компании Santa Cruz Operational (SCO), из-за чего последняя периодически судится с разными компаниями (последнее разбирательство коснулось IBM). Главной задачей проекта GNU является создание полностью свободной операционной системы, программные средства которой совместимы с возможностями среды ОС Unix (в основном возможности программ GNU шире возможностей аналогов среды Unix — все тот же GCC).
Философия FSF и общие направления развития проекта GNU таковы: FSF — это сообщество, состоящее из программистов, основанное и в текущий момент возглавляемое Ричардом Столлманом (Richard Stallman). Главной задачей FSF является устранение всех запретов и ограничений по распространению, копированию, модификации и изучению программного обеспечения для компьютеров. Для того чтобы достичь своей главной цели, FSF покровительствует выпуску и использованию свободного программного обеспечения, которое может применяться во всех сферах деятельности человека.
В своем «Манифесте GNU», который был написан еще в далеком 1985 г., Р. Столлман в качестве главной движущей силы (которая и привела к возникновению FSF и проекта GNU) ставит свое неприятие прав собственности отдельных людей на программное обеспечение. Особенности взаимоотношений, которые возникают в среде людей, связанных с программированием, нередко ставят программистов перед выбором: идти путем следования духу дружбы и взаимопомощи или принятия для себя препятствующего этому закону об интеллектуальной собственности. При внедрении и использовании действительно свободного программного обеспечения необходимость такого тяжелого выбора стремится к нулю.

Создание свободной среды программирования позволяет ликвидировать ненужную двойную работу программистов (очень распространенное явление при наличии хорошего и нужного программного обеспечения в частных руках). Свободное распространение «исходников» к программам помогает их сопровождению и адаптации к нуждам и требованиям конкретного пользователя программного обеспечения (не требуется запрашивать владельцев лицензий на «исходники»). Появляется очень важная и привлекательная возможность использования свободного программного обеспечения в учебных целях.
Не стоит бояться перехода к свободному программному обеспечению, ибо программисты все равно останутся при деле. Всякие ограничения и запреты на свободное копирование программ — это едва ли не худший способ зарабатывать деньги. Основная мысль Столлмана состоит в том, что нужно продавать не программное обеспечение, а труд программиста как такового. Например, источником дохода может быть сопровождение программных продуктов или их установка и конфигурация для внедрения на новых компьютерах и/или в новых условиях, преподавание и т.д.
В начале восьмидесятых Ричард М. Столлман первым обозначил контуры свободного программного обеспечения в виде четырех «Свобод»:

• свобода выполнять любую программу на компьютере для любых целей
• свобода изучать, как работает программа, и адаптировать ПО для своих нужд и целей
• свобода распространять копии программного обеспечения
• свобода вносить улучшения в программу и делать доступными их для общества так, чтобы от этого общество только выигрывало
• Программное обеспечение, которое следует этим четырем принципам, называется «Свободное программное обеспечение» («Free Software»).

Как известно, права обычных компаний, производящих программное обеспечение, защищаются знаком авторских прав (copyright), однако и «свобода» программных систем FSF защищается, — но только «copyleft» — это является комбинацией copyright и прилагающимся (обязательно) во всех текстах и программах FSF документом с заголовком «GNU General Public License». В принципе это тоже лицензия. В документе говорится о правах, которыми располагает любой текущий владелец данного текста или программы и о невозможности лишения этих прав у любого другого человека, обладающего этим документом или программой.

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

Планы GNU
Список работ, которые планируется выполнить в рамках проекта GNU, весьма обширен. Приведем лишь краткий обзор основных направлений.

Документация
Требуется подготовить ряд руководств по уже готовым или близким к завершению программам: справочное руководство по языку Си, описание GCC с включением руководства по определению целевых машин, руководство по программированию прикладных систем в среде X-Windows и т.д.

Проекты, связанные с разработкой свободного ядра Unix
В FSF ведутся работы по созданию ядра Unix на базе свободного микроядра Mach. К числу ближайших задач относится реализация сетевых протоколов TCP/IP и новой файловой системы (имеется надежда воспользоваться некоторыми готовыми программами, которые, как ожидается, будут объявлены свободными). Имеются и другие задачи, в том числе разработка удаленного отладчика ядра ОС.

Развитие свободной среды Unix
Необходима реализация некоторых утилит (sdiff, mailx, join и т.д.). Требуется развитие ряда библиотек. В числе задач стоит разработка средств дружественного пользователю терминального интерфейса.

Расширения существующего программного обеспечения GNU
В основном в доработках нуждаются Emacs, GCC и GDB. В отношении Emacs требуются два направления доработок: расширение средств Emacs для возможности использования этого редактора в качестве издательской системы и полная интернационализация Emacs с обеспечением возможности использования любого национального алфавита. GCC необходимо доработать, чтобы устранить накопившиеся замечания и реализовать имеющиеся предложения (список замечаний и предложений распространяется вместе с GCC). GDB нуждается в доработках по части внедрения в отладчик интерпретатора языка Си; нужны также некоторые доделки для возможности использования GDB при отладке программ, написанных на языках, отличных от Си.

Новые компиляторы
Требуется реализация компиляторов ряда языков программирования (Алгол, Алгол-68, ПЛ/1, Ада и т.д.) с выходом на кодогенератор GCC. (Такие работы для языков Фортран, Паскаль и Модула-2 уже ведутся.)

Масса других проектов
В текущем списке ближайших задач проекта GNU находится множество других разнообразных работ. Упомянем желание иметь свободные аналоги систем Page Maker, Ventura Publisher, dbase2 или dbase3 и т.д. Требуется ряд программ для X-Windows.

Linux (www.linux.org)
Сомневаюсь, что хотя бы один человек, имеющий доступ к Сети и обладающий маломальским любопытством, не был заинтригован феноменом Linux. И правда, рост популярности этой свободной операционной системы вызывает удивление и недоумение. Чем же так хорош Linux, что он, как магнитом, притягивает интерес компьютерных энтузиастов? Какие маркетинговые секреты оказались спрятаны в открытом исходном тексте этой ОС? Вероятно, продвижению этой операционной системы в большой степени помогают человеческое любопытство и притягательность свободы.
Так или иначе, пингвин, который является логотипом этой ОС, вырвался на просторы рынка операционных систем, и с его присутствием приходится считаться даже таким мифическим монстрам индустрии ПО, как Microsoft (о котором написано ниже в разделе Хитрый Билл и его детище).
Тринадцать лет назад, 17 сентября 1991 года, произошло рождение операционной системы Linux. Ее отцом стал тогда еще студент, а сейчас уже доктор наук Линус Торвальдс. Он написал «с нуля» ядро операционной системы семейства Unix. Причиной тому послужило впечатление, которое на него произвела ОС Minix, распространяющаяся вместе с книгой Энди Таненбаума. Проблема Minix заключалась в том, что пользоваться ею могли только люди, купившие эту книгу. Линус же решил написать свободную версию Minix. Хочу оговориться, что под словом «свободную» подразумевается не только бесплатное распространение этой ОС, но и доступность исходных текстов, а также возможность их изменять и распространять. Правила обращения со свободным ПО описаны в Общедоступной Лицензии GPL.

Такая модель лицензирования оказалась крайне выигрышной для Linux. В результате все желающие могли принять участие в разработке этой ОС. На сегодняшний день несколько десятков тысяч разработчиков трудятся над Linux. А объединяет их усилия Сеть.
Хотя изначально Unix являлся операционной системой для больших высокопроизводительных компьютеров (так называемых mainframe), принципы, заложенные в него, оказались со временем применимы к персональным компьютерам. С увеличением ресурсов ПК стала очевидна ограниченность операционных систем, традиционно используемых для настольных компьютеров. В то же время Unix никогда не привязывался к каким-то конкретным ограничениям. И поэтому его идеология пришла на помощь в той ситуации, когда пользователи наткнулись на преграды, выстроенные создателями «простеньких ОС» для «слабеньких компьютеров».

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

Для Linux существует огромное количество разнообразного ПО. Из-за специфики ОС большая часть этого программного обеспечения распространяется под свободной лицензией, но существуют и коммерческие продукты. Характерной особенностью всех ОС семейства Unix является достаточно легкая переносимость приложений с платформы на платформу на уровне исходных текстов.
В настоящий момент, по различным оценкам, Linux используют от 30 до 50 млн. человек. Произвести более точный учет невозможно, так как Linux является свободной ОС и для его использования не надо нигде регистрироваться.

Система Linux, как и все Unix – системы, состоит из ядра операционной системы (http://www.kernel.org) и прочих программ, которые обеспечивают решение пользовательских задач. Комплекты, объединяющие в себе ядро и набор программ и утилит, называются дистрибутивами. Наиболее популярными являются дистрибутивы RedHat (http://www.redhat.com), Slackware (http://www.slackware.com), Debian GNU/Linux (http://www.debian.org), Caldera Openlinux (http://www.calderasystems.com). Обычно дистрибутивы содержат все необходимое ПО для организации как сервера, так и рабочей станции.
Русскоязычные пользователи по достоинству оценят русские дистрибутивы – такие, как ASP Linux (http://www.asplinux.ru), ALT Linux (http://www.altlinux.ru), Linux — Mandrake RE (http://linux.iplabs.ru), имеющие русифицированную инсталляционную программу и русификацию «из коробки». Использование русского дистрибутива дает возможность избежать довольно утомительной для новичка процедуры русификации консоли и X Windows.
Существует мнение о небывалой надежности ОС Linux и приложений для нее. Это может быть обусловлено большой аудиторией пользователей и непривычно большим коллективом разработчиков. Так или иначе, всем доступны исходные тексты свободного ПО, и при обнаружении ошибок они исправляются в самые сжатые сроки. В случае закрытого ПО, когда над продуктом работает небольшая группа, не приходится ждать такой оперативности.

После ознакомления с основами архитектуры Unix/Linux простота и логичность организации этой ОС пробуждает желание испытать свои силы в области разработки приложений. Для этого в Linux имеются обширные средства разработки. Вот лишь некоторые из них: C, C++, Objective C, Java, Modula-3, Modula-2, Oberon, Ada 95, Pascal, Fortran, ML, Scheme, Tcl/tk, Perl, Python, Common Lisp.
Под Linux реализован графический оконный интерфейс — система X Windows. Очень популярным бесплатным X — сервером является система X Org (http://www.x.org). Этот сервер поддерживает большое количество различных видеокарт. Есть несколько оконных менеджеров, среди которых последнее время особой популярностью пользуются GNOME (http://www.gnome.org) и KDE (http://www.kde.org).
В качестве стандартной системы верстки текста в Linux принята система TeX, являющаяся стандартом «де-факто» для издательской деятельности, особенно в области научных публикаций. Также под Linux работают такие офисные пакеты, как коммерческий Applixware (linux.applixware.com) и недавно ставший бесплатным, а в планах и свободным, StarOffice (http://www.sun.com/staroffice/). Эти офисные пакеты поддерживают формат файлов MS Office. Возлагаются большие надежды на бурно развивающийся офисный пакет KOffice (koffice.kde.org). Выход этого пакета планируется на конец 1999 года, но версии, находящиеся в работе, доступны и сейчас. А вот настоящее удовольствие вы испытаете, поработав с бесплатным офисным пакетом OpenOffice (http://www.openoffice.org), на котором и была подготовлена эта статья.

Сетевые средства Linux с трудом поддаются краткому описанию. В двух словах можно сказать просто, что там есть все. И при этом на любой вкус. Как вам, например, разброс разновидностей браузеров от текстового lynx (lynx.browser.org) до графического и сверхпопулярного Netscape Navigator (http://www.netscape.com) и Mozilla FireFox (http://www.mozillazine.org). С почтовыми клиентами и клиентами для чтения новостей, клиентами irc и icq примерно та же картина. Это вполне естественно, что ОС, рожденная в Сети, отлично приспособлена для работы с ней.
Настолько же богат и мир серверного ПО для Linux. Под OC Linux работает популярный Web-server Apache (http://www.apache.org/), на базе которого работает около половины всех Web-узлов. Этот сервер оказывается эффективным решением для узлов различной степени сложности. Существуют системы для организации FTP-серверов, почтовых серверов, DNS, шлюзов, firewall и т.д.
Существует большое количество СУБД, работающих под Linux. Среди них такие бесплатные SQL — серверы, как MySQL (http://www.mysql.org/), PostgreSQL (http://www.postgresql.org/), mSQL (http://www.hughes.com.au/) и другие. В рамках ОС Linux легко решаются задачи интеграции баз данных с web.

Игровой мир Linux также достаточно разнообразен. Передовые производители игр стали всерьез рассматривать Linux как игровую платформу. Многие игры либо сразу выходят с версиями под Linux и Windows, либо быстро переносятся на Linux. Linux поддерживает довольно большой список популярных мультимедиаустройств: звуковых плат, TV/FM — тюнеров, 3D-ускорителей.
При выборе аппаратного обеспечения для Linux необходимо убедиться в том, что оно поддерживается ОС. Список поддерживаемого железа довольно обширен, но не безграничен. В нем вряд ли можно найти какие-то малопопулярные или нестандартные изделия. К сожалению, не так много производителей аппаратного обеспечения поставляют драйверы для Linux. А энтузиасты пишут драйверы в основном для популярных систем.

Стоит отметить, что Linux достаточно нетребователен к ресурсам системы. Как заявлено в описании, минимальной конфигурацией является 386SX/16, 1Mb RAM, FDD 1.44Mb или 1.2Mb. Ясно, что при такой конфигурации ничем серьезным заниматься нельзя, но Linux, тем не менее, будет проявлять все свои характкрные особенности (многопользовательская система, многозадачность, многопоточность, и т.д.). Для более комфортной работы, естественно, потребуется больше ресурсов. C 486-м процессором и 4Mb RAM уже можно пользоваться XWindows. При этом потребуется около 50-100Mb на жестком диске. Если планируете запускать несколько приложений одновременно и не испытывать неприятных задержек из-за интенсивного обмена данными с винчестером, лучше поставить 8 или 16 Mb RAM. В принципе Linux является довольно «отзывчивой» на установку дополнительной памяти. То есть при установке дополнительной памяти производительность системы меняется более существенно, чем в других ОС. На тему места на жестком диске Linux опять-таки предъявляет требования в диапазоне от 60Mb до бесконечности. Иными словами, очень различные в зависимости от потребностей.
Linux неплохо уживается с другими операционными системами. Стандартный загрузчик Linux — LiLo (Linux Loader) или GRUB (GRand Unified Bootloader) позволяет иметь на одном компьютере несколько операционных систем. Кроме того, поддерживается работа с такими файловыми системами, как FAT16 (с длинными именами), HPFS, NTFS, FAT32, HFS. Поддерживается файловая система CD-ROM. ОС Linux может быть установлена на уже существующий раздел DOS. Для этого предназначена специальная файловая система UMSDOS.

Для Linux существуют эмуляторы, позволяющие запускать приложения других операционных систем. Наиболее популярными являются dosemu (http://www.dosemu.org/) для эмуляции DOS и WINE (http://www.winehq.com/) для эмуляции Windows. Кроме того, последнее время пользуется заслуженной популярностью коммерческое ПО VMware (http://www.vmware.com/). Этот продукт позволяет инсталлировать и использовать разнообразные операционные системы в рамках виртуальной машины (vm), основанной, например, на Linux. Другими словами, DOS, Windows9x/NT/XP/2003 можно запустить просто в окошке Linux. И не отдельное приложение, а систему целиком.
В заключение хотелось бы отметить, что если кто-то еще не попробовал Linux, сейчас самое время этим заняться. Мир информационных технологий развивается очень интенсивно, и необходимо постоянно следить за общими тенденциями, чтобы в один прекрасный момент не остаться на обочине технического прогресса. А всем любопытным предлагаю посетить ресурс http://www.linuxcenter.ru/lib/history

Хитрый Билл и его детище (www.microsoft.com)
Билл Гейтс, основатель и бессменный владелец компании Microsoft Corporation – уже не самый богатый на планете, но в первую десятку входит точно. А вот как он дошел до жизни такой, мы сейчас узнае

Orphus system