alberinfo wrote:no, grub do not setup a vm8086. i mean that due the Protected mode that grub sets, i included a VM8086. well, then i have make first memory management, a shell,a chrash and error handler(?), and start with graphics later?
Have to? Well, some of it, yes - certainly a GDT, a rump set of interrupt and exception handlers (that is, at least something that catches the basic physical interrupts such as the clock, and basic exceptions such as divide by zero, even if it doesn't do anything with them), and an IDT for vectoring the interrupts to them. You definitely will need at least that much first, as the VM8086 will need those to run, if nothing else.
All of it? Maybe not, technically, but trying to jump straight to the GUI from there is likely to be harder than getting a more complete system set up first. Process scheduling, a minimal driver for the keyboard, enough of a text print out setup that you can test those functions, all that would make sense as a scaffolding to make sure that the parts that the GUI itself will rely on are working before moving on to the graphics drivers.
I would strongly recommend that you have a basic scheduler and process launcher (something equivalent to the Unix
fork()/
exec() pair or the Windows
spawn() functions, even if you don't expose it to the user-space applications), so you can have at least one process - the VM8086 one, presumably - running in user space. If you are planning a purely monotasking system, this isn't really necessary; but even in a system with only a single user process, it is useful to be able to have separate
system processes which can do basic background stuff.
A HDD driver and file system would make sense as well, at least enough of one that the boot loader won't have to load
everything into memory at once. If you choose to use virtual memory - which would be very useful in dealing with a VM8086 driver that only needs to run infrequently, as well as for a number of other reasons - you will need disk access and possibly file services, again. Fortunately, the disk interface
is something that can readily be done in protected mode without needing any Legacy BIOS operations - no VM8086 needed there at all.
As for anything else, and
which to do first, that's going depend on your OS design plans. If you do want to aim directly at the GUI as fast as you can, I would suggest first trying to think of all the things that you would need to have running first before you can do that. Read through the different parts of the wiki and browse older posts a bit, and when you think you have a decent list of things your GUI would depend on, post it here and we'll see if we can spot anything you missed or make any further recommendations.