Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 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 сетях


