статья: Использование Linux в системах измерения и обработки данных 2001 г.

Иван Горинов

1. Что такое Linux?

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

История Linux начинается в 1991 году, когда в университете Хельсинки студент Linus Torvalds разработал ядро многозадачной ОС для процессора i386. Проект был реализован в рамках модели открытого кода, подразумевающей свободное распространение исходного кода системы и возможность его модификации любым программистом.

2. Особенности системы Linux

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

Масштабируемость ядра Linux

2.1. Переносимость

Поддержка многих платформ (Intel, Alpha, PowerPC, ...).

Система соответствует открытым стандартам, поддерживает многие сетевые протоколы и файловые системы. Совместимость с системами UNIX на уровне исходных текстов. Кроме того, возможно выполнение прикладных программ Linux в других системах (FreeBSD, Sun Solaris).

2.2. Масштабируемость

2.2.1. Модули ядра

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

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

Благодаря модульности ядра система предъявляет менее жесткие требования к аппаратным средствам и позволяет более эффективно их использовать. Linux может нормально работать на i386 с 8Mb. Это расширяет возможность применения в встроенных системах. В последнее время архитектура PC стала общепризнанной платформой, которая используется не только для настольного применения. Существует много разных типов встраиваемых компьютеров: PC/104, MicroPC (Octagon Systems).

Linux может работать на таких системах благодаря низким требованиям к аппаратуре, а также поддержке электронных дисков с интерфейсом IDE, а также PC/104 FlashDisk, DiskOnChip.

X Windows System в системах обработки данных

2.2.2. Графическая подсистема

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

В Linux, как и в других UNIX-системах, обычно используется сетевая оконная графическая система X Window System. X Window System построена с использованием модели "клиент/сервер". Экран монитора контролируется отдельной программой - X-сервером. Остальные программы взаимодействуют с ней, как с сервером, отражающим на экране результаты этого взаимодействия. X-сервер также контролирует клавиатуру и другие устройства ввода, посылая сообщения соответствующим клиентам.

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

2.3. Открытость

Linux распространяется на условиях свободно распространяемого программного обеспечения (GNU Public License) [3]. Эта лицензия разрешает свободное копирование, модификацию и распространение системы. Таким же образом распространяются и средства разработки. Это может дать большой выигрыш в цене по сравнению с использованием коммерческих ОС (QNX, Embedded NT), где нужно платить за средства разработки и лицензии на каждую копию системы, особенно при массовом производстве встроенных систем.

Открытый стиль разработки - не доведенные до конца, но часто выпускаемые версии.

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

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

3. Недостатки системы и как с ними бороться.

3.1. Отсутствие гарантий и технической поддержки

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

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

3.2. Отсутствие поддержки реального времени (РВ)

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

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

KURT - отличается минимальными изменениями ядра Linux и предусматривает 2 режима работы: нормальный и РВ. KURT реализован как отдельный модуль ядра Linux, который становится дополнительным планировщиком РВ. При переключении в режим РВ все остальные процессы в системе останавливаются до завершения ветви процесса РВ. Пакет KURT не реализует "жесткого" РВ, но подходит для обработки разного рода потоков информации, где критично время получения результата [2].

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

4. Программное обеспечение "Л Кард" для Linux

4.1. Драйверы устройств

В данный момент разработаны драйверы для следующих устройств:

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

4.2. Прикладные программы

Примеры - исходные тексты программ, демонстрирующие работу с устройствами. Утилиты для диагностики, загрузки управляющих программ.

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

XOsc - многоканальный осциллоскоп для X Window System.
Осуществляет вывод осциллограммы для любого числа каналов.

XGOsc - интерактивный осциллоскоп (GTK+). Программное обеспечение для Linux поставляется в исходных текстах.

Ссылки:

1. Секреты UNIX: James C. Armstrong, Jr.: "Диалектика", 2000.
2. Linux реального времени: Алексей Черемисин, Олег Кобызев // "Открытые системы", 1999. #9-10.
3. GNU General Public License // Free Software Foundation, 1991.
4. Каталог изделий 2001-2002 L-Card:
ООО "Л Кард", 2001.
5. Личная страничка автора: www.lcard.ru/~gorinov/lcdrv.

Контакты

Адрес: 117105, Москва, Варшавское шоссе, д. 5, корп. 4, стр. 2

Многоканальный телефон:
+7 (495) 785-95-25
Факс: +7 (495) 785-95-14

Отдел продаж: sale@lcard.ru
Техническая поддержка: support@lcard.ru

Время работы: с 9-00 до 19-00 мск