Why desktop operating systems have completely failed at their job for the last 20 years
-
@Atazhaia it's the inconvenience of today architecture. In dos everything was root and you didn't litter all the drive with files. You would rarely have something writing out of its own directory.
-
@RaceProUK said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
They need to be "installed" before you can run them. Or at least all existing ones insist on it, I don't know if it's actually necessary.
Given the number of standalone Windows programs I've seen, it's clear that installing isn't a requirement for all programs. However, a large number of them do like to add all sorts of crap to the Registry, and sometimes to shared folders as well, and that's where installers come in.
Some program need to register COM component will need to write to registry anyway, much like you need to register rpc.d on *nix.
Regarding automatically installed daemons, it's just the same for *nix... It's better for Linux just because they have centralized package management, but it's the same if you have to download tarballs and build it yourself a lot. (Say if you're not on popular arch...)
And even on *nix systems, your program may write data to various places of /var directory or your home directory depending on what it wants/needs to do.
So yeah, by your definition, all OSs are not doing satisfactory level of job.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
Most apps should be single file executables IMO
The single "file" could be a folder or a container for other files (like a .zip). The difference between the two is pretty arbitrary if you think about it.
-
@Yamikuronue My idea was that an app was a (mostly) self-contained file that could be clicked and run, and you could also right-click and select "install" to register the file handlers, create desktop icons and stuff.
The two things are not strictly incompatible. For example, you could have
- A magic "apps" folder where all apps inside are considered "installed". So you could deploy software by just copying it there
- An app store that still works the same way they do today (download + install)
- The ability to manually "install" apps from anywhere else.
- The ".app" files could define whether they prefer to be installed before the first run, a bit like how you can make PowerPoint files that "launch" automatically, so most users would download, double click, install->yes, and it would run, but you'd be able to override that.
The thing is, by encapsulating programs, we suddenly get all this flexibility. You can make things work the way they do today, installing everything, or you can make them run directly from any folder as if they were normal files, or you can even make the programs run directly in the browser tabs when you enter an URL as if they were websites*, or you can set the OS to only run one program full screen without persisting the changes and get yourself a neat single-purpose computer.
* This reminds me of another neglected feature that would come in handy: application streaming.
-
Even without running as admin, applications can do lots of bad things: they can read all my documents, delete them, encrypt them and ask for a ransom, install themselves to silently run on the background, and log all passwords I enter into the browser.
There's no reason why Minesweeper should be able to read my emails. It's called the principle of least privilege or just fucking common sense.Sounds like what you're really looking for is Midori - bake it into the language in which you program the OS and everything is much easier.
-
@Atazhaia said in Why desktop operating systems have completely failed at their job for the last 20 years:
@kt_ Android 6.0 changed to iOS-style permissions where the app asks when it needs to use a particular permission. Apps written for older versions of Android will still ask for all permissions it could need at install, though.
That's nice they changed it. This is the correct way to do this.
For example, I don't allow apps access anywhere, not even fucking notifications. And this really makes me feel like a lord of my OS. I remember my old android days (2.x) where every fucking app would spam me with notifications and there was no way to stop them.
-
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
This is the correct way to do this.
I agree. E.g. I want to decide when I want to allow my camera to be used.
Or not used. Probably more especially the latter.
-
@djls45 said in Why desktop operating systems have completely failed at their job for the last 20 years:
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
This is the correct way to do this.
I agree. E.g. I want to decide when I want to allow my camera to be used.
Or not used. Probably more especially the latter.Also, that forces app makers to actually explain to you why they want to access something (since just saying "I need it" is likely to end up in a straight "no"), which is better for everyone.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
The two things are not strictly incompatible. For example, you could have
- A magic "apps" folder where all apps inside are considered "installed". So you could deploy software by just copying it there
- An app store that still works the same way they do today (download + install)
- The ability to manually "install" apps from anywhere else.
- The ".app" files could define whether they prefer to be installed before the first run, a bit like how you can make PowerPoint files that "launch" automatically, so most users would download, double click, install->yes, and it would run, but you'd be able to override that.
Wouldn’t it be far simpler to just have an app that starts when you (double-)click its icon, regardless of where it is in the file system? Installation is then a matter of putting it wherever is most convenient for you and/or that you have write access to.
File types can be implemented as behind the scenes magic at the OS level: when the OS detects that a new app exists on the system, it looks at the types of file the app wants to be able to open, and if it detects an app is no longer there, it removes it from the list of apps that can open the files the app claimed.
Wait, didn’t I just describe macOS? (And possibly even as far back as NeXTSTEP, but I’m not sure how apps were installed on that.)
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
of course you'd need the same OS in all three for that
Or a bytecode interpreter rather than native code
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
The single "file" could be a folder or a container for other files (like a .zip). The difference between the two is pretty arbitrary if you think about it.
That's how OSX works. a .app is actually a directory with whatever executables, libraries and preference files it needs.
-
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
not even fucking notifications
I think you might notice that without the notifications…
-
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
I remember my old android days (2.x) where every fucking app would spam me with notifications and there was no way to stop them.
They fixed that before the full permissions refresh by letting you long press a notification to get to the app info, where there was an option of whether to allow notifications.
-
@Gurth said in Why desktop operating systems have completely failed at their job for the last 20 years:
Wait, didn’t I just describe macOS?
Yes. Most of @anonymous234's post described OSX/macOS too.
-
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
@Atazhaia said in Why desktop operating systems have completely failed at their job for the last 20 years:
@kt_ Android 6.0 changed to iOS-style permissions where the app asks when it needs to use a particular permission. Apps written for older versions of Android will still ask for all permissions it could need at install, though.
That's nice they changed it. This is the correct way to do this.
For example, I don't allow apps access anywhere, not even fucking notifications. And this really makes me feel like a lord of my OS. I remember my old android days (2.x) where every fucking app would spam me with notifications and there was no way to stop them.
You really should use Linux, with SELinux enabled you have strict control on what program can write to which folder.
Just that last time I checked people tends to turn it off ASAP, much like UAC in Windows.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
Most apps should be single file executables IMO
The single "file" could be a folder or a container for other files (like a .zip). The difference between the two is pretty arbitrary if you think about it.
The down side is this would make virus scanning much much longer than what you currently experienced, and the scanner will need to pick up more memory for extracting contents. (Try scan folders containing all-in-one installer EXE, and another folder containing contents of those EXEs extracted by "msiexec -a" for "compare and contrast")
-
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
And this really makes me feel like a lord of my OS.
If you feel that way on iOS, you need to see a psychologist
I remember my old android days (2.x) where every fucking app would spam me with notifications and there was no way to stop them.
Now (I think starting with v.6) you can select a notification and the choose to have notifications from that app to be silent, never show, etc. Even for Google apps
Edit: 'd
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
Yes, in their defense, Linux does have SELinux, AppArmor, a wide variety of other sandboxing projects, and containers now, but as far as the average user can see they don't exist at all.
And advanced users who do know about them turn them all off ASAP because they just aren't worth the hassle.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
In dos everything was root and you didn't litter all the drive with files. You would rarely have something writing out of its own directory.
Because all you had were two floppy drives.
Or a hard drive that would actually make internal phone storage seem generous.
-
@boomzilla said in Why desktop operating systems have completely failed at their job for the last 20 years:
Because all you had were two floppy drives.
Two? Check your privilege.
-
@loopback0 Good point. I do remember faking out the
copy a: b:
routing with the swapping floppy dance.
-
@boomzilla now I feel nostalgic of the sound of floppy drives spinning and changing tracks
-
@Gurth said in Why desktop operating systems have completely failed at their job for the last 20 years:
File types can be implemented as behind the scenes magic at the OS level: when the OS detects that a new app exists on the system, it looks at the types of file the app wants to be able to open, and if it detects an app is no longer there, it removes it from the list of apps that can open the files the app claimed.
Wait, didn’t I just describe macOS? (And possibly even as far back as NeXTSTEP, but I’m not sure how apps were installed on that.)
But can you attempt to open a file with a program of your choice, instead of what's registered with the OS?
If I've got a hex editor, would it be listed as one of the "open with" options for any file?
If I want to treat a .docx as a .zip file so I can dig into its internals, how difficult is that to do?
-
@djls45 said in Why desktop operating systems have completely failed at their job for the last 20 years:
If I've got a hex editor, would it be listed as one of the "open with" options for any file?
If I want to treat a .docx as a .zip file so I can dig into its internals, how difficult is that to do?You sound like a hacker who needs to be locked out of your computer for all of our safety. Criminal.
-
@boomzilla said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
Yes, in their defense, Linux does have SELinux, AppArmor, a wide variety of other sandboxing projects, and containers now, but as far as the average user can see they don't exist at all.
And advanced users who do know about them turn them all off ASAP because they just aren't worth the hassle.
QFT, because I recently had to disable AppArmor due to it having started blocking me from attaching USB devices to my VMs.
-
@loopback0 said in Why desktop operating systems have completely failed at their job for the last 20 years:
Yes. Most of @anonymous234's post described OSX/macOS too.
Yup. It helped that the Mac didn't have the problem of being backwards compatible with DOS programs.
While not what Microsoft recommended back in the day, it wasn't impossible to make a program relatively self-contained even when it depended on things like proper registry entries. Back in the Visual C++ 6 days I worked on a program that had scripting support via COM, so it had a type library and other fun things to put into the registry. I ended up having it check at startup to see if it had moved and reregister itself if needed. I think it failed silently if the writes failed (likely because you were a limited user), but it may have given a warning dialog. Either way the program would still work, just without scripting support.
You could also reregister or clean out everything it wrote to the registry and user profile folders from the command line.
I think the only people who used these features were the developers, but it was something the higher-ups wanted.
-
@Parody said in Why desktop operating systems have completely failed at their job for the last 20 years:
It helped that the Mac didn't have the problem of being backwards compatible with DOS programs
OSX apparently doesn't have the problem of being backwards compatible with OSX from a couple of years ago
-
@UndergroundCode So it is using Zones (Solaris)?
-
@Jaloopa said in Why desktop operating systems have completely failed at their job for the last 20 years:
@Parody said in Why desktop operating systems have completely failed at their job for the last 20 years:
It helped that the Mac didn't have the problem of being backwards compatible with DOS programs
OSX apparently doesn't have the problem of being backwards compatible with OSX from a couple of years ago
It's less obsessed with backwards compatibility than Windows, for sure.
IIRC the only proper breakage was when going PowerPC -> x86 then when going to 64-bit.
-
EDIT: Oh FFS Node thanks for the double post!
-
@loopback0 it seems that the general philosophy is that if an OS update breaks a few applications then the developers should update them rather than the OS team adding shims and the like. I'm sure when I upgraded from 10.3 to 10.4 (the last time I was regularly using a mac) there was at least one problem app.
iOS also has an upcoming breakage when they switch off support for 32 bit apps. My MIL heard about this and was worried it would mean her iPhone 4 would stop working
-
Seriously, Microsoft really wants people to stop with all of that, which is why they wanted to push UWP so heavily. And considering that as a platform, UWP is specifically designed to work on any kind of display, and is sandboxed and more secure than traditional apps, I sure hope they manage to catch on a bit more. They certainly helped by adding the whole centennial thing, where you can package any x86 app, and it sandboxes it and distributes it already installed, but for the most part people complain and don't see why they need to change. They keep targeting x86 and hooking into anything, and yell and scream when they can't (Windows RT).
It's possible this could improve, but at this point it's a developer issue.
-
@lucas1 said in Why desktop operating systems have completely failed at their job for the last 20 years:
@UndergroundCode So it is using Zones (Solaris)?
Don't know what Solaris Zones are, sounds similar though. It's effective enough that it's actually pretty tough to retrieve data manually from an app that you wrote running on your phone with a hard-wired ADB connection to the phone.
-
@wharrgarbl said in [Why desktop operating systems have completely failed at their job for the last 20 years]
But partial updates aren't worth it, we're not on dial up anymore. Just test your software better instead of pushing updates every day.
Pretty much everything needs to access the network these days, and unencrypted traffic is beh. So people should srsly embed something like OpenSSL in their programs, and when the n+1th bug OpenSSL bug is public you'd both trust them to all provide fixed updates in time (and if it's a one-girl project and she's backpacking in Tasmania for half a year?) and be prepared to update pretty much every program you have for one stupid bug?
-
@LaoC no, developers should write their own encrypted network transfer logic. It can't be that hard, right?
-
@TimeBandit said in Why desktop operating systems have completely failed at their job for the last 20 years:
@kt_ said in Why desktop operating systems have completely failed at their job for the last 20 years:
And this really makes me feel like a lord of my OS.
If you feel that way on iOS, you need to see a psychologist
Not taking the bait today. ;)
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
To save me
and everyone else14 years of computer pain.I had hardly any of that. My desktop was reinstalled once since about 2002, and that was when I switched to dual 32/64bit userland (the switch to all-64bit when I decided to drop all the legacy crap that still required 32bit libraries didn't need a reinstall). I many have half a metric ton of redundant config files around but they don't hurt except or adding a few seconds to backup times. Other than that, packages can be removed just fine. The arbitrary logic that can be run during installation runs in a sandbox and can't create any files the package manager won't register.
Yeah, saving state could be easier. I have user account separation only as a manually set up hack for my browser. X11 is a PITA, security-wise. But the rest of your gripes are Windoze's.
-
This post is deleted!
-
@Parody said in Why desktop operating systems have completely failed at their job for the last 20 years:
While not what Microsoft recommended back in the day, it wasn't impossible to make a program relatively self-contained even when it depended on things like proper registry entries.
I coded a soft-phone some years ago, it was using a DLL and I included it as a resource. On startup, it would check if the DLL was found, if not, it would extract it. All the settings where saved in the registry, and created on startup if not found.
You also had the option of saving the settings in an INI file instead.No need to install anything. Drop the exe somewhere and double-click it.
A self-contained application. @anonymous234 would have liked it.Of course, this was before UAC.
-
So, I formatted my laptop over the weekend, and it's seriously been a long time since I did that last (typically I install fresh on a machine when I get it, but I don't format much).
And it turns out that I didn't even need to. :/
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
OpenSSL is an OS responsibility IMO, but for other libraries, yes, that's how I would want them to work.
Because there is much more stuff breaking because it was tested in v. 1.x and now you're running on 1.y than security bugs caused by some library you used.
That, too, seems to be a common thing on MS. The only thing on Unixes I can come up with right now where this is a frequent problem is the whole media codec ecosystem—ffmpeg, libfaad and friends. and of course the GNOME morons who come up with something basically nifty like gstreamer and then decide to have a major API overhaupl between 0.10.1 and 0.10.2 or something.
Then again, those libraries are also a treasure trove of vulnerabilities.
-
@wharrgarbl That is certainly a hairy topic. If the program just packs all the libraries, you can know it will Just Work™, but there won't be any security patches.
Alternatively, the OS could have some mechanism to automatically replace libsomething 1.5.1, with libsomething 1.5.2 when loaded, as long as the author of libsomething has pinky promised that 1.5.2 does not break compatibility with 1.5.1. But that will inevitably break sooner or later.
-
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
Alternatively, the OS could have some mechanism to automatically replace libsomething 1.5.1, with libsomething 1.5.2 when loaded, as long as the author of libsomething has pinky promised that 1.5.2 does not break compatibility with 1.5.1
No, that is a bad idea. If the application is affected by some serious security issue, they application would release a new version compiled with updated libraries.
-
@boomzilla said in Why desktop operating systems have completely failed at their job for the last 20 years:
@djls45 said in Why desktop operating systems have completely failed at their job for the last 20 years:
If I've got a hex editor, would it be listed as one of the "open with" options for any file?
If I want to treat a .docx as a .zip file so I can dig into its internals, how difficult is that to do?You sound like a hacker who needs to be locked out of your computer for all of our safety. Criminal.
But I'm Not a Villain!
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@boomzilla now I feel nostalgic of the sound of floppy drives spinning and changing tracks
It's far more fun to play with the stepper motor though: Floppy sounds (Newer recording in Ultra HD, or this classic if you want something else)
-
@loopback0 said in Why desktop operating systems have completely failed at their job for the last 20 years:
@Gurth said in Why desktop operating systems have completely failed at their job for the last 20 years:
Wait, didn’t I just describe macOS?Yes.
Could I have seen it coming that somebody wouldn’t get I was asking a rhetorical question?
Most of @anonymous234's post described OSX/macOS too.
That was the impression I got too. Much of what was proposed is the way macOS works from a user’s perspective, unless it’s for “big” software that wants to install components in various locations. True, apps will leave behind stuff like preferences, but at least those don’t slow down the whole computer like they eventually do in the Windows Registry.
-
@djls45 said in Why desktop operating systems have completely failed at their job for the last 20 years:
But can you attempt to open a file with a program of your choice, instead of what's registered with the OS?
You drag the file icon onto the icon of an app you want to try, and see what happens. (On a Mac, the easiest way to open a file in a different app than the standard is to drag it onto that app’s icon.) The
rightsecondary-click menu on macOS offers all the programs that claim to be able to open the file, plus the choices “App Store” to find another, and “Other” that lets you pick any program on your computer.If I've got a hex editor, would it be listed as one of the "open with" options for any file?
Interestingly, the only hex editor I have on this computer (0xED) doesn’t show up regardless of the type of file I try, even though in its Info.plist file it seems to claim to be able to open all file types. Trying the drag-and-drop method, it seems to open everything, like you’d expect.
If I want to treat a .docx as a .zip file so I can dig into its internals, how difficult is that to do?
See above: try to open in a program that will open .zip files, and see if it recognises it. Else, change the extension to .zip and double-click the icon :)
-
@loopback0 said in Why desktop operating systems have completely failed at their job for the last 20 years:
IIRC the only proper breakage was when going PowerPC -> x86 then when going to 64-bit.
No, that worked fine, thanks to Rosetta (for older apps) and multiple-architecture binaries (for newer ones). The real breakage occurred when Rosetta got removed in OS X 10.7, about six years after Apple switched to Intel.
-
@wharrgarbl said in Why desktop operating systems have completely failed at their job for the last 20 years:
@anonymous234 said in Why desktop operating systems have completely failed at their job for the last 20 years:
Alternatively, the OS could have some mechanism to automatically replace libsomething 1.5.1, with libsomething 1.5.2 when loaded, as long as the author of libsomething has pinky promised that 1.5.2 does not break compatibility with 1.5.1
# ll /usr/lib/libpcre.* lrwxrwxrwx 1 root root 16 Mar 27 23:09 /usr/lib/libpcre.so.1 -> libpcre.so.1.2.8 -rwxr-xr-x 1 root root 483404 Mar 27 23:09 /usr/lib/libpcre.so.1.2.8
No, that is a bad idea. If the application is affected by some serious security issue, they application would release a new version compiled with updated libraries.
-
@LaoC that's more reason to sandbox and isolate all the things
-
@wharrgarbl That's a fuckin good reason to use shared libraries that the OS can update and then all your applications are using the version that was fixed, instead of needing every app to update with a newer version of the library