QNX

Производитель QNX – QNX Software Systems. UNIX-подобная POSIX-совместимая операционная система реального времени. 32-битная, многозадачная, многопользовательская, микроядерная. Первоначальное предназначение – промышленная операционная система, предназначенная для работы в режиме 99,999 % надежности («пять девяток»). Используется для управления технологическими процессами, начиная от атомных электростанций и заканчивая производством мороженого. Исходный код закрыт. Проблемы с драйверами (малое количество). Минимальные требования для промышленного дистрибутива – 386-й процессор, 8 Мбайт ОЗУ. Помимо промышленных дистрибутивов QNX, стоящих немалые деньги, существует бесплатный вариант дистрибутива «QNX Real Time Platform», который загружается с сайта производителя (www.qnx.com). Минимальные требования для бесплатного дистрибутива – процессор Pentium-200, 32 Мбайт ОЗУ, 100 Мбайт на жестком диске.

Ознакомившись с вышеприведенным кратким обзором операционных систем, можно представить в общих чертах их области применения, достоинства и недостатки. Поскольку наша книга посвящена Linux, а операционные системы Windows 9х или Windows NT/2000 установлены приблизительно на 90 % PC-совместимых персональных компьютеров, то все сравнения в дальнейшем мы будем проводить относительно этих трех операционных систем, не забывая, впрочем, и об остальных.

Небольшое отступление

Что такое пользователь? Никогда не задумывались? Понятие «пользователь» не подведешь под «среднестатистическое» значение. Он многолик и разнообразен. Единственное, что есть общего у всех пользователей компьютера – они сидят за компьютером. Пользователи с точки зрения системного администратора – все те, кто входит в систему в качестве пользователя, «юзера». С точки зрения системного программиста – все, кто запускает компьютер. Для разработчика прикладного программного обеспечения – пользователи его программы. Для авторов книг "… для чайников" – это люди, знающие о компьютере только то, что у него есть шнур питания и какая-то доска с кнопками. И так далее. Если попытаться обобщить, основной пользователь – это человек, который не разбирается в устройстве компьютеров, не знает, как настроить модем, не обязан знать тонкости операционной системы и т. п. Пользователь решает на компьютере свои профессиональные задачи, зачастую не имеющие с компьютерами ничего общего. На практике все это, конечно, не совсем так мрачно. Пользователь для успешной работы просто обязан знать, что такое файл, как настроить рабочий стол, установить программу, что такое вирусы и как с ними бороться и т. д. Пользователей условно можно разделить на три группы – не знающий о компьютере ничего, знающий кое-что и знающий многое. Соответственно, по уровням пользователей можно разделить операционные системы на три категории.

К первой категории можно отнести Mac OS и, в какой-то степени, Mac OS X, а также BeOS. Ко второй категории Windows 9х, OS/2. К третьей, как ни странно, – DOS, Windows 3.1x, Windows NT/2000, UNIX-семейство, BSD-семейство, Linux, QNX. Такое разбиение операционных систем не всегда соответствует официальному позиционированию фирм-разработчиков (например, Microsoft рекламирует Windows как систему для домохозяек – включил и работай). Однако с точки зрения коллективного разума (по крайней мере, так считают авторы новостных конференций, посвященных сравнительному обзору операционных систем) данное нами разбиение операционных систем достаточно верно. Впрочем, жизнь, как всегда, не стоит на месте. Сейчас уже можно говорить, что Linux с ее графическими менеджерами окон KDE и GNOME постепенно переходит, если уже не перешла, ко второй категории (то есть для пользователей, знающих об операционной системе кое-что), при этом не теряя ни мощности, ни настраиваемости всего и вся. Семейство Windows постепенно сдвигается к группе пользователей, не знающих об операционной системе ничего, при этом вызывая заметное раздражение знающих, или, как у них говорят – Advanced Users, своей уверенностью, что пользователь системе приносит только вред, а посему ничего настраивать он не должен, а если очень хочет – пусть платит за поддержку или специальное программное обеспечение. В идеале же операционная система должна удовлетворять, по меньшей мере, семи достаточно противоречивым требованиям.

1. Быть легкой в освоении и дружественной к пользователю (User Friendly).

2. Быть очень мощной и универсальной (способной работать на любом оборудовании).

3. В ней все должно настраиваться и достаточно просто.

4. Она должна быть очень надежна (в идеале – сверхнадежна).

5. Занимать как можно меньше места.

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

7. Под нее должен быть широкий выбор программного обеспечения.

В нескольких словах рассмотрим эти семь пунктов. Пункт первый. Тут, собственно, и так все ясно. От того, как быстро человек освоится с операционной системой и насколько удобно ему в ней работать, напрямую зависит производительность труда, да и просто хорошее настроение. Пункт второй. Можно, конечно, возразить, что чем более универсальный инструмент, тем слабее он для какого-нибудь специфического применения, и чисто теоретически это так. Но давайте посмотрим на универсальность с другой стороны. Теоретические принципы построения операционной среды, по большому счету, одинаковы, что для старенькой 386-й, что для новейших мультипроцессорных систем. Специфику платформы (тип процессора, мультипроцессорность, кластеризацию и т. п.) всегда можно учесть при разработке специфического ядра операционной системы или драйверов. Некоторая потеря в производительности с лихвой окупается тем, что пользователю, поработавшему на мощнейшем сервере и перешедшему на офисный компьютер, графическую станцию или домашний ПК, не придется осваивать другую операционную систему – его операционная система может работать на любом компьютере. А способность работать на любом компьютере автоматически подразумевает, что операционная система должна занимать как можно меньше места и потреблять мало аппаратных ресурсов. Пункт третий. И тут все понятно без пространных пояснений. Пользователь должен иметь возможность настроить операционную систему под свои нужды, не прибегая к стороннему (не входящему в поставку операционной системы) программному обеспечению. Пункт четвертый. Правда, больное место? У любого пользователя Windows со стажем наверняка происходило зависание компьютера, причем в самое неподходящее время. И каждый пользователь хочет, чтобы зависания никогда не происходили на его компьютере. Пункт пятый. Это тоже понятно. Уже надоело каждые год-полтора менять жесткий диск только из-за того, что следующая версия операционной системы требует «совсем немного, только каких-то 3 Гбайта места на жестком диске». Пункт шестой. И это очевидно. Пользователь должен получить исправления к своей операционной системе при обнаружении просчетов ее разработчиков. Причем, как можно скорее, если операционная система удовлетворяет п. 4. И притом абсолютно бесплатно, поскольку это просчет разработчика. Пункт седьмой. Пусть операционная система будет самой распрекрасной, но если для нее нет программ, она не будет востребована.

Теперь оценим операционные системы на соответствие вышеперечисленным требованиям.

• DOS – не удовлетворяет ни одному пункту, кроме п. 7.

• Windows 3.1x – удовлетворяет п. 1 с оговорками, частично п. 3 и п. 5, удовлетворяет п. 7.

• OS/2 – удовлетворяет п. 1, п. 2 (с учетом одноплатформенности), п. 3, частично п. 4, п. 5 и п. 7.

• Windows 9х – удовлетворяет п. 1, частично п. 3, безусловно удовлетворяет п. 7.

• Windows NT (Windows 2000) – удовлетворяет п. 1, п. 2 (с учетом одноплатформенности и непомерных требований к аппаратному обеспечению), п. 3 и п. 4 с оговорками, безусловно удовлетворяет п. 7.

• Мае ОС – безусловно удовлетворяет п. 1, п. 2 (с учетом одноплатформенности), частично п. 3, п. 4, п. 5, п. 6, удовлетворяет п. 7.

• Мае ОС X – безусловно удовлетворяет п. 1, п. 2 (с учетом одноплатформенности и завышенных требований к аппаратному обеспечению), п. 3, п. 4, п. 6, пока не удовлетворяет п. 7.

• UNIX-семейство – безусловно удовлетворяет всем пунктам, кроме первого, да и то, в последнее время легкость освоения и дружественность у UNIX-разработчиков стоят на первом месте.

• FreeBSD, OpenBSD, NetBSD – все сказанное о UNIX-семействе справедливо и для этих операционных систем.

• Linux – безусловно удовлетворяет всем пунктам, особенно п. 2, п. 3, п. 6, п. 7.

• BeOS – удовлетворяет всем пунктам кроме (пока) п. 7.

• QNX – удовлетворяет всем пунктам.

Попробуем выбрать операционную систему, исходя из вышеперечисленных пунктов. DOS и Windows 3.1x отпадают сразу, как морально и физически устаревшие продукты. OS/2 – очень неплохая операционная система, имеющая несколько недостатков: отсутствие перспектив (IBM отказалась от выпуска следующих версий), не очень большой выбор программного обеспечения, одноплатформенность. Mac OS, Mac OS X – также неплохие операционные среды как с точки зрения пользователя, так и с точки зрения администратора. Но – это операционные системы только для компьютеров фирмы Apple. А в нашей стране этих компьютеров не наберется и одного процента от общего количества персональных ЭВМ. QNX – достаточно специфичная система, рассчитанная для применения в сверхнадежных системах реального времени. Очень хорошая, но для нашего пользователя она стала доступна относительно недавно, поэтому в отношении к ней есть элементы недоверия и незнания, кроме того, у нее относительно малый список программного обеспечения общего назначения (офисные приложения, работа с графикой, игры, наконец). Что остается – семейство Windows 9х– Windows NT (включая Windows ХР), семейство UNIX, а также представители «свободного мира» UNIX – FreeBSD, OpenBSD, NetBSD, Linux и стоящая немного особняком BeOS.

Теперь попытаемся максимально корректно сопоставить Windows-семейство и семейство UNIX. Сначала проведем четкий водораздел между операционными системами Windows 9х/МЕ и Windows NT/2000/XP. Подсознательно (в силу сходства названий, да и внешнего вида) пользователь, а иногда и администратор, отождествляет Windows 9х/МЕ и Windows NT/2000, хотя это далеко не одно и то же. Если внимательно посмотреть на характеристики Windows 9х/МЕ и немного сопоставить факты, станет понятно, что Windows 9х/МЕ – это затянувшийся на шесть лет переход от DOS/Windows 3.1x к Windows N Т/2000, принесший, однако Microsoft огромный доход. С чисто технологической стороны UNIX-семейство корректно сравнивать только с Windows NT/2000, поскольку только Windows NT/2000, как система истинно многозадачная и многопользовательская, поддерживающая мультипроцессорность и кластеризацию, корректно сопоставима с UNIX-подобными системами. Не надо сразу обижаться за любимую Windows 9х/МЕ. Если отбросить эмоции и посмотреть правде в глаза, Windows 9х/МЕ – операционная система для домохозяек и игрушек, которая благодаря простоте освоения методом "научного тыка" незаконно, или правильней сказать безосновательно (с точки зрения системного администратора, безопасности, надежности, да и по целому ряду других причин), проникла в корпоративный мир. Это, конечно, понятно – пользователи знают Windows 9х/МЕ (дома стоит, в институте на ней работали) и пытаются опробованное решение применить в масштабах предприятия. Когда предприятие это 3–5 машин в локальной сети – еще терпимо, но когда на предприятии хотя бы пара десятков компьютеров, и, не дай бог, несколько сетей, которые надо объединить – администратор начинает жить на работе. Вирусы, зависания машин, непонятные эффекты, отсутствие в операционной системе необходимого программного обеспечения для администрирования и управления сетями и рабочими местами – вот сотая часть того, с чем сталкивается администратор. А если в сети появляется сервер… Windows 9х/МЕ уже ничто не поможет. Ведь сервер – это и RAID-массив, и несколько процессоров, причем необязательно это процессоры от Intel. Windows 9х/МЕ на такую машину не поставишь.

Таким образом, корректно сравнивать (с учетом приведенных выше требований) можно только семейство UNIX и Windows NT/2000. Относительно Windows NT/2000 существует основанное на схожести интерфейса и названия с Windows 9х/МЕ заблуждение, что настроить Windows NT/2000 дело пяти минут, и после настройки все работает годами без вмешательства администратора. Внешнее сходство этих систем с Windows 9х/МЕ создает обманчивую иллюзию понимания там, где им и не пахнет, а увеличение нагрузки на сервер заставляет остро чувствовать программистскую поговорку "Памяти мало никогда не бывает". Поскольку книга эта об Linux, сравним семейство Windows с Linux.

Во-первых, что очень выгодно отличает Linux от Windows – ее бесплатность. За Windows 9х/МЕ по сегодняшним ценам придется уплатить около 150–200 долларов, а за Windows NT/2000 и того больше. Кроме того, для работы нужен и Microsoft Office, за стандартный вариант которого придется уплатить около 600 долларов, и, если надо еще что-то – продолжать платить и платить. Сегодня никого не удивляет, когда стоимость установленного программного обеспечения больше, чем стоимость самого компьютера. А если у вас несколько компьютеров – умножьте затраты на их количество. Вот и получается, что маленькая фирма с 5-ю компьютерами потратит 7– 10 тыс. долларов только на программное обеспечение. Но это только начало. Политика Microsoft очень проста и действенна – раз в полгода-год выходит новая версия программного продукта, который все вольно или невольно вынуждены покупать, потому что партнеры присылают вам файлы в формате Excel 97, а ваш Excel 95 отказывается их понимать. В результате за всю жизнь компьютера (3–5 лет) только на программное обеспечение придется потратить порядка 2–5 тыс. долларов. С другой стороны, Linux обойдется в 5—15 долларов, за которые можно купить 2–3 компакт-диска, заполненных бесплатным, с открытым исходным кодом, программным обеспечением. Даже если скачивать дистрибутив Linux через Интернет – все равно не потратить больше 30 долларов (приблизительно столько стоит месяц неограниченного подключения к Интернету). И что характерно – с этого дистрибутива можно сколько угодно раз инсталлировать Linux на абсолютно законных основаниях. Можно возразить, что за потраченные на продукты Microsoft деньги пользователи получают поддержку сервис-центра Microsoft. Увы, это не так – нормальной поддержки на территории СНГ до недавнего времени не было, а звонить сейчас в Москву, например, из Беларуси или Владивостока и получать телефонную консультацию в течение пятнадцати-двадцати минут весьма накладно. Поддержку же для Linux и ее программного обеспечения получить очень просто, нужно только знать, куда обращаться. Поскольку Linux – дитя Интернета, решение проблем надо искать там. Помимо Интернета, где находятся тысячи Web-сайтов, посвященных как Linux в целом, так и конкретному программному продукту для нее, существуют десятки групп новостей, а, помимо всего прочего, в дистрибутив входит более 15 тыс. страниц документации, описывающих все и вся. Есть правда одно неудобство – поскольку Linux разрабатывается и сопровождается людьми со всех стран мира, то и документация для него, в основном, на английском языке. Впрочем, это небольшая плата за обладание практически бесплатным программным обеспечением. Тем не менее, существует достаточно большой пласт литературы и на русском языке.

Во-вторых, Linux способна функционировать на множестве аппаратных платформ и с минимальными требованиями к аппаратуре. С Windows сложнее. Она функционирует только на процессорах Intel или их клонах, а по требованиям к аппаратуре превосходит Linux. И если Windows 9х/МЕ достаточно сносно работает на Pentium-166 с 64 Мбайт оперативной памяти, то для Windows NT/2000 требуется хотя бы Pentium II 350 МГц и 128, а лучше 256 Мбайт оперативной памяти.

По поводу дружественности, легкости в освоении и инсталляции. На сегодняшний день установить Linux на абсолютно чистый диск сможет любой пользователь, для этого нужно только взять соответствующий дистрибутив. Например, дистрибутив Red Hat Linux 7.1 все сделает сам (если, конечно, это нужно) – самостоятельно разобьет и отформатирует жесткий диск, настроит нужную раскладку языка и интерфейс (богатейший выбор из более чем ста языков: русский, украинский, белорусский в том числе), определит аппаратное обеспечение компьютера и настроит его на максимальную производительность. Установит необходимое программное обеспечение в зависимости от выбранного профиля компьютера (сервер, рабочая станция, ноутбук или выборочная установка), при этом ни в коей мере не ограничивая владельца в самостоятельной конфигурации. Что примечательно, установку Linux можно производить в текстовом (обычно так поступают опытные пользователи, или если слабая машина) или в графическом интерфейсе, с CD-ROM, жесткого диска или даже по сети, загрузив компьютер со специально изготовленной дискеты. При инсталляции можно указать Linux при старте сразу загружать графическую оболочку. Поэтому миф о сложности инсталляции можно считать не соответствующим действительности. С легкостью освоения, несомненно, похуже. Для грамотной работы в Linux необходимо иметь представление об операционной системе. К сожалению, Windows приучила пользователя щелкать мышкой и не думать. Плюс еще наш менталитет – «сами с усами», метод «тыка». В UNIX это не проходит. Там подход другой – прочитай, разберись и можешь быть уверен, что это функционирует в любой UNIX-подобной системе одним и тем же способом. Еще нюанс – документация для Linux пишется в расчете на грамотного, способного размышлять человека. Это, разумеется, отпугивает пользователя, привыкшего руководствоваться инструкцией-комиксом, и порождает очередной миф о недружелюбности Linux. Однако приятно, что творцы документации считают тебя умным человеком, а не семилетним ребенком.

По части настройки операционной системы. Microsoft внедрила в свою операционную систему непродуманную идею – системный реестр. В результате получился монстрообразный (зачастую в 4–5 Мбайт) файл двоичного формата, от целостности которого зависит жизнеспособность операционной системы. Очевидно разработчики совсем забыли старое изречение «Не клади все яйца в одну корзину». Очень часто (по меньшей мере, в 30–40 % случаев) ошибки функционирования операционной системы связаны с повреждением файла реестра. Еще одна проблема настраиваемости системы – очень много настроек Windows не описаны в документации, и необходимо перерыть горы литературы, чтобы по крохам насобирать информацию о тонкой настройке системы. Есть, конечно, программное обеспечение, позволяющее тонко настроить Windows, но, как правило, оно не бесплатно. В Linux все более надежно и доступно. Практически все о настройке системы или программного обеспечения можно узнать из документации. Конфигурационные файлы обычно для каждой программы отдельные, и практически все имеют понятный текстовый формат с подробными комментариями. А настроить в Linux можно все, причем для каждого пользователя в системе отдельно.

О надежности. Конечно, семейство Windows – это не Windows 3.1х и даже не Windows 95, для которых ни дня не проходило без сбоя, но до надежности и живучести Linux (не говоря уже о проверенных десятилетиями UNIX) Windows еще далеко. О чем говорить, если во время демонстрации Биллом Гейтсом новых возможностей Windows 2000 (флагманского продукта!) операционная система дала сбой, выдав при этом на монитор «синий экран смерти».

Занимаемое место – в настоящее время, наверное, уже не совсем актуально, сколько операционная система занимает места на жестком диске – 500 Мбайт или Гбайт, но, все равно – чем меньше система, тем она быстрее и надежнее. Тут опять в лидерах Linux – ее можно установить на одну дискету 1,44 Мбайт. Вполне функциональный Интернет-сервер можно уместить в 80—150 Мбайт. С Windows 98, а уж тем более с Windows NT, такого сделать не удастся.

Реакция разработчиков на ошибки. До недавнего времени у Microsoft была достаточно интересная политика: извлекать прибыль даже из собственного брака. Для Windows NT было выпущено 6 сервис-паков, в которые вошли исправления тысяч мелких и крупных ошибок, и все эти сервис-паки продавались за деньги. Скорость исправления ошибок в большинстве случаев достаточно мала. Надежность программ пропорциональна количеству человек, которое участвовало в процессе тестирования. У производителей закрытого коммерческого ПО процесс тестирования является, по большей части, внутренним. С открытыми программами, в частности с Linux и программным обеспечением для нее, дело обстоит гораздо проще. Практически у каждого проекта есть две ветки – стабильная и текущая. В стабильную входит код, который был проверен большим количеством пользователей в течение некоторого разумного времени. Текущая ветка содержит рабочую версию, которая может изменяться ежедневно, содержит все последние нововведения, но при этом не гарантирована от ошибок. Каждый для себя решает, чем пользоваться – стабильной веткой или нестабильной, но содержащей все нововведения. Поскольку процесс тестирования открытого ПО не имеет ограничений по времени, он продолжается все то время, что существует конкретное программное обеспечение. Более того, программист, имея на руках исходные тексты, может сам исправить ошибку, не дожидаясь, пока это сделают за него. Благодаря интернет-сообществу практически всегда ошибки, обнаруженные в программном обеспечении для Linux, исправляются в течение суток и тут же становятся доступными для скачивания из Интернета.

Единственное, в чем Windows пока превосходит Linux – это в количестве и разнообразии прикладного программного обеспечения. Тем не менее, в последние полтора-два года очень бурно пошел процесс переноса под Linux коммерческого программного обеспечения. Пожалуй, сейчас мало осталось направлений, для которых в Linux нет бесплатного или, на худой конец, платного программного обеспечения. Офисные программные комплексы, совместимые по форматам файлов с Microsoft Office есть, об интернет-приложениях и говорить нечего, базы данных, мультимедиа-приложения и т. д., и т. п. Конечно, есть и незанятые ниши – например, нет того изобилия приложений для многоцветной полиграфии, трехмерного моделирования и анимации, видеомонтажа или игр. Но давайте себя спросим – много ли людей занимаются видеомонтажом или анимацией? Наверное, даже не сотая часть процента компьютерных пользователей. А если на компьютере только играть – зачем, вообще, ПК? Есть ведь Sony Play Station, Microsoft Xbox.

И отдельного упоминания заслуживает безопасность. Нехорошо, когда чуть ли не каждую неделю по всему офису прокатывается эпидемия компьютерного вируса, который, ко всему, портит данные на жестом диске. Или кто-то удалил на вашем компьютере данные случайно. Или еще чего похуже. Ведь Windows 9х/МЕ не имеют абсолютно никакой политики безопасности, и навредить системе может практически каждый. На сегодняшний день для Windows существует более двадцати девяти тысяч вирусов или программ-троянских коней, причем каждый пятый несет в себе деструктивные функции. Из-за совместимости с Windows 9x/ME Windows NT/2000 тоже не минула чаша сия. Конечно, с безопасностью в Windows NT намного лучше, но, тем не менее, ее намного чаще взламывают через сеть, чем UNIX. Без прав администратора пользователь может навредить только сам себе, не затрагивая других пользователей. В настоящее время существует около 40 (!) вирусов или троянских коней для Linux, причем реально опасных из них всего 2 или 3. И программы, через которые происходило проникновение троянских коней, давно уже избавлены от этого недостатка.

Подведем итог – почему выбирают Linux.

Данный текст является ознакомительным фрагментом.