Сетевое API - MAXIOL Landisk technology ®

Last modified by Max on 2025/02/28 23:56

Введение

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

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

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

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

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

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

Актуальность облачных сервисов для ретрокомпьютеров

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

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

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

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

Наконец, облачные технологии помогают в резервном копировании ценных данных. Ретро-компьютеры подвержены физическому износу, а дискеты и винчестеры стареют, увеличивая риск потери информации. Использование облачного хранилища позволяет сохранить образы дисков, редкие программы и пользовательские наработки, обеспечивая их доступность даже в случае отказа оригинального оборудования.

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

Создание облачного сервиса, адаптированного под старые системы, позволило бы не только упростить доступ к данным, но и обеспечить их сохранность, защитив важные архивы от утери.

MAXIOL Landisk Technology® как решение проблемы

Для решения проблемы предоставления облачных сервисов для ретро-компьютеров я разработал уникальную технологию блочного доступа к файлам-образам дисков — MAXIOL Landisk Technology®. Она предназначена для удобного хранения, передачи и работы с образами дисков, обеспечивая надежное взаимодействие старых компьютеров с современными облачными сервисами.

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

Одним из ключевых преимуществ MAXIOL Landisk Technology® является возможность создания персонализированных облачных хранилищ. Пользователи могут настраивать свои архивы, управлять доступом и адаптировать их под конкретные задачи, будь то работа с операционными системами, программным обеспечением или играми для ретро-компьютеров.

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

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

История создания MAXIOL Landisk Technology®

Идея создания облачного сервиса MAXIOL Landisk Technology® возникла как логическое продолжение развития серии контроллеров AZ®, разработанных для работы с компьютерами PDP-11 и их многочисленными советскими клонами. Эти контроллеры стали настоящим прорывом в области ретро-компьютеров, позволив использовать современные технологии хранения данных и сетевого взаимодействия на устаревших машинах.

Разработка серии AZ® началась в 2019 году, когда инженеры Макс Багаев (Россия) и Александр Забайрацкий (Казахстан) поставили перед собой задачу создания универсального контроллера для работы с шиной QBUS и её аналогами. Первые модели быстро получили признание в сообществе ретро-компьютеров, а в 2022 году разработку продолжил только Макс Багаев, расширяя функциональность устройств. На данный момент произведено более 500 контроллеров различных модификаций, что делает серию AZ® самым массовым оборудованием для PDP-11 за последние годы.

Контроллеры AZ® создавались для множества советских моделей, включая ДВК-1, ДВК-2, ДВК-3, ДВК-4, Квант-4С, Электроника-60, Электроника 60М, Славутич ПК-1 и УКНЦ. Кроме того, была разработана особая версия AZBK® с расширенным функционалом, специально адаптированная для BK-0010, BK-0010.01 и BK-0011M.

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

Ключевые характеристики контроллеров AZ® включают:

  • 16-битную обработку данных, что обеспечивает эффективные вычисления.
  • Модульную конструкцию, облегчающую обслуживание и модернизацию.
  • Поддержку до 32 устройств на одной MicroSD-карте.
  • Совместимость с операционными системами RT-11 и RSX-11M.
  • Поддержку 16-, 18- и 22-битных адресных шин.
  • Открытое API, позволяющее разработчикам писать собственное ПО и драйверы.
  • Энергонезависимую память, доступную через API.
  • Встроенные часы реального времени (RTC) с возможностью получения времени через NTP-серверы.

Возможность сетевого подключения контроллеров AZ® и их использование в качестве блочных устройств привела к созданию MAXIOL Landisk Technology® — облачного сервиса, который позволяет старым компьютерам напрямую работать с удалёнными образами дисков. Этот сервис стал естественным развитием технологий AZ®, расширяя их функционал и делая ретро-компьютеры более удобными для современных пользователей.

Сегодня MAXIOL Landisk Technology® открывает перед владельцами старых ПК новые возможности, обеспечивая удобный доступ к программному обеспечению, образам дисков и архивам данных, помогая сохранить историю вычислительной техники и сделать её более доступной.

Техническое описание MAXIOL Landisk Technology®

MAXIOL Landisk Technology® — инновационное облачное решение для ретро-компьютеров

MAXIOL Landisk Technology® — это классическая клиент-серверная технология, разработанная для обеспечения удобного и эффективного взаимодействия старых компьютеров с удалёнными хранилищами данных. Она позволяет ретро-системам работать с образами дисков через сеть, как если бы они были физически подключены.

Архитектура системы

Система состоит из двух ключевых компонентов:

  1. Клиент — это сетевой интерфейс, установленный на ретро-компьютере, который эмулирует блочный доступ к файлу-образу диска. Он выполняет роль виртуального накопителя, заменяя традиционные носители информации (дискеты, жесткие диски, магнитные ленты), но при этом позволяет работать с данными в облаке.
  2. Сервер — программное обеспечение MAXIOL Landisk Technology® AZSERVER, разработанное в MAXIOL. Этот сервер управляет файлами-образами дисков, обрабатывает запросы клиентов и обеспечивает надёжную передачу данных.

Механизм работы

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

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

Преимущества использования MAXIOL Landisk Technology®

Отказ от устаревших носителей

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

Простота интеграции

MAXIOL Landisk Technology® совместима с различными моделями ретро-компьютеров, поддерживающими работу с блочными устройствами, что делает её универсальным решением.

Гибкость и масштабируемость

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

Удалённый доступ

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

Надёжность и сохранность данных

Использование облачного хранилища минимизирует риск потери данных, а встроенные механизмы проверки целостности обеспечивают их корректное хранение и передачу.

Поддержка ретро-экосистемы

MAXIOL Landisk Technology® помогает сохранять цифровое наследие, предоставляя удобный и современный способ работы с устаревшими вычислительными системами.

Перспективы развития

В будущем планируется расширение возможностей технологии, включая:

  • Поддержку новых протоколов связи для улучшенной совместимости с различными ретро-компьютерами.
  • Развитие системы авторизации и управления доступом, чтобы обеспечить безопасное совместное использование облачного хранилища.
  • Оптимизацию работы в низкоскоростных сетях, что позволит использовать сервис даже на устаревших интернет-подключениях.
  • Интеграция с поисковой системой Архива MAXIOL.

Таким образом, MAXIOL Landisk Technology® открывает перед владельцами ретро-компьютеров новую эру облачного взаимодействия, делая их работу с данными более удобной, надёжной и безопасной.

DNS имя и TCP порт для подключения к MAXIOL Landisk Technology®

  1. DNS имя: landisk.maxiol.com
    Это доменное имя указывает на сервер MAXIOL Landisk Technology®, позволяя клиентским устройствам автоматически подключаться к серверу без ввода IP-адреса. Оно облегчает доступ к облачному хранилищу для ретро-компьютеров.
  2. TCP Порт: 34162
    Порт 34162 используется для безопасной и надежной передачи данных между клиентом и сервером через протокол TCP. Он обеспечивает стабильное соединение и исключает конфликты с другими приложениями.

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

Структура запроса

В MAXIOL Landisk Technology® как клиент, так и сервер написаны на языке C, что позволяет эффективно управлять памятью и работать с низкоуровневыми операциями ввода/вывода. Структуры запросов, отправляемых на сервер, имеют строгую формализованную форму, которая обеспечивает правильную передачу данных между клиентом и сервером. Эти структуры определяются с учетом специфики языка C, включая синтаксис описания структур данных и использование указателей.

// структура пакета запроса
typedef __packed struct landisk_request
{  
   unsigned int          num_block;    // номер блока    (32 бита)
   unsigned short int    command;      // команда
   unsigned char         reserved[32]; // зарезервировано
   unsigned char         data[512];    // данные - если они отправляются
   char                  path[386];    // путь до диска
   unsigned short int    crc;          // CRC команды
} landisk_request_t;

при открытии файла блок данных (data[512]) рассматривается как пакет информации следующей структуры

// структура пакета открытия файла, информационные параметры
typedef __packed struct landisk_request_status
{
   unsigned long           timestamp;  // локальное время контроллера (unix-time)
   unsigned long           uptime;     // аптайм в секундах
   unsigned long           ip_addr;    // локальный ip адрес контроллера
   unsigned long           dns_srv1;   // ip адреса DNS-серверов
   unsigned long           dns_srv2;
   unsigned short int      tzone;      // таймзона в минутах    
   unsigned short int      platform;   // номер платформы
   unsigned short int      controller; // тип контроллера
   unsigned short int      version;    // версия прошивки контроллера
   char                    build[32];  // дата билда прошивки контроллера    
   char                    url[64];    // URL производителя контроллера
} landisk_request_status_t;

пакет информации настоятельно рекомендуется заполнять полностью

// platform - номер платформы
1 - PDP-11 - БК 10/11M
2 - PDP-11 - остальные -  ДВК Э60 УКНЦ оригинальные машины итд
3 - MSX

для добавления вашей платформы пишите в комментарии к этой статье.

// controller - тип контроллера
1 - AZБК
2 - AZ - для всех остальных PDP-11 машин
3 - Carnivore2+

для добавления вашего контроллера пишите в комментарии к этой статье.

Команды

// команды
#define LANDISK_CMD_OPEN        1  // в ответ успешность/ошибка, и если успешно - размер диска
#define LANDISK_CMD_READ        2  // чтение блока
#define LANDISK_CMD_WRITE       3  // запись блока
#define LANDISK_CMD_CLOSE       4  // закрытие файла
#define LANDISK_CMD_OPENDIR     5  // открыть оглавление по указанному пути
#define LANDISK_CMD_READDIR     6  // прочитать одну запись оглавления в буфер
#define LANDISK_CMD_SEARCH_REQ  7  // послать запрос поиска
#define LANDISK_CMD_READ_SREQ   8  // прочитать одну запись результата поиска в буфер

Структура ответа

Формат ответа

// структура пакета ответа с данными
typedef __packed struct landisk_answer
{
   unsigned short int  result;    // результат
   unsigned char       data[512]; // принятые данные
   unsigned short int  crc;       // CRC ответа
} landisk_answer_t;

Статус файла

при открытии файла, сервер возвращает статус файла, в блоке данных (data[512])

// структура пакета ответа статуса файла
typedef __packed struct landisk_answer_status
{
   unsigned char         fattr; // File attribute
   unsigned short int    fdate; // Fat date
   unsigned short int    ftime; // Fat time
   unsigned int          fsize; // File size
} landisk_answer_status_t;

Коды результатов выполнения команд

// ответы
#define LANDISK_ANS_OK            0x0000 // команда выполнена успешно
#define LANDISK_ANS_ERROR         0x0001 // флаг ошибки, устанавливается при любой ошибке
#define LANDISK_ANS_ACCESS_DENIED 0x0002 // нет доступа, устанавливается при любой ошибке доступа
#define LANDISK_ANS_NEED_REG      0x0004 // нет доступа - нужна регистрация
#define LANDISK_ANS_RO_ONLY       0x0008 // нет доступа на запись- данный диск только для чтения
#define LANDISK_ANS_NOT_EXISTS    0x0010 // нет данного образа - неверный путь до файла образа или директории

Стратегия работы

1. первая команда должна быть открытие файла (LANDISK_CMD_OPEN)
при запросе на открытие надо указать блок параметров (landisk_reqest_status_t)
в ответ будет прислан блок landisk_answer_t но data[512] надо рассматривать как landisk_answer_status_t
2. далее можно посылать команды чтения
3. на данный момент [февраль 2025] поддержаны команды LANDISK_CMD_OPEN, LANDISK_CMD_READ, LANDISK_CMD_WRITE, LANDISK_CMD_CLOSE
4. В конце работы желательно (но не обязательно) послать команды закрытия дисков.

Ограничения

1. не более 100 запросов в секунду с одного IP (иначе сработает блок анти-DDOS и забанит данный IP на некоторое время)
2. не более 10ти "висящих" соединений на IP.

Исходные коды

Код подсчета CRC

1740422838699-683.cpp