Philosophical need for a new OS / language

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re: Philosophical need for a new OS / language

Post by Schol-R-LEA »

OK, we need to stop mincing words here:
So, I would like to know, how many of us can find a professional use for their OS in the real world.
None.

That's really all it comes down to. The commercial market is already saturated with operating systems, whether desktop, server, consumer (e.g., for a device such as a phone or tablet), or embedded (e.g., for RT devices such as appliances, aircraft, or industrial equipment), and the open-source market even more so. Unless you can find either a very specific niche for your OS, or develop at least one genuine improvement that is absolutely critical to some business or set of users, the chances of a hobbyist OS - or, for that matter, a new distro of an existing one - gaining any commercial traction is essentially zero. The best we can hope to do is apply what we learn in our hobby to some other OS which is already established.

While I would not say that creating a better OS that would have market appeal is impossible, it is so close to being so that it would make no difference for all but maybe one person here. I know that person won't be me; I have no idea if it might be you, but it seems unlikely.

Think of it this way: building automobiles is a pretty well established field from an engineering standpoint. Any car designer would know more than enough to design a new car, one that would be cheaper, or more fuel efficient, or improved in some other way. They would also know how to design the industrial infrastructure to build it, or know people who could. While it would be an incredibly expensive undertaking, in terms of starting capital, it could be done. Yet how many new car manufacturers have there been in the US in the past 50 years? Three, that I know of. Of those three, one failed because it was too expensive and had too many failed innovations (Bricklin), one failed because of management faults and illegal deals stemming from a failure to raise enough capital (DeLorean), and one is still running but having serious legal and financial problems stemming from its unconventional distribution system (Tesla). Further, several established brands such as Mercury and Lincoln have been discontinued. Why? Because building the damn cars is the easy part. Running the company is hard.

While the software industry is quite different, the basic issues are the same. Can you raise enough funds to keep you going until you have a working income, and will you be able to repay your creditors and investors afterwards in a timely manner? Can you convince consumers or other businesses to use your product instead of an existing one? Will your product co-exist with whatever systems they are already using, or which they need to interact with? Can you support the product? How will you distribute updates or repairs to the users? Can you manage the business, including finances, taxes, payroll, and employees, all while keeping an eye on the marketing and the product quality? These are issues that exist in any manufacturing or engineering field, but some of them weigh heavier in IT than they do in other fields.

That's not even getting into those matters that are peculiar to IT. I think most of us here are familiar enough with those already. The issues of licensing and software rights is a thicket I have no desire to jump into either; given that your system is derived from an existing FOSS system means that you would have to play by their rules.

People talk about how bloated Windows and Linux are, but they don't consider why they are so large. Most of it isn't avoidable bloat, it's support for edge cases and peculiar configurations. It is easy for a hobby OS to be small. A consumer grade OS can't be, because there are so many different things that they have to be able to work with, and provide some many options for their services, many of which require specialized support. Add to that the need to support older hardware and software, and it becomes impossible to trim away support for existing things, and new support constantly needs to be added. Even Apple, who can dictate both the hardware configurations their OSes run and and (to a lesser extent) the software that runs on them, have had problems with this. While a few RTOS systems such as QNX can avoid it for the most part, they can do so because that's the area they specialize in, and they are freer than the general-purpose OS vendors when it comes to refusing to support a given configuration.

I will admit that I have the ambition of making a working system that could catch on in some small way. It is infinitesimally unlikely, even in the improbable case that I actually get a working system going, but the ambition is there. But I would never, ever stake my career and my income on it happening. There are simply too many variables in play to take that risk.

My design is pretty unconventional, and, I hope, innovative, yet I would not want to bet that those innovations would be enough to garner me a living wage from it. Are you willing to bet that a system that you have admitted is a tweaked version of an existing OS would do better?

If you really want to make a go at this, my advice is to sell your services as an expert on the software, rather than the software itself. Set up a general configuration - a private distro, if you will - and sell installation and support on it, covering some specific area such as mail or database servers. While even those are getting taken over by the big cloud services, you may be able to find a niche for it. Don't expect it to work without pounding the pavement a lot. You'll need to work doggedly at finding customers and keeping them. You probably won't have time to do any development yourself, unless you find a partner to handle the sales work and other management aspects. You'll want to find a good lawyer and accountant, too. Expect to take out a second mortgage and spend every waking hour to earn less than you would in an ordinary job for the first several years. But that is at least a possible course, risky but entirely possible.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Philosophical need for a new OS / language

Post by Brendan »

Hi,
AlexHully wrote:Now, if -like me, again- you need to have proper drivers working, doing low level stuff (machines), it becomes increasingly difficult to compete with established OSes.

You may have, mostly, to rewrite large portions of the driver or, if you are not lucky, have to deal with another hardware because the driver's source is not available.

So, I would like to know, how many of us can find a professional use for their OS in the real world.
Only a small fraction of us try - most of the people here are only doing it for fun and/or learning. For the small fraction of people that do try, I'd say that almost all of them can find a professional use for their OS. More correctly, I'd say that making sure there's a professional use for your OS is a necessary first step that has to be considered when first planning/designing the OS (before anything is implemented); and if you don't do that then you're part of the "only doing it for fun and/or learning" majority.

Of course an OS developer finding a professional use for their OS is completely different to actual users using that OS. The number of people that actually end up with end users is a tiny fraction of the small number of people that try. There's multiple reasons for this, not least of which is the amount of work/time involved in creating a usable OS (and the logistics involved in sustaining "zero income for 10+ years of development") . The other hard part is finding a competitive edge; whether that means targeting a niche to avoid direct competition with established OSs, or whether it means finding/inventing features that established OSs don't/can't provide.
AlexHully wrote:The same applies for a language : when doing low level stuffs, even if the language is a system one, it has to have its ecosystem to work properly. And you will still need to use C/C++, because everything low level uses C/C++.
Not really, at least not for low level system programming where (even for C and C++) the majority of the existing ecosystem is useless (e.g. it's not like you can't just grab an existing GTK toolkit and slap it into your "freestanding" kernel). Then there's projects like mine, where the entire point of the project is create a radically different environment (partly because of that "finding a competitive edge" I mentioned above).
AlexHully wrote:Can we get away from C? (you can answer in one word, I guess).
Definitely (as long as "we" means individual OS developers and not the entire industry). For example, recently I've seen kernels written in both Rust and Haskell (which are both relatively new languages).
AlexHully wrote:The underlying: is all that work worth it, for business purposes (so, except for learning how things work)?
No; from a business perspective it's rarely a wise investment (the rewards/profit is potentially large, but the risks and development costs are far greater). It's a bit like investing in lottery tickets as your retirement plan. ;)

Of course for hobbyist developers it's very different. It's not like "if( development_costs < potential_reward * risk_factor)" and much more like "if( 0 < potential_reward * risk_factor + fun + learning )".
AlexHully wrote:Isn't just modifying an existing OS the only realistic thing to do ?
If you're attempting to attract market share eventually (even if it's only a tiny market share in a small niche); then recycling/modifying an existing OS (or even just an existing OS design) mostly prevents you from finding a competitive edge and therefore guarantees failure.


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
Antti
Member
Member
Posts: 923
Joined: Thu Jul 05, 2012 5:12 am
Location: Finland

Re: Philosophical need for a new OS / language

Post by Antti »

It may be hard to understand how open the world is for us. Hardware is already out there and there are not so many low-level programmers after all who are interested in writing new operating systems. It is possible to create something impressive just by "writing few bytes in the right order" and releasing an ISO image. Of course I vastly simplified the process.

In short; the playground is not the problem. It is us who cannot make the most of the excellent chance we have.
embryo2
Member
Member
Posts: 397
Joined: Wed Jun 03, 2015 5:03 am

Re: Philosophical need for a new OS / language

Post by embryo2 »

It's only time you can spend that matters. But time includes not only OSDeving. May be the biggest part of the time should be spent on your OS promotion. Together the time spent with some niche advantage can make your OS profitable. But time is so scarce today. In case of full involvement it can take at the very least 3 years. In case of part time involvement it can take your life. However, it's only if you want to do it yourself.

Commercial OSes are emerging almost every year, so without any philosophy the need is here and business is ready to invest. So, if you are lucky and some business believes you are the right person to implement an OS for them, your OS can emerge just next year or so. The need is here, but nobody guarantees you match the need. But again, somebody is working every year on some new OSes, the big business is agree to fund them. So, your goal is to make some business believe you are the right person. Everything else is easy. The world is the place for beliefs and if you are the man who can persuade others, then anything you want is waiting for you. However, the skill of really good self-advertising is more complex, than the OSDeving. At least for technically inclined people. But it pays a lot.

And a bit shorter about the philosophical need - it's just here and waits for you. The only problem - your skills should be in the area of persuasion of people. Yes, it's not the OSDeving. OSDeving without advertising is for personal use only.
My previous account (embryo) was accidentally deleted, so I have no chance but to use something new. But may be it was a good lesson about software reliability :)
AlexHully
Member
Member
Posts: 62
Joined: Mon Jul 20, 2015 3:32 pm

Re: Philosophical need for a new OS / language

Post by AlexHully »

Embryo, if you ask me, that answer is very deep and concise. Love it.

Thanks to all!
I will make a new question quoting Brendan about the principle of failure and the inclusionof nvidia drivers in the project. :D
HoTT
Member
Member
Posts: 56
Joined: Tue Jan 21, 2014 10:16 am

Re: Philosophical need for a new OS / language

Post by HoTT »

That's really all it comes down to. The commercial market is already saturated with operating systems, whether desktop, server, consumer (e.g., for a device such as a phone or tablet), or embedded (e.g., for RT devices such as appliances, aircraft, or industrial equipment), and the open-source market even more so.
I know at least one major company that is developing it's own new OS right now. It is just not innovative, but will be qualified to be used for systems of highest criticality. There is still a need for new OS, but it's always niche.
Post Reply