Введение

Experix – это интерпретатор команд с открытым исходным кодом, предназначенный для управления лабораторным оборудованием, особенно устройствами сбора данных, а также для обработки, отображения и хранения полученных данных. В настоящее время он доступен только для Linux на архитектуре x86, но всё ещё находится в разработке, и пользователи могут участвовать в его расширении и улучшении. Experix радикально отличается от большинства коммерческих программ сбора данных, таких как LabVIEW, которые моделируют приложение для измерений и управления как сеть операционных блоков, графически представленных в виде блоков с соединениями, обозначающими поток данных. В этих системах приложение создается путем манипулирования этими символами на экране, а затем используется посредством нажатия кнопок и заполнения диалоговых окон в среде графического интерфейса. В отличие от этого, Experix представляет приложение как последовательность операций, обычно выполняемых одна за другой. Он обрабатывает командную строку последовательно, а числа, операторы, функции и команды в этой строке потребляют и создают объекты в стеке. Эти объекты включают целые числа и числа с плавающей точкой различных размеров, комплексные и полярные числа, многомерные массивы, составленные из любого числового типа, различные типы строк и указатели на функции, команды и переменные (которые могут быть числами, массивами и строками). Функция, команда или оператор требует определенных типов объектов в стеке и помещает объекты в стек, а также может изменять значения объектов и переменных в стеке, строить графики, выполнять команды в драйверах устройств и читать и записывать файлы. Experix распространяется под лицензией GNU GPL.

Документация

Документация обширная. Файл с ключевыми словами (.doc) описывает функции и структуры данных в программе. Команды, функции и операторы описаны в справочных файлах, к которым можно получить доступ в Experix с помощью операторов справки. Справочные файлы – это обычные текстовые файлы с управляющими последовательностями для цветового выделения. Системные команды, такие как cat и grep, отображают эти файлы с цветовым оформлением, а редактор, используемый Experix для оператора справки с двумя вопросительными знаками, – это nano (из проекта GNU) с расширением для работы с управляющими последовательностями. Исходные файлы nano, которые были изменены для добавления этого расширения, доступны на веб-сайте Experix. Пользователям Experix рекомендуется исправлять и улучшать справочные файлы в процессе работы.

Ограничения

В настоящее время experix доступен только для Linux и, из-за кода на языке ассемблера, только на архитектуре x86. На данный момент единственной графической поддержкой для experix является SVGALib с открытым исходным кодом. Можно запустить графическую сессию experix в одном виртуальном терминале и текстовые или X-сессии в других, переключаясь между ними с помощью клавиш. Графические операции выполняются серверным процессом, а experix отправляет команды и данные этому процессу через FIFO. В системе есть поток выполнения, который использует readline (библиотеку с открытым исходным кодом из проекта GNU) для получения командных строк и добавления их в очередь выполнения. Другой поток преобразует стандартный вывод (то есть эхо от readline) в команды для графического сервера. Experix также может работать в текстовом режиме или X-терминале без использования svgalib. Перед тем, как он сможет работать на архитектурах, отличных от x86, необходимо доработать код на языке ассемблера и решить другие задачи. Количество доступных в настоящее время драйверов устройств и приложений крайне ограничено. Он запускается от имени root, что представляет собой значительную угрозу безопасности на компьютере, подключенном к сети. Запуск experix без прав root должен быть возможен, но пока это не реализовано.