Page 1 of 5

What would you actually want in an operating system?

Posted: Fri Sep 19, 2014 7:30 am
by SoLDMG
So a lot of are programming operating systems, but I'm really curious to hear what all of YOU would like to see in an OS.

So, post ahead I guess.

Re: What would you actually want in an operating system?

Posted: Fri Sep 19, 2014 9:29 am
by Kevin
A do-what-I-mean command.

Re: What would you actually want in an operating system?

Posted: Fri Sep 19, 2014 7:54 pm
by SpyderTL
I want my OS to handle most known audio formats,video formats, document types, Web pages, etc. natively.

No drivers. No apps. Just play a song, or play a video, or print a document, or display a Web page. No Internet Explorer. No media player.

The OS should do it all. Period.

That is what I'm working on now.

Re: What would you actually want in an operating system?

Posted: Sat Sep 20, 2014 7:07 am
by SoLDMG
SpyderTL wrote:I want my OS to handle most known audio formats,video formats, document types, Web pages, etc. natively.

No drivers. No apps. Just play a song, or play a video, or print a document, or display a Web page. No Internet Explorer. No media player.

The OS should do it all. Period.

That is what I'm working on now.
So everything is integrated in one huge chunk? No seperate apps? That's actually amazing. What about terminals?

Re: What would you actually want in an operating system?

Posted: Sat Sep 20, 2014 5:41 pm
by SpyderTL
SoLDMG wrote:So everything is integrated in one huge chunk? No seperate apps? That's actually amazing. What about terminals?
What about them?

Having applications is fine, but I don't want to be forced to use an application, as a user. If I want to get creative, and do something like load a video file and extract and save the audio into an mp3 file, I want to be able to do that from the command line, and preferably in one line. Or if I want to convert an mp3 file to a video file, by rendering the waveform and saving that as an mp4 file, I'd like to be able to do that too.

I'd like to be able to stream a podcast from the Internet, listen to it, and save it to disk all in real time.

I'd like to be able to plug in a webcam, and start capturing a still image every 10 seconds, compare the images and calculate the "difference" between them, and save them to disk if they exceed some threshold.

The OS could do all of this, but it would need to be intimately aware of the various file types, data formats, and the relationships between them.

Linux actually does this fairly well... Much better than Windows. But it relies heavily on various apps and utilities to do most of the work. Finding and collecting all of the command line utilities to be able to do all of the above would take months. And even then, remembering all of the names of the various utilities would be nearly impossible, since they all use different, cryptic names.

The problem is that the OS has no clue what is inside any of those files, or any network packets. So it can't do anything to help the user accomplish a task.

The real role of the "application" is to provide the user with a friendly "interface" to make tasks easier and quicker. But I'd rather the application not actually "do the work".

Think about Java /.NET. They are both very popular development environments, but when you look at the code written in these languages, a large percent of the code is just responsible for rendering the user interface and telling the existing, built in classes what to do when the user clicks a button.

I think the OS should essentially be an "interface" between the UI and the functionality. This is so that the UI could be swapped out, or removed altogether, if the user prefers to use the command line.

Haiku is actually really close to what I want. But there's something about the way it was implemented that makes it... Less than intuitive, for me at least. Maybe I just haven't given it a fair chance...

Re: What would you actually want in an operating system?

Posted: Sat Sep 20, 2014 10:36 pm
by SpyderTL
Here is my problem with Haiku... I googled "Haiku tips and tricks", and found this article:
If upgrade your Haiku install frequently and want the latest and the best from the Haiku SVN, then you can follow these steps to create a script that will do just that:
1. Create a simple text file and name it ”upgrade”
2. Paste the following into the text file:
#!/bin/sh
pkgman add-repo http://packages.haiku-os.org/haikuports ... c2/current
pkgman add-repo http://download.haiku-os.org/haiku-repo ... 2/current/
pkgman update -y
sync
sleep 1
shutdown -r
3. Make the text file executable from the Terminal:
chmod +x upgrade
4. Launch the script from the Terminal with ./upgrade
Optionally you can move the script to /booh/home/config into the /bin directory so you can invoke it from anywhere.
What the script does is download the latest HPKG of the operating system, together with the latest WebPositive and bootloader, install them then reboot your computer.
I understand why this is necessary (because the designers wanted a unix-like subsystem). But is that really the best we can do today?

How about something like:

Code: Select all

System.Update
Is there any reason the OS can't update itself to the latest version?

Re: What would you actually want in an operating system?

Posted: Sun Sep 21, 2014 4:36 am
by Combuster
SpyderTL wrote:How about something like:

Code: Select all

System.Update
Is there any reason the OS can't update itself to the latest version?
I'd assume that running the one important command

Code: Select all

pkgman update
does exactly that already, but then for stable releases. It even saves you from reboots when you don't specifically want it :wink:

Re: What would you actually want in an operating system?

Posted: Mon Sep 22, 2014 4:16 pm
by AndrewAPrice
I'm tired of the junk that uses precious CPU time. I think it would be useful to have an operating system that freezes background applications (if it's unfocused, it's frozen, unless the user explicitly gives it permission to run in the background.) Shutdown and bootup should be near instant.

Re: What would you actually want in an operating system?

Posted: Mon Sep 22, 2014 11:50 pm
by SpyderTL
Amen!

To put it another way, have you ever just sat and watched your windows machine's hard drive light?

No applications running, just boot up at watch it. It will be on for a solid 3-4 minutes, and will then be hit every 1-2 seconds for pretty much the whole time it is on.

It's always busy indexing files, moving sectors, pre-caching applications, querying network topography, etc. I want my OS waiting for me to give it a command. I want it to boot up like an Atari 2600! :)

And I want it to shut down immediately. Windows wouldn't need to notify every application and every service and every network that it is shutting down if it didn't run all of that stuff in the background in the first place.

Re: What would you actually want in an operating system?

Posted: Tue Sep 23, 2014 2:01 am
by Jezze
Interestingly we seem to share this view. I want my operating system to only do what it has been told and nothing else so for the most part it will not do anything at all unless told otherwise. I think it is doable to write a general purpose os with that in mind and still be usable.

Re: What would you actually want in an operating system?

Posted: Tue Sep 23, 2014 4:15 am
by Brendan
Hi,
SpyderTL wrote:No applications running, just boot up at watch it. It will be on for a solid 3-4 minutes, and will then be hit every 1-2 seconds for pretty much the whole time it is on.
Typically a system has "bursts of activity" separated by "bursts of inactivity". There are things that can be done during the "bursts of inactivity" that improve the performance of those "bursts of activity" (e.g. things like pre-fetching, pre-processing, indexing, de-fragmenting, etc).

If an OS doesn't do these things; then hardware resources (e.g. CPUs, memory, disk bandwidth, etc) are being wasted at the expense of performance, and that's a bad/sad thing.


Cheers,

Brendan

Re: What would you actually want in an operating system?

Posted: Tue Sep 23, 2014 6:43 am
by Antti
Brendan wrote:If an OS doesn't do these things; then hardware resources (e.g. CPUs, memory, disk bandwidth, etc) are being wasted at the expense of performance, and that's a bad/sad thing.
That is the right direction but there is a drawback. Users might feel unhappy if their computers are "unsettled", i.e. noisy disk accessing while indexing, de-fragmenting, etc. If there were no noise, it could be annoying just to see flashing leds. I am sure that there are a lot of people feeling uncomfortable because of this. Proper timing of the background work is the key thing.

In general, it is obvious that the idea has a lot of advantages.

Re: What would you actually want in an operating system?

Posted: Tue Sep 23, 2014 8:07 am
by AndrewAPrice
Brendan wrote:Typically a system has "bursts of activity" separated by "bursts of inactivity". There are things that can be done during the "bursts of inactivity" that improve the performance of those "bursts of activity" (e.g. things like pre-fetching, pre-processing, indexing, de-fragmenting, etc).

If an OS doesn't do these things; then hardware resources (e.g. CPUs, memory, disk bandwidth, etc) are being wasted at the expense of performance, and that's a bad/sad thing.
Sure, but can't we explicitly control that? We have processes that drain our battery (mobile, laptop) in the background because they're constantly polling, or have some thread stuck in a loop.

I might want to explicitly give my IM application, download manager, and music player permission to run in the background. But I don't want every program and it's updater thinking it has a right to poll the Internet, pre-cache, or do whatever (I'm looking at you Adobe, Java, OneNote, RealPlayer, iTunes...)

What if I want everything in the background to stop, so that the application I have in focus (my web browser, or a video game) can have all resources dedicated to it?

If it's out of sight, it should be out of mind, unless we explicitly tell it otherwise.

Re: What would you actually want in an operating system?

Posted: Tue Sep 23, 2014 8:28 am
by SpyderTL
"Old Computers Did It Better"


https://www.youtube.com/watch?v=0wDtxYeJdzg

Re: What would you actually want in an operating system?

Posted: Tue Sep 23, 2014 9:15 am
by Brendan
Hi,
MessiahAndrw wrote:
Brendan wrote:Typically a system has "bursts of activity" separated by "bursts of inactivity". There are things that can be done during the "bursts of inactivity" that improve the performance of those "bursts of activity" (e.g. things like pre-fetching, pre-processing, indexing, de-fragmenting, etc).

If an OS doesn't do these things; then hardware resources (e.g. CPUs, memory, disk bandwidth, etc) are being wasted at the expense of performance, and that's a bad/sad thing.
Sure, but can't we explicitly control that?
Yes; the end user could explicitly control things like pre-fetching, indexing, de-fragmenting, etc; if you really want a system where users do work for the computer (instead of having a system where the computer does work for the user).

Alternately, the OS could control it - e.g. having a much lower threshold for "is it worth doing?" when running from battery.
MessiahAndrw wrote:We have processes that drain our battery (mobile, laptop) in the background because they're constantly polling, or have some thread stuck in a loop.

I might want to explicitly give my IM application, download manager, and music player permission to run in the background. But I don't want every program and it's updater thinking it has a right to poll the Internet, pre-cache, or do whatever (I'm looking at you Adobe, Java, OneNote, RealPlayer, iTunes...)

What if I want everything in the background to stop, so that the application I have in focus (my web browser, or a video game) can have all resources dedicated to it?

If it's out of sight, it should be out of mind, unless we explicitly tell it otherwise.
These things all mostly seems to be poor software update mechanisms (e.g. no efficient/global system for updates; combined with applications that do "check for update during boot" instead of "check for update when run"). It wouldn't be too hard to find a better way of handling software updates.


Cheers,

Brendan