What makes an OS attractive for programmers?

Programming, for all ages and all languages.
User avatar
Red Shaya
Posts: 15
Joined: Wed Oct 03, 2007 4:21 pm
Contact:

What makes an OS attractive for programmers?

Post by Red Shaya »

I would be lying if I said I don't have this fantasy of writing an OS that would be the next main stream OS. On the other hand, I'm realistic enough to know it would probably never happen.

I started to think what might make an OS popular and came to those three stages:
  • 1. Users need to find the OS "attractive" for use. i.e. there should be enough programs and utilities to let an average user get all she needs.

    2. Programmers need to find the OS "attractive" for programming. i.e. In order for the OS to have its programs and utilities, programmers should "choose" the OS as a target for their development.

    3. An OS design needs to be appealing enough (and small enough) to attract a small group of OS developers for the project.
So I came to this forum to ask "What would makes an OS attractive enough for you to do your development under it?"

How can an OS designer make the OS more appealing for programmers/users?

Developing for a new OS requires "pioneer" programmers. I know its not for the average programmer. What I'm interested to know is how to attract those "pioneers"?

What do you really HATE about existing OS's (Lindows)? What do you LOVE about them?
And maybe the most important is the gray area. What features could you live without? Which features make you wonder who the **** needs them?
The Bina OS - More of a challenge then an OS
The Eddie OS - OS for kids and for fun loving adults
Bobalandi
Member
Member
Posts: 107
Joined: Mon Dec 03, 2007 7:26 am
Location: Near Boston, MA
Contact:

Post by Bobalandi »

Well, obviously an Os that's appealing to regular users will be appealing to programmers because it's the regular users that they are programming for (usually), but I think that (in my case at least) any OS with a set of compilers and libraries, would be appealing to me, because programming is a hobby for me, and as far as I know, a good number of other programmers.

One of the things I hate about windows is that it doesn't come with free compilers, you have to get them yourself. Otherwise, everything windows has is pretty much useful to me. (Mostly) :D Great Question by the way. :D
NULL
Laksen
Member
Member
Posts: 140
Joined: Fri Nov 09, 2007 3:30 am
Location: Aalborg, Denmark

Post by Laksen »

I'm a windows user only as I don't really like Linux

I like Windows as I've grown familiar with the small quirks and mishaps it has. The API is somewhat straight-forward.
The error handling is rigid and generally not pleasant to work with. General file handling is complicated and I haven't even figured out how unicode is working in windows
Device driver programming is an unreachable topic for me, as I'm an Object Pascal programmer :)
iammisc
Member
Member
Posts: 269
Joined: Thu Nov 09, 2006 6:23 pm

Post by iammisc »

in terms of APIs, I think the best API is one where you don't require 5 calls to do a simple task like the libcurl api which is IMHO, horrible. In libcurl it takes two calls to download a simple page and over 5 calls to do anything meaningful(like submitting a form with a cookie).
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

First thing you need to do is forget about desktop OS's, it just will not happen :cry:
This is the first mistake OS Dev's make, you could not cach up with linux or BSD if you had 200 top programmer working full time for 5 years.
A good dos clone will take a good programmer 5 years working full time.
Its the old chicken and egg.
So what can you do, well you can look for a gap in the market, theres OS in many things, just look around you.

Example: I think there a good opening for a children's OS, just think of all thouse old PC out there, the young child can easy destroy by deleting the wrong thing a normal desktop OS, but if you could download a OS for children that could be booted off a floppy or cd and ran in ram, i could see it caching on.

My OS is designed around the idea that it would be cool to have a OS based off a games console OS, but instead of being closed to homebrew you where free to code game app etc.
To this end the spec of my OS is the same as the old xbox eg:
While the Xbox kernel is based on the NT/Windows 2000 kernel, it's extremely lean. There's no virtual memory paging, and only a single process is allowed (though that process can spawn multiple threads). The entire kernel fits into 150KB--far less than the 1MB original goal.
The development library is polling-based rather than event driven (unlike Windows). This was due directly to feedback from game developers.
The game owns the hardware--it runs in ring 0, and has direct access to all hardware (including CPU and graphics).
Memory allocation is the responsibility of the app--there's no front-end memory allocation.
While the APIs were familiar (Direct3D, DirectSound), the back ends were different, and highly tuned to the Xbox hardware. However, the input API is different from DirectInput on the PC.
So my advice to you if you want people to use it and or programmer to code fot it forget about desktop OS.
User avatar
Red Shaya
Posts: 15
Joined: Wed Oct 03, 2007 4:21 pm
Contact:

Post by Red Shaya »

Thanks everyone for your input.
I found the "OS for kids" idea very appealing both because I never thought of it myself (I love new ideas), and because I'm the proud father of a 1 1/2 years old boy.

Such OS will require a GUI, but not as detailed and delicate as the current 1280 X 1024 pixel desktops.
It will also require some kind of "volatile disk" i.e. something that will "restore" itself with every reboot, but on the other hand, a way to store things on a physical disk (parent mode) or more simply a text (root) mode.

Well, I think it will be about 6 months or so until I have an OS design I can work with ... :-)

But at least I have a direction I can start walk to.

I'll keep you all informed (and probably ask more questions about the application parts of the OS when the need comes).
The Bina OS - More of a challenge then an OS
The Eddie OS - OS for kids and for fun loving adults
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

Congratulations on your son, i am interested how you get on, as there member of my family that could use a OS like that.
I would go for a software OS thats like the Vtech stuff
Here the Vtech manual
http://www.vtechuk.com/_download/SSTECKUE.pdf
User avatar
Red Shaya
Posts: 15
Joined: Wed Oct 03, 2007 4:21 pm
Contact:

Post by Red Shaya »

Very cool.
Now that I have some ideas about the applications that will run on this OS, I could (hopefully) start to design the supporting OS that will run under them.

A note about your family member. As I said my son is 1 1/2 yo. I do hope to have some kind of operational OS with a few nice applications before he is 4 years old :-)
So don't hold your horses. You know how long it takes to develop an OS and considering I have my son that takes up much of my time, it will be a long journey with very small baby step progress. (Unless my OS design would be so cool that it will attract others to help me *hint hint* lol)

But again, thanks for the cool VTeck TV learning computer manual. It sure increased my motivation to sit and start writing the design.
The Bina OS - More of a challenge then an OS
The Eddie OS - OS for kids and for fun loving adults
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

Once your up to the stage that it can run App, i will write a program, maybe a simple paint program or something like that.
I know only too well how long a OS project can take, i been working on mine for 4-5 year's.
User avatar
Red Shaya
Posts: 15
Joined: Wed Oct 03, 2007 4:21 pm
Contact:

Post by Red Shaya »

Wow, it seems the idea of "OS for kids" really gets great responses, even from non OSDev related people.
I already got a friend who is willing to be a beta tester - well, he is willing to assign his four kids as beta testers so that sounds more like a beta testing TEAM :-)

He is also contributing an old PC for my testings.

But now for my question:
I've spent the last few days sketching ideas and designs for the Kids OS (I even named it "Eddie" :-)) And I'm trying to figure out the graphics part.
As a general idea, I understand that the OS itself shouldn't bother much about the graphics and leave it to the user programs. My question is: what kind of support does the OS need to give .. if any?

My idea is to skip text mode and give the user an experience of immediately getting into a graphic interface.

Currently I have a huge mess in my head from trying to understand VESA, VGA, and their relation to real and Pmode.

Can anyone sort things out for me and give me some path I can follow about the stages the OS should go from a stage of getting control from GRUB until some kind of graphic screen could be displayed on the screen. So I can get a better idea about the design I need to make to support graphics?

[I hope that my question sounds less messed up then the current state of my mind :-) ]
The Bina OS - More of a challenge then an OS
The Eddie OS - OS for kids and for fun loving adults
User avatar
Dex
Member
Member
Posts: 1444
Joined: Fri Jan 27, 2006 12:00 am
Contact:

Post by Dex »

I agree with you about not text mode, and i would stick with just vesa.
If you support vesa2 only, along with LFB, once setup you can use vesa just like the old VGA mode 13h.

I would go for a clean look and has well as mouse driven, keyboard driven menu.
I would also go for single tasking (some would disagree) and only save stuff after maybe a password is put in, the whole OS should run in ram.

I have written a vesa demo that may help, it comes with its own bootloader and demo switching between vesa mode and text mode by going to and from realmode to pmode to do the mode switching, it comes with full asm source.

You should see vesa screen for 10 seconds, then text mode for 10 seconds.
See here:
http://www.dex4u.com/demos/DemoVesa.zip
NOTE: I was called ASHLEY4 when i code it.


I think your GUI should be something like mine, but for children.
http://www.dex4u.com/gui.htm

PS: Also design a logo like linux as its penguin, i have a ant.
Attachments
dlogo.png
dlogo.png (31.49 KiB) Viewed 5178 times
User avatar
jerryleecooper
Member
Member
Posts: 233
Joined: Mon Aug 06, 2007 6:32 pm
Location: Canada

Post by jerryleecooper »

An OS I would find interesting developing for would be on I use, I use frequently, I cant live without, I can't develop on without some tools that cost a lot of money.

1. The operating system must be indispenbsable
2. The GUI must be attaching
3. The toolset (compiler etc) must cost a lot of money

Think of the original System Software on the mac(the MPW came free a bit before the platform transitioned from classic to os x)
The Amiga is also another good example but Im not sure of the price of the compiler on this platform

A good platform to develop for is one where you need to prove you want to develop for.
giving qtdeveloper for free is not interresting, the entire qt thing is not interesting imo, I prefer when the "technology" pretend to be difficult to have been "invented"
User avatar
ucosty
Member
Member
Posts: 271
Joined: Tue Aug 08, 2006 7:43 am
Location: Sydney, Australia

Post by ucosty »

Dex wrote:I think your GUI should be something like mine, but for children.
http://www.dex4u.com/gui.htm
A PDA-like grid of icons would be good too.
The cake is a lie | rackbits.com
User avatar
AndrewAPrice
Member
Member
Posts: 2299
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

Post by AndrewAPrice »

ucosty wrote:
Dex wrote:I think your GUI should be something like mine, but for children.
http://www.dex4u.com/gui.htm
A PDA-like grid of icons would be good too.
Symbian for x86?
My OS is Perception.
User avatar
Solar
Member
Member
Posts: 7615
Joined: Thu Nov 16, 2006 12:01 pm
Location: Germany
Contact:

Post by Solar »

jerryleecooper wrote:An OS I would find interesting developing for would be on I use, I use frequently, I cant live without, I can't develop on without some tools that cost a lot of money.

1. The operating system must be indispenbsable
2. The GUI must be attaching
3. The toolset (compiler etc) must cost a lot of money

Think of the original System Software on the mac(the MPW came free a bit before the platform transitioned from classic to os x)
The Amiga is also another good example but Im not sure of the price of the compiler on this platform
Bad example. Free compilers became available for the Amiga pretty early in it's history. (Demo versions of commercial compilers, e.g. the Dice IDE, that were fully functional already and simply lacked some advanced features.)

I agree with the general direction of your argument, though: Keep the crap out of your system. My approach would be different, though, on the system level instead of the cost level: Clear documentation, elegant API, and a Python-over-Perl approach on solutions (Perl: There is more than one way to do it, Python: There should be one -- and preferably only one -- obvious way to do it).

The thing that keeps big projects from happening is that the small things are just so many footholes you can trip up in.
Every good solution is obvious once you've found it.
Post Reply