Linux совместимые системы. Совместимость оборудования с Linux: как в Linux с поддержкой оборудования? Поддержка файловых системам других ОС

Ранее я уже описал ситуацию с . Говоря коротко, если Вам прям вот до зарезу нужен Word - то единственный адекватный выход это виртуальная машина. Но нужен ли? Ведь в Linux есть несколько нативных офисных пакетов.

Линукс? Не, не слышал…

В этой статье поговорим вот о чем — совместимы ли имеющиеся в Linux офисные пакеты с MS Office, и если совместимы, то насколько. Сразу оговорюсь — меня интересуют в первую и единственную очередь работа с текстами , так что все нижеизложенное будет касаться в основном текстовых процессоров - Word и его линуксовых аналогов.

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

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

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

Начну с того, что изначально я планировал создать некий «синтетический тест» — страницу в Word, с разными элементами форматирования, рисунками, формулами и т. д. Однако, сразу стало понятно, что идея не самая хорошая, так как слабо отражает реальное положение вещей. Поэтому я выбрал другую тактику — на протяжении двух недель я наблюдал, как та или иная программа открывает созданные в Word текстовые файлы, а выше я уже упоминал, что в день я их просматриваю в среднем по десятку штук. Две недели прошли, и теперь мне есть, что Вам рассказать.

Наши подопытные это четыре офисных пакета — два в настоящий момент находятся «на слуху» - Libre Office и WPS Office. И еще два менее часто упоминаются Softmaker Office и Calligra Suite.

Libre Office

Сразу скажу, если Вам надо открыть документ, созданный в Word, и есть необходимость, чтобы он выглядел именно так, как задумано автором - это не про Libre Office. К основным проблемам, которые мне бросились в глаза, можно отнести тот факт, что он «не подхватывает» кое-что из форматирования текста, а также имеет проблемы с рисунками и схемами, выполненными непосредственно в Word’е. Некоторые из них искажаются до неузнаваемости. Также, Libre Office Writer почему-то не во всех случаях верно «подхватывал» настройки полей страниц, в результате чего текст выглядел как угодно, но не как в Word. С другой стороны , если Вам в принципе надо открыть документ, то Libre Office «впереди планеты всей». В то время как в других продуктах некоторые элементы просто не отображаются, «либра» постарается показать все, пусть и немного кособоко.Говоря в остальном - интерфейс у пакета свой, а не копирующий что-либо. Отдаленно он напоминает старые версии MS Office, но лишь отдаленно. Работать с Libre Office удобно и приятно. В основном в Linux я использую этот офисный пакет и эти строки набираются именно в Libre Office Writer.

Не могу также не отметить, что сейчас готовится к выходу новая версия Libre Office, в которую внесено множество изменений, в том числе направленных на повышение совместимости с форматами MS Office. Так что описанная выше ситуация может скоро измениться. Также, насколько мне известно, ведется работа и над «ленточным» интерфейсом в стиле продуктов Microsoft. Не знаю кто как, а я к такому интерфейсу уже привык, и считаю, что он очень удобен, особенно в контексте текстового редактора. Так что ждем.

WPS Office

На форумах WPS Office очень часто называют «полностью совместимым с MS Office», поэтому его я устанавливал с особым интересом. Действительно, некоторая мера совместимости имеется. Не будем забывать, что сейчас мы работаем лишь с альфа-версией, так что все еще, как говорится, впереди.

Между тем, уже сейчас можно смело сказать, что большинство документов в WPS Writer выглядят так же, как в Word, и это больше достижение! Для себя я отметил проблемы с многими формулами, которые WPS, в отличие от Libre, не показывает вообще. Не желает он показывать и некоторые растровые изображения, вставленные в текстовые файлы. Причем какой-то закономерности мне выявить не удалось. Некоторые показываются, некоторые нет. Проблема не часто, но «всплывает». Среди прочего можно отметить еще несколько мелких проблем, например не всегда верно отображающиеся маркеры в маркированных списках и т. п.

WPS Office имеет два режима интерфейса, один больше похож на Word 2003, а второй на современные версии. К сожалению, «ленточный» современный интерфейс, на мой взгляд, не очень хорошо проработан. Однако, в любом случае, наличие офисного пакета, еще на стадии альфа-тестирования обеспечивающего такую высокую степень совместимости с MS Office, очень радует. Хотя для повседневной работы WPS, субъективно, еще «сыроват».

Softmaker Office

Третий продукт, про который я хочу рассказать — Softmaker Office (). На сайте разработчика доступна версия 2016 для Windows, для Linux же пока доступна только версия 2012. Я почему-то не воспринимал этот офис всерьез. И зря. Как ни странно, именно текстовый процессор из состава этого пакета, на мой взгляд, обеспечивает наилучшую совместимость с Word. Проблемы возникали только с формулами, для которых использовался отличный от «родного» Word-овского редактор формул. Все остальное открывалось просто великолепно.

Разумеется, не обошлось и без ложки дегтя. Softmaker Office - платный продукт. Полная версия стоит 80 долларов. Есть бесплатная версия, включающая ряд ограничений - если говорить о текстовом редакторе, то это отсутствие возможности сохранять файлы в форматы DOCX и PDF - только DOC и «родной» формат, а также ряд других ограничений. Впрочем, если офисный пакет для Вас не основной рабочий инструмент, то и бесплатной версии вполне хватит. Здесь, кстати, важно отметить, что она бесплатна в том числе и для коммерческого использования.

В остальном все очень неплохо, выглядит программа серьезно, интерфейс, правда, похож на Word 2003, но в платной версии довольно гибко настраивается. Хотя, для тех, кто привык к «ленточному» интерфейсу это может быть небольшим, но минусом.

Calligra Suite

Последним будем обсуждать Calligra Suite. К сожалению, обсуждение будет коротким. В прямые минусы идет самая плохая совместимость с Word (не забывайте, что статья не про офисные пакеты сами по себе, а про совместимость).

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

Подведем итог

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

Если нужна совместимость с Word, стоит обратить внимание на Softmaker Office, развивающийся WPS Office как минимум стоит посмотреть - это точно.

Calligra Suite, к сожалению, производит впечатление загибающегося продукта. Из того, что я прочел в сети, можно сделать вывод, что так и есть.

Ну а если совместимость с Word нужна «окончательная и бесповоротная» — виртуальная машина c Windows и MS Office Ваш выбор.

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

Любая платформа имеет свои преимущества и недостатки

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

Главное и весомое достоинство - бесплатные дистрибутивы, выбор которых достаточно обширный. Линукс выступает основой, на которую разработчики «навешивают» графический интерфейс для удобства пользователей. Все дистрибутивы официальные и полностью бесплатные, а это значит, что у вас есть возможность получить в своё распоряжение проверенную и надёжную ОС, которая является лицензионным продуктом. В этом отношении Windows похвастаться нечем. Самыми популярными дистрибутивами можно назвать: Ubuntu, Mint, Fedora, Mandriva - этот список можно продолжить и дальше. Выберите то, что вам больше по душе.

Бесплатное программное обеспечение

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

Вариативность

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

Дизайн

Хотя вся прелесть Линукса и не заключается в графическом интерфейсе, нельзя не отметить стильный и современный дизайн некоторых дистрибутивов, который многим придётся по вкусу.

Производительность

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

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

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

Распространённость

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

Простота

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

Игры

Куда же без этого. Довольно много пользователей регулярно или время от времени играют в компьютерные игры. Несомненным плюсом Windows является то, что с ней совместимы практически все существующие для ПК игры. А это значит, что, если у вас установлен продукт от Microsoft, вы получаете доступ к огромному выбору компьютерных развлечений.

Программное обеспечение

Абсолютное большинство утилит и приложений создаётся именно для ОС Windows, что очень хорошо для любого пользователя. Все самые популярные программные продукты имеют воплощение на Windows, а это даёт вам очень широкие возможности при работе с компьютером.

Совместимость

В отличие от Linux, вы вряд ли найдёте какое-либо устройство, не имеющее драйверов на Windows. Сделав выбор в пользу продукта от Microsoft, вы, можно сказать, исключаете все проблемы с совместимостью устройств, поскольку все производители в первую очередь ориентируются на создание продуктов, совместимых с Windows.

Дизайн

С недавних пор и ОС от Microsoft может эти похвастаться. Дизайн последних версий очень самобытный и оригинальный. Огромные плитки 8 версии многим не пришлись по вкусу, а вот решение разработчиков объединить в 10 версии системы дизайн новый и старый удовлетворило многих пользователей. В Windows 10 очень органично переплетены классические черты, вложенные в старых версиях, с самыми современными и новомодными наработками.

Microsoft Office

Все, кому приходилось работать в Libre Office на Линуксе, понимают, что не придумали лучшего текстового редактора, чем Word. Эта утилита действительно незаменима в наше время, и на фоне неё Libre Office выглядит как одно сплошное недоразумение, работа с которым не приносит ничего, кроме мучений.

Что же касается недостатков, то главным минусом Windows является то, что эта ОС стоит денег. Эта проблема особенно актуальна для стран СНГ. Все пользователи постоянно скачивают пиратские версии, которые не являются проверенными и надёжными, а это, в свою очередь, сильно бьёт по репутации ОС Windows и компании разработчике Microsoft. Ещё один недостаток, который в некоторой мере можно связать с первым, это частые «вылеты» системы. С «синим экраном» или, как его ещё называют, «экраном смерти» знаком, пожалуй, каждый пользователь Windows. Как ни крути, а надёжность и стабильность работы этой системы оставляет желать лучшего. В заключение можно сказать, что сильная сторона Windows в том, что эта система для всех. Каждый найдёт в ней что-то своё вне зависимости от собственных навыков или поставленных задач. Можно сказать, что именно это и делает этот продукт таким популярным во всём мире.

Как вы видите, сделать однозначный выбор в пользу какой-либо из рассмотренных в статье систем не представляется возможным. Всё что можно вам посоветовать - попробовать поработать и с одной, и с другой, а после решить, что же для вас лучше. Ведь у каждого свои представления о хорошем дизайне , функциональности, производительности и других аспектах, в которых можно произвести сравнение. При всех достоинствах и недостатках каждой из операционных систем, объективно вынести вердикт нельзя, так как в итоге всё сводится к элементарной «вкусовщине». Эта статья призвана дать вам необходимую пищу для размышлений, а что именно лучше: Windows или Linux - решать вам.

Оставляйте свой отзыв о статье и пишите в комментариях своё мнение о том, какую из рассмотренных ОС вы считаете лучшей и почему.

  • ВКонтакте
  • обычная форма

    Достаточно один раз понять что такое синий экран смерти или bsod кому как нравится. Синий экран это невозможность прочитать файл. Причём глухая невозможность по причине отсутствия этого файла или по причине отсутствия пути к нему. Теперь проще объясню. Отсутствоват файл может по двум причинам. Первое. Повреждение винчестера, что возможно только на старом компьютере. Второе. Не соответствие драйверов. Например. Винчестер с широким кабелем или жгутом, так называемый IDE интерфейс на который устанавливаем новую операционную систему у которой нет таких драйверов. В этом случае надо позаботиться и скачать драйвера отдельно и иметь их при установке. Ещё один вариант. На sata винчестер, или новый винчестер устанавливаем старую операционную систему, например windows xp, Zver и так далее. В составе этих операционных систем нет сатовских драйверов. В результате экран смерти. Других вариантов нет и быть не может. В случае полного соответствия драйверов всё будет нормально если не издеваться над компьютером сознательно и не выдергивать вилку из розетки ублажая свой псих. В этом случае вы угробите свой винчестер за несколько включений и далее будете получать экран смерти уже по причине нечитаемого винчестера. Сбойные кластеры или места в винчестере лучше не ремонтировать и даже не тратить время попусту. Винчестер это очень сложное устройство, которое требует к себе уважение и заботу. Берегите вой компьютер. Не пытайтесь экспериментировать а то получите на свою попу такой геморой и финансовые затраты, что проще купить новый компьютер.

    Автор)))) Что бы ты знал. Как раз для диких новичков и для домашнего использования Линукс подходит идеально. Хотя бы тем, что не даёт удалить свои системные папки привычным для винды способом. Во вторых, тот же минт мате очень похож по расположению кнопочек и меню программ на винду. В третьих, что такого нет в линуксе для новичков? Специализированных программ – так и надо писать. В четвёртых, в линуксе плохая техническая поддержка? Я вас умоляю)))) На форумах разжуют так, как не учат пенсионеров на компьютерных курсах. И ржать при этом не будут.

    Надо вначале поработать в LeebreOffiese, чтобы оценить правильно эту программу.
    Я в LeebreOffiese институт закончил,графики строил и диплом в ней писал. 4.5года практики.

    На вкус и цвет все фломастеры разные.
    Или кто-то может со 100%-ной уверенностью утверждать, что море таки лучше чем озеро, а океан лучше чем река.
    Кто-кому-и-что пытается доказать? Разве что лишний раз убедить самих себя…

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

В этом посте говорится о Linux и установке оборудования в линукс. Установить оборудование в Linux легко, и ниже приводится информация о ресурсах, которые в этом помогут.

Где найти информацию по совместимости устройств и периферии с Linux?
http://linux-wless.passys.nl/ — расширенная база WiFi-карт для Linux.Это самый полный ресурс по поддержке беспроводных сетевых карт в Linux, можно смотреть по производителям — и если поддерживается, то сразу даётся название драйвера.

http://www.sane-project.org/sane-mfgs.html — список сканеров в Линукс, которые поддерживаются подсистемой SANE. Список по моделям сканеров, работающих в Linux в зависимости от изготовителя. Градации совместимости: полная поддержка, частичная, базовая, нет поддержки. Также указывается, какой требуется backend для работы устройства.

http://openprinting.org/printer_list.cgi — база данных работающих принтеров в Линукс, поддерживаемых подсистемой печати CUPS, которая предоставляет в Linux драйвера для принтеров в Linux-дистрибутивах. Удобный поиск по моделям принтеров и по изготовителю. Градации совместимости: работает, работает почти, работает ограниченно, балласт.

Базы данных по категориям устройств
http://www.linuxcompatible.org/compatibility.html — база данных по всем устройствам, совместимых с Linux, начиная от звуковых карт и заканчивая принтерами и сканерами. Есть градации совместимости: работает отлично, работает большей частью, работают некоторые функции, балласт. База весьма обширна, время от времени обновляется создателями сайта. В любом случае, замечательный ресурс.

http://kmuto.jp/debian/hcl/ — база устройств, поддерживаемом ядрами 2.6.15 и выше. Просто копируем вывод lspci -n из консоли и получаем сведения о поддержке железа, находящегося на материнской плате.

http://www.linux-laptop.net/ — самый полный ресурс о работе Linux на ноутбуках. На странице приведена классификация по производителям, дальше — ссылки по моделям на конкретные страницы пользователей, рассказывающих, что и как они предпринимали для получения функциональности своих ноутбуков. Большинство информации на английском, но другие языки также присутствуют.

http://start.at/modem — большой ресурс по поддержке таких ущербных устройств, как винмодемы. Оказывается, из этого балласта тоже можно кое-что извлечь: приведён внушительный список поддерживаемых устройств.

http://www.phoronix.com/lch/ — пользовательская база данных поддерживаемых устройств. Начинает наполняться, вы тоже можете принять в этом участие. Есть RSS-потоки как по конкретному виду железяк, так и по всем сразу.

— замечательный ресурс по устройствам в Линукс со ссылками на HOWTO и «как настроить». На странице — классификация по типам устройств, далее — ссылки на то, как настроить и какие могут возникнуть проблемы. Так же имеются ссылки на общую информацию по данным устройствам. Очень познавательно. Есть -лента на новости сайта (новая документация).

http://cdb.suse.de/?LANG=en_UK — список устройств, совместимых с SuSE Linux. Обновляемая база совместимых устройств с SuSe Linux. Как правило, и в других дистрибутивах эти устройства работают тоже.

http://www.linuxtested.com/ — совместимость и работа устройств по дистрибутивам. На сайте есть информация о тестировании устройств в следующих дистрибутивах: SuSE, Redhat / Fedora, TurboLinux, Debian, Mandrake.

http://www.linux.org/hardware/ — аппаратура, работающая в Linux.Список не полон, но может быть полезен — есть информация об экзотическом железе, для которого есть поддержка в Linux.

http://www.linux-drivers.org/ — ссылки на множество ресурсов, посвящённых совместимости с Linux. Большое количество ссылок на ресурсы и поддержке железа в Linux.

http://hardware4linux.info/ — каталог linux-совместимого аппаратного обеспечения, деление по категориям: «работает прямо из коробки», «работает с модификацией», «неизвестно», «работает частично» и «не работает». Достаточно большая и постоянно обновляемая база данных по устройствам.

http://www.linmodems.org/ — база данных по поддержке таких порочных устройств, как вин-модемы. В них вся основная деятельность перекладывается на драйвер, написанный под вы-сами-знаете-какую-систему. Как следствие, на устройстве «мозгов» почти нет, как их нет и у производителей таких устройств. Усилиями свободных программистов, многие из этих устройств можно заставить работать в Линукс.

26.02.2007 Алексей Гриневич, Денис Марковцев, Владимир Рубанов

Если вернуться в конец 90-х и окунуться в мир операционных систем того времени, то вряд ли у кого возникнет сомнение в безраздельном царствовании Unix-совместимых систем. На стороне Unix все — семейство этих операционных систем изучают в университетах, для него созданы сотни тысяч приложений, оно успешно применяется в различных отраслях экономики, о нем написано море книг и документации. Правда, нельзя приобрести именно Unix, а можно купить IBM AIX, BSD, HP-UX, Sun Solaris и т.д. При этом требуются дополнительные усилия для того, чтобы программа, созданная, скажем, для AIX, заработала под Solaris. Различные клоны Unix оказались слабо совместимы. Аналогичные проблемы имеются сегодня и для ОС Linux.

Для решения инфраструктурной проблемы слабой совместимости различных версий Unix в 1985 году в рамках IEEE была начата работа над стандартом, обеспечивающим переносимость программного обеспечения. В 1990 году увидел свет стандарт IEEE 1003, также получивший название POSIX , который регламентировал программные интерфейсы (API) и перечень команд Unix-клонов. Однако для игроков рынка Unix унификация породила сложные политические проблемы: любое решение, любой выбор между альтернативными вариантами для достижения согласия ведет к тому, что «более стандартным» признается решение одного производителя по сравнению с решением другого. В результате стандарт изобилует многозначными утверждениями типа «в данном случае возможен один из двух альтернативных вариантов поведения» и белыми пятнами наподобие «стандарт не регламентирует поведение функции в этом случае». В конце концов, фрагментация стала одной из основных причин поражения мира Unix. Игроки этого рынка конкурировали не только с другими типами операционных систем, но и друг с другом, вводя частные расширения и закрытые интерфейсы, ограничивая круг возможных приложений каким-либо одним клоном.

Появившаяся в начале 90-х годов ОС Linux, вобравшая в себя код, созданный в рамках движения GNU, и впитавшая основные идеи Unix, благодаря открытости и независимости стала универсальным компромиссом. Ее код реализовывался с нуля, не опираясь на какую-либо реализацию, а только на текст стандарта POSIX. В результате система получилась изначально POSIX-совместимой, а независимость позволила объединить усилия различных игроков рынка Unix в борьбе за «возврат» упущенного сегмента операционных систем для ПК. Однако проблема фрагментации осталась актуальной и для Linux: наличие конкурирующих между собой дистрибутивов вызывает опасения в вероятном повторении судьбы Unix.

На первый взгляд, сама опасность фрагментации выглядит довольно призрачной - фактически имеется общий код, большинство дистрибутивов работают на основе одного и того же ядра, одних и тех же библиотек, что во многом определяет совместимость. Казалось бы, и приложения должны сохранять работоспособность и совместимость между различными версиями Linux. Но это не получает подтверждения на практике. Наряду с фрагментацией рынка дистрибутивов Linux по подходам и дополнительной функциональности, наблюдаются существенные перекосы в поддержке различными клонами даже распространенных и стандартных приложений - в различных дистрибутивах используются разные версии ядра и системных библиотек (в первую очередь, glibc). Это ведет к тому, что состав и поведение системных интерфейсов, предоставляемых системой приложениям, меняются от дистрибутива к дистрибутиву. Для того чтобы не повторить печальный опыт клонов Unix, в 1998 году в рамках специально созданной организации Free Standards Group (сейчас Linux Foundation ) началась работа над стандартом LSB (Linux Standard Base - «базовое семейство стандартов Linux»). Благодаря усилиям со стороны организаций X/Open, IEEE и ISO, открывших стандарт POSIX и часть тестов для свободного доступа, был заложен фундамент в дело стандартизации Linux.

Но что именно и зачем нужно стандартизовать? Неужели единый открытый код сам по себе не является единым и открытым стандартом?

Проблемы совместимости приложений

Как проявляются различия между дистрибутивами Linux на практике и насколько серьезна проблема? Приведем пример. Основу коммерческих предложений корпорации IBM составляют пять линеек программных продуктов: DB2, Websphere, Rational, Tivoli и Lotus. Практика показывает, что поддержка всех пяти линеек для одного дистрибутива Linux обходится ежегодно в миллионы долларов, которые идут на разработчиков и тестировщиков, ответственных за поддержку приложений под конкретный дистрибутив Linux. Следовательно, поддерживаются те дистрибутивы, для которых прибыль от продажи продуктов превышает эти миллионы; фактически это только дистрибутивы SuSE и Red Hat. Так возникает ситуация несоответствия - то, что работает на одних дистрибутивах, не запускается на других.

Совсем другая ситуация наблюдается для Sun Solaris. Прежде всего, в Sun Microsystems гарантируют, что программа, скомпилированная для Solaris 2.6, будет работать без перекомпиляции и под версией 10. Разработчики Sun прилагают огромные усилия для этого; при каждом изменении кода прогоняется набор более чем из 2400 приложений различного назначения и состава. Более того, если кто-то обнаруживает, что приложение перестало работать по причине несовместимости между версиями Solaris, то в Sun берут на себя ответственность и расходы на исправление этого несоответствия. В случае с ОС Linux данная работа долгое время не велась, приложения и дистрибутивы жили своей собственной обособленной жизнью. Самым печальным при этом является отсутствие универсального способа написания программы таким образом, чтобы гарантированно обеспечить переносимость. На решение этой проблемы и направлены усилия консорциума Linux Foundation, представляющего интересы основных игроков Linux-рынка.

Структура Linux

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

Бытует мнение, что если программа перестала работать при смене дистрибутива Linux (или его версии), то, имея исходные коды, ее очень легко подправить, а потому и проблемы с совместимостью нет. Прежде чем обсуждать, так это или нет, рассмотрим сначала структуру ОС Linux.

«Обобщенная» модель системы на базе Linux представлена на

Рис. 1. Модель системы на базе ОС Linux

Каждая конкретная Linux-система создается для работы одного или нескольких приложений, однако кода самого приложения недостаточно, чтобы извлечь необходимый пользователям сервис из аппаратуры - большинство приложений использует в своей работе обращения к функциям библиотек. Стандарт LSB Core 3.1 определяет следующие системные библиотеки: libc, libcrypt, libdl, libm, libpthread, librt, libutil, libpam, libz, libncurses. В современных Linux-системах интерфейсы этих системных библиотек реализуются библиотеками glibc, Linux-PAM, zlib и ncurses, которые на самом деле реализуют больше интерфейсов, чем определено в LSB Core.

По степени взаимодействия с ядром Linux функции системных библиотек можно классифицировать так:

  • реализация функции полностью содержится в библиотеке, и ядро не используется (например, strcpy, tsearch);
  • в библиотеке реализуется тривиальная «обертка» (wrapper) для вызова соответствующего интерфейса ядра (например, read, write);
  • реализация функции содержит как вызовы системных интерфейсов ядра (причем возможно нескольких разных), так и часть кода в самой библиотеке (например, pthread_create, pthread_cancel).

Само ядро Linux содержит много экспортируемых точек входа, однако подавляющее большинство из них является внутренним интерфейсом для использования модулями и подсистемами самого ядра. Внешний интерфейс содержит порядка 250 функций (версия 2.6). Из них, к примеру, в своей реализации библиотека glibc 2.3.5 использует 137.

Конфигурации

Под конфигурацией системной части дистрибутива понимается комбинация версии ядра (включая отдельные заплаты), версий системных библиотек, параметров их сборки и архитектуры, на которой это все работает. На приведен пример конфигурации сборки двух гипотетических дистрибутивов, представляющих собой совокупность версий компонентов и заплат. Между версиями компонентов добавляется новая функциональность, а также убираются морально устаревшие интерфейсы и функции. Так, на данной диаграмме легко видеть, что поскольку дистрибутивы 1 и 2 используют различные версии GCC, совместимость по исходным кодам между ними отчасти утеряна - не все, что собиралось с помощью gcc 3.4, может быть собрано с помощью gcc 4.0 без доработки.

Рис. 2. Пример конфигурации сборки дистрибутивов

Дистрибутивы

По адресу lwn.net/Distributions/ можно найти перечень известных дистрибутивов Linux (на момент написания статьи их было 542), открытых для широкой публики. Здесь не учитываются версии, сделанные для внутреннего применения индивидуальными энтузиастами, а также различными компаниями, ведомствами и т.п. Согласно лицензии GNU, можно взять произвольный дистрибутив, внести в него модификации (как минимум в компоненты, подпадающие под GNU) и распространять далее.

Дистрибутивы можно классифицировать по ряду признаков.

  • По базовым производителям. К примеру, Red Hat, Slackware, SuSE, Debian, Asianux, Mandriva, Gentoo представляют собой основные «ветви» Linux-индустрии. Эти дистрибутивы не являются наследниками других (хотя между ними есть некоторые исторические зависимости). Их можно считать стратегическими направлениями развития в Linux вообще. Большинство остальных дистрибутивов явно принадлежат к одной из упомянутых ветвей, - в основном наследуя исходный код и приложения и добавляя специфическую функциональность.
  • По локализации. Во многих странах присутствует локальный производитель Linux (скажем, в России всем известны дистрибутивы ASP Linux и ALT Linux).
  • По применению. Дистрибутивы для встроенного применения в мобильных устройствах; дистрибутивы, работающие без поддержки файловой системы; облегченные версии для использования в КПК; переносные версии для запуска с ограниченных носителей (Linux на дискете, Linux на компакт-диске и т.п.).
  • По специализации. Дистрибутивы для поддержки определенной аппаратной архитектуры (AlphaLinux с поддержкой процессорной архитектуры Alpha, ARM Linux с поддержкой ARM и т.п.).

Процедура сборки Linux

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

Многообразие различных входящих в Linux компонентов и множество зависимостей между ними может проиллюстрировать процедура сборки ядра. Проект Linux From Scratch содержит последовательность шагов, необходимых для сборки дистрибутива Linux «с нуля». Упрощенная последовательность сборки дистрибутива LFS Linux версии 6.0 выглядит так:

1. Binutils-2.15.94.0.2.2 - Pass 1
2. GCC-3.4.3 - Pass 1
3. Linux-Libc-Headers-2.6.11.2
4. Glibc-2.3.4

87. Util-linux-2.12q
88. Конфигурация загрузки
89. Linux-2.6.11.12 - Ядро

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

Flex contains several known bugs. These can be fixed with the following patch:
patch -Np1 -i ../flex-2.5.31-debian_fixes-3.patch

В процесс сборки включается сборка средств компиляции, которые также претерпевают существенные изменения во времени. Даже базовые компоненты Linux нередко оказываются устаревшими. Так, версия компилятора gcc 4.0.0 не годится для сборки ядра 2.6.11 (хотя они и современники) и требует использования специальной заплаты для устранения этой несовместимости.

В плену зависимостей

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

Категория проблем, связанных с несовместимостью версий библиотек, получила название dependency hell («ад зависимостей», en.wikipedia.org/wiki/Dependency_hell ). С какими проблемами может столкнуться пользователь, установивший в свою версию ОС Linux какую-либо новую библиотеку? В этом случае приложения, работавшие с предшествующей версией, могут перестать корректно функционировать, так как эти приложения могли полагаться явно или неявно на определенные ошибки и побочные эффекты, присутствовавшие в старой версии. Также вполне реальна обратная ситуация, когда новая версия просто содержит новую ошибку. Но настоящая проблема возникает тогда, когда в системе должны работать несколько различных приложений, которые существенно полагаются на различные версии одной и той же библиотеки; может так оказаться, что совместная работа этих приложений просто невозможна. Иногда существует возможность иметь несколько версий одной и той же библиотеки в системе, и это будет вполне безопасным решением, однако это совершенно не рекомендуется делать в случае библиотеки glibc.

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

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

Основное отличие LSB в том, что разработчики приложений могут ориентироваться на одну платформу, скажем LSB 3.1, и этого достаточно для обеспечения работы на всех совместимых с LSB 3.1 дистрибутивах. То же самое действует и для поставщиков дистрибутивов: как только достигнуто соответствие с LSB 3.1, автоматически дистрибутив поддерживает все совместимые с ним приложения. К примеру, IBM в рамках инициативы Chiphopper предоставляет аппаратные решения под управлением только LSB-совместимых дистрибутивов. Во многом благодаря активности крупных игроков основные поставщики дистрибутивов уже прошли сертификацию по LSB или объявили о своих намерениях сертифицироваться (www.linux-foundation.org/en/LSB_Distribution_Status ).

Сейчас основной слабостью стандарта LSB является недостаток тестов. Встречаются случаи, когда описанный в стандарте интерфейс работает иначе, и тем не менее система успешно проходит сертификацию. Это объясняется тем, что теста на данный интерфейс просто нет, либо он слишком слаб, чтобы полноценно проверить работоспособность интерфейса. Очень уместно процитировать высказывание Яна Мердока, создателя Debian, а сегодня директора по технологиям Linux Foundation: «Известно, что интерфейсный стандарт хорош настолько, насколько хорошо тестовое покрытие, которое проверяет соответствие этому стандарту».

В Open Group открыли для включения в сертификационный набор тестов LSB некоторые из своих тестов для стандарта POSIX. В набор LSB включены свободные тесты стандартной библиотеки GNU C++ Runtime Library Test Suite, адаптированы тесты для libgtk и libxml. Консорциум Linux Foundation рассматривает возможность выкупа для открытия и включения в LSB различных платных тестовых наборов.

Занимаются решением этой задачи и в нашей стране. Так на базе Института системного программирования РАН создан Центр верификации ОС Linux, где разрабатывается открытый тестовый набор OLVER, который планируется включить в официальные тесты LSB. Между Центром и Linux Foundation заключено соглашение о сотрудничестве, в рамках которого продолжаются работы по улучшению тестового покрытия LSB и идет разработка новой инфраструктуры для развития этого стандарта.

Заключение

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

Сегодня основной инициативой по обеспечению переносимости является открытый стандарт LSB, принятый ведущими производителями дистрибутивов (Red Hat, SuSe, Mandriva) и приложений (MySQL, RealPlayer, SAP MaxDB). За этим стандартом стоит мощный консорциум Linux Foundation и такие его активные члены, как компании IBM, Intel, HP и Oracle, что позволяет надеяться на его успешное развитие и повсеместное внедрение в реальную жизнь. Таким образом, в лице стандарта LSB заложен надежный фундамент единой, нефрагментированной платформы Linux, обеспечивающей переносимость приложений как на основе исходного кода, так и в бинарном виде.

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

  • обнаружение неточностей и ошибок в тексте стандарта LSB и связанных с ним стандартов и сообщение о них оригинальным разработчикам для внесения изменений в будущие версии;
  • разработка формальных спецификаций на языке SeC (спецификационное расширение языка Cи), которые будут отражать требования стандарта LSB Core 3.1 для 1530 интерфейсных функций Linux;
  • разработка открытых тестовых наборов для функционального тестирования различных Linux-систем на соответствие требованиям стандарта LSB Core 3.1 (проверяется поведение системных интерфейсов прикладного программирования Linux).
  • Тестовый набор основан на автоматической генерации тестов из формальных спецификаций требований и соответствующих тестовых сценариев с применением технологии UniTESK.

    К концу 2006 года основная фаза проекта была завершена; все результаты проекта опубликованы на сайте Центра. Сейчас проект находится в стадии поддержки и расширения спектра целевых платформ (комбинации аппаратной архитектуры с конкретным дистрибутивом).

    * Flex содержит несколько известных ошибок. Они могут быть исправлены при помощи следующей заплаты…- англ.


    Проблемы совместимости Linux-систем




    

    Copyright © 2023 Базовые компьютерные навыки.