Should Being Competitive With Windows Matter For Linux?
An anonymous reader writes "Is Linux being held back by distributions bent on competing with Microsoft Windows? This article argues that it's a real possibility. Quoting: '... what was apparent early on during my Linux adoption was my motivation for making the switch in the first place — no longer wanting to use Windows. This is where I think the confusion begins for most new Linux adopters. As we make the switch, we must fight the inherent urge to automatically begin comparing the new desktop experience to our previous experiences with Windows. It's a completely different set of circumstances, folks. ... The fact that one platform can support a specific device while the other platform cannot (and so on) doesn't really solve the problem of getting said device working. You can see where this dysfunction of thought can become a big problem, fast."
The registry isn't bad because it's stored in binary form, or because it's heirarchical, or because it supports transactions, or because it has ACLs. These are good (or at least acceptable) things.
The registry is bad because it's global and forces a lot of configuration to be global as well. For example, COM components are registered globally, so only one DLL can be associatded with a class ID at a time. That's why you can only have one version of Internet Explorer installed on the same machine. Yes, users have their own registry subtress, but not every key can be configured under the user-specific heirarchy. Even a user-specific key can only have one value at a time for a given user. Unix systems, on the other hand, use environment variables to hold (or point to) configuration information, which results in a lot more flexibility.
Because registry values are global, application developers only consider the case of running one program at a time. If you want, say, two copies of Outlook, each with different settings, you'll need two separate users. A lot of programs don't even support multiple concurrent instances, which is maddening.
Another maddening side effect of the registry being global is that it's not possible to have the equivalent of NFS-mounted home directories under Windows. Say you have a domain user foo\bar on machines A and B. It's natural to want them to have the same %USERPROFILE% (read $HOME) on a fileserver somewhere, and on Unix, that works just fine. But under Windows, when the user logs into machine A, the system will lock ntuser.dat (the file containing the registry), which prevents the user logging in under machine B. Application-specific configuration files that are locked only during actual changes don't have this problem.
The global nature of the registry also makes it difficult to maintain application configuration: if you want to isolate the configuration information used by a program, you're essentially reduced to looking at procmon output and seeing what registry keys it touches. While in principle programs should limit themselves to storing information under HKLU\Software\Blah\..., in practice, they scatter stuff all over the registry, especially when they register COM stuff. You can't keep just, say, Word's configuration under version control.
When people say they hate the registry, what they mean is that they hate that Windows is not very well-modularized. Isolating one application's registry configuration is like removing one egg from an omelet.
A better model would have been to have application-specific registries, searched according to a PATH-like environment variable. In this scheme, when the system needed to, say, look up a COM class ID, it would just search each registry in sequence until it found the right one. Applications would simply store their configuration and registration information in their own registry, making management easy.
But like most Windows brain damage, this scheme wouldn't have worked on a 386SX with 4MB of RAM in 1995, which means it can't possibly be changed in 2010. As we all know, design decisions are irrevecorable and eternal (and I'm only half-joking).
You do realise you're talking bullshit, right?
You can already get the Toshiba AC100, and ARM laptop/netbook thing based on nVidia's Tegra platform. It ships with Android but Ubuntu apparently runs nicely already. It's pretty cheap.
ARM have PCI and PCIE bus available as well as a lot of other standard stuff like USB.
People who care about security hate it too.
I do? The security model makes sense, you have coarse-grained user oriented controls (like UNIX has) and also fine-grained NTLM permissions. Kind of like a file system for keeping small pieces of data.
As does anyone trying to fully uninstall an uncooperative program. Things can stay hidden there essentially forever.
How is that exclusive to the registry? You can at least search through it all pretty easily. If a program doesn't want to be uninstalled there are better ways to stick around than using the registry.
Besides, it's a bunch of settings that is completely unorganized, does not exist as a single file anywhere on the hard drive, and is essentially hidden from normal users. It should be hated on principle.
It's in C:\Windows\System32\config\ .. Yes it is hidden from normal users, because it should be. If it's unorganized that's down to the applications which use it (like the filesystem itself). For the most part applications use interfaces which automatically write only to their designated areas, and it's well organized. Either way the important thing is that it can still exist while being unorganized. /etc, /usr/local/etc, ~/.appname, ~/.gconf/, /var/db, etc really more organized/logical?
Anyway is
If you think it's hidden and want access to it you can use regedit, or better yet use powershell, and you can navigate the registry like a filesystem:
> ls -Recurse HKLM:\SOFTWARE\Microsoft | where { $_ -match 'Explorer' }
Mainly though it's just a remake of a non-distributed, integrated LDAP. If Linux used OpenLDAP for configuration instead of config files it would look pretty similar.
As is often the case it's the people who misuse the platform that deserve most of the criticism that the platform gets..
// MD_Update(&m,buf,j);
I had to run a control panel from the command line using sudo in order to make it keep my dual monitor preferences as recently as last year.
As recently as last year.... So one year ago (it's November). That's at least two versions back, maybe three. You should try it again. I am especially impressed with latest 10.10. I wasn't sure if I would like it, but I do. There are always a few bugs...sound in particular was annoying while all the Pulseaudio nonsense was being sorted out. But I haven't had a problem yet with the latest version. I don't have dual monitors, so can't vouch for that.
Also, "has a few rough spots" does not equate to "broken for end users." I've installed Ubuntu for plenty of people, and yes there have been occasional hiccups that I've had to help them fix, but completely usable. They're not going to delete their Windows partition any time soon, but they are happy booting into and using Ubuntu for various things.
> Erm, what's wrong with "chmod og-rwx somedir/"? Any decent backup
> program should be able to deal with directories with unfriendly
> permissions.
Root is immune to normal permissions. Thus backup programs running with root privileges assume they may read any file on the system. Taking a complete backup of a filesystem is otherwise impossible unless you go the dump2fs route and manually frob the raw device file. ~/.gvfs doesn't actually need to be backed up, but having to manually exclude it is a PITA and is certain to grow more exceptions over time.
The breakage of the UNIX API is in the fact it blows chunks just asking what sort of thing that name is and what it's permissions are. As a separate filesystem my configuration of rsnapshot wouldn't try to back it up anyway, but it gets into trouble just trying to determine that it is a mount point.
Democrat delenda est
That's why we have /opt. Said incompetent developers can make all the mess they want there and it's isolated from the rest of the system.
$ make available
WTF is this? It seems to spit out an endless tirade of incomprehensible and meaningless shit. For instance:
0 10 FontSmoothing {Type, Text, SPIActionGet, SPIActionSet...}
It's a registry entry called "FontSmoothing", with 0 sub-entries and 10 keys (Type, Text, SPIActionGet, etc).
If you want more info about what PowerShell is returning you pipe the output to get-member, and it'll tell you what properties and methods are available. For example you could add and alter the set of keys returned, or add another where clause to limit your selection to a set of keys you're interested in.
Because it's structured and has a limited number of types you don't need to worry about the various locations or the structure of config files, and can alter and manipulate the returned output.
How is this in any way navigating "the registry like a filesystem?"
Because you navigate the filesystem in a similar way when using powershell, using ls on a registry entry like you would use it on a directory. It really shouldn't be too hard to see the similarity.
I can ls -R /etc | xargs cat and get a completely different pile of incomprehensible shit out of a Linux box, but at least it resembles English.
But neither seem to have any particular use.
If you can't think of a use for it okay, but that doesn't mean it isn't useful. /etc/Microsoft | ( where read f; do grep -q "Explorer" $f && echo $f; done ))
(By the way that PowerShell is more equivalent to find
Feh. If you were making a point, I've missed it. Sorry.
You said the registry was hidden on the hard drive and not accessible to normal users. My point was that it isn't hidden and is accessible. HTH
// MD_Update(&m,buf,j);
Winkey+"path"+
Scroll down to path, click edit, then edit it.
Works in Win7. If you can't figure that one out, I'm pretty sure you won't need to change the path variable.