Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Purpose of VBE.{c,h} in NRE Console Services? #64

Open
lonnietc opened this issue Feb 22, 2022 · 2 comments
Open

Purpose of VBE.{c,h} in NRE Console Services? #64

lonnietc opened this issue Feb 22, 2022 · 2 comments

Comments

@lonnietc
Copy link

lonnietc commented Feb 22, 2022

Hi All,

I am working m way through the NRE code and am trying to detach the libseoul libraries from the framework since I have found that it is namely used for the construction of the runtime vancouver VMM which I will not be using but have also just found out that it is connected to the services/console/VBE.{h.c} file and as far as I can tell that is the only other place.

Also, let me clarify. I know what the VBE is (VESA Bios Extension) but am seeking a way to remove its dependency on libseoul

What is the purpose of the VBE code in relation to libseoul?

Any suggestions on how to remove that dependency would be greatly appreciated.

@Nils-TUD
Copy link
Member

Hi Lonnie,

yes, libseoul is also used by the console service. The VBE code needs it to execute BIOS code. This in turn is required to figure out the available video modes, switch between modes, etc.. There are other ways to execute the BIOS code like x86emu, but since NRE has libseoul anyway, NRE of course uses it for that purpose as well.

@lonnietc
Copy link
Author

Hi Nils,

Thanks for the clarification. I bring this up because what I want to do is to remove all of the libseoul dependency as I will not be using that library and VMM.

Instead, I will be trying to port over the FreeBSD Bhyve which seems to support 32-bit and 64-bit Guests as well as has an approximate 500 Kb footprint which is significantly smaller than QEMU and VirtualBox. In those areas, Genode already has a port of VirtualBox with their framework that can run a NOVA kernel, but I find the code-base to be very complex and confusing to work with in that they tend to "patch" everything and their licensing is not viable for what I want as well. They have done some nice work though.

Of course, there is also TinyEMU (Fabrice Bellard developer of QEMU) which supports 32-bit, 64-bit, and even 128-bit registers (partially) RISC-V64 but not x86_64 guests yet.

https://bellard.org/tinyemu/
and
DEMO: https://bellard.org/jslinux/ (They also run in a browser)

and the goal is to have a fast and small VMM (x86_32 & x86_64 guest support) so I want to remove the libseoul dependencies.

Also, I have been working on a NRE port of the Newlib libc libraries that will allow me to bring in the Iwip network stack as well.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants