Things to do before GUI

Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
Post Reply
BPearl
Posts: 5
Joined: Fri Aug 01, 2008 11:37 pm

Things to do before GUI

Post by BPearl »

Hellow everybody,

I have developed the following parts for my OS:
1. Bootloader
2. A second stage bootloader
3. Installed a FAT12 filesystem (Only reading files)
4. Enabled A20 & protected mode
5. Installed IDT,GDT & IRQ
6. Programmed PIT and PIC
7. A Kernel in C
8. Installed a Keyboard Driver

My question is that what else should i need to be developed before coding a GUI?
djmauretto
Member
Member
Posts: 116
Joined: Wed Oct 22, 2008 2:21 am
Location: Roma,Italy

Re: Things to do before GUI

Post by djmauretto »

My question is that what else should i need to be developed before coding a GUI?
Video Driver :wink:
captainwiggles
Posts: 23
Joined: Tue Nov 11, 2008 3:03 pm

Re: Things to do before GUI

Post by captainwiggles »

physical + virtual memory manager
mult tasking
mult threads
user space api
IPC

Theres prob more too, but i can't think of them just now, basically a gui is probably one of the last things you want to do.
User avatar
neon
Member
Member
Posts: 1567
Joined: Sun Feb 18, 2007 7:28 pm
Contact:

Re: Things to do before GUI

Post by neon »

My question is that what else should i need to be developed before coding a GUI?
Depends on your design. You can technically just have a video driver and interface with VESA or VGA. If you want a modular system, you can go as far as:

-video drivers
-graphics drivers
-graphics APIs
-GUI shells

All of these may require additional topics:

-memory managers (physical and/or virtual)
-disk drivers/filesystem drivers (if the above are separate programs)
-etc...
OS Development Series | Wiki | os | ncc
char c[2]={"\x90\xC3"};int main(){void(*f)()=(void(__cdecl*)(void))(void*)&c;f();}
JJeronimo
Member
Member
Posts: 202
Joined: Wed Oct 18, 2006 3:29 pm

Re: Things to do before GUI

Post by JJeronimo »

captainwiggles wrote:mult tasking
mult threads
user space api
IPC
Why?
- DOS has GUIs and doesn't support multi-tasking.
- Unix did not have multi-threading when X was invented.
- The API can be in kernel space. Why not?
- The MenuetOS GUI doesn't use IPC.

JJ
User avatar
piranha
Member
Member
Posts: 1391
Joined: Thu Dec 21, 2006 7:42 pm
Location: Unknown. Momentum is pretty certain, however.
Contact:

Re: Things to do before GUI

Post by piranha »

The above things can make it easier to develop the GUI if used correctly.

-JL
SeaOS: Adding VT-x, networking, and ARM support
dbittman on IRC, @danielbittman on twitter
https://dbittman.github.io
JJeronimo
Member
Member
Posts: 202
Joined: Wed Oct 18, 2006 3:29 pm

Re: Things to do before GUI

Post by JJeronimo »

piranha wrote:The above things can make it easier to develop the GUI if used correctly.
I can agree that having an user space GUI API implemented can help developing the GUI. But that's not true for the rest.
In fact, I thing using IPC for a GUI complicates it. And the same is true for multi-threading.

Ok. If you want a GUI, you certainly want some form of multitasking. But again, it doesn't help developing the GUI.

JJ
User avatar
Steve the Pirate
Member
Member
Posts: 152
Joined: Fri Dec 15, 2006 7:01 am
Location: Brisbane, Australia
Contact:

Re: Things to do before GUI

Post by Steve the Pirate »

Well, the thing that you definitely need is a physical and virtual memory manager. It would probably be a very good idea to have some kind of multitasking also, and to be able to run executables...
My Site | My Blog
Symmetry - My operating system.
User avatar
AndrewAPrice
Member
Member
Posts: 2306
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Re: Things to do before GUI

Post by AndrewAPrice »

BPearl wrote:Hellow everybody,

I have developed the following parts for my OS:
1. Bootloader
2. A second stage bootloader
3. Installed a FAT12 filesystem (Only reading files)
4. Enabled A20 & protected mode
5. Installed IDT,GDT & IRQ
6. Programmed PIT and PIC
7. A Kernel in C
8. Installed a Keyboard Driver

My question is that what else should i need to be developed before coding a GUI?
Now you have to decide between micro/macro-kernel, how you will do your memory management, get processes/threads in and multitask, it's all up to you!
My OS is Perception.
Post Reply