Page 1 of 2

Open Platform

Posted: Sat Jan 06, 2007 12:29 am
by mikemex
Hello,

Like many of you, I started my own OS project years ago. I constructed a boot loader for PCs, a very rudimentary kernel and user interface. After turning the computer on you could see a command line on the screen, very silimar to MS-DOS. It was even able to execute dummy commands.

Then I realized the real reason why I was doing so: I wasn't really building a new operating system, I was just testing myself. Once I discovered that simple truth, I stopped wasting my time.

Wasting my time? Not in the sense that most people understand it. Writing your own OS as a hobby is as valid as spending your time with friends having a beer; it's just a matter of preferences. I was wasting my time because my project wasn't realistic.

Years ago, when computers weren't widely available, there were just a bunch of cryptic operating systems out there. You could spend a summer coding (knowing what you were doing, of course) and having by the end of it a decent system that could even compete with commercial ones.

It was possible because, at the time, computers weren't really expected to perform much. However, that situation vanished over time. Now trying to build an operating system comparable to Windows (as an example) by yourself is like attempting to build an entire city with common bricklayer tools and no help.

Despite the pessimistic introduction, I must say that I never allow anyone or anything to deprive me from my dreams. Instead of simply backing off, I've been thinking since I stopped coding OSes what could I really do, from a realistic point of view, to see an operating system that could replace all current ones for the benefit of all.

My conclusion, and my reason to share my thoughts with you all, is that it is impossible to compete without droping it all and starting from zero. And I am not talking about software only, what I am saying is that we need a new hardware platform, designed with the technology that is available today, with all the knowledge we have accumulated over so many years of mistakes.

It is crucial because operating system developers always face the problem that they are not in control of the platform they are trying to command. They must adapt themselves to endless variations of things which essentially do the same thing, yet take insane amounts of time just to get to work togheter.

This is an interesting point to discuss. Why are there so many things that essentially do the same thing in the first place? Is it really so that engineers all over the world are so stupid to reinvent the wheel over and over? I don't think so.

What I belive is that people in the IT industry often overlooks perhaps the most evident fact of it, yet they blame the problem to improper specifications, implementations, bugs... The fundamental problem, I belive, is that computers, in our current system, are not driven by what is good or bad, by what is well designed, efficient and reliable. Computers are driven by what is profitable and what is not. Ladies and Gentlemen, welcome to the free market economy.

But that we become just assets in a large system or not pretty much depends on what each of us does.

I would like to propose to you, knowledgeable and capable people, about switching goals. What I am going to propose to you might seem unrealistic, yet I'm convinced that it will end up into something useful some day if done in a proper way.

What I am proposing is to design a computer platform from scratch. Complete, including hardware. By controlling the fundamental part of this platform I'm sure that the development of an operating system will be much easier.

I do not have the resources to turn the project into something tangible, so my goal for now is to build an emulator for the platform and once it's done to start coding the operating system and applications from there.

Most of the time spent in operating system development goes to the writing of device drivers and interfaces to such devices. This platform will be completelly new and thus we are completelly free to arrange the hardware in the most convenient way, without having to worry for backward compatibility.

I have several ideas for the hardware already, but before sharing them, I would like to know how many people is interested in the project. It's very difficult to start such a project alone.

Posted: Sat Jan 06, 2007 12:56 am
by Tyler
I hate to just stab you right in the balls... but i am alreayd in two identical projects... even the emulator idea is pretty wide spread. And even though i am in a project already developing hardware and another developing an emulator for the next great platform... i don't see either of them going anywhere, the problem is not a new system and more and more people getting the idea, the problem is getting it to the people. The number 1 feature people want is backward compatability. If you can't provide that with speed then you have no chance.

Posted: Sat Jan 06, 2007 1:43 am
by elderK
*hears someone say 'Backwards compatibility' while roaming* WHAT? Backwards compatibility? @!#$ Backwards compatibility, MAN!.

I am SICK of the same bullsh*t Intel platform, sick of all the same bullsh*t limitations, sick of having to think around certain limitations.

;) Forgive me if I seem very... harsh at this time. Ive just woken up and yet to have my good-morning-coffee. Regardless... Its how I Feel.

I mean, it feels like everythings mostly been discovered and done to death - sure we can all make our own designs, but when it comes down to it - its all just code thats been written before, an idea thats been had before. Sure, its not OUR design and its not OUR emotion and effort going into THAT one. But for some reason, This depresses the @!#$ out of me right now.

Im sick of backwards compatibility bullshit.

How is Humanity ever meant to shoot upwards in Technology if we keep dragging 2 trillion tonnes of legacy with us? Unfortunately, I cannot join your project as I have one of my own which takes up 100% of my coding time.

Keep in mind though man, you arent the only one thinking like your thinking.:)

:D So, say a prayer and have faith! Because eventually, the backwards compatibility bullsh*T will drop dead :)

~Z

Posted: Sat Jan 06, 2007 2:05 am
by orkim
I enjoy your spirit in venturing into new projects. You mentioned that it is unrealistic to write an operating system such as Windows. To be more specific:
mikemex wrote:Now trying to build an operating system comparable to Windows (as an example) by yourself is like attempting to build an entire city with common bricklayer tools and no help.
I'm not so sure that building a hardware platform, and then an operating system on top of the new hardware platform is more realistic. It took Intel and a host of other hardware manufactures many years (read that as 20+) to get to the state that we currently enjoy. This was with a huge team, millions (billions?) of dollars in R&D, and their own manufacturing plants. On top of that we can discuss Microsoft and their R&D budget and size of their development team.

I don't want to rain on your parade. But it sounds like you're jumping from one unrealistic goal to yet an even larger unrealistic goal. Not to mention things like backwards compatibilty, return of investment issues, and reliability (support?) factors.

If writing a "toy" OS is your hobby, then so be it. If developing a hardware platform is your hobby, then so be it. If you like doing both, great! However, taking over the world with a huge new idea... is unrealistic.

Sorry.

-orkim

Posted: Sat Jan 06, 2007 2:14 am
by Colonel Kernel
@mikemex:
There is at least one other esteemed member of the forums that thinks like you do:

http://www.osdev.org/phpBB2/viewtopic.p ... highlight=

I however, don't. Here is my existentialist take on why you and Candy probably feel like undertaking this and I don't.

Try to define what exactly you mean by a "better" platform. Better for whom? Better how? Better in what way(s)? Don't say "perfect in every way" since such a thing could never be built by imperfect humans...

I think the real reason this idea gets bandied about every so often is that technical people like to see elegant systems in action. It's a kind of art form for us. I can appreciate a truly beautiful (in the functional sense) but utterly useless piece of technology just as much as the next guy, but beyond making ourselves feel better, what exactly do we accomplish by creating such things? As a friend of mine would say, it's programsturbation. :twisted:

If I need a Widget by Tuesday, and it doesn't matter if it breaks half the time, and you give me an unbreakable Widget on Friday, what good have you done me? You've really just satisfied your own need to see the elegance of an unbreakable Widget.

Realistically, there are four motivations for technical undertakings (these are not mutually exclusive):
  1. You want to learn.
  2. You need to create something elegant (artistic expression).
  3. You want to make some money.
  4. You really want to change the world for the benefit of humankind.
I'm doing OSdev for point 1 pretty much exclusively. I have no illusions about where my project is going (especially since it has gone almost nowhere for the past year... @#$@ work ](*,)). I also know that by the time I leave it to move on to the next project, it will be neither beautiful nor elegant. So my motivation is basically entirely internal to me, and therefore my project doesn't need to involve anyone else.

Point 2 is also an internal motivation. This sort of thing never really ends up going anywhere, and is difficult to rally people around. Part of this is the difficulty in defining such ethereal aesthetic qualities as "elegance". It all boils down to some simple questions -- what problem are you trying to solve exactly? Are you sure the problem exists and isn't just an internal need to create something that you perceive as being cool? Can you define your problem with enough precision to actually have a hope of solving it? If you can't answer these questions, then you're probably in camp 2 (even though you might think you're in camp 4).

If you want to make inroads on point 3, apply to Microsoft, Apple, QNX, etc. and best of luck to you... I might even try that some day. (As an aside: if you want to work on big important things or generally things that matter in a big way, do not work for a small software company.) You've already dismissed free market capitalism, so I assume this isn't your bag. In truth, it probably isn't the highest priority for any developer of credible skill. However, I must say in defense of capitalism that at least it makes the priorities clear, even if they're hard to swallow sometimes.

If you want to help with point 4, go get your Masters degree or PhD and do some real hard-core research... I might even try that some day too. There is no way you're going to be able to change things single-handedly. There are a lot of incredibly bright people researching some very cool things in both software and hardware, and IMO it makes sense to build on their work rather than start over yourself. Massive changes take massive time and work, so use the masses. :wink:

One thing you said that I whole-heartedly agree with though -- the best way to create a compelling computing platform is to have complete control over every aspect of it, from the OS and application frameworks right down to the CPU. Instead of slapping together "good enough" crap, it becomes possible to have hardware and software really play off each others' strengths. This is where I think the future is (and why I'm curious to see how well Apple does in the next few years, but that's another story). Just be realistic about how you're going to contribute to such a thing. It will probably be as part of a big company or research organization, not as part of a band of random developers who meet online.

Posted: Sat Jan 06, 2007 3:18 am
by mikemex
Linux started that way (just a bunch of guys who meet over Internet) and it's now a full operating system. The problem of Linux is that it puts too much emphasis on divergent thinking (one project breaks in two, then in four and then...) and people end up doing many things which do essentially the same (sounds familiar?).

This proposal (as you said that it has been proposed before) is realistic because:

1.- Reduces work load. Most time is spent making your software to work with the hardware, but since we are handling both simmultanenously, it works with minimal effort.
2.- Since the basic system is relatively easy to do, you will spend more time doing higher level tasks, which make the difference between a dummy OS and one which is really useful.
3.- Not all devices requiere backward compatibility. If the project proves to be good enough, it can be used for stand-alone devices such as PDAs, which opens the possibility for a more widespread adoption.

Besides, when I'm talking about a better platform, I'm talking about something that works better than current systems in almost all areas. Faster, lower power consumption, smaller, etc. And despite what you think, it can be backward compatible.

According to common sense, it is unrealistic, indeed. But as Einstein said once "common sense is the collection of prejudices acquired by age eighteen."

Posted: Sat Jan 06, 2007 7:07 am
by Ready4Dis
One more thing you are missing is patents, there are reasons companies don't do things identically the same just because it's been done already, it's illegal to do so!

Posted: Sat Jan 06, 2007 8:02 am
by Brynet-Inc
Ready4Dis wrote:One more thing you are missing is patents, there are reasons companies don't do things identically the same just because it's been done already, it's illegal to do so!
Apparently you forgot we are not all in the same country.. I'm not sure of any international patent laws.

Posted: Sat Jan 06, 2007 8:33 am
by Candy
Brynet-Inc wrote:
Ready4Dis wrote:One more thing you are missing is patents, there are reasons companies don't do things identically the same just because it's been done already, it's illegal to do so!
Apparently you forgot we are not all in the same country.. I'm not sure of any international patent laws.
There are international patent laws but they don't apply to software patents - if only because some countries plain don't enforce / allow software patents. I'm happy enough to live in a country that doesn't enforce them. I can, for my own sake and for the sake of clean and decent design, ignore them.

There are more problems though, you can't encrypt too strong in France or it's illegal etc.

Posted: Sat Jan 06, 2007 8:59 am
by Brynet-Inc
Candy wrote:There are international patent laws but they don't apply to software patents - if only because some countries plain don't enforce / allow software patents. I'm happy enough to live in a country that doesn't enforce them. I can, for my own sake and for the sake of clean and decent design, ignore them.

There are more problems though, you can't encrypt too strong in France or it's illegal etc.
Ah right.. I'm guessing the international patent laws are limited though to a few countries.

In Canada we have fairly decent laws, For example: Reverse Engineering is legal here (Dirty - non-USA clean room method).

About your countries cryptography laws, I've never known any that ban it entirely. Most just have strange importing and exporting laws. (In Canada our cryptography laws are good, A reason why OpenBSD is mainly based in Canada.)

Posted: Sat Jan 06, 2007 10:15 am
by smbogan
Well, it is unlikely anyone is going to redesign a processor...so how about an arm based board with defined and well-documented ports, etc...Developing an arm-based pda type board specification would be a lot more realistic, and the parts are a lot cheaper. I would switch to developing an OS for an arm based board if an easy to build design was available.

Posted: Sat Jan 06, 2007 10:19 am
by Dex
@mikemex, You should take a look at SkyOS, that mostly the work of one person.
http://www.skyos.org/

Posted: Sun Jan 07, 2007 12:35 am
by carbonBased
Brynet-Inc wrote: About your countries cryptography laws, I've never known any that ban it entirely. Most just have strange importing and exporting laws.
Which would become relevant in a project that uses such encryption globally. The FBI is especially not fond of 64+ bit encryption.
@mikemex, You should take a look at SkyOS, that mostly the work of one person.
A very impressive effort, for sure, but the exception that proves the rule, I think. Seems the average fate of a one person OS project is to eventually fade away, now-a-days... I don't mean that to ruin anybody's hopes (afterall, I'm also a one person OS project), but I see it more and more.
Well, it is unlikely anyone is going to redesign a processor...so how about an arm based board with defined and well-documented ports, etc...Developing an arm-based pda type board specification would be a lot more realistic, and the parts are a lot cheaper. I would switch to developing an OS for an arm based board if an easy to build design was available.
Sounds good to me :) I'm already planning on porting to ARM in the not-so-distant future. I'd certainly support a project like that.

--Jeff

Posted: Sun Jan 07, 2007 10:17 am
by JAAman
In Canada we have fairly decent laws, For example: Reverse Engineering is legal here
i believe reverse-engineering is legal in every country (at least it is here in the USA)

Posted: Sun Jan 07, 2007 10:25 am
by Brynet-Inc
JAAman wrote:
In Canada we have fairly decent laws, For example: Reverse Engineering is legal here
i believe reverse-engineering is legal in every country (at least it is here in the USA)
In the USA the clean room method is the only legal approach.

http://en.wikipedia.org/wiki/Clean_room_design

Basically it means one group does the reverse engineering and then documents their findings, A second group without any information from the first group (just the documentation) writes a clean implementation.

One example of this was the non-IBM-PC BIOS clones..

In Canada one doesn't have to follow that rule... :wink: