What would you actually want in an operating system?

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
SpyderTL
Member
Member
Posts: 1074
Joined: Sun Sep 19, 2010 10:05 pm

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

Post by SpyderTL »

MessiahAndrw wrote:Just as in any other shell you can call "mplayer video.mpg" and mplayer is launched playing your window, you can call "mplayer video.mpg" and mplayer is launched inlined into your command line.

Image
MessiahAndrw wrote:Let's say you want to grab a web page:
Image
MessiahAndrw wrote:You could stream data/parameters through 'manipulator' tools -
"loadimage face.jpg | imageadjust | imagerenderer"
Image
Just out of curiosity, did you photoshop these, or does this actually exist somewhere?
Project: OZone
Source: GitHub
Current Task: LIB/OBJ file support
"The more they overthink the plumbing, the easier it is to stop up the drain." - Montgomery Scott
User avatar
AndrewAPrice
Member
Member
Posts: 2300
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

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

Post by AndrewAPrice »

They are real Mathematica screenshots.
My OS is Perception.
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

Some of the things I'd like in an operator:
  • The use of a binary file format where dynamic libraries can be rebased without trashing a register and yet somehow still be shared. Preferably with something like RVA's. I prefer speed over flexibility when it comes to program execution.
  • The ability to determine file types by their names based on regular expressions instead of just file extensions or the binary content of the file.
  • Having all of the software sandboxed so it doesn't leave crap on my pc after it's uninstalled.
  • The ability to shred files instead of just sending them to the garbage can.
  • To have all of the system software use DNA/RNA structures like .blend files for the binary formats so the everything is both forward and backward compatible.
This is mostly just wishful thinking though.
User avatar
AndrewAPrice
Member
Member
Posts: 2300
Joined: Mon Jun 05, 2006 11:00 pm
Location: USA (and Australia)

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

Post by AndrewAPrice »

DaemonR wrote:The use of a binary file format where dynamic libraries can be rebased without trashing a register and yet somehow still be shared. Preferably with something like RVA's. I prefer speed over flexibility when it comes to program execution..
Some kind of relocation table embedded into the executable that points to everywhere an address is referenced, so at load time it can be offset?

This might be difficult on x86_64 if you load code above 2GB.
My OS is Perception.
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

MessiahAndrw wrote:
DaemonR wrote:The use of a binary file format where dynamic libraries can be rebased without trashing a register and yet somehow still be shared. Preferably with something like RVA's. I prefer speed over flexibility when it comes to program execution..
Some kind of relocation table embedded into the executable that points to everywhere an address is referenced, so at load time it can be offset?

This might be difficult on x86_64 if you load code above 2GB.
If we were to go that far, it would probably make sense just to use relocatable object files. *sigh* If only people didn't exploit self-modifying code for nefarious purposes.

EDIT: Another idea would probably be to somehow set up a jump table. Then you could save the extra cycles you waste on loading from an address.
User avatar
b.zaar
Member
Member
Posts: 294
Joined: Wed May 21, 2008 4:33 am
Location: Mars MTC +6:00
Contact:

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

Post by b.zaar »

DaemonR wrote:The use of a binary file format where dynamic libraries can be rebased without trashing a register and yet somehow still be shared. Preferably with something like RVA's. I prefer speed over flexibility when it comes to program execution.
I don't know if RVA's are better to use than PIC for sharing libraries but I would like to know why code uses EBX rather than ESI or EDI for the addressing register.
DaemonR wrote:The ability to determine file types by their names based on regular expressions instead of just file extensions or the binary content of the file.
I'm not sure what you mean by this one. Are you trying to do a directory search to find certain file types using regex or are you asking the system to put the file type in the name of every file the user saves? How would this differ from using a more informative file extension?
DaemonR wrote:Having all of the software sandboxed so it doesn't leave crap on my pc after it's uninstalled.
This is something I'd like to include in an OS, similar to virtualization/emulation for a hosted OS in qemu or bochs, where an app appears to be running on a dedicated machine and it's the only software installed. The app will act like it owns the whole disk (a sandboxed directory) all the memory and devices.
DaemonR wrote:To have all of the system software use DNA/RNA structures like .blend files for the binary formats so the everything is both forward and backward compatible.
I don't know anything about this file type. What's the advantages over something like png/gif's block types? I was thinking of going with the block system for files.
DaemonR wrote:This is mostly just wishful thinking though.
I have a dream...
"God! Not Unix" - Richard Stallman

Website: venom Dev
OS project: venom OS
Hexadecimal Editor: hexed
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

b.zaar wrote:
DaemonR wrote:The ability to determine file types by their names based on regular expressions instead of just file extensions or the binary content of the file.
I'm not sure what you mean by this one. Are you trying to do a directory search to find certain file types using regex or are you asking the system to put the file type in the name of every file the user saves? How would this differ from using a more informative file extension?
It's much more flexible. Normal file extension associations can be done like:

Code: Select all

^.*\.ext$
But you'd also be able to match more advanced patterns like double-extensions:

Code: Select all

^.*\.ext1\.ext2$
Prefixes

Code: Select all

^i386\-.+\.exe$
Or specific filenames

Code: Select all

^Makefile$
b.zaar wrote:
DaemonR wrote:To have all of the system software use DNA/RNA structures like .blend files for the binary formats so the everything is both forward and backward compatible.
I don't know anything about this file type. What's the advantages over something like png/gif's block types? I was thinking of going with the block system for files.
It's a bit difficult to explain clearly, but basically each version of the application has a DNA/RNA structure that defines the format of the binary files it uses. Kind of like a dictionary. With Blender, this dictionary is appended to the end of each .blend file. Because of this, you can open a 1.0 .blend file in Blender 2.49b or a Blender 2.60 file in Blender 2.49b; despite the fact that they are vastly different when it comes to the structure of some things within the file.
User avatar
b.zaar
Member
Member
Posts: 294
Joined: Wed May 21, 2008 4:33 am
Location: Mars MTC +6:00
Contact:

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

Post by b.zaar »

DaemonR wrote:The ability to determine file types by their names based on regular expressions ...

It's much more flexible. Normal file extension associations can be done like:

Code: Select all

^.*\.ext$
But you'd also be able to match more advanced patterns like double-extensions:

Code: Select all

^.*\.ext1\.ext2$
Prefixes

Code: Select all

^i386\-.+\.exe$
Or specific filenames

Code: Select all

^Makefile$
Where would you put this? I see it maybe as a library on top of the OS not a system call inside the kernel.
DaemonR wrote:
b.zaar wrote:
DaemonR wrote:To have all of the system software use DNA/RNA structures like .blend files for the binary formats so the everything is both forward and backward compatible.
I don't know anything about this file type. What's the advantages over something like png/gif's block types? I was thinking of going with the block system for files.
It's a bit difficult to explain clearly, but basically each version of the application has a DNA/RNA structure that defines the format of the binary files it uses. Kind of like a dictionary. With Blender, this dictionary is appended to the end of each .blend file. Because of this, you can open a 1.0 .blend file in Blender 2.49b or a Blender 2.60 file in Blender 2.49b; despite the fact that they are vastly different when it comes to the structure of some things within the file.
Sounds interesting, I'll look into it. Do you have any links or docs about the format you used to learn it?
"God! Not Unix" - Richard Stallman

Website: venom Dev
OS project: venom OS
Hexadecimal Editor: hexed
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

b.zaar wrote:Where would you put this? I see it maybe as a library on top of the OS not a system call inside the kernel.
My idea was that it would be used by the shell itself. The idea is to improve file type association. I'd like to be able to do stuff like build a Makefile just by clicking it, properly hide known file extensions, set up files to run with different arguments dependent on a prefix or suffix, or do unique associations like ^.*\.tar(\.+(bz2|gz))$ which not only conserves space in the registry, but also means I can associate a different program with plain *.gz files.
b.zaar wrote:Sounds interesting, I'll look into it. Do you have any links or docs about the format you used to learn it?
http://archive.blender.org/development/ ... index.html

I once wrote a .blend mesh loader in C for the PSP (though it didn't support textures). It's a little confusing at first.
User avatar
JackScott
Member
Member
Posts: 1031
Joined: Thu Dec 21, 2006 3:03 am
Location: Hobart, Australia
Contact:

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

Post by JackScott »

I read an interesting article via Twitter the other day. Basically demonstrates how badly modern computer systems are designed for "normal" users.

Swift on Security: A story about Jessica.

What could we change in our operating systems to prevent some of the things in this story?
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

JackScott wrote:I read an interesting article via Twitter the other day. Basically demonstrates how badly modern computer systems are designed for "normal" users.

Swift on Security: A story about Jessica.

What could we change in our operating systems to prevent some of the things in this story?
On the contrary, I think the problem is that operators stopped focusing on businesses. People were attracted to it for that very purpose, but over the course of time that all changed. Everything became about the user. They stopped trying to familiarize the users with themselves and instead started familiarizing themselves with the users. It doesn't work that way though. Everyone has a different pace and a different workflow.

One of the major problems technology has today is that we are constantly making things more complicated for the user out there who says "technically, this should be called this and such and such study shows X amount of users want Y." The hard fact is that people don't know what they want. They prefer people to make choices for them. That's why Windows was so successful. Imho, if you want a good operator, base the entire thing on what the user already knows. Eg. If you're going to give it a folder icon, just call it a f***ing folder. (Sorry, I've been studying technological etymology for several years, and I've grown to hate acronyms, abbreviations, conjunctions, and 'technicalities' with a passion)
User avatar
b.zaar
Member
Member
Posts: 294
Joined: Wed May 21, 2008 4:33 am
Location: Mars MTC +6:00
Contact:

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

Post by b.zaar »

JackScott wrote:I read an interesting article via Twitter the other day. Basically demonstrates how badly modern computer systems are designed for "normal" users.

Swift on Security: A story about Jessica.

What could we change in our operating systems to prevent some of the things in this story?
Interesting insight, but how is it possible to protect something like a laptop from everyone but you, and your family?
It needs to stay open enough that everyone can use it easily.

It's like your home. You can install alarms and security but there are still ways to get around it. You'll deter the casual thief looking for oppurtunity but if you have something important or just targeted by someone who knows the tricks they will get around it.
DaemonR wrote:On the contrary, I think the problem is that operators stopped focusing on businesses. People were attracted to it for that very purpose, but over the course of time that all changed. Everything became about the user. They stopped trying to familiarize the users with themselves and instead started familiarizing themselves with the users. It doesn't work that way though. Everyone has a different pace and a different workflow.
Everything in life is about the user, from left handed can openers to flying a jumbo jet. We all want to control something in the easiest way possible. Targeting businesses only meant targeting a certain user, the business owner, to have control over data. It made it simpler than a whole office of people calculating, reading, writing and filing hard copy paper. The typical business owner still has no knowledge of proper security and if they hire the wrong sysadmin then they had even less protection from inside.
DaemonR wrote:One of the major problems technology has today is that we are constantly making things more complicated for the user out there who says "technically, this should be called this and such and such study shows X amount of users want Y."
This is true in part. We as coders and anyone in IT are technical people. We like technical terms so that we know we are all talking about the same thing. I used to get many calls about my windows isn't working and when I get there to fix it I find the person meant the browser or office, nothing to do with windows itself. I don't understand all the names of the parts in a modern car but I'm still allowed to use one and if it's got to go to a mechanic I say the car's not running, not that this part or that part is broken. The technician/mechanic/doctor needs to be flexible and not expect the customer to know all the details. If they did they wouldn't be coming to you in the first place, they would do something themselves.
DaemonR wrote:The hard fact is that people don't know what they want. They prefer people to make choices for them. That's why Windows was so successful.
I don't agree with this part. I want things to work but that doesn't mean I want them to work your way. Windows was successful because DOS was already successful. People knew the company name and knew their old software would still work (for a few years anyway).
DaemonR wrote:Imho, if you want a good operator, base the entire thing on what the user already knows. Eg. If you're going to give it a folder icon, just call it a f***ing folder. (Sorry, I've been studying technological etymology for several years, and I've grown to hate acronyms, abbreviations, conjunctions, and 'technicalities' with a passion)
Maybe, maybe not. The first lot of home computers weren't really based on anything the average home user, sometimes only school kids, knew or could relate to. If the OS works as the user intends then it doesn't matter if it looks like a toaster or remote controlled TV. Just do the job the user wants and if that means different interfaces for different sectors of the community then that's fine. At work I expect a plain old boring desktop with office apps, email client, some coding tools etc. but when I'm home I might want to forget it's a computer I'm using and use it like a console or a tablet or a ride on lawn mower. Knowing it's compatible with my work machine and that I can play the same game or edit the same document on both machines doesn't mean they need to look or act the same way all the time.
"God! Not Unix" - Richard Stallman

Website: venom Dev
OS project: venom OS
Hexadecimal Editor: hexed
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

To each their own I guess. As for the comment about early computers not using terms related to common every day things, that's actually incorrect. Almost every single term we use describes something that's a physical thing or concept. There just aren't any resources available that teach you.

For example, you may have heard of the desktop metaphor, but did you also know that all terms that sound water-related (eg. stream, channel, flush, flood, surf, phishing, etc.) are actions involving the flow of data? "Booting", short for "bootstrapping", comes from the idiom "to pull oneself over a fence by their bootstraps"; a pun on the fact that the first stage of starting up a pc is called the POST (power-on self test).

I'm actually writing a book at the moment on the topic called "The Layman's Guide To Technological Lingo" that covers all of these terms and presents this unique method of categorization I discovered to allow average people to understand "geek-speak" simply by applying the knowledge they already have.


EDIT:
You also may have noticed my use of the term "operator" instead of "operating system" in my recent posts. This is also one of the things that I cover in my book. The term "operating system" is an over-complication that exists purely to give people nerdgasms and promote the use of acronyms. You cannot actually visualize what an operating system is or what it does like you can an operator. And it is also an incorrect term, because the word 'system' implies a process of operation, not a physical thing. To this end, ReactOS is a Window's operating system.
User avatar
b.zaar
Member
Member
Posts: 294
Joined: Wed May 21, 2008 4:33 am
Location: Mars MTC +6:00
Contact:

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

Post by b.zaar »

DaemonR wrote:To each their own I guess. As for the comment about early computers not using terms related to common every day things, that's actually incorrect. Almost every single term we use describes something that's a physical thing or concept. There just aren't any resources available that teach you.

For example, you may have heard of the desktop metaphor, but did you also know that all terms that sounds water-related (eg. stream, channel, flush, flood, surf, phishing, etc.) are actions involving the flow of data? "Booting", short for "bootstrapping", comes from the idiom "to pull oneself over a fence by their bootstraps"; a pun on the fact that the first stage of starting up a pc is called the POST (power-on self test).
That's an interesting little bit of history =) but the average user would never have heard of these terms so they aren't presented with something they are familar with. Most of my family and friends know nothing about file streams or booting. To a user it's just another magic box that puts things on the screen, just like how a radio makes invisible waves into audio. The first time these things were presented to a wider audience they had no reference to something similar. Also a user would almost never use the term data to refer to anything on their PC. It's all apps or files or documents.

A child can operate all these devices without the slightest clue of a how they work or what they are similar to. A 3 year old doesn't know anything about a physical office desktop in dad's cubical at work or that windows is suppose to mimic it. My phone doesn't feel familar to anything other than a phone.

One day we'll have a star trek like interface and people wont care that there's nothing like it in the real world context to be familar with.
DaemonR wrote:You also may have noticed my use of the term "operator" instead of "operating system" in my recent posts. This is also one of the things that I cover in my book. The term "operating system" is an over-complication that exists purely to give people nerdgasms and promote the use of acronyms. You cannot actually visualize what an operating system is or what it does like you can an operator. And it is also an incorrect term, because the word 'system' implies a process of operation, not a physical thing. To this end, ReactOS is a Window's operating system.
I noticed but I'm not sure exactly why you make the distinction. I always picture an operator as a person, like a driver or pilot operating machinery and the operating system as the process of accomplishing something. In computing an operator requests to open a file so the operating system opens a file. The operating system will go through the exact same process every time to open that file whether it's a tuesday afternoon or a hang over sunday morning. An operator may not get out of bed on sunday so the operator is replaced but the system of using the machinery is still the same.
DaemonR wrote:I'm actually writing a book at the moment on the topic called "The Layman's Guide To Technological Lingo" that covers all of these terms and presents this unique method of categorization I discovered to allow average people to understand "geek-speak" simply by applying the knowledge they already have.
Good luck with the book though.
"God! Not Unix" - Richard Stallman

Website: venom Dev
OS project: venom OS
Hexadecimal Editor: hexed
User avatar
Wajideu
Member
Member
Posts: 153
Joined: Wed Jul 30, 2014 1:05 am

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

Post by Wajideu »

b.zaar wrote:I noticed but I'm not sure exactly why you make the distinction. I always picture an operator as a person, like a driver or pilot operating machinery
That's exactly what an operating system does. It operates the computer. But in an even more abstract view, think of it like a telephone operator. The user (ie. the running process) requests the operator to be connected to a service (ie. a driver) and the operator establishes the connection. In abstraction, an operating system fulfills the role of a real life operator; and it's much easier to visualize what it does because an operator is something that exists within the real world. You are now able to apply real world knowledge to something you have little to no experience with.
Post Reply