First words are for the army of two behind SETT : congratulations guys, and thanks for this platform, the principle is clever, the interface is simple and neat. Long live SETT !!
So, this is the place where I'll post ideas (when they come) about what a good modern operating system should be, IMO. "Omos" stands for "Open Minded Operating system Specification". If an OS does born from this eventually, it would probably be named "Om".
There's a lot of things to say about Om, so I'll have to do it step by step, one post describing one idea. You can post comments easily on this page, and there's also a forum-like "community" section (top of page) where you can start new topics.
The starting point is a Linux core. But Om isn't exactly a new Linux distro. It's rather a Super Android for desktop computers.
When you want to install an application on your computer, if you choose an application that can be installed both on Windows and Linux, the "how to install" section is two lines long for Windows, and two pages long for Linux. Android is user-friendly about this : you go to the play store, the market, whatever, you choose an app, you click, and that's it. This is how Om should work.
As you probably know, Android applications are downloaded as *.apk files, which are simply renamed zip files, containing everything needed to install your brand new app. Here we follow the same concept.
Om applications are downloaded as *.oapp files, which are renamed zip files containing resources and source-code expressed in LLVM assembly language, LLVM-IR. Download the file, click it and you're done. Your app is already installed, no matter what hardware is behind. It's Grab & Play.
How do we use our computers? We perform different kind of activities, depending on what we need to do, or what we like to do. For most people, there's only a few types of activity. For example, my computer is mainly used for : - software development - 3D image or movie creation - sound manipulation - e learning - flash games - e mails - and now, blogging of course :) So, only 7 types of activity. My family have several projects going on, but these projects always belong to one of these types of activity. One project often involves using several apps together, depending on the type of activity.
In a house, each room is associated with a type of activity (kitchen) or with a person (bedroom). Here we follow the same concept.
In Om, the graphical environment is part of the os. When you reach the start screen, instead of a desktop, you land on a Room selection screen. The screen shows the different Rooms where you can go. Some of them are dedicated to one type of activity, some of them are locked with a password. Visually, each room is represented by a rectangular image containing a title. You can change the image file, the title, height and width, and location of the Room on the screen. When you enter the Room, you reach a desktop that looks like a classical Windows desktop. But it's not only a multiple desktop feature.
A Room is not just a desktop, it's an application-merging, project oriented environment.
It means that basic functions like open-project, open-recent, save, save-as, close, and especially undo/redo now belong to the Room, not to the applications.
I'm interested in peer-to-peer networking technologies.
Om is almost a distributed operating system. It is designed to be a part of a decentralized social network, with simple but powerful functions.
So, around you, there are people using Om just like you, some of your coworkers, your brother, and your best friend. You give them your IP address, which is nothing but a sort of computer phone number. Then your computer is connected to theirs.
By right-clicking on a file, you can send this file to people you're connected to. Of course, you can send private mails, you can chat...
When you're in one of your Rooms, you can invite people to join you in this Room. Your computer will automatically broadcast the screen to every computer connected, using Icecast built-in technology. (Behind the curtain, the broadcast is pyramidal : each computer broadcast to 2 other computers, it's a cascade). The mouse cursor of each participant (an avatar with an arrow) can be seen by everybody, and everybody can interact simultaneously with applications used in this Room. Optionally, voice can be transmitted.
After built-in VNC, here comes built-in automation. Sikuli is a great automation tool, that uses OpenCV. Om includes OpenCV and provides Sikuli-like capabilities to any application.
An Om application can create its own mouse cursor and act like a user.
There's no ontology. In a mind, there's no such thing as a state. This is the biggest mistake in history of AI research, IMO. The only thing in a mind is change. There exists only modification.
Chicken is a case of Bird, and Bird is a case of animal? No, this is not how it works. Things are memorized as sequences of events. If "What is a" and "Bird" appear together, then "Animal" appears. That's it.
A sequence of events contains a set of events, some of which are ordered, meaning that some of them must happen before some others.
Sequences are a way to act, like in a program, but they're also a way to feel and interpret.
If software is the mind of a computer, we could say that any typical operating system has a serious dissociative identity disorder, since some parts of it don't know what the other parts are doing. That's why there are security issues, viruses, ...etc. An OS usually runs a program without knowing what this program does.
So, I went to the LLVM mailing list, asking "how about using LLVM-IR in apk-like files?". They've been nice, and one of them gave me this link. After reading this mail and the next ones, I understood that LLVM-IR wasn't what I was looking for. So it came to my mind that TCG-ops might be closer to my needs.
And then, I felt lost. There were so many possible directions. I tried a few operating systems in Qemu : Damn Small Linux, Haiku, ReactOS. Why should I create one more OS, that nobody will use anyway? I wondered about joining the ReactOS team. It's a great project, which only lacks programmers. It deserves to be known. But I'm afraid MS is just too fast, unfortunately.
I had this idea : start from ROS instead of Linux. Android is Linux with Dalvik as heart. Om would be a minimal stable subset of ROS, with a VM as heart. Which VM, I don't know yet.
Apparently, there's no ReactOS stable subset. FreeDOS is probably a better idea. But it's only for x86.
Hell, there's a lot of operating systems... (Qubes is impressive)
So, back to serious things. I'm evaluating this :