Page 1 of 2

Standardized GUI API for OSDev projects.

Posted: Tue Feb 13, 2007 10:51 am
by Brynet-Inc
Recently I was wondering about the possibilities of a standardized GUI API for hobby OS's.

This is a Rambling section, So I'm going to ramble quite considerably.

In my opinion it would be kinda neat, Designing an open standard that can be implemented by anyone freely.. Members of the OSDev community could suggest ideas or changes to the standard. (Or anyone really..)

It also won't be required that the OS use this API exclusively, They could offer it as a compatibility layer. Maybe the standard could also be split up into levels. OS developers could wish to only implement a basic subset of the API and could be permitted to display a special badge stating something simple like (OSDevGUI basic level compliance) on their website.

Would anyone be interested in this? This would allow people to write GUI applications and having them work on a wide range of hobby Operating Systems (At API level.. not binary)?

I'd like to hear peoples ideas, Or if my idea is even truly feasible.

Would anyone also be willing to write up and maintain the specification? Or should it be on some public version control system?

Posted: Tue Feb 13, 2007 12:49 pm
by Combuster
What i can foresee is the problem of opinion: What features, programming style, UI style, design philosophy do you intend to have?

Since not everybody has the same roots regarding these matters, it becomes difficult to create an unified standard.

As such, my support depends on the specification itself. (you should add an 'Maybe' option to the poll)

Posted: Tue Feb 13, 2007 1:03 pm
by Brynet-Inc
Combuster wrote:What i can foresee is the problem of opinion: What features, programming style, UI style, design philosophy do you intend to have?
Well, Programming style is kind of irrelivant I guess, People will likely have to write their own implementation. UI style would be likely dependant on the OS's Windowing Manager?.. design philosophy? I was just brain storming, I myself couldn't pull this off but It's good to read peoples opinions.
Combuster wrote:Since not everybody has the same roots regarding these matters, it becomes difficult to create an unified standard.
Well I see your point, I guess it's going to be tough.. Could put things on a vote? No idea.
Combuster wrote:As such, my support depends on the specification itself. (you should add an 'Maybe' option to the poll)
Yes I should of added a Maybe option :?
Sadly I don't seem to be able to change the Poll settings anymore.

Posted: Tue Feb 13, 2007 1:34 pm
by os64dev
yes another standard and even optionally as another layer and so we build layer upon layer upon layer upon layer and everybody wonders about poor performance.

for myself i wouldn't be interested yet because i develop my os just for learning purposes not for future use. also i think that the gui should be completely left out of the os/kernel space and should just be an application running on the os develloped by a 3rd party.

Re: Standardized GUI API for OSDev projects.

Posted: Tue Feb 13, 2007 3:35 pm
by Alboin
I don't really see a point in this. Isn't this already called GTK, QT, and wxWidgets? They're simply a standardized layer on top the native GUI API.

On the other hand, if someone were willing to create a binary compatible GTK clone for hobby OS's........ :D

Posted: Wed Feb 14, 2007 5:28 am
by Cheery
For such thing to succeed, it should assume nothing because hobby OSses are largely different (And they will be, since we are researchers or students mostly, not companies!), so, what use from such standard we would have?

Posted: Wed Feb 14, 2007 6:36 pm
by Crazed123
I'm the one putting forward a driver-interfacing standard, but I think this is too much.

The thing is, GUIs are pretty far up Mount Abstraction. By the time you get there, you've already got all or most of an operating system underneath you. That means piles and piles of code written using the ideas of the hobby system's author. And chances are, he has vastly different ideas about how to run a GUI from you.

I used to code a bit on the frontier between the Windows GDI and DirectDraw. Now I run Fluxbox on X on Linux. Let me tell you, even things that look mostly the same to the user can have vastly different ideas embodied in their code.

Put shortly: Every Turing-complete language can express the same programs. That doesn't mean you should standardize common programs.

Posted: Wed Feb 14, 2007 11:06 pm
by Brendan
Hi,
Crazed123 wrote:The thing is, GUIs are pretty far up Mount Abstraction. By the time you get there, you've already got all or most of an operating system underneath you. That means piles and piles of code written using the ideas of the hobby system's author. And chances are, he has vastly different ideas about how to run a GUI from you.
In this case I'm not so sure - the "GUI interface" is so far up Mount Abstraction that the interface itself could be implemented as an end-user library (with no need to modify the OS's code at all), like SDL, GTK, Ogre3D, etc.

To me the question is, do we need yet another GUI interface library? I'd be more tempted to adopt an existing library's interface (and use it for "legacy" applications)... ;)


Cheers,

Brendan

Posted: Thu Feb 15, 2007 3:20 am
by AJ
Sorry - a 'no' vote here for the following reasons:
  • * I am writing my hobby OS out of interest as a learning excercise and want to do the GUI myself.
    * I don't want to have to implement someone else's standard - there are already too many standards to implement when writing an x86 OS.
Don't get me wrong - when it comes to a standard library or some hardware interfaces, I think standards are a Good Thing but not when it comes to something as personal as a GUI :)

One thing though - I am rubbish at artwork. Now, having a large, royalty free library of decent GUI-type artwork would be a fantastic idea!

Cheers,
Adam

Posted: Thu Feb 15, 2007 5:21 am
by Cheery
AJ wrote:One thing though - I am rubbish at artwork. Now, having a large, royalty free library of decent GUI-type artwork would be a fantastic idea!
That's the thing I'd prefer! :)

So, nice variation of buttons, some cool vector graphics icons, frame decorations, background decorations...

Of course these should then also be in png -format with alpha channel and grouped by style.

Posted: Thu Feb 15, 2007 6:49 am
by Brynet-Inc
Right, This was a shot in the dark..

From the poll it seems clear that such a standard would not be worth pursuing.

Thanks for the comments in any sense.

AJ, I'm no fan of flashy art/graphics either.. My idea of a perfect GUI/Windowing manager is OpenBSD's default FVWM or Blackbox :lol:

Feel free to lock/close this thread mods, The poll seems unified :wink:

Posted: Thu Feb 15, 2007 7:26 am
by Cheery
Brynet-Inc wrote:AJ, I'm no fan of flashy art/graphics either.. My idea of a perfect GUI/Windowing manager is OpenBSD's default FVWM or Blackbox :lol:
Good UI graphics aren't flashy. Flashy is just the fuckup of current 'trends' made by idiots knowing nothing about usability. Modern flashy interfaces represent the deteriorated economy at the worst: cold, strict, annoying, functional, noisy. (Hey! That actually sounds like Microsoft. :lol: ) Outlined: Outrageous!

Good UI graphics are calm, warm, quiet, asymmetric, lazy, harmonic. Quite lot like Japanese art. Such things do not attack your eyes or confuse. They are there, out of your way. They are just derocation, not always serving some purpose.

Posted: Thu Feb 15, 2007 12:39 pm
by Crazed123
Actually, wouldn't you want GUI art to be functional? Giving a floppy disk the icon of a palm tree doesn't tell the user much.

Posted: Fri Feb 23, 2007 10:32 am
by oscoder
The obvious errors I see here are:
1) The majority of hobby OSes I see are no where NEAR making a gui api.
2) There are, I think, already GUI standards - what is it about hobby OSes that requires a seperate standard?
3) What's the point in standardising a GUI interface when there are numerous other things that mean programs don't tun cross-OS. If we want applications (espesially graphical applications) to run on multiple operating systems, a much greater degree of lower-level standardisation would be needed first - if one wanted to do this a GUI API would not be a primary priority!

Posted: Fri Feb 23, 2007 5:24 pm
by pcmattman
I reckon it would work, if it was made customizable enough... You'd just have to make sure that it would work on someone's OS where they only have the basics set up (ie. just got out of GRUB) and then you'd be able to assume that it would work.

The only stumbling block would be designer's choice... I still think it might be good to put some standardized GUI API code somewhere so the few of us who have no idea what to do don't get too confused...