Сообщение Re[3]: Поработать напрямую с железом на C# от 11.01.2022 12:57
Изменено 11.01.2022 12:58 vsb
Re[3]: Поработать напрямую с железом на C#
Здравствуйте, Sharov, Вы писали:
vsb>>Т.е. всё, что тебе надо для работы напрямую с железом из C# это иметь доступ к произвольным адресам оперативной памяти. Ну и, конечно, возможность запустить виртуальную машину без операционной системы и запустить свой код. Думаю, что и то и другое вполне достижимо. Понятно, что при загрузке какая-то часть будет написана на C/Assembler, но потом контроль передадут тебе и уже ты будешь за всё отвечать.
S>Что значит запустить вирт. машину без ОС?
Ну то и значит.
S>Кому bios (uefi) передаст управление?
Загрузчику какому-нибудь. Загрузчик найдёт диски, подмонтирует файловые системы, найдёт все нужные для запуска файлы и передаст управление уже непосредственно виртуальной машине, которая загрузит нужные DLL-ки и запустит выполнение.
vsb>>Т.е. всё, что тебе надо для работы напрямую с железом из C# это иметь доступ к произвольным адресам оперативной памяти. Ну и, конечно, возможность запустить виртуальную машину без операционной системы и запустить свой код. Думаю, что и то и другое вполне достижимо. Понятно, что при загрузке какая-то часть будет написана на C/Assembler, но потом контроль передадут тебе и уже ты будешь за всё отвечать.
S>Что значит запустить вирт. машину без ОС?
Ну то и значит.
S>Кому bios (uefi) передаст управление?
Загрузчику какому-нибудь. Загрузчик найдёт диски, подмонтирует файловые системы, найдёт все нужные для запуска файлы и передаст управление уже непосредственно виртуальной машине, которая загрузит нужные DLL-ки и запустит выполнение.
Re[3]: Поработать напрямую с железом на C#
Здравствуйте, Sharov, Вы писали:
vsb>>Т.е. всё, что тебе надо для работы напрямую с железом из C# это иметь доступ к произвольным адресам оперативной памяти. Ну и, конечно, возможность запустить виртуальную машину без операционной системы и запустить свой код. Думаю, что и то и другое вполне достижимо. Понятно, что при загрузке какая-то часть будет написана на C/Assembler, но потом контроль передадут тебе и уже ты будешь за всё отвечать.
S>Что значит запустить вирт. машину без ОС?
Ну то и значит.
S>Кому bios (uefi) передаст управление?
Загрузчику какому-нибудь. Загрузчик найдёт диски, подмонтирует файловые системы, найдёт все нужные для запуска файлы и передаст управление уже непосредственно виртуальной машине, которая загрузит нужные DLL-ки и запустит выполнение.
Кстати Microsoft писали уже ОС на C#: Singularity. Можно посмотреть, как там сделано.
vsb>>Т.е. всё, что тебе надо для работы напрямую с железом из C# это иметь доступ к произвольным адресам оперативной памяти. Ну и, конечно, возможность запустить виртуальную машину без операционной системы и запустить свой код. Думаю, что и то и другое вполне достижимо. Понятно, что при загрузке какая-то часть будет написана на C/Assembler, но потом контроль передадут тебе и уже ты будешь за всё отвечать.
S>Что значит запустить вирт. машину без ОС?
Ну то и значит.
S>Кому bios (uefi) передаст управление?
Загрузчику какому-нибудь. Загрузчик найдёт диски, подмонтирует файловые системы, найдёт все нужные для запуска файлы и передаст управление уже непосредственно виртуальной машине, которая загрузит нужные DLL-ки и запустит выполнение.
Кстати Microsoft писали уже ОС на C#: Singularity. Можно посмотреть, как там сделано.