Page 1 of 3

Writing your OS so it is used by others

Posted: Thu May 26, 2016 4:06 am
by glauxosdever
Hi,


Recently, I came through a post, stating that almost all home-brew OSes are going to be ran only by their authors.
And hell no, i think that making driver for every single graphics card isn't normal for homemade OS. There is over 10000 different graphics cards!
But how many different computers is your OS going to run on? For almost all home-brew OSs the answer is 1.
I don't think it's entirely true, but it also depends on code quality and usability. If you write your OS only for yourself, you don't really care about code quality and usability, and it will be used by only yourself. On the other side, if you write your OS to be used by others, you want to make it as good as possible, and it may be used by others too.


Regards,
glauxosdever

Re: Writing your OS so it is used by others

Posted: Thu May 26, 2016 4:50 am
by iansjack
How many people use your OS? 10000s?

Re: Writing your OS so it is used by others

Posted: Thu May 26, 2016 5:03 am
by glauxosdever
Hi,


I was not talking about specifically myself. For example, Sortix is very close to be used on other computers. RDOS has real-world installations. FreeDOS was even preinstalled by default on some computers. And Linux is used by 2% of desktops and 30% of servers. All of these OSes started as hobby OSes, right?

You just have to be ambitious enough.


Regards,
glauxosdever

Re: Writing your OS so it is used by others

Posted: Thu May 26, 2016 5:11 am
by alexfru
Without an ecosystem and with a dubious security story a hobby OS is practically worthless for anything other than learning. Except, perhaps, a dedicated (embedded?) OS that can do just a few things and do them better than a general purpose one.

If you care about your OS code being used, you should probably contribute to existing OSes like Linux and BSD and make them better.

Re: Writing your OS so it is used by others

Posted: Thu May 26, 2016 6:41 am
by SWGDev
The author himself + maybe 2-3 of his friends. Most people don't want to have a headache because of support problems, so they choose Windows or MacOS, or some popular free-to-use Linux-based OS. I'm afraid that in most cases OS development can only be a hobby.
If you want your OS to become popular, it takes much more than just developing - marketing, promotion, financial issues and so on. :(

Re: Writing your OS so it is used by others

Posted: Thu May 26, 2016 8:24 am
by Schol-R-LEA
If the history of software development tells us anything, it is that 'quick and dirty one-off' programs tend to get the most use over the longest lifespans of any programs. Think this might not apply to operating system development? Consider these two facts: UNIX began life as a file system written to support a single game, and NEWDOS (the predecessor to SCP-DOS, and henceforth MS-DOS) came out of one programmer's desire to learn 8086 assembly programming. While both were partially based on existing OSes (Multics and CP/M, respectively) and Thompson was already an experienced system developer with the expertise of his Bells Labs colleagues such as Ritchie and John McIlroy to draw upon, Neither of them were carefully designed, and to this day programmers and users have to struggle with the bad design choices made by their creators decades ago.

It is hard to see what the take-away is, as there are two conflicting lessons involved. On the one hand, you can wag your fingers at their carelessness and say that one should always write code as if it were of life and death importance; on the other hand, one can take their success as a vindication of the 'worse is better' principle, that successful software tends to start out providing only a minimum of function and quality and then leverages that limited usefulness to build itself up over time.

On the gripping hand, it also says a lot about the unpredictable and often irrational nature of success, regardless of the quality or even basic utility of a product - consider things like the Pet Rock, or to stay in the software field, the old RAM Doubler programs - programs which did nothing, were known by almost everyone to be a scam, and still managed to be very successful until the authorities pulled the plug on them.

Mind you, this rather jaundiced view has to be considered in light of my personal experience as a developer: in twenty years in IT, I have never worked on or even heard of a corporate IT project that wasn't a bad idea from the start, the sort of thing where from the outset it was clear to almost all parties involved it would end up harming the company's processes and/or bottom line, even if successfully completed and deployed (and of hundreds of projects I have been involved in, fewer than six ever went into production use). Most professional IT projects should not exist at all, IME, yet no one seems to notice or care - something which in a society so proud of it's supposed business orientation put the lie to the idea that profits have anything to do with the perpetuation of the corporations themselves. I honestly don't know how these firms continue to exist when even their cooked accounting books show losses year after year, official losses that are a fraction of the real ones. I don't get it.

Re: Writing your OS so it is used by others

Posted: Thu May 26, 2016 9:16 am
by iansjack
Neither Linux nor FreeDOS are what I would describe as "homebrew" operating systems, having been developed by sizeable teams. I have no experience of the other two OSs that you mention.

Perhaps you should consider the context of my original comment and the need to write device drivers for 10000 graphics cards.

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 1:38 pm
by glauxosdever
Hi,

iansjack wrote:Neither Linux nor FreeDOS are what I would describe as "homebrew" operating systems, having been developed by sizeable teams. I have no experience of the other two OSs that you mention.
These OSes started as homebrew, just like yours and mine. These OSes also got contributors and features and they are used by many people. Just like yours and/or mine can become.
iansjack wrote:Perhaps you should consider the context of my original comment and the need to write device drivers for 10000 graphics cards.
An open standard that is followed by video card manufacturers is needed, if this is the problem. But, a server OS doesn't need graphics cards. An embedded OS may not need them, if the device has no screen display. For desktop OSes, we can only hope there will be a followed standard for video cards, though.


To Schol-R-LEA, I think you are fairly right. Quick and dirty solutions are used by most people, yes. But proper solutions are used by people that know better. So they are still used, alongside with quick and dirty solutions that got into the market because of clever business moves.

So, if you don't want to do business moves, you do a proper solution.


Regards,
glauxosdever

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 2:05 pm
by onlyonemac
iansjack wrote:Neither Linux nor FreeDOS are what I would describe as "homebrew" operating systems, having been developed by sizeable teams. I have no experience of the other two OSs that you mention.

Perhaps you should consider the context of my original comment and the need to write device drivers for 10000 graphics cards.
If your OS becomes popular enough then you won't need to write drivers for 10000 graphics cards; other people will. People who use those graphics cards, or who want to volunteer their time to help out, or perhaps even the people who make those graphics cards (if your OS becomes really popular...).

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 2:13 pm
by SpyderTL
There have been plenty of "good" operating systems that never became mainstream. The OS design, features and support are fairly important, but I think luck is a much larger factor. Take the Oculus Rift, for example. It's not exceedingly different than head tracking multiple distinct eye lens designs from 30 years ago. But because other things have changed since then, it has every chance of being the biggest "must have" gadget for the next 5 years (and will, therefore, spawn numerous "clones" that will compete for market share.)

It's all based on risk/reward... basically gambling. For every hit "must have" product that you see, there were probably 10 or more failed roll outs that came before it. If you can find a common thread that explains why some products succeeded while others failed, then you could apply that knowledge to your own OS design (or any other invention, for that matter). But as far as I can tell, it all just comes down to dumb luck.

I do know that your chances of success are higher if you have less (or no) competition, which may explain MS-DOS, Windows and Linux. And unfortunately, your OS competitors have the resources to implement whatever "new" features you may come up with in a matter of weeks, when it would probably take you years. And, also unfortunately, with Windows 10 being essentially "free" to existing users, you can't even compete on price, any more.

But is all that reason enough not to even try?

Probably... But who cares? :mrgreen:

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 2:19 pm
by Kazinsal
MS-DOS 1.0 filled the void of an OS that wasn't a bad CP/M port or UCSD Pascal for launching the IBM PC with. MS-DOS 2.0 was a complete rewrite. Don't believe me? Both OSes are source-available, go see for yourself.

Windows filled the void of a standard GUI environment for IBM PC compatibles. NT filled the void of a stable protected mode standard GUI operating system for PCs. Linux filled the void of a working free kernel that could run GNU as a userspace. FreeDOS filled the void of a working free DOS replacement for situations where it's just not possible to move to a protected mode operating system.

The important question is not "how do I write an OS that others will use", but "what void does my OS fill".

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 3:29 pm
by iansjack
SpyderTL wrote:But is all that reason enough not to even try?

Probably... But who cares? :mrgreen:
No-one said that you shouldn't try. I just stated a simple truth - most homebrew operating systems will never get beyond that stage and will not run on 10000 different computers with 10000 different graphics cards. And if an OS does achieve that level of success then, as onlyonemac so rightly says, someone else will write the graphics drivers, not the original author. You don't suppose that Linus Torvalds wrote all, or even any, of the graphics drivers used by Linux, do you? (Actually, they are part of X Window rather than the Linux kernel.)

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 4:03 pm
by onlyonemac
Personally I think that hobby OSdev with the intention of becoming popular/mainstream is a waste of time. There are plenty of good OSes out there, and I prefer OSdev as a technical form of experimental programming.

Re: Writing your OS so it is used by others

Posted: Fri May 27, 2016 4:26 pm
by gerryg400
I don't see any reason why an OS written by a single person won't be used by others. Plenty of us are full time software engineers and our software is regularly used by actual people for important purposes. I don't see osdev any differently.

Re: Writing your OS so it is used by others

Posted: Sat May 28, 2016 12:56 am
by glauxosdever
Hi,

Kazinsal wrote:MS-DOS 1.0 filled the void of an OS that wasn't a bad CP/M port or UCSD Pascal for launching the IBM PC with. MS-DOS 2.0 was a complete rewrite. Don't believe me? Both OSes are source-available, go see for yourself.

Windows filled the void of a standard GUI environment for IBM PC compatibles. NT filled the void of a stable protected mode standard GUI operating system for PCs. Linux filled the void of a working free kernel that could run GNU as a userspace. FreeDOS filled the void of a working free DOS replacement for situations where it's just not possible to move to a protected mode operating system.

The important question is not "how do I write an OS that others will use", but "what void does my OS fill".
You make a valid statement and I tend to agree with it, when it comes to mainstream mainstream OSes. But, I was not really talking about being mainstream or anything like that; I was talking about getting others to use the OS for specific purposes, where "others" equals "about 100 people" and "specific purposes" equals "some tasks the OS handles really well, like being used in a secure database, or as a server that shall handle thousands of connections simultaneously".
onlyonemac wrote:Personally I think that hobby OSdev with the intention of becoming popular/mainstream is a waste of time. There are plenty of good OSes out there, and I prefer OSdev as a technical form of experimental programming.
It's not necessarily a waste of time. You will understand business moves, how major companies persuaded their customers to buy their products (not only OSes) and how can this apply to your products (not only OSes). You will also have to provide support if your OS is mainstream. :)

As for the "plenty of good OSes out there" statement, I tend to disagree. No OS is perfect, and no OS I have used as good enough. They just work. I'd go into enumerating what I hate in both Windows and Linux, but this thread is not about this.

And that you prefer OS development as a technical form of experimental programming, well, it's your hobby and you decide how do you handle it. :)


Regards,
glauxosdever