Перейти к содержимому
  • 0
hohserg

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Рекомендуемые сообщения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Загрузка проходит гладко до этого момента, а потом все стопорится

image.png.f7f84f8361e44aa63aeb936e4abe3680.png

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

При помощи отладки выяснил, что последний файл, который был запрошен у сервера full_buffer.lua

image.thumb.png.d3ad9d341292a069df0e3e2291f3acf5.png

 

А еще опытным путем проверил, что выполнение стопорится на event.pull()

image.png.2fe3a44bcc8448eceaa03720835b277e.png

Из-за чего это может быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Он написан для eeprom, поэтому запустить его можно только при помощи bibi

 

 

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если имеются проблемы с запуском - могу скинуть содержимое жестких дисков обоих компов

 

https://yadi.sk/d/21Rn0mYs2sC16A

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

Изменено пользователем hohserg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вы вставили отформатированное содержимое.   Удалить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.


×
×
  • Создать...