Making a 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.
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

Tyler wrote:A DOS Clone is not an operating system by todays standards though.
I'm not quite sure it was an operating system back then either. Original PC-DOS 1.0 was released 1981 (says wikipedia). Unix was started 1970. It wasn't the first operating system.

1983 DOS got subdirectories, same year W Window System was ported to Unix. A year later X Windows System replaced it.

That's basicly to say that when DOS got subdirectories, Unix could run (somewhat crude, admit) graphical environment for several users over network.

Ofcourse the really fun part is that "pipes" are probably the only really "new" concept in Unix. For the most part it was just simplification of previous operating system designs. :)

---

As for the word "n00b", I've seen people use it and not know of it being leet-spelling for "newbie." That's pretty good indicator how it's getting lame to even use the word. We need a new one. :)
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

MessiahAndrw wrote:DOS is a bootloader with a shell. :)
I actually considered it very similarily earlier... except i saw it more as a shell to the BIOS... as it relies on it for hardware interaction.
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

Post by bubach »

DOS takes user commands, has FS support and can load user programs. I think that qualifys as an OS.
User avatar
mystran
Member
Member
Posts: 670
Joined: Thu Mar 08, 2007 11:08 am

Post by mystran »

bubach wrote:DOS takes user commands, has FS support and can load user programs. I think that qualifys as an OS.
GRUB takes user commands, has FS support, and can load user programs (kernels at least). I think that qualifies as an OS. :)
The real problem with goto is not with the control transfer, but with environments. Properly tail-recursive closures get both right.
User avatar
AJ
Member
Member
Posts: 2646
Joined: Sun Oct 22, 2006 7:01 am
Location: Devon, UK
Contact:

Post by AJ »

mystran wrote:
bubach wrote:DOS takes user commands, has FS support and can load user programs. I think that qualifys as an OS.
GRUB takes user commands, has FS support, and can load user programs (kernels at least). I think that qualifies as an OS. :)
I agree - although designed primarily as a boot loader and has 'Bootloader' in its name, I think GRUB does qualify as an OS. Agreed, it doesn't have all the functions you would need to use it as your devving OS of choice :D .

This is just the same as the way your basic first keyboard handler which probably just consists of an ISR, a character buffer and a lookup table counts as a 'driver' - you may not want to actually infilict it on your users as a final version though...

Adam
User avatar
bubach
Member
Member
Posts: 1223
Joined: Sat Oct 23, 2004 11:00 pm
Location: Sweden
Contact:

Post by bubach »

GRUB doesn't provide services (interrupts) for user programs, thats basicly whats missing before I'd call it an OS. ;)
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

You all might as well be studying chemistry that claims the world is split into four elements... It has been a long time since OS meant a Kernel Interupts and the ability to load programs... no wonder this place is full of Hobby Development.
User avatar
Alboin
Member
Member
Posts: 1466
Joined: Thu Jan 04, 2007 3:29 pm
Location: Noricum and Pannonia

Post by Alboin »

Tyler wrote:You all might as well be studying chemistry that claims the world is split into four elements... It has been a long time since OS meant a Kernel Interupts and the ability to load programs... no wonder this place is full of Hobby Development.
Agreed. Isn't an OS anything that performs a job on a piece of hardware? Take a microwave, for example. A microwave has an OS. It controls the front display, has interrupts, and controls how it heats things. Another example would be a calculator.

I think an OS is anything that fully controls the hardware it runs on, doing a specific job.
C8H10N4O2 | #446691 | Trust the nodes.
Tyler
Member
Member
Posts: 514
Joined: Tue Nov 07, 2006 7:37 am
Location: York, England

Post by Tyler »

Alboin wrote:
Tyler wrote:You all might as well be studying chemistry that claims the world is split into four elements... It has been a long time since OS meant a Kernel Interupts and the ability to load programs... no wonder this place is full of Hobby Development.
Agreed. Isn't an OS anything that performs a job on a piece of hardware? Take a microwave, for example. A microwave has an OS. It controls the front display, has interrupts, and controls how it heats things. Another example would be a calculator.

I think an OS is anything that fully controls the hardware it runs on, doing a specific job.
Yes and for those applications they are Operating Systems... though i actually wouldn't use that term given there is no need to make the distinction. Firmware should do the job of describing there permement systems. I make my comments as a developer in an OS development forum for Desktop OS' (specifically x86) though.
com1
Member
Member
Posts: 105
Joined: Sat Apr 28, 2007 11:57 am
Location: TN

Linked List

Post by com1 »

You could try using linked lists. The parent* could be a main window, and then you could do some child* functions to have the windows replaced with another bitmap, thats how my window manager is coded in SHANOS
:D
oh microsoft, microsoft, what souls you have dismayed
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

Post by Speewave »

Alboin wrote:
Brynet-Inc wrote:OS Development is not easy
Actually, it is. Doing it well is the difficult part.

As for a GUI. It's very difficult to create a GUI without a working file system, disk access, mouse drivers, etc. Which is why you're going to need those first. I would suggest you to work on memory management, however, before any of that. After that, try scheduling. Following that work your way to floppy drivers, then hard drivers, etc.

Good Luck!

PS: You will need the Intel\AMD manuals. :wink:
its easy to make an unfuctional and crappy OS! a good OS and GUI Takes time. if you decide to make your own and not use one like KDE or GNOME.

and if you think about it. The GUI Does not do a lot memory and driver wise:

the GUI however can be set to cooperate like if a device is inserted the kernal contacts the GUI and the GUI or some process installs that driver in to memory and intergreats the device with this device in that specific slot.

say you inserted a USB Flash Disk on USB Port 1 on your PC. but the next day you move it to another port and it fixes it self out

you will need a:
C++ Compiler (GCC is good)
API For HIDs (Mice Keyboards)
some library that uses bitmaps and TTFs
as well as a Display library to change Resolutions.
i recommend SDL. It can be used for everything (Games,Apps, GUIs)


you can also base your code off of X11

as far as Drivers go.. that can be automated at boot
you also need like a reaction thing like:

if the item is clicked twice then:
Load Application
If item is clicked then
check if its moving
change item mask to highlited
or else
do nothing
Speewave
Member
Member
Posts: 40
Joined: Fri Jun 22, 2007 1:11 pm
Location: The USA
Contact:

Post by Speewave »

Tyler wrote:
MessiahAndrw wrote:DOS is a bootloader with a shell. :)
well yes and no. a boot loader can't access things like AudioCards or tsrs\drivers. i was'nt around back in 1981 so they could have used it for a bootdisk. Games for DOS might have used it so when the disk went in and you turned the pc on. the game loaded off the bat (only slower) somewhat like a Game Console.
pcmattman
Member
Member
Posts: 2566
Joined: Sun Jan 14, 2007 9:15 pm
Libera.chat IRC: miselin
Location: Sydney, Australia (I come from a land down under!)
Contact:

Post by pcmattman »

Speewave wrote:
Tyler wrote:
MessiahAndrw wrote:DOS is a bootloader with a shell. :)
well yes and no. a boot loader can't access things like AudioCards or tsrs\drivers. i was'nt around back in 1981 so they could have used it for a bootdisk. Games for DOS might have used it so when the disk went in and you turned the pc on. the game loaded off the bat (only slower) somewhat like a Game Console.
DOS couldn't access audio cards either, until you installed the drivers and put into the autoexec.bat to run their initialization on startup. Ever tried to boot DOS without any drivers on hand? It's useless, nothing is usable. Trust me, I've tried.
Aali
Member
Member
Posts: 58
Joined: Sat Apr 14, 2007 12:13 pm

Post by Aali »

bullshit, DOS is not a bootloader, not even close

for the one simple reason that its main purpose is not to load an operating system
User avatar
AndrewAPrice
Member
Member
Posts: 2309
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Post by AndrewAPrice »

Aali wrote:bullshit, DOS is not a bootloader, not even close

for the one simple reason that its main purpose is not to load an operating system
Most of the larger DOS programs (for desktop publishing and games) usually took over direct hardware access, and in a way were special-purpose operating systems.
My OS is Perception.
Post Reply