I was thinking about creating a whole new open source operating system, but unlink others, the interface will be completely written in C (maybe C++).
I think if you used a low level language, like C, to write an entire interface it would be much faster than others (gnome used javascript.. :S)
Here are some ideas..
The interface will have everything intergrated.
When you maximize a window, it automatically adds a desktop and moves the window there.
There will be options for tiling for those of us who like to have all of our windows to stay neat :D
It will include a package manager that runs kind of like a bit torrent, so if your computer turns off.. you can start the download right where it left off
While having a quite restricted but easy to use interface, the user WILL be able to still use powerful tools and such.
Tell me what you guys think... Also include any additional ideas
C is portable assembly, and therefore is a very high-level language. The only low-level languages are magnetized needles and butterflies. [/xkcd-reference]
Most of the features for your OS that you described could be done by modifying existing F/OS software, but as helios pointed out... do not really have too much to do with OS design. >_>
Integrated interface... that's a very generic term. I'm not sure what you mean by this.
Maximizing a window creating its own virtual desktop... modify GNOME 3. Be aware that some people (like myself) might find this feature a bit restrictive in that sometimes we have other windows over the full-screen window. For me, a key combination + a drag is just fine.
Tiling options... if you're talking about what I think you are, GNOME 3 already has this.
Package manager... I'd be somewhat surprised if there was a distribution that had individual packages so large that this was necessary. Why not simply fragment one large package into a package with a large list of dependencies?
However, if you think you'll gain something from the project go for it!
People spend years working on operating systems that no one will use, if you think yours will be different, unless you are a supreme master of everything (you could be =] ), you could possibly be being naive =/
Yeah... I think I'll start helping out some other people with their window manager... most likely GNOME3... thanks for being honest guys :D
EDIT:
also, yes it would probably be another distro..
A torrent type package manager would be amazing though, possibly I could help the Arch Linux (my favorite distro) team develop something like that..
EDIT 2:
Hmm yeah after reading the begginers misktakes I was thinking about creating a more usable GUI... I'll deffinately not create my own OS now... Iv'e been enlightened.. :O
EDIT 3:
@Albatross - I don't mean THAT restricted, I would like it to have been something like Gnome3
@helios - look on the gnome3 dev website, it says they use GTK+ C, C++, Mono, Javascript and Vala... a quite scattered codebase
Also, another idea for a new computer input device... critisize it like mad, its just a thought :D
An input device that is basicly a handheld touchscreen. If you click on a text box, a keyboard comes up (like a mobile device...)
Each program can customize the layout of the controls on the device, with restrictions, of course.
Just so you all aware this is NOT usable without a computer, I would just think it would be interesting to replace a mouse...
Eh, if I end up creating the touch screen input thing then I will probably have to create another distro.. but if I don't, I'll just add on to an existing one
Yeah I've heard of people trying to make dual mice for gaming :P I think a touchscreen would be better for 3D design though, wouldn't it?
If you're going to write an OS, do something simple, but make it cool. The university I want to go to (which I think is where mcleano goes) has a concurrent OS called RMoX ( http://www.cs.kent.ac.uk/research/groups/plas/rmox.html ). Make something interesting, maybe even something that hasn't been done before. Find a language that has never been used for OSdev, write a compatibility layer for it, and then try and write an OS in it (I planned to do this with Python before I realised: I hate Python. I _might_ try it with C#). Or use an unusual paradigm, maybe event-driven or data-oriented. You could write Losp (an OS in Lisp).
I was thinking about creating a whole new open source operating system, but unlink others, the interface will be completely written in C (maybe C++).
I think if you used a low level language, like C, to write an entire interface it would be much faster than others (gnome used javascript.. :S)
Oh? Really? I'm 99% sure, noone would ever notice any performance difference.
And even if I'm wrong, this would still be irrelevant. Linux and BSD are fast enough. Uh, and they have been implemented mostly in C.
Main things that are lacking in Linux are:
1. stability (X.org / KDE stability is a disaster, even in KDE 4.7, probably because they used wrong language for the job; even if they did that in Basic, it would probably be better)
2. hardware support, especially broken ACPI and 3D graphics support
Somehow, I'm sceptic that your distribution would solve that.
Nevertheless, if you happened to give kernel developers a complete ACPI implementation (the standard is several hundred pages), probably all laptop Linux users would love you and you'd become famous.
@helios - look on the gnome3 dev website, it says they use GTK+ C, C++, Mono, Javascript and Vala... a quite scattered codebase
GTK+ is implemented in C, but it has bindings for other languages. Just because you allow other languages to use your code doesn't mean that a significant portion of that code is written in any of those languages. If you're going to improve upon something you should at least be well aware of the characteristics of the thing you're trying to improve upon.
you should do a dual mouse system, it would be quite interesting for 3d design o.O
I like that idea. A lot. I'm thinking for a game in first person perspective; as a default, the mice will have individual control of the corresponding arm on the player. Different combinations of buttons will decide if you're moving the head or changing directions.
Which developers did you talk to? It's an open source project so there are a lot of them out there. Also, I'd be VERY VERY surprised if they designed an entire graphical shell for X.Org using javascript.
Edit: reread what you said. Gnome-shell is just the default UI in the gnome desktop environment.
Since Gnome is based on GTK+ it's written in C, but has bindings to other langauges, Gnome-shell is written in C and javascript. I'm willing to bet the core of it is in C and it has an embedded javascript interpreter for all the javascript work.
Don't forget that current implementations of JavaScript are very, very fast. JavaScript is a compiled language now. It is not that slow interpreted JavaScript from 10 years ago. Good JavaScript implementations are typically only 3x-20x slower than optimised C, depending on the benchmark. Such performance penalty doesn't really matter for the interface layer, as long as the low level graphical routines are hardware accelerated, considering great performance of modern CPUs. And by using JS you can write code faster than in C or C++ and get your users more functionality. Large amounts of Firefox are also implemented in JS.
By using JS or other managed languages they also reduce risk of fatal bugs, like KDE (written in C++ with Qt) is full of. I mean bugs that terminate the whole application immediately and you lose your data.