Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

AOS Manual

Общее описание

AOS™ – Absolutely Open System.

Текущая версия системы: 0.3.11a build 188

Система спроектирована для работы на платформе Windows NT[*] . На данный момент поддерживается работа в пределах одного PC, впоследствии будет добавлена возможность централизованной распределенной работы системы в пределах windows сети.

Абсолютно открытая система представляет собой открытую программную платформу, состоящую из ядра (AOS Kernel) – AOS. dll, загрузчика – любой программы, выполняющей загрузку aos. dll и запуск ядра, модулей расширения – программных модулей (dll), предоставляющих специальным образом написанные функции для расширения функциональности системы, интерфейсов – модулей (dll), реализующих различные протоколы взаимодействия с другими процессами, устройствами, а также реализующие возможность ввода/вывода информации в систему, а также управление ядром, загрузкой/выгрузкой модулей, регистрацией и заменой модулей в системе.

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

Составные части системы

Ядро

Ядро выполнено в виде файла AOS. dll.

Ядро предоставляет следующие функции:

Start index 1, Stop Index 2,

Perform index 3 name 'Perform',

PerformN index 4 name 'PerformN',

GetKernelInfo index 5 name 'GetKernelInfo';

Более подробно можно посмотреть в файле AOS. dpr

НЕ нашли? Не то? Что вы ищете?

Все необходимые типы объявлены в CoreCommon. pas

Порядок работы с ядром следующий:

Загружаем aos. dll.

Вызываем функцию Start.

Ядро инициализируется, загружает списки модулей (extensions. lst) и интерфейсов (interfaces. lst), а также создает файл

Для завершения работы вызываем Stop.

GetKernelInfo возвращает следующую структуру:

TKernelInfo=record

InterfaceCnt, // количество интерфейсов в системе

ModuleCnt:Integer; // количество модулей расширения в системе.

end;

Интерфейсы

Интерфейсы представляют собой модули, имеющие связь с ядром посредством именованных труб (named pipe). Могут реализовать интерфейс пользователя (пример – std. dll), протоколы обмена информацией с другими процессами, компьютерами и т. п. В общем предназначены для ввода/вывода любой информации. А также для управления ядром.

Каждый интерфейс имеет свой программный стек в ядре (TStack) и выполняется в своей нити (thread).

Модули расширения

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

Список функций и их описание задаются в текстовом ресурсе, компилируемом вместе с модулем.

Поскольку функции могут быть написаны любым программистом и на любом языке программирования, то все функции, предназначенные для использования ядром, должны иметь один и тот же формат:

Procedure ProcedureName(var S:TStack);

Через Stack передаются в функцию и обратно параметры, и результаты ее работы.

Пример ресурсного файла для модуля с одной функцией, поставляемого в составе AOS SDK:

STRINGTABLE

{

1, "test"

2, "1"

3, "Test module by Raven"

}

STRINGTABLE

{

11, "ShowMsg"

12, "2"

13, "1"

14, "T"

15, "V"

}

1я строка содержит имя модуля.

2я строка содержит количество функций в модуле.

3я строка содержит описание модуля и является опциональным.

Далее следуют описания функций, каждая функция описывается 5ю строками – нумерация которых выполняется следующим образом: MN, где M – порядковый номер функции, а N номер подпараметра:

1: Имя функции (“ShowMsg”)

2: Индекс, по которому она экспортируется из dll.

3: количество параметров, принимаемых функцией.

4: Типы параметров: строка кодовых обозначений типов данных, T-text (ShortString), I-integer (32 bit signed), F - float (64bit float, 15-16 significant signs), P – pointer (32 bit).

5: тип возвращаемого значения, выбирается из тех же вариантов, что и в 4м пункте плюс V – void, обозначающий отсутствие возвращаемого значения.

[*] Впоследствии планируется возможность использовать некоторые части системы на Windows 9x в windows based сетях