Свободные ОС — это не только Linux. Linux - свободная ОС ⇡ В качестве заключения

Применять или не применять ОС реального времени (ОСРВ) во встраиваемом проекте - вопрос уже почти риторический. И у одного, и у другого подхода есть свои сторонники и противники, и у каждого из них свои, казалось бы, неоспоримые аргументы. В данной статье предпринимается попытка взглянуть на вопрос "сверху" и указать на некоторые наиболее распространенные мифы.

Допустим, что у вас назревает новый проект, и вы выбираете для него программную платформу. В зависимости от степени привлечения стороннего интеллектуального потенциала вариантов существует четыре:

  • обойтись вообще без ОСРВ;
  • разработать ОСРВ самостоятельно;
  • приспособить под свои нужды свободно-распространяемую ОС общего назначения;
  • использовать готовую коммерческую ОСРВ.

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

Мифы...

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

"Разработать свою ОСРВ - вопрос пары месяцев." Это достаточно распространенное заблуждение берет свое начало из теории управления проектами: мол, оценку ресурсов, необходимых на разработку своей ОС, можно получить делением средней стоимости коммерческой ОС данного класса на стоимость человеко-часа среднего программиста. Здесь, однако, следует четко уяснить, что программирование - процесс итерационный. Помните шутку из старых времен: "ремонт нельзя закончить, его можно только прекратить." С программными проектами та же самая история. Ситуация на рынке постоянно меняется, и любой проект - всегда проект "живой". А значит, однажды взявшись за разработку, вы будете вынуждены заниматься ей все время, и отведенные на нее ресурсы не освободятся никогда.

"Коммерческая ОСРВ - сложный продукт, который придется долго осваивать." Этот аргумент встречается достаточно часто, и как раз по этой самой причине к коммерческим ОСРВ он, в отличие от ОС общего назначения, в большинстве случаев неприменим. Большинство коммерческих ОСРВ разрабатываются изначально с учетом этого момента, поскольку их основное стратегическое предназначение - сократить время выхода новых продуктов на рынок, в том числе за счет сокращения кривой обучения. Если же продукт будет сложен в освоении, его просто никто не купит.

"Коммерческая ОСРВ перегружена ненужной функциональностью." Любой универсальный продукт всегда содержит некоторую избыточность, которая может быть и не нужна в каждом конкретном случае. Однако, встраиваемые среды зачастую просто не оставляют ресурсов для избыточного ПО, и разработчики вынуждены приспосабливаться. Как следствие, все современные коммерческие ОСРВ являются масштабируемыми и позволяют исключать из целевой конфигурации ненужную функциональность.

"Своя ОСРВ хорошо знакома и поэтому может быть качественно документирована." Документирование проекта всегда имеет под собой одну цель - облегчить его изучение. Причем как для заказчиков, так и для новых участников проекта. Однако, если проект делается для внутреннего использования, всегда найдется тысяча более важных дел, чем документировать то, по чему всегда под рукой есть специалист. Разработчики также охотно принимают эту точку зрения, поскольку терпеть не могут писать документацию. Что бывает потом - об этом см. ниже.

"Свою ОСРВ можно довести до ума за конечное время и больше об этом не думать." Этот вопрос уже частично обсуждался выше (см. "Разработать свою ОСРВ - дело нескольких недель"), стоит лишь добавить, что в программировании очень неблагоприятным фактором является "текучка кадров". Рынок непрерывно развивается, меняются требования к продуктам, и даже для самой удачной ОСРВ однажды наступает момент, когда в нее нужно внести изменения. К этому моменту специалисты, разработавшие ее, в лучшем случае уже забыли, что они делали два года назад, а в худшем - перешли на работу в другую компанию. Как результат, новая версия если и выходит, то с большим запозданием и большим количеством ошибок.

"Использование собственной или свободно-распространяемой ОСРВ позволяет существенно сэкономить." Здесь следует помнить, что себестоимость проекта складывается не только из стоимости инструментария и комплектующих. В общем случае она включает в себя как минимум:

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

И здесь, как и везде, работает "золотое правило механики": выигрывая в одном, проигрываешь в другом. Продукт продуктом, но значимость пакета сопутствующих услуг (обучение, поддержка, консалтинг, заказные разработки) как средства сокращения выхода продукта на рынок отрицать нельзя. Здесь есть три варианта:

  • отказаться от услуг вообще;
  • заказать их у производителя продукта;
  • заказать их у сторонней консалтинговой компании.

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

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

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

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

Во-вторых, время, за которое ОСРВ обрабатывает событие, в определении ОСРВ не обговорено. Иными словами, если ОСРВ гарантированно обрабатывает событие, скажем, за 1 сутки, то формально ее вполне можно считать ОС жесткого реального времени. Вывод: перед выбором инструмента необходимо четко представлять себе требования поставленной задачи. Кстати, все ОС жесткого реального времени, обеспечивающие реакцию на событие в пределах единиц микросекунд, являются коммерческими. Что, впрочем, неудивительно: для серьезной задачи нужен серьезный инструмент.

"Свободно-распространяемая ОС исключает проблемы с авторскими правами." А вот это неправда. Любой код почти всегда подпадает под какую-либо лицензию; мало того, зачастую эти лицензии конфликтуют между собой, в результате чего физически совместимые между собой компоненты, например, по закону бывает нельзя включать в один и тот же дистрибутив. Здесь общее правило такое: любая лицензия накладывает определенные ограничения, и их надо четко себе представлять, иначе могут возникнуть проблемы с приемкой. Заказчику всегда нужен лицензионно чистый продукт - хотя бы потому что это явно укажет, кто будет отвечать, если что-то пойдет не так. А за продукт, никому не принадлежащий, не отвечает никто.

...и немного фактов

Кроме вышеперечисленных мифов, также существует ряд неопровержимых фактов, относящихся к коммерческим ОСРВ; однако, они часто либо остаются в тени, либо значение их недооценивается. Перечислим некоторые наиболее важные из них с небольшими комментариями.

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

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

Специализированный инструментарий. Приложения реального времени обладают определенной спецификой (например, механизмы планирования и синхронизации задач в ОСРВ отличаются от таковых в ОС общего назначения), и их отладка требует наличия специализированного инструментария. Обычным отладчиком в этом случае зачастую не обойтись, да и стандартных средств диагностики обычно бывает недостаточно. К тому же, все современные ОСРВ расчитаны на встраиваемые конфигурации, поэтому разработчику для эффективной работы нужны не просто компилятор и отладчик, а интегрированная линейка инструментов, способная провести его от написания кода до формирования и оптимизации образа ПЗУ. Таким инструментарием обладают только коммерческие ОСРВ.

Дополнительные компоненты. Сама по себе операционная система - это еще не все. Кроме базовой функциональности, предоставляемой операционной системой, вашему проекту могут быть нужны дополнительные программные компоненты - стеки протоколов, графика, средства работы с базами данных и т.п. Если вы разрабатываете ОСРВ самостоятельно, то будьте готовы, что вам придется разрабатывать самостоятельно и все остальное. Такой вариант как портирование готовых компонентов в вашу собственную ОСРВ можно исключить сразу, потому что для этого необходимо, чтобы ваша ОСРВ в полной мере поддерживала некий универсальный API (например, для большинства свободно-распространяемого ПО это POSIX), а это для "доморощенных" ОСРВ часто считается ненужным излишеством.

Профессиональные сервисы. И, пожалуй, последнее - как говорят, по счету, но не по значению. Даже самая качественная и подробная документация не решает всех проблем - хотя бы потому что учебник надо всегда читать полностью, а в справочнике надо уметь искать. И то, и другое для сложного продукта может занять очень много времени, потому что объем документации часто очень велик. Если же вы сталкиваетесь с проблемой, то вам, скорее всего, нужно решить ее быстро, а в этом вам может помочь только тот, кто знает систему "изнутри" - ее разработчик. В этом смысле свободно-распространяемые ОСРВ не дают никакой гарантии, потому что не ответив на вопрос в публичном форуме, никто своей репутацией не рискует, а значит, уверенности, что вы быстро получите ответ на любой вопрос, быть не может. Остается сравнить годовую стоимость содержания штата разработчиков со стоимостью годового плана технической поддержки коммерческой ОСРВ. В большинстве случаев выигрывает последний вариант. В дополнение к этому, как уже упоминалось, обычно пакеты профессиональных сервисов, предоставляемые производителями коммерческих ОСРВ, не ограничиваются технической поддержкой и включают в себя также обучение персонала, заказные разработки, сертификацию, проектный консалтинг и прочее - словом, все, что помогает сделать проект грамотно и вовремя.

Резюме

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

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

Николай Горбунов

SWD Software Ltd.

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

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

1. FreeBSD

Если вы используете свободную операционную систему, которая не является Linux, то, вероятно, она основана на BSD. FreeBSD является лишь одной из нескольких UNIX-подобных операционных систем. Другие включают NetBSD, OpenBSD и PC-BSD. Какую бы вы ни использовали, большая часть опыта аналогична тому, что вы найдете в Linux. Свободное и открытое программное обеспечение, доступное для одного, как правило, может работать на другом.

Даже если вы не любитель свободного программного обеспечения, вы можете использовать части FreeBSD, не осознавая этого. Из-за разрешительной лицензии проекта, часть кода пробилась в Apple macOS, Sony PlayStation 4 и маршрутизаторы Juniper.


2. ReactOS

Большинство бесплатных операционных систем являются альтернативой Windows. ReactOS, в некотором смысле, стремится быть Windows. Целью является предоставление пользователям средств для запуска программного обеспечения для Windows, без необходимости покупать операционную систему у Microsoft.

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


3. FreeDOS

Вы использовали компьютеры, когда DOS был единственным вариантом? У вас хорошие воспоминания о MS-DOS?

FreeDOS позволяет вам пережить эту ушедшую эпоху. OS barebones дает вам средство для запуска старых программ DOS на более современном оборудовании или внутри виртуальной машины. Или вы можете просто использовать его для запуска старых игр.


4. Haiku (Хайку или Хокку)

Haiku черпает вдохновение в BeOS. BeOS была графической операционной системой, разработанной Be Inc для работы на BeBox еще в 1995 году. Операционная система застряла в течение пяти лет, прежде чем последнее обновление вышло в 2000 году.

BeOS, возможно, не было именем нарицательным, но оно привлекло некоторых пользователей, и некоторые хотели, чтобы операционная система жила достаточно, чтобы создать свою собственную версию с открытым исходным кодом. Цель состоит в том, чтобы программное обеспечение, написанное для BeOS, работало на Haiku, вроде того, что ReactOS хочет делать с Windows. Учитывая все обстоятельства, команда хайку, возможно, справляется легче.

5. Illumos

Oracle используется для поддержки операционной системы под названием Solaris. Первоначально он был закрытым, но проект был открыт в 2008 году. Oracle прекратил выпуск OpenSolaris в 2010 году и вернулся к собственной модели с Solaris 11 в 2011 году.


6. Syllable

Syllable основан на AtheOS, клоне AmigaOS, который был оставлен на рубеже веков. Что касается AmigaOS, он все еще жив, несмотря на то, что родился в 80-е годы для линейки компьютеров, давно считавшихся древними.

Syllable предназначается для домашних пользователей офиса с удобным интерфейсом и родными приложениями, включая веб-браузер на базе Webkit и почтовый клиент. Дело в том, что он может делать это на компьютере только с 32 МБ ОЗУ (хотя для просмотра рекомендуется не менее 64 МБ). Полная установка должна занимать около 250 Мбайт пространства на жестком диске.


7. Исследовательская операционная система AROS

Хотя Syllable основан на клоне AmigaOS, AROS использует другой подход. Он на самом деле ставит своей бинарной совместимостью с AmigaOS на уровне API. Это похоже на то, как ReactOS ориентирована на Windows, а Haiku нацелен на BeOS.

Вы можете быть удивлены, стоит ли уделять AmigaOS столько внимания. Я уже говорил, что AmigaOS все еще здесь? Это тоже не бесплатно. Кто-то там по-прежнему готов платить за операционную систему, о которой большинство людей никогда не слышало. AROS предлагает способ использования некоторых программ AmigaOS без необходимости платить деньги. Кроме того, это открытый источник, который может оставить вам ощущение безопасности.


8. MenuetOS

Вот что такое MenuetOS - оно достаточно маленькое, чтобы вместить его на одну гибкую дискету. Это были флеш-накопители 90-х годов, и они предлагали только до 1,44 МБ памяти. Учитывая, что многие дистрибутивы Linux испытывают трудности с компакт-диском объемом 700 МБ, загрузка с дискеты в наши дни затруднительна.

MenuetOS полностью написан на 32-битном языке ассемблера и предназначен для работы с минимальными издержками, хотя он поддерживает до 32 ГБ оперативной памяти.


9. DexOS

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

Запуск приложений в DexOS смутно напоминает вставку диска в старую Dreamcast. Опыт кажется более аутентичным, если вы на самом деле играете в игру. И еще одна классная вещь? Эта бесплатная ОС также достаточно мала, чтобы поместиться на дискету.


10. Visopsys

Подобно DexOS, Visopsys - это хобби-проект одного разработчика. Установите ее, если хотите посмотреть на то что может создать всего один человек.

Визуальная операционная система (по общему признанию, это имя может быть применимо к любой ОС с рабочей средой) был в разработке с 1997 года. Она не основана ни на одной ранее существовавшей ОС. Это не означает, что проект не использует уже существующий код. Здесь вы найдете общие инструменты GNU, и значки которые могут быть знакомы пользователям KDE Plasma.

Будете ли вы использовать любую из этих бесплатных операционных систем?

Большинство из них - нет. Разработчики Haiku не работают на полную ставку. Разработчик Visopsys явно говорит, что их ОС не так функциональна, как Linux или, возможно, более справедливое сравнение, Syllable. DexOS - это больше эксперимент, чем что-либо другое.

Тем не менее, есть много людей, которые предпочитают FreeBSD вместо Linux. illumos может не быть известной, даже среди любителей FOSS, но она имеет свои применения. И разве я не упомянул использование FreeDOS для воспроизведения всех старых игр DOS?

Есть ли в этом списке системы, которые вы бы хотели использовать? Знаете ли вы о другой неизвестной бесплатной операционной системе, которой нет в этом списке? Дайте нам знать об этом в комментариях!

Многие
пользователи под словами «бесплатный» и «СПО» подразумевают
операционную систему GNU/Linux. Но существует несколько десятков
свободных ОС, среди которых есть как успешные и популярные продукты
(FreeBSD, Solaris, Darwin), так и известные узким кругам специалистов
проекты (Haiku OS, React OS). У каждой из них – своя история и будущее.

На свете существует несколько десятков бесплатных ОС, и о некоторых
из них нужно знать каждому айтишнику. Самая известная после Linux
операционная система — BSD. Она была разработана в 1978 году в
Университете Беркли на базе ОС UNIX. Из наиболее распространенных
дистрибутивов этой открытой системы можно назвать FreeBSD, PC-BSD и
DesktopBSD.

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


BSD — самая известная после Linux свободная операционная система

Другим ответвлением от UNIX является операционная система от Sun
Microsystems под названием Solaris, созданная в 1991 году. Свободный
вариант этой ОС — Open Solaris, поддерживаемый компанией. Несмотря на
наличие определенных черт, присущих GNU/Linux (графический
пользовательский интерфейс Gnome, установка пакетов программ из
репозитариев, нативная поддержка Linux ABI, загрузка системы с LiveCD),
данная ОС рассчитана для использования в качестве платформы разработки
под серверные продукты Sun Microsystems. Принципиальным отличием от
Linux является ядро системы. Ранние версии ОС Sun Microsystems
использовали Unix и носили название SunOS.


Open Solaris внешне имеет общие черты с Linux

В 1992 году в релизе SunOS 5 была переименована в Solaris 2, в ее
дистрибутиве появились дополнительные проприетарные компоненты. По этой
же причине OpenSolaris распространяется уже не по GPL, а по CDDL
лицензии, предполагающей наличие в дистрибутиве файлов, лицензируемых
по другим принципам, в том числе и проприетарным.

Самые известные свободные ОС после Linux

Название Лицензия Тип ядра Язык семейство ОС статус проекта
Darwin APSL гибридное C, C++ Unix, BSD развивается
DesktopBSD BSD монолитное с модулями С Unix-like развивается
eCos eCos/модифицированная GPL реального времени C RTOS развивается
FreeBSD BSD монолитное с модулями С Unix-like развивается
FreeDOS GPL монолитное С DOS-like заморожен
FreeRTOS модифицированная GPL реального времени С RTOS развивается
Haiku OS MIT монолитное с модулями C, ASM BeOS развивается
OpenDarwin LGPL гибридное C, C++ Unix, BSD закрыт
CDDL монолитное с модулями C Unix развивается
PC-BSD BSD монолитное с модулями С Unix-like развивается
pico]Os BSD реального времени C RTOS развивается
PureDarwin LGPL гибридное C, C++ Unix, BSD развивается
GPL/LGPL гибридное ASM,C Windows-like развивается
Syllable OS(десктопная версия) GPL монолитное с модулями C, C++ Unix-like, BeOS, POSIX развивается

В конце 1980-х-первой половине 1990-х годов в развитии Unix-систем
начался еще один этап, связанный с релизом ОС NEXTSTEP. В основе этой
проприетарной системы находилось ядро Mach с исходными кодами Unix.
После фактического прекращения разработки этой ОС в 1995 году и после
покупки NeXT компанией Apple, практически все основные ее компоненты
(пользовательский интерфейс, OpenStep/Mach и библиотеки системы) были
применены в Rhapsody OS, преемнице будущей Mac OS, вышедшей в 1998
году. Однако в 2000 году Apple прекратила разработку Rhapsody OS и
начала развивать другое ответвление от UNIX и BSD – Darwin.

В основе этой операционной системы — ядро XNU (используется
микроядро Mach и стандартные сервисы BSD). Продукт лицензируется по
APSL, которая относится к бесплатному ПО, а его варианты – PureDarwin и
OpenDarwin (слился с PureDarwin в 2006 году) используют LGPL. От BSD в
ядро Darwin были включены процессорная модель, сетевой стек и
виртуальная файловая система, плюс Apple добавила
объектно-ориентированный API драйверов устройств I/O Kit. Итоговый
вариант позволяет компилировать большинство Unix-приложений под Darwin
без вмешательства в исходный код.

Свободные ОС для пользователей

UNIX-системы и различные ответвления от них отличает довольно
жесткая ориентация на использование в серверах или для разработки
приложений. Использовать их в качестве замены существующим десктопным
решениям в большинстве случаев не имеет смысла. Помимо отсутствия
поддержки в базовой поставки драйверов под мультимедиа-устройства, ряда
медиаформатов, инструментов для кастомизации пользовательского
интерфейса, данные системы сложны для восприятия обычным пользователем,
несмотря на то, что имеют зачастую те же оболочки, что и
Linux-дистрибутивы (KDE, GNOME и другие варианты X-Windows).

Чем Linux отличается от других freeOS?

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

Но существуют open source ОС и для десктопов. Пионерами в этом
направлении была компания Be, выпустившая в начале 1990-х годов
проприетарную BeOS, а также компьютеры BeBox. Разработчики
позиционировали ее как конкурента Windows и Mac OS, прежде всего, по
причине адаптации системы к решению мультимедийных задач. Тем не менее,
активное развитие этой разработки прекратилось уже в начале 2000-х
годов в связи с покупкой компании Be Palm. Единственным open-source
вариантом BeOS является Haiku OS, представляющая собой портированные
ядро, API и файловую систему от BeOS с дистрибутивами СПО, например,
Firefox, VLC, SeaMonkey. В отличие от Linux в ней не используется
графическая оболочка X-Windows, отличается система портов и библиотек
(правда, с конца января 2009 года ситуация стала меняться, и в HaikuOS
теперь можно запускать современные программы, вроде Firefox 3).
Примечательно, что эта ОС до сих пор находится в состоянии глубокой
разработки, и сроки выхода второго технического релиза ее пока неясны.


HaikuOS никак не может выйти из состояния глубокой разработки

Другим похожим на Haiku OS проектом является Syllable OS, существующая
в виде двух дистрибутивов – серверного, основанного на ядре Linux, и
десктопного, использующего собственную разработку. По большому счету, в
Syllable программисты решили соединить лучшие практики open
source-систем, позаимствовав из GNU/Linux компилятор GCC, подсистему
SDL, а также элементы интерфейса от BeOS и применили стандарты POSIX,
известные еще по UNIX-системам. Тем не менее, работы по поддержке
большей части современного оборудования в Haiku OS ведутся крайне
медленно, что сказывается на сроках готовности релизных версий.

Минимальный нестандарт

Еще одним малоизвестным представителем свободных ОС являются
операционные системы реального времени (RTOS). Среди подобных проектов
можно выделить pico]Os (лицензия BSD), eCos (собственная лицензия на
основе GPL) и FreeRTOS (модифицированная GPL). Перечисленные
операционные системы применяются в устройствах, в которых использовать
Linux или BSD нецелесообразно. RTOS нетребовательны к техническим
возможностям устройств и активно используются в терминальных клиентах,
в BIOS, в системах видеонаблюдения и контроля, в промышленном
оборудовании.

И снова Windows

Однако в стане сторонников СПО не обошлось и без присутствия
поклонников Microsoft Windows. Известно, что многие системные
архитекторы и программисты до сих пор считают самой удачной версией
Windows 2000.

Сходного мнения придерживаются разработчики ReactOS. За основу здесь
взят Windows API, а из дистрибутива убраны дополнительные проприетарные
инструменты и софт (то, что осталось, лицензируется по GPL/LGPL).

Типы лицензий, используемых в свободных ОС

Название лицензии Продукты и проекты Накладываемые ограничения
Berkeley Software Distribution (BSD) BSD, pico]Os Разрешается свободно использовать исходные коды, а также закрывать и делать проприетарными модификации
GNU General Public License (GNU GPL, GPL) Linux, Syllable OS(десктопная версия), RTOS (кроме pico]Os), FreeDOS Разрешается
свободно распространять и копировать, но запрещается вносить изменения
без уведомления сообщества и закрывать исходные коды после модификации
GNU Lesser General Public License (LGPL) Darwin, ReactOS Разрешается
связывать лицензируемое по GPL программное обеспечение и его компоненты
с другими продуктами, в том числе, распространять как проприетарные
Common Development and Distribution License (CDDL) Допускается
объединение в одном дистрибутиве файлов, лицензируемых в соответствии с
другими лицензиями, как открытыми, так и проприетарными
MIT (лицензия Массачусетского института технологий) Разрешается выпускать модификации под любой лицензией, в том числе, и проприетарной

Предполагается, что пользователь самостоятельно загрузит необходимые
ему компоненты после установки системы. Еще одной open source
разработкой на базе продуктов Microsoft является известная система
FreeDOS, которую можно часто встретить в качестве предустановленной ОС
на ноутбуках Dell и HP. В основе этой лицензируемой по GPL системы
лежит близкое по функциональности MS-DOS ядро, интепретатор командной
строки, а также набор дополнительных утилит и драйверов (в частности,
FreeDOS работает на NTFS, в отличие от MS-DOS).


ReactOS — бесплатный аналог Windows, поддерживает те же драйвера и программы.

Списком ОС, рассмотренных в материале, данный класс программного
обеспечения полностью не исчерпывается. Существует еще достаточное
количество различных любительских проектов, развиваемых как за
собственный счет энтузиастами (Menuet OS, Kolibri OS и другие), так и
на средства компаний (например, различные варианты Plan 9 от Bell
Labs). Кроме того, ряд проектов находятся в «замороженном» состоянии, и
их создатели не выпускают новые версии уже существующих разработок или
до сих пор не представили прототипы в публичном доступе.

Михаил Демидов

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

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

Так, например, Windows - это операционная система с закрытым исходным кодом, который доступен только очень узкому кругу лиц.

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

Ещё одно важное значение исходного кода -- описание программы. По тексту программы можно восстановить логику её функционирования.

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

Gnu/Linux - это ОС с открытым исходным кодом, защищённым под авторством создателя - Линуса Торвальдса, лицензией “GNU General Public License” -- лицензия на свободное программное обеспечение, созданная в рамках проекта GNU в 1988 году, по инициативе Ричарда Столлмана. Эта лицензия -- предоставляет пользователю права копировать, модифицировать и распространять, гарантирует, что пользователи всех производных программ также получат вышеперечисленные права. Лицензируя работу на условиях GNU GPL, автор сохраняет за собой авторство, кроме того, производные программы могут распространяться коммерчески (здесь ярко выражено различие между открытым ПО (Open source) и бесплатным (Free source)). То есть эта лицензия позволяет всё то, что запрещает закон об авторском праве, сохраняя, однако, авторство за разработчиком.

Благодаря открытому исходному коду, ОС Linux стала тем, что она есть. Только 2% ядра Linux на настоящий момент составлено самим Линусом Торвальдсом. Именно открытость, дающая возможность совершенствовать эту ОС тысячам программистов, сделала Linux такой популярной движущей силой, обусловила её предельную экономическую эффективность с точки зрения конкуренции и спроса. Поэтому можно смело говорить о том, что Linux гораздо более гибкая ОС, чем Windows, поскольку тысячи компаний из сообщества Linux могут гораздо быстрее найти ошибки и несоответствия, нежели программисты из «лона» Microsoft. Кроме того, по этой же причине дистрибутивов Windows существует гораздо меньше, чем Linux, причём дистрибутивы Linux также взаимопреемственны, легко изменяемы, приспособляемы.

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

С.Кузнецов В докладе описывается текущее состояние бесплатно (свободно) распространяемого программного обеспечения. Эта тема является практически бесконечной, и любой рассказ о ней объективно носит абсолютно субъективный характер. С другой стороны, будучи очевидно важным для всего человечества, свободное программное обеспечение особенно важно для России и других государств, образовавшихся на осколках коммунизма. Слишком часто у нас не хватает денег, чтобы приобрести действительно нужное программное обеспечение. Нужно понять, что очень часто это не должно порождать неразрешимые проблемы. Да, мы не очень богаты (увы!), но мы и не слишком глупы, чтобы не справиться с освоением программных продуктов со статусом public domain.
Мы обсудим малую толику доступных сегодня свободно распространяемых программных продуктов, исходя главным образом из личных симпатий, имеющегося личного опыта, а также опираясь на отзывы друзей и знакомых. Доклад основывается на свободно распространяемых материалах и может быть целиком или частично перепечатан, скопирован или распространен любым другим способом.

1. Фонд свободного программного обеспечения и проект GNU

Фонд свободного программного обеспечения (FSF - Free Software Foundation) представляет собой очень интересное и во многих отношениях исключительное явление в современном мире программирования. Многим отечественным программистам приходилось иметь дело с программами из FSF (особенно хорошо известна система программирования GCC), однако недостаточное количество публикаций на русском языке затрудняет понимание идеологии и целей FSF, а также усложняет оценку имеющегося задела. Одной из целей доклада является хотя бы частичное устранение этого пробела.
FSF - это программистская организация, основанная и возглавляемая Ричардом Столлманом (Richard Stallman). В самой общей постановке задачей FSF является устранение ограничений по копированию, распространению, изучению и модификации программ для компьютеров. Для достижения этой общей задачи FSF стимулирует разработку и использование свободного программного обеспечения, ориентированного на широкий класс применений.
В своем "Манифесте GNU" , написанном еще в 1985 г., Р. Столлман в качестве основной идеи, приведшей к возникновению FSF и проекта GNU, выдвигает свое неприятие права собственности на программы. Особенности взаимоотношений в сообществе программистов часто ставят людей перед выбором следования естественному чувству дружбы и взаимопомощи или подчинения препятствующего этому закону о собственности. При использовании свободного программного обеспечения необходимость такого обременительного выбора исчезает.
Создание интегрированной свободной программной системы позволяет избежать дублирующей работы программистов (которая часто требуется только по причине наличия программ в чьей- либо собственности). Свободное распространение исходных текстов программ облегчает их сопровождение и приспособление к нуждам конкретного пользователя (не требуется прибегать к услугам только компаний - владельцев лицензий на исходные тексты). Появляется дополнительная и очень важная возможность использования хорошего программного обеспечения в учебных целях.
Как утверждает Р. Столлман, при переходе к свободному программному обеспечению программисты не вымрут от голода (хотя, видимо, будут зарабатывать несколько меньше). Ограничение на копирование программ - это не единственный способ зарабатывать деньги. Основная идея Столлмана состоит в том, что нужно продавать не программы, а труд программиста. В частности, источником дохода может быть сопровождение программных систем или их настройка для использования на новых компьютерах и/или в новых условиях, преподавание и т.д.
"Манифест" Столлмана написан очень эмоционально и местами слишком утопичен. Тем не менее, как кажется, идеи свободного программного обеспечения исторически близки традиционным (за исключением самых последних лет) отношениям в среде советских программистов. Возможно, именно линия FSF - наиболее естественный путь к глубокой интеграции отечественного и мирового сообществ программистов.
Более конкретно, FSF ведет разработку программ в рамках проекта GNU (аббревиатура GNU раскрывается рекурсивно - GNU"s Not Unix). Целью проекта GNU является создание полной интегрированной программной системы, средства которой совместимы с возможностями среды ОС Unix (как правило, возможности программ GNU шире возможностей аналогов среды Unix).
Программное обеспечение FSF является "свободным" в двух смыслах. Во-первых, любую программу можно свободно копировать и передавать кому угодно. Во-вторых, наличие исходных текстов программ обеспечивает возможность свободного изучения программ, их улучшения и распространения доработанных вариантов.
Подобно тому, как права обычных компаний, производящих программное обеспечение, охраняются их знаком авторских прав (copyright), "свобода" программных систем FSF защищается "copyleft" - комбинацией copyright и присутствующим во всех текстах FSF документом с заголовком "GNU General Public License" . В этом документе говорится о правах, которыми располагает любой текущий владелец данного текста, и о невозможности изъятия этих прав у любого другого субъекта.
Основная деятельность FSF состоит в разработке новых составляющих свободного программного обеспечения в рамках проекта GNU. Большей частью проект GNU развивается плановым образом, но FSF принимает для свободного распространения и программы, разработанные фирмами и частными лицами по собственной инициативе. Кроме того, FSF занимается производством и продажей лент со свободным программным обеспечением, подготовкой, публикацией и распространением руководств по различным компонентам программного обеспечения GNU, а также поддерживает и распространяет справочник услуг - список фирм и частных лиц, которые оказывают платные услуги пользователям программ и систем GNU.
Финансовой основой FSF является продажа магнитных лент и компактных дисков с текстами программ GNU, документации в электронной и бумажной форме, а также спонсорство коммерческих фирм и частных лиц.
В настоящее время готовы почти все компоненты программного обеспечения проекта GNU. FSF распространяет много программ, часть которых написана непосредственно программистами FSF, а часть передана в FSF для свободного распространения другими организациями и лицами. Коротко охарактеризуем наиболее интересные программные продукты, распространяемые FSF .
Emacs - расширяемый, настраиваемый на разные типы терминалов и потребности пользователей редактор. Расширяемость редактора основана на использовании встроенного в редактор интерпретатора языка Лисп (диалекта Common Lisp). Одновременно с исходными текстами редактора распространяются руководство по использованию Emacs и справочное руководство по программированию на языке Лисп в среде Emacs. Основной версией Emacs, поставляемой и поддерживаемой в настоящее время FSF, является Emacs V.19. Эта версия редактора сохраняет свойства всех предыдущих версий, включая возможность использования на самых простых алфавитно-цифровых терминалах. Однако Emacs V.19 очень хорошо работает на графических X- терминалах. На самом деле, только после перехода к использованию Emacs на X-терминалах можно по-настоящему оценить возможности этого редактора.
Некоторое время тому назад существовала непростая проблема локализации Emacs применительно к особенностям национального языка. Скорее всего, найдутся люди, которые помнят, сколько хлопот принесла работа по первой русификации Emacs. Несколько лет назад внезапно активизировавшиеся японцы создали собственную версию редактора Emacs под названием MULE (MULtilingual Enhancement to GNU Emacs - не подумайте чего плохого). В этой версии используется расширенная многобайтовая кодировка символов, позволяющая в одном сеансе редактирования употреблять символы разных алфавитов (в частности, японский, китайский, арабский, русский, греческий и т.д.). В настоящее время MULE интегрирован в Emacs, и серьезные проблемы локализации отсутствуют. Видимо, сегодня Emacs является лучшим текстовым процессором, работающим в среде Unix (в действительности, эта программа представляет собой гораздо большее, чем простой текстовый процессор).
Bison - замена стандартного генератора синтаксических анализаторов Yacc с некоторыми расширениями. Руководство также распространяется. Люди, которые использовали Bison при разработке компиляторов, очень хвалят программу. В последнее время FSF ослабил требования к использованию Bison, позволив легально его применять при разработке коммерческих продуктов.
Имеются две реализации упрощенного диалекта языка Лисп - Scheme: одна из MIT (написана на языке Си), вторая из университета г. Yale (написана на Scheme).
Поставляется набор утилит texiinfo, генерирующих печатные и гипертекстовые документы, в виде которых в основном поставляется документация проекта GNU.
GCC - переносимый оптимизирующий компилятор. Начиная со второй версии компилятор поддерживает языки Си (ANSI C, традиционный Си, расширенный диалект GNU C), Си++ и Objective C. Среди оптимизаций, выполняемых GCC, содержится автоматическое распределение регистров, выявление общих подвыражений, вынесение инвариантных выражений из тела цикла и т.д. Компилятор содержит средства полуавтоматического построения генераторов кода для новых компьютеров.
Доступен целый ряд библиотек функций для языка Си и библиотек классов для Си++ и Objective C.
Отладчик GDB может быть использован для отладки программ, написанных на языках Си, Си++ и Фортран.
Для работы с версиями программ в больших программных проектах поддерживаются системы RCS (Revision Control System) и CVS (Concurrent Version System).
Распространяется громадное количество программ X11, реализация MIT X-Windows (версия 11, релиз 6). Объем доклада не позволяет остановиться на этом более подробно.
В основном все программы, распространяемые FSF, рассчитаны на работу в среде Unix и используются с различными вариантами этой системы, но имеются версии некоторых программ для работы с ОС VMS, Windows NT и даже MS-DOS.
Одним из особенно важным, но еще незавершенным проектом FSF является проект Hurd. Это свободная реализация UNIX-совместимой операционной системы, основанная на свободно распространяемом варианте микроядра Mach, разработанного в университете Карнеги-Меллон. В соответствии с технологией Mach разработан ряд серверов, воспроизводящих базовые функции ядра ОС UNIX. Интерфейс системных вызовов UNIX воспроизводится с помощью специально разработанной библиотеки Си-функций. Серверы Hurd и библиотечные функции первоначально были разработаны на платформе PC 396, но легко переносятся на другие аппаратные платформы. Основной текущей проблемой является массовый перенос Mach на различные платформы.
Среди программ GNU находится большое число других продуктов, которые заслуживают внимания, но мы не будем обсуждать их в этом докладе.

2. Другие наиболее распространенные продукты Public Domain

Наверное, самым популярным на сегодня программным продуктом Public Domain является UNIX- совместимая ОС Linux, созданная молодым финским программистом Линусом Торвалдсом и поддерживаемая с помощью Internet тысячами энтузиастов. ОС Linux основана на традиционных принципах построения ядра ОС UNIX, что не помешало энтузиастам перенести ее на несколько популярных аппаратных платформ.
Linux является одной из наиболее подходящих операционных систем для домашнего компьютера, если человек не собирается использовать его только для написания текстов и лазания в Internet. По отзывам практиков, программа, аккуратно написанная в среде Linux безо всяких проблем переносится в среду любого другого варианта ОС UNIX (если, конечно, этот вариант соответствует стандартам). С другой стороны, известны примеры промышленного использования Linux, в частности, в телекоммуникационных системах.
Альтернативой Linux является ОС Free BSD, разработанная и распространяемая университетом Беркли. Это одна из ветвей BSD UNIX, проекта, в течение многих лет разрабатываемого в университете Беркли. Free BSD - это эффективная и экономичная операционная система, единственным недостатком которой можно считать ее абсолютную ориентацию на Intel- платформы. Я знаю многих людей, которые предпочитают использовать дома Free BSD, а не Linux.
В том же университете Беркли разработан замечательный пакет Tcl/Tk - средство для разработки графических пользовательских интерфейсов. Это свободно распространяемый продукт, прекрасно документированный и очень легко осваиваемый. Известны многие реальные проекты, выполненные с использованием Tcl/Tk, например, основанный на графическом интерфейсе пакет администрирования Linux.
Как говорилось в начале доклада, тема свободно распространяемого программного обеспечения поистине неисчерпаема. По этому поводу можно говорить бесконечно. Но лучше следить за новыми программами самостоятельно.