Пытаюсь реализовать следующую идею: запуск OpenOS на устройстве без локального жесткого диска.
Сделать это хочу так(псевдокод):
Программа на EEPROM, клиент
[
Связывается по связанной плате с другим компом, у которого есть жесткий диск
Просит адрес компонента filesystem сообщением "component.primary"
При помощи vcomponent добавляет виртуальный компонент filesystem, который является отражением удаленного hdd
Каждое обращение к функциям этого компонента отправляет сообщения "component.invoke" по сети и ждет ответа
Дальше обычный lua_bios
]
Программа на сервере для обычной OpenOS
[
Ждем сообщений
Реагируем соответствующим образом
component.primary=>send(адрес компонента)
component.invoke=>send(результат вызова функции компонента)
]
Также стоит отметить, что при работе с filesystem header файла является userdata, его нельзя сериализовать(насколько я понял), поэтому вместо передачи его по сети передается объект, который можно однозначно сопоставить хедеру на сервере: таблица вида {special = <id>}
Сделал, но в результате OpenOS не грузится дальше загрузочного экрана, консоль не появляется.
Пытаюсь реализовать следующую идею: запуск OpenOS на устройстве без локального жесткого диска.
Сделать это хочу так(псевдокод):
Программа на EEPROM, клиент [ Связывается по связанной плате с другим компом, у которого есть жесткий диск Просит адрес компонента filesystem сообщением "component.primary" При помощи vcomponent добавляет виртуальный компонент filesystem, который является отражением удаленного hdd Каждое обращение к функциям этого компонента отправляет сообщения "component.invoke" по сети и ждет ответа Дальше обычный lua_bios ] Программа на сервере для обычной OpenOS [ Ждем сообщений Реагируем соответствующим образом component.primary=>send(адрес компонента) component.invoke=>send(результат вызова функции компонента) ]
Также стоит отметить, что при работе с filesystem header файла является userdata, его нельзя сериализовать(насколько я понял), поэтому вместо передачи его по сети передается объект, который можно однозначно сопоставить хедеру на сервере: таблица вида {special = <id>}
Сделал, но в результате OpenOS не грузится дальше загрузочного экрана, консоль не появляется.
Подскажите, где я ошибся?
Исходники:
Client
Server
Тестировал при помощи bibi
Изменено пользователем hohsergПоделиться сообщением
Ссылка на сообщение
Поделиться на других сайтах