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

(Опыту российских разработчиков посвящена, например, очень интересная статья Игоря Левшина «Деловой Linux» в выпуске еженедельника Computerworld Россия от 16 января 1999 года.)

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

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

Настольная среда и публикации

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

Одна из причин «слабости» Linux в качестве настольной среды и среды публикаций, состоит в том, что до недавнего времени производители коммерческих инструментальных средств не были особенно заинтересованы в переносе своих продуктов на свободно распространяемую операционную систему. В 1998 году ситуация кардинально изменилась, поскольку производители корпоративного программного обеспечения начали осознавать потенциал рынка Linux для своих продуктов. Тем не менее пока Linux значительно отстает от таких систем, как Microsoft Windows в области многофункциональной, высоко интегрированной обработки документов.

Согласно исследованию, проведенному недавно Ианом Петерсом и заказанном Эйлином Боэтчером (оба из корпорации Mitre), сейчас существует два крупных офисных пакета для Linux: Star Office (http://www.stardivision.com) и Applixware (http://www.applix.com). Star Office распространяется бесплатно, а Applixware - коммерческая система. WordPerfect 8 for Linux Personal Edition можно бесплатно загрузить с Web-узла компании Corel, причем эта версия по своим возможностям не отличается от WordPerfect for Microsoft Windows.

Исследование также показало, что в 1999 году должны появиться несколько настольных версий. Среди них по крайней мере два настольных продукта, которые будут распространяться свободно: KOffice, входящий в состав более крупной среды, получившей название KDE (K Desktop Environment; см. http://www.kde.org), и GNOME (GNU Network Object Model Environment; см. http://www. gnome.org). Пакет KOffice близок к завершению и будет включать в себя текстовый процессор, электронные таблицы, редактора презентаций, модуль создания диаграмм и графиков, модуль просмотра изображений и программу векторной графики. GNOME требует больших технических усилий, чем KDE, но по завершении, как предполагается, будет намного более гибок, чем большинство традиционных настольных сред. Кроме того, при создании GNOME широко использовались интерфейсы и стандарты на промежуточное программное обеспечение Corba 2.2.

Наконец, в отчете также упоминается WINE (Wine is Not an Emulator; см. http://www.winehq.org), который позволит приложениям в архитектуре Win32 работать на Linux. Несмотря на потенциальные возможности, до практического использования WINE для запуска таких приложений, как Microsoft Office на Linux, пока еще далеко.

Быстрое развертывание приложений

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

Два из примеров, приведенных в нашем обзоре, предложены Йорге Оконом и Джоном Эшли. Здесь наиболее ярко проявились уникальная стабильность и возможности конфигурации Linux. Окон и Эшли используют Linux с тем, чтобы избежать трудностей, свойственных развертыванию программного обеспечения при создании систем, которые предусматривают использование удаленных узлов и предъявляют потенциально сложные требования к программному обеспечению. В своей статье Окон описывает приложения, которые используются на железнодорожных станциях, а Эшли рассказывает о применении Linux в действительно удаленных точках, например в Арктике и на дне океана.

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

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

Как только созданный таким образом узел RID «задышал», процесс модернизации и изменения программного обеспечения управляется удаленно (к примеру, по Internet), то есть техническим специалистам не нужно выезжать непосредственно на место. В том случае, если речь идет о многочисленных узлах, или, когда добраться до них весьма сложно, одна только возможность удаленно выполнять модернизацию уже способна значительно сократить затраты на всю программу развертывания системы.

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

Создание суперкомпьютеров

Пример такого приложения предложен Беккером, Лигоном, Мерки и Россом, использовавшими уникальное преимущество Linux, распространяемого с исходными текстами. Проект NASA Beowulf Project был направлен на создание из обычных, недорогих ПК суперкомпьютера с параллельной обработкой. Первоначально разработчиков сдерживало отсутствие достаточно быстрого способа обеспечить взаимодействие ПК друг с другом. Поскольку Linux поставляется с исходными текстами, в том числе и используемых драйверов, один из авторов проекта (Беккер) смог создать новый тип «канала, ограниченного» Ethernet-соединением и драйвер, который способен обычные Ethernet-соединения использовать параллельно. Полученными им результатами теперь может воспользоваться все сообщество Linux и таким образом Linux теперь предлагает один из лучших способов, причем доступный для стесненных в средствах исследовательских организаций во всем мире, создавать недорогие суперкомпьютеры с параллельной обработкой. Эффективность Linux, которую многие пользователи называют «превращением 486-го процессора в Pentium», также оказалась весьма кстати для работы таких суперкомпьютеров.

Приложения обеспечения безопасности

Министерство обороны США также оценило дешевизну, высокую надежность, мобильность и быстрое развертывание Linux. К примеру, Френк Макферсон рассказывает, как его группа в The Mitre Corporation создает прототип, который позволит оценить возможность использования Linux в танках и других военных машинах. Кроме того, в Министерстве обороны Linux используется и в ряде других приложений, в частности в серверах, где надежность и защита являются первостепенными.

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

Компоненты ядра Linux

Наконец, приложение, предложенное Эранном Гетом и Майком Сихоласом, демонстрирует использование возможностей Linux, получивших название ядерных модулей, которые демонстрируют необычайно широкие возможности конфигурации Linux. Ядерные модули позволяют динамически подключать и отключать новые драйверы устройств от активного ядра Linux, тем самым значительно сокращая время и избавляя от излишних трудностей при тестировании кода нового драйвера. Как и в примере с проектом Beowulf, это приложение также демонстрирует способности Linux как свободно распространяемого программного обеспечения, которые позволяют расширить возможности имеющегося оборудования.

Об авторe

Терри Боллингер - старший специалист по информационным системам корпорации Mitre, где он занимается вопросами архитектуры распределенного программного обеспечения. С ним можно связаться по адресу terry@mitre.org.


Использование Linux в настольных издательских системах

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

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

Поиск альтернативы

Весной 1994 года SSC начала испытывать серьезные трудности, связанные с недостаточной производительностью системы Unix System V, Release 2. Дело в том, что USVR2 содержит сетевые программы для SCO Xenix и объединяет обе эти системы. Затраты на лицензирование каждой копии SCO Xenix были довольно высокими, но приемлемыми. Однако, в это время SCO Unix постепенно начал вытеснять SCO Xenix. До нас также доносились слухи о сетевых проблемах и мы не были уверены, что все это будет работать.

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

С помощью последовательных коммуникационных плат, мы подключили терминалы к системе Linux и использовали rlogin для доступа к базе данных через сеть TCP/IP. Поскольку Linux работал устойчиво, мы смогли добавить постоянное соединение с Internet. Linux легко интегрировалась в нашу среду и оказалась весьма стабильной. После расширения компании в 1994 году мы стали заменять оставшиеся dumb-терминалы на системы с Linux, многие из которых представляли собой устаревшие компьютеры с процессорами 386 и 486. Если для Windows необходимы значительные ресурсы, для Linux вполне хватает возможностей этих старых компьютеров.

Поддержка Web

По мере роста компании нам потребовалось создать в Web собственный узел. Для этого понадобился Web-сервер и брандмауэр, способный изолировать нашу внутреннюю сеть от Internet. Linux смогла удовлетворить оба эти требования.

Наш первый сервер Web представлял собой компьютер с процессором 486/100 МГц и оперативной памятью емкостью 16 Мбайт. На данной машине работал Apache - популярный Web-сервер, относящийся к свободно распространяемому ПО, который поставляется вместе с Linux. Но поскольку сервер обслуживал более 100 тыс. посетителей в день, мы решили, что необходимо расширить аппаратные возможности. Вы представляете, 486 процессор и более 100 тыс. запросов! Тогда мы, наконец, заменили процессор на AMD K5, увеличили емкость оперативной памяти и поставили диск побольше.

Сейчас наш Web-сервер каждый день посещает от 200 до 300 тысяч человек. Мы добавили сервер защиты и целый ряд скриптов CGI, написанных главным образом на Perl, а вскоре намерены добавить и третий сервер.

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

Стабильность Linux

Несмотря на все эти изменения база данных по-прежнему работала на компьютере с SVR2 и мы решили, наконец, заменить и ее. Сначала, правда, мы намеревались использовать базу данных компании Progress Software, надеясь убедить ее перенести свою версию на Linux. Затем решили установить версию Progress для SCO Unix, которая должна была работать с iBCS - эмулятором, позволяющим исполнять на Linux другие объектные файлы, созданные для Intel-компьютеров с Unix. Последний вариант и был реализован и до сих пор работает весьма стабильно.

Современная конфигурация

Сейчас наши настольные системы работают с X Window и почти все из этих компьютеров имеют процессоры K5 или K6 компании AMD. Мы используем лицензионное программное обеспечение, такое как StarOffice, Applixware и WordPerfect, а также браузер компании Netscape и elm для электронной почты. Практически на всех системах сейчас установлен Debian Linux, хотя это не самый популярный пакет, но наши требования он удовлетворяет в полной мере, а кроме того, его модернизация практически не требует остановки системы. Хотя мы работаем не только с Linux, но в том случае, когда нам требуются какие-то новые возможности, мы в первую очередь пытаемся использовать именно эту ОС.

Будущее

В перспективе мы намерены использовать только Linux. Так как она работает стабильно и не требует сложного обслуживания, подобный шаг кажется естественным. Насколько это реально? В ближайшее время, конечно, нет. Для этого необходимо, чтобы были созданы Linux-версии таких пакетов, как QuarkXPress, Adobe Photoshop, FrameMaker и CorelDraw.

Компания Corel уже создает такую версию, а в качестве альтернативы FrameMaker мы намерены выбрать Ventura Publisher. Так что основными препятствиями остаются QuarkXPress и Photoshop.

Фил Хагес - один из основателей издательской компании SSC, специализирующейся на выпуске документации по Linux и Unix. С ним можно связаться по адресу fyl@ssc.com.


GNU/Linux для приложений реального времени

Я работаю в подразделении управляющих систем и автоматизации испанской компании INDRA Corporation, число сотрудников которой превышает 3 тыс. человек. Наше подразделение создает управляющие системы реального времени для электростанций, систем контроля транспортных потоков и массовых перевозок, в частности, железных дорог.

Впервые я увидел GNU/Linux в 1985 году, когда один из моих друзей принес мне компакт-диск с этой ОС. Сначала я и мои коллеги рассматривали Linux просто как возможность изучать Unix дома. Однако вскоре поняли, что она является надежной и отказоустойчивой системой, причем по производительности опережает многие из коммерческих ОС. В 1996 году я предложил своим коллегам по работе использовать GNU/Linux для того, чтобы снизить нагрузку на наши Unix-серверы. Благодаря чему каждый из моих коллег смог самостоятельно убедиться в ее надежности и сравнить ее с другими системами.

Впервые мы использовали GNU/Linux в проекте с аргентинской компанией Buenos Aires Railway, где эта ОС устанавливалась на машины, торгующие билетами, и станционные концентраторы. Системы продажи билетов должны быть надежны, отказоустойчивы и просты в работе. Станционные концентраторы - это встроенные системы, которые управляют и взаимодействуют с другими машинами, имеющимися на станции, такими как турникеты и торговые автоматы. Станционные концентраторы собирают данные о пассажиропотоке и продажах и сохраняют их на диск, откуда позже передаются в системную базу данных. Настольные системы продажи билетов и станционные концентраторы представляют собой примеры «программных систем реального времени» - они должны принимать и посылать сообщения в течение 100 - 200 мс.

Первой нашей задачей было проектирование и установка 12 систем продажи билетов и соответствующих концентраторов на железнодорожной станции в Буэнос-Айресе. Позже мы установили 98 таких систем и 92 станционного концентратора на 41 станции Buenos Aires Railway, которые в совокупности обрабатывают информацию о полумиллионе пассажиров в день. Наше оборудование должно работать круглосуточно и ежедневно и в идеале должно отключаться только для обслуживания или переконфигурации программного обеспечения.

На создание систем продажи билетов и концентраторов в Испании ушло около полугода, а затем в течение трех месяцев мы установили их в Аргентине, обучили персонал и исправили обнаруженные ошибки. Реализация всего проекта заняла около полутора лет и в нем принимало участие не больше 20 разработчиков - довольно мало, учитывая, что нам пришлось разрабатывать, создавать и устанавливать турникеты, торговые автоматы, станционные концентраторы, системы выдачи билетов, центр управления (где использовался Sun Server 3000) и коммуникационные системы для станций.

Я проанализировал возможность использовать MS-DOS/Windows, GNU/Linux, а также другие версии Unix для ПК, но в конце концов остановил свой выбор именно на GNU/Linux, главным образом из-за его сетевых возможностей: встроенной поддержки TCP/IP, NFS и Ethernet. Кроме того, GNU/Linux эффективно использует ресурсы, поэтому компьютер с оперативной памятью емкостью всего 8 Мбайт может одновременно выполнять несколько задач. Легкость, с которой мы могли изменять GNU/Linux, позволила нам увеличить эффективность за счет исполнения только необходимых приложений, разработать свои собственные драйверы для работы с имеющимися у нас платами и упростить установку системы на местах за счет того, что и ОС, и все приложения устанавливаются за один проход. Еще одно преимущество состоит в том, что компьютеры с GNU/Linux могут автоматически управлять своими собственными ресурсами. Это минимизирует обслуживание программного обеспечения и делает систему менее уязвимой к внешним воздействиям. Наконец, наличие исходных текстов GNU/Linux позволило нам быстрее разработать собственные системы.

Основным недостатком GNU/Linux является отсутствие традиционной поддержки. Нам удалось решить эту проблему за счет организации группы специалистов, опыт и знания которых как в области GNU/Linux, так и в области транспортных систем позволили добиться успеха в работе над проектом Buenos Aires Railway.

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

Йорге Окон - системный инженер испанской компании INDRA Corporation, участвующий в создании систем управления реального времени для электростанций, транспортных систем и систем массовых перевозок. С ним можно связаться по адресу joa@jet.es.


Linux в системах мониторинга состояния океана

В лаборатории Proudman Oceanographic Laboratory, входящей в состав английского центра Centre for Coastal and Marine Sciences, работает группа инженеров, которые совместно с учеными создают новое оборудование, позволяющее контролировать параметры состояния океана. Один из основных проектов состоит в измерении параметров приливов и отливов. Эти параметры поступают от 50 объединенный в сеть измерительных систем, расположенных вдоль всего побережья Великобритании, на островах, а также на побережье других островов и континентов (в том числе и в Антарктике), и даже на дне океана. Требования, предъявляемые к системам этой группы инженеров весьма специфичны; самым важным из них является надежность. Многие из измерительных систем установлены в удаленных и труднодоступных местах и мы просто не могли позволить себе выполнять ремонт и обслуживание на месте, поскольку это очень дорого.

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

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

В течение двух недель мы создали прототип, который испытывали в Англии. Первоначальный план предусматривал, что обращаться к данным смогут пользователи - непрограммисты через интерфейсную клиентскую программу, работающую под Microsoft Windows. Благодаря Linux мы просто послали копию Web-сервера Apache на новую измерительную систему, собирающую информацию о приливах и отливах, и создали Web-страницу. С помощью нескольких небольших простых сценариев CGI мы смогли установить коммутируемое соединение, запустить браузер Web и сразу попасть на прекрасную страницу, приглашающую в CCMS Tide Gauge. Мы могли выбрать параметры и посмотреть графики последних данных, полностью генерируемые по требованию. Система уже превосходила по своим возможностям первоначальные спецификации!

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

До сих пор система на острове Св. Елены работает блестяще. В других областях мы только постепенно реализовывали преимущества, предоставляемые новой системой. К примеру, получение данных с острова Св. Елены по телефонному каналу обходилось очень дорого, но мы вскоре поняли, что можем переслать программное обеспечение для обработки данных непосредственно на измерительную систему, так, чтобы вся обработка осуществлялась непосредственно на месте, а результаты, намного менее объемные, передавались стандартным образом.

Для таких приложений, как наше, Linux предлагает несколько мощных возможностей, среди которых высокая надежность, низкая стоимость (как программного, так и аппаратного обеспечения), возможность очень быстро создавать прототипы, приемлемая многозадачность и прекрасное удаленное управление. С инженерной точки зрения Linux имеет ряд преимуществ не только благодаря возможности редактировать исходные тексты, но и за счет прекрасного аппаратного доступа, широкого диапазона программных инструментальных средств, совместимости с Unix, а также прекрасной документации и поддержке.

Джон Эшли - инженер-электронщик, специализирующийся на встроенных системах. Сейчас он разрабатывает оборудование для глубоководных измерений в лаборатории Proudman Oceanographic Laboratory. С Linux он работает уже три года. С ним можно связаться по адресу joa@ccms.uk.


Beowulf: недорогой суперкомпьютер с помощью Linux

Компьютерный кластер Beowulf представляет собой недорогой суперкомпьютер с тремя выделенными компонентами: набор недорогих компьютеров (в основном ПК) одного и того же типа, высокоскоростная сеть для организации связи между ними и операционная система (Linux), которая позволяет компьютерам эффективно работать вместе как параллельная система. Томас Стерлинг и Дон Беккер создали первый компьютер Beowulf в 1994 году в центре Goddar Space Flight Center, использовав кластер из 16 ПК с процессорами 486. Стерлинг и Беккер работали в центре Center for Excellence in Space Data and Information Sciences (CESDIS) и их работа велась под эгидой Earth and Space Sciences (ESS), чья общая цель состояла в том, чтобы увеличить производительность при научных вычислениях до нескольких терафлопс.

Хотя использование недорогих ПК делает работу компьютеров Beowulf несколько похожей на работу Internet, где многие «добровольные» ПК или системы взаимодействуют через эту Сеть, Beowulf отличается в первую очередь высокоскоростными каналами связи, что позволяет суперкомпьютеру решать значительно более широкий диапазон задач. В общем, подход, лежащий в основе работы Internet, лучше подходит для решения тех проблем, которые могут быть разделены на небольшие независимые задачи, редко взаимодействующие друг с другом во время исполнения. Такой подход приемлем, к примеру, для моделирования погоды, где отдельные обрабатывающие устройства должны часто взаимодействовать друг с другом на высокой скорости. Компьютер Beowulf больше подходит для решения проблем такого типа, поскольку он способен поддерживать быстрые и синхронизированные внутренние коммуникации между процессорами.

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

Взаимодействие компонентов в первом компьютерном кластере Beowulf было организовано с помощью «канальной» технологии Ethernet, разработанной Доном Беккером специально для проекта Beowulf.

Программное обеспечение Linux также используется в Beowulf благодаря своей зрелости, надежности и стабильности. Исторически сложилось так, что потребность в уникальном или специализированном программном обеспечении в высокопроизводительных вычислительных системах привело к созданию недостаточно эффективного системного ПО, которое в дальнейшем модифицируется. Используемое для Beowulf программное обеспечение GNU и Linux намного совершеннее большинства специализированного высокопроизводительного системного программного обеспечения и, кроме того, позволяет программистам работать в знакомой для них среде в стиле Unix. Кроме того, Linux поддерживает стандарты на коммуникации для параллельных компьютеров, такие как Parallel Virtual Machine, для создания приложений, рассчитанных на интенсивное взаимодействие, и Message Passing Interface - для параллельных программ, обменивающихся сообщениями.

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

Будущее систем Beowulf выглядит многообещающе. По мере развития технологии микропроцессоров, высокоскоростные сети становятся рентабельными и все больше разработчиков приложений переходят на платформы параллельных вычислений. Дональд Беккер - научный сотрудник, а Филип Мерки - старший научный сотрудник Universities Space Research Association, Center for Excellence in Space Data and Information Sciences (CESDIS) в центре Goddar Space Flight Center. Уолтер Лигон - профессор, а Роберт Росс - доцент Clemson University С Лигоном можно связаться по адресу walt@eng.clemson.edu.


Использование Linux для создания быстрых сетей

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

FlowNet объединяет возможности ATM и Ethernet и представляет собой масштабируемую сеть, которая поддерживает как ориентированный на пакеты, так и ориентированный на соединения трафик. Кроме того, FlowNet предоставляет гарантии качества обслуживания на уровне 2 модели OSI. Сеть работает на стандартном медном кабеле категории 5 и поддерживает скорость передачи 500 Мбит/с.

Для разработки FlowNet было использовано свободно распространяемое программное обеспечение, в том числе Linux и инструментарий разработки gnu960 компании Intel. С помощью Linux для FlowNet мы создали микропрограммы, прописываемые на плате, и драйверы устройств. Некоторые из возможностей Linux оказались критически важным для реализации целей проекта. Во-первых, это наличие исходных текстов моделей для драйверов устройств. Поскольку интерфейс FlowNet похож на Ethernet, мы смогли в качестве модели использовать драйвер Tulip Дональда Беккера и адаптировать его для FlowNet вместо того, чтобы создавать его с самого начала.

Во-вторых, в Linux есть возможность, важность которой трудно переоценить - ядерные модули. Поскольку исходные тексты драйверов устройств входят в состав ядра, мы могли не запускать их как приложения. Без модулей драйверы устройств пришлось бы компилировать в ядро, а затем перезагружать всю систему. Это значительно увеличило бы время разработки. Ядерные модули допускают динамическое подключение и отключение кода ядра, благодаря чему сокращается время цикла тестирования. Мы создали ядерный модуль для FlowNet, который во время инициализации загружает прописанные на плате микропрограммы через шину PCI. Такой подход позволяет перекомпилировать и перезапустить все программное обеспечение FlowNet одной командой make. Таким образом нам удалось разработать все программное обеспечение FlowNet менее, чем за три месяца.

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

Эрранн Гет - главный специалист технической группы лаборатории NASA Jet Propulsion Laboratory. Майк Сихолас - основатель компании Cedar Technologies, занимающейся разработкой архитектуры электронного оборудования. С авторами можно связаться по адресу gat@flownet.com и mikec@flownet.com.


Linux для интегрированных и встроенных систем вооружений

Группа Embedded Hardware Systems Specialty Group компании Mitre разрабатывает прототип встроенной системы на основе ОС Linux и коммерческую плату VMEbus. Вполне вероятно, что они будут использоваться в системах, стоящих на вооружении армии США, таких как основной боевой танк Abrams, боевая машина Bradley, вертолет воздушного наблюдения Kiowa и вертолет огневой поддержки Apache Longbow.

В армии США для управления критически важными операциями, такими как настройка запуска или управление огнем, применяются встроенные системы реального времени. Позже, однако, когда был создан First Digitized Division, к интегрированным системам были отнесены также и более сложные приложения, такие как ситуационный анализ, которые требуют использования компьютеров с дисплеями, как у настольных систем, и устройств ввода. Исходя из целей и требований к архитектуре этих приложений и поскольку системы, применяющиеся для их работы отличаются от встроенных систем реального времени, мы рекомендуем дефрагментировать программное обеспечение, размещая эти приложения на отдельном интегрированном компьютере.

Аппаратный прототип представлял собой компьютер с одной платой DY4-177 VME и процессором Motorola PowerPC 603e, содержащим на плате шину PCI и набор микросхем COTS для поддержки последовательных, SCSI и Ethernet-соединений. Мы выбрали для прототипа PowerPC, поскольку он предлагается в защитном корпусе, соответствующем строгим требованиям к системам вооружения, в том числе он должен обеспечивать возможность работы при высокой температуре и сильной вибрации, как, к примеру, в боевом танке Abrams.

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

Френк Макферсон - системный инженер и интегратор компании MITRE Corporation. Одним из его последних проектов был перенос Linux на плату DY4-177 VME и обеспечение технической поддержки архитектуры и интегрирования программного обеспечения ситуационного управления Embedded Battle Command для PM Abrams. С Макферсоном можно связаться по адресу frank@mitre.org.

Linux in Practice: An Overview of Applications: Terry Bollinger, The Mitre Corporation. IEEE Software, January/February 1999, pp. 72-79, Reprinted with permission, Copyright IEEE CS, 1999, Al rights reserved.