Microsoft explains the lack of Registry backups in Windows 10
ghacks.net
ghacks.net
My WinSxS folder alone is almost 10GB. If they wanted to save space, even a modest improvement in managing updates would yield space saving results orders of magnitude greater than this.
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
Is this a recommendation/suggestion of yours, or a default state?
The original windows installation media could be used to restore the system if something went horribly wrong anyway. Why the need to keep every previously used version of every dll?
There was an Insider blog post somewhat recently about Windows 10 trying to repack things into installation media over time, when it's a recovery image on the local machine. It sounds like they are working to better the situation.
https://github.com/Chuyu-Team/Dism-Multi-language/blob/maste...
I wasn't even able to install Windows 7 a few months ago due to the WinSxS folder continuously bloating to fill the disk (stock on a T440p - super weird issues). It's almost as if they broke new-install update cycles on Win7 on purpose =/
My question is why the hell would they turn off a feature like this in the first place?! What is the actual "money making" motivation behind the decision?
I don't think the Windows folder is a particular good indication of Windows space usage.
A while ago Microsoft put a tablet killer design out there: 11 Screen, 4GB RAM, Touch Screen and 32GB SSD. Man+dog shipped them. Then man+dog found the machines died because Windows ran out of disk space on patch Tuesday. So regardless of what is in the windows directory 32GB is not enough to run Windows.
We "fixed" the problem by replacing Windows with Linux. Total size of Linux install, which included Libre Office and a selection of browsers: less than 4GB.
Microsoft attempting to fix the size issue by removing 100M of backups when the scale of the problem they are trying to solve is 4GB vs 32GB is a almost laughable.
More depth: https://www.thewindowsclub.com/winsxs-folder-windows-7-8
Its a royal pain in the ass for 120GB ssd installs or smaller.
[0] https://www.dell.com/support/article/ie/en/iedhs1/sln310147/...
The problem is that MS (and the mainstream linux DE's) aren't willing to admit that some of the "modernization" they have done over the last decade has done nothing but increase the visual lag while massively increasing the resource consumption for what is frequently little more than transparent windows (cause high DPI is still not quite there in both cases...).
My KDE is running in < 600MB right now. It's Chrome, Spotify and Slack that are eating memory.
Also, at least in KDE you can set animation speed to instant and get immediate feedback.
It's super stable, usable and polished.
The reason you probably are assuming Win 10 is unusable is that on your 8 or 16GB machine Windows uses free RAM to speed things up. It's is smart enough to not do this on memory constraints setups.
Funny thing is Linux users often made this same mistake with "free -m", hence the need for this site: https://www.linuxatemyram.com/
The machine became a Debian machine. It was "bricked" only to the extent that there was no way forward from the failed update to getting Windows back.
50MB here, 100MB there ... pretty soon you're talking real storage usage.
Because there should be.
It's crazy that everything still wants to put stuff on C:\ ... I'm looking at you Visual Studio and Win SDK.
Plus Users\Public shared goodies. And the %userprofile%\AppData. I get that every application thinks it needs to put its cache/files there, but then why can't folks relocate users' homes? :/
I'd love if that team would also take a look at Android, where you simply can't not install on the "system drive" aka. main phone flash.
Doesn't hurt that it helps speed up the upgrade cycle since users run out of on-board space sooner.
In how many places does Windows concentrate the settings for everything?
Makes sense to get rid of one of those, especially as restoring a registry backup can lead to unintended issues if you've installed something since, whereas a system restore point takes care of all of that for you.
People put etc in git even: https://joeyh.name/code/etckeeper/
The registry is much more magical and it is difficult to find and remove cruft, so I suppose there's an argument against it.
Hmm, I've never done this. In terms of config files, are there never any breaking changes between versions? Like ..is a v1.0 config file always guaranteed to work with v2.0 and vice versa? I guess and a related question - what is the best way to determine if an /etc/ config file isn't required?
It gets more exciting the further you drift - e.g. if you're going to Debian buster, or something more significantly different like Fedora/RH, you'd probably want to cherrypick config changes from /etc, though /home should be fine(tm).
you start culling packages with apt purge, that should remove config files too, and see what breaks, if nothing, well, try to push your luck further.
also with dpkg -S /etc/some/file you can see which file belongs to which package and target that package
usually on a server you know what you don't need. it's a bit more trial and error on a desktop. (because those can break in a lot more fun, unexpected ways, harder to know what is needed)
Imagine the use case in reality. You accidentally rm -rf your /etc folder but you still have the git tree. /etc itself is gone, entirely. Most of your tools will seize working almost immediately, the only chances you have are having a terminal already open to a root shell. Your Virtual TTYs on other screens won't work (login uses /etc/passwd, which is gone) as well as any sudo command.
Recovery from the life system is likely impossible unless you have a root shell open and git doesn't refuse to work (it might since it checks for /etc/gitconfig, if you made any critical settings here, git stops working). Live recovery also has other issue; some apps might still be writing to or reading from /etc. They might have an open handle. Recovery will result in some processes of the same binary running with different configurations. That will be a joy to discover once it inevitably starts to corrupt the system stability.
So your only way of meaningful recovery is a live system on a USB stick. Do you have one ready to use right now? Like, not prepared in a shelf somewhere but right now is there a live linux system within your reach? If not, it's rather likely it will take a while to find it.
Once you've done that, you can bootup your computer, unlock any encrypted disks you use and install git into the live system. Then you hopefully remember how to recover a git repo using it's tree only, if not, hopefully the live disk's network works.
If recovery succeeds over git, you can reboot and pray the last checkpoint in git isn't too old. Have you changed the LUKS keys in the meantime and did you forget to checkin crypttab? Or did you change your Xorg Conf because X stopped working?
The short answer is; it might be easier and just as complex to simply reinstall the system while backing up your home folder.
I had to powershell candycrush off the drive for god's sake.
> Advertising revenue is falling fast across the Internet, and independently-run sites like Ghacks are hit hardest by it. The advertising model in its current form is coming to an end, and we have to find other ways to continue operating this site.
It's no wonder Google is pushing to remove (partially) the ability to block ads in Chrome. If the business model based on ads is seriously at stake, a big chunk of the revenues of Alphabet is compromised.
One could leap to the assumption that ghack's target demographic are more likely to embrace ad-blockers, which is why they're being hit hard.
But that fundamentally breaks the absolute fraud and house of cards of the entire web ad industry and make layers of ad people obsolete so it won't happen.
It feels a lot like cable companies: "Our model is absolute shit but we don't need to change, you do." It's why I'm completely unsympathetic to the pending death of the cable and ad industries. They both were in a Sears position to dominate whatever paradigms come next.
The whole model with ads on the internet and the related tracking and profiling of everyone's activity is just terrible. But it's also going to take a lot to replace it with something less bad.
I do kind of disagree. I don't think it needs to be a lot more complicated. I just think the industry kept growing to a point that it needed to justify complexity. There's entire categories of jobs that don't need to exist.
Consider how advertising works for YouTube sponsorship. It's literally just some person emailing another person saying, "hey I've seen your site and based on a bit of research (the thing that justifies my jobs existence) I think your personality and demographic and other factors are all a match for advertising this product. Want to talk about it more?" And then the advertising agency hands over a package for the YouTuber to fit into their channel in an organic, appropriate way. Why oh why is that so hard for the web ad industry to do? Let's hash out the details, and then our guys will send your guys some html and other assets and you can plug it in to run for a month, using whatever technical architecture you use to run ads.
The entire point of that complicated web is to eliminate the cost of all those people and move that 0.1% that you could actually do to closer to 80%.
While it is true that we have given too much power to advertisers the solutions to the privacy problems that solve the advertisers requirements is hard (remember they are the only ones paying into the system so dropping their requirements won't happen). There have been some technical papers put forward but they are as complex as BitCoin is in order to actually allow for a small subset of the features the terrible leaky privacy of the modern web gives them for no effort.
The same way print ads have worked for ... centuries?
Digital ads with analytics work 1000 times better.
There're issues with current state of online advertising, but when was last time humanity said "improving this would be a great business, but you know what - we don't want it to be better"?
When you externalize costs like this anything is easy to justify, I will ask a different way: should we be reconsidering forcing the costs of adtech's growth in to an engaged panopticon on to society? Do ads need to be 1000 times more efficient (and profitable, if Alphabet and Facebook's quarterly reports are to be believed) if they have so many external costs which the ecosystem is simply unfit to solve itself?
In what way could they possibly work 1000 times (or, ignoring the hyperbole) 10x or even 2x better?
They don’t magically grant consumers more money to spend on goods and services.
It’s a zero-sum game in which companies compete in advertising budgets, instead of producing better cheaper products.
So if I'm reading a review of a new car for example, and there's a full page ad for the new Ford Focus alongside it, I'm not going to be interested? Seems more relevant than constantly being bombarded with ads for mattresses after buying one 6 months ago.
Have you compared the ROI between the two? Why would anyone bother with print ads at all if this was the case?
They mostly don't, hence why businesses dependent on print ads have had to radically reinvent themselves or die.
Or simply reverse proxy it and put that in an IFRAME (or use JS and lazy load it into a DIV).
The current problem is that every ad engine tracks everything they touch. Instead of tracking how well a particular ad performs on a given site. (Of course ad engines try to show ads that are relevant to the profile they built up, but since the hit rate is extremely low, most of it is just noise. Which is very annoying.)
To solve the self-reporting trust issues make the sites report each impression separately with some proxied meta data. (Which is equivalent to always reverse proxy-ing.)
Which would be a bit slower than today (because most sites are not CDNes around the world, but most ad engines are), but who cares, the megabytes of shit downloaded and running on each site slows down UX more.
It absolutely bewilders me how terribad the UI is. You have this fancy UI but if you ever click one or two options deep you end up getting these alternately styled legacy interfaces. It's so incoherent.
It really makes windows 10 feel like a skin on top of windows xp.
So when the article says Microsoft wants to push users into windows 10 all I can think of is that it's for the good of Microsoft. But they had to add a little window dressing to make the users happy.
I can tell you first-hand from trying to get some of that fixed years ago, there’s just so much STUFF in Windows that is hardly ever seen, or should only be seen by “IT professionals” who supposedly don’t care, that there will never be enough resources or time to fix it all.
Consider: can you change the clock time on your phone? I've never even considered doing so, personally. Seems like it'd screw up the GPS, if it was possible.
Anyone whose first computer was a smartphone isn't going to think of changing their computer's clock time. To them, the time is a network feature, not a local feature.
On an iPhone:
Settings > General > Date & Time
Indeed. Even if you have the temerity to go and change the clock, the iPhone is secretly maintaining the true time internally and can use it or revert to it at will. I'm making a bold claim, so here are the steps to reproduce:
- Go to Settings -> General -> Date & Time -> Set Automatically -> disable
- set an incorrect time
- Go to Settings -> {Wi-Fi, Bluetooth, Cellular} -> Off
- Go to Settings -> Airplane Mode -> enable
- go someplace without any wifi or change the wifi password on your access point or disconnect/power-off your access point
- remove the SIM card from the iPhone
- Now go back to Settings -> General -> Date & Time -> Set Automatically -> enable
- Surprise surprise! The date and time revert back to the correct value even though you have no possible network connection. How did it know the correct time?
Implementation thoughts: If the true time is 6:00pm and you change it to 9:00pm, the iPhone could calculate the offset as 3 hours and 0 minutes, and show you the time as 6:00pm + 3h = 9:00pm, but knows that the true time is really 6:00pm. The same effect could also be achieved by having two internal real time clocks (aka time of day clocks), one for the true time and one for the time you set.
My theory is that they'd prefer users not messing with the clock, but they provide a UI for setting your own time (such as for people who like setting their clocks 5 minutes ahead to never be late for meetings). However, they keep the true time for other purposes (perhaps for logging, syncing, or something else?).
Though I didn't mention it earlier, I also had location services disabled:
- Go to Settings -> Privacy -> Location Services -> Off
The above supposedly disables the GPS or use of the GPS data.
You've never traveled to another time zone?
The Control Panel isn't that deep. It's not as though Microsoft needs to create a UI for every advanced Group Policy setting.
The new Settings app was introduced with Windows 8 in 2013. That means Microsoft has had six years to complete the transition.
Windows is space age tech compared to the garbage these companies pull off.
I think you'd see that Microsoft gets this. Win8 was all dupes. Initial Win10 release removed most of the dupes and they've removed more with each Win10 release. The strategy is pretty clear - incremental rewrite based on what people use.
The problem is, for some reason the presentation is tightly coupled/tied to the data model of the settings. Otherwise there would be no need to have 2 versions of it.
Which is OOP no-no 101.
Shrug. Corporate IT.
Looking through the deprecation notes, it looks like some language settings were de-duped in a 10 update https://docs.microsoft.com/en-us/windows/deployment/planning....
It's slow work. Microsoft has gotten more aggressive about change compared to ten years ago, but they are still very conservative. Users don't like it when the UX changes.
It really, really is.
"that deep" should be read in terms of the resources of a large company. It's a small fraction of the OS.
1. You already know exactly what functions it needs up front, unlike the first time you coded it.
2. You have much more advanced libraries and development environments available.
3. You have more years for the redo than the original took.
I would not call that "incredibly complicated". I would call it "doing a significantly easier version of what you already did".
And "The Control Panel isn't that deep. It's not as though Microsoft needs to create a UI for every advanced Group Policy setting." is talking about scope, not complexity. So I'll say again that it's a small fraction of the OS.
(It doesn't matter how complicated it is in a vacuum, anyway. As long as the complication is on par with the rest of the OS, which it probably is, then we already know that Microsoft can handle it.)
> similar to what Microsoft actually did
What they actually did was redo parts of it in a giant mishmash of overlapping and conflicting UIs.
Even if they need to keep around parts of the old UI for third parties to hook into, there's no good reason that the new UI is so far from complete. (Except for the obvious reason of "it wasn't a priority, they don't care as an institution that it's a horrible mess")
it should be more consistently designed so that everything looks at least somewhat cohesive.
Honestly, I think that having Device Manager and the like function the same way [it does have new icons, but that's about it] is good enough for me- I know how to use the tool, and it would be rather frustrating to techs if they replaced it and dropped even one little thing.Personally, I'm okay with old functionalities- but replacing the stock Windows 98 icons with the new design scheme and making the background window color white [personally, I prefer black, but I'll take what I can get] is enough fresh paint for me.
EDIT: I also want to say that for "old people" that specifically use "old functionalities" and replace their machines with new ones but want to use those same tools, it would be somewhat frustrating to them to have to re-learn a new UI, and we really don't want them running Windows XP anymore.
Either do something right, or not at all.
Rewriting in a way that is 100% backwards compatible (any less compatible is unacceptable) would be a massive endeavor and very hard to justify given the cost.
My only gripe with the old school is accessibility (scaling in particular, ugh), but even that's not so bad.
(Disclaimer: I work for MS, but not on Windows)
It absolutely does still work in the Run app.
The Run app is no longer conveniently docked at the bottom of the old Start menu near where the search box now opens when you start typing in the new Windows menu, though.
Btw, as others mentioned - Win+R gives you Run dialog. Or Win+X gives you admin tools and a Run button approximately where it used to be. Or just right click on start button...
I hate using Windows 10 because I am constantly hitting new unique bugs in the UI, and regularly enough I run into complete show-stoppers. Windows UI is just so broken.
I do run into bugs on Ubuntu, but usually there is a workaround. And I have lower expectations when it costs $0 (and without the trillion dollar market cap of Microsoft).
I also regularly find bugs in macOS, which annoys me since we pay such a premium for Apple software.
Any repro steps for the bugs?
I don't get why this thing is messed up the way it is.
[1] https://www.windowscentral.com/sites/wpcentral.com/files/sty...
I'm going to sound like the naive end user now, but isn't it the job of the update manager to only download and install updates that are ready to be installed?
It did eventually install 1903 after about 2 restarts. But failed updates are always scary to an end user.
I think it's picky to prevent issues similar to 1809 install. That was a mess and I'm sure MSFT would rather have an error before upgrading than a user missing all their data or something worse.
All things old become new again. In the Vista and 7 era there were a bunch of updates that you just could not install if you booted Windows by chainloading its bootloader. You had to boot Windows straight from BIOS, otherwise they'd fail to install, because some obscure component in Windows couldn't figure out what C:\ was otherwise.
(For anyone who doesn't know the context: Windows has the ability to redirect the various documents, music, etc directories away from their default locations. Some genius at Microsoft decided that any data left in the original location after such a move was junk and got a Windows 10 update to delete it. Unfortunately, Microsoft's own OneDrive software, which was bundled with and heavily promoted by Windows 10, intentionally redirected some of these folders without moving the contents in older versions and also often failed part-way through leaving some files behind in newer versions which promised to move the existing documents too. So a whole bunch of people who'd clicked Yes when Windows 10 pestered them to put their documents in OneDrive found that not only did it fail to do that, they got all their non-cloud-backed-up documents deleted a few Windows updates down the line.
Making matters worse, some of the members of their crowdsourced beta-testing program had apparently hit this problem and warned them that the update was deleting people's documents, and Microsoft just ignored it and went ahead with the update anyway.)
It's all kind of weird and silly, but nothing at all like Windows where you can suddenly jump into the Windows 2000 UI at any turn.
Neither OS is faultlessly perfect in any area, but the macOS side of the UI consistency fence is definitely, objectively, much greener.
Yeah but you can actually DO what you want to in those legacy interfaces, in the new interfaces it is "dumbed down".
It's definitely inconsistent, but I'd disagree with it being incoherent. IMO, Windows has done a fantastic job at making complex functionality accessible through reasonable GUIs.
My biggest issue is not that the interface is incoherent (and the consistency is a minor gripe to me). I struggle much more with _navigating_ the interface than interacting with any given dialog.
That said, I've never used Linux distro or macOS iteration that came anywhere close to making features accessible to users via graphic interfaces. GUIs may not always be the _best_ interface (that's another discussion), but you gotta hand it to Microsoft for how much work they've put in to get where they are when it comes to GUIs. I do not envy anyone tasked with "reskinning" it all.
I can usually intuitively infer where the plist for a particular app or subsystem may be stored, or just search for it using regular file system tools, and I can use many tools to read, edit and selectively backup/restore plists as well as compress them (something I make use of often, to restore settings only for specific apps on a fresh machine/installation, something that was very cumbersome to do with the Registry.)
I also have yet to experience plist corruptions even once for even one file on macOS, but several times with the Registry during my time on Windows, with multiple unrelated parts of the monolith crumbling at the same time.
The only benefit I can see of a monolithic registry is that it's technically all organized in one central place, compared to say the Linux practice of scattering app settings in home directories (although XDG does help standardize this). But in practice the Windows approach seem to provide an unnecessarily tight coupling.
Structured data need not be binary.
Also on Linux you have dconf, which is literally a centralized, binary configuration storage backend. I believe it is being replaced with a more decentralized mechanism to ease container use cases.
https://en.wikipedia.org/wiki/Windows_Registry#Rationale
The Registry has been around since Windows 3.1. While it's not required to use the Registry, I can imagine there's a large installed base of applications that do use it, and migrating off of something like this can take concerted effort if they decide it's worth the effort.
When there's something I initially find incredulous, I try to take step back and recognize that very likely the people involved in making those decisions have a better perspective on the situation than I do. I've found Chesterton's Fence to be a useful metaphor.
https://en.wikipedia.org/wiki/Wikipedia:Chesterton%27s_fence
Taking that into account, even my explanation is likely wrong. And even given everything you've said is true, there are any number of additional issues known to those involved than the ones you've put forth.
If only they had discovered the concept of subfolders, instead of shuttling them off into another monolithic container. I suspect having many subdirectories degraded filesystem performance at the time.
This problem has been solved since the 1960s.
Raymond Chen has a pretty good list:
https://web.archive.org/web/20071128134315/http://blogs.msdn...
> INI files don't support Unicode.
His complaints about XML as an improvement over .INI don't make much sense either.
The security of individual files and their folders can be more easily reasoned about using existing filesystem paradigms, than the nodes of some abstract tree inside the Registry. And you can use existing filesystem tools to monitor which apps are accessing which plists, meanwhile you have to rely on an entirely different set of tools custom-built just for interacting with the Registry.
In practice, .plists feel much better as a user than the Registry does.
Can you atomically write a single property of a plist, in the presence of multiple concurrent readers and writers?
Can you acl only some keys of a plist dictionary?
Having keys and values as kernel objects solves those problems.
Also worth noting that the registry is accessible from kernel mode drivers.
Why monolithic may be good: because it's global and baked into the system. An application doesn't have to search for its config files. Registry is always there. It's a database.
And it's better than INI or XML files because updates are transactional, and you can even have transactional updates over multiple keys. It also supports fine-grained access control. Manually implementing transactional updates in text files is a hassle and you can forget per-value ACLs... unless all of this is hidden behind a registry-like API.
macOS apps don't have to search for their config files either; support for them is baked into their system APIs as well.
The macOS/iOS UserDefaults system is actually very nice, allowing multiple tiers/domains for precedence of settings. For example a specific setting may be optionally overridden for a single session via any app's launch arguments [0]. How do you achieve something like that with the Registry?
The Registry architecture may make things easier for Microsoft, but the plist architecture seems to make things easier for users and developers.
[0] https://developer.apple.com/library/archive/documentation/Co...
> This change is by design, and is intended to help reduce the overall disk footprint size of Windows. To recover a system with a corrupt registry hive, Microsoft recommends that you use a system restore point.
I suppose I can see removing the automatic backup feature to save disk space, but what is the argument for silently pretending that you're backing up?
Windows really is a recursive backwards-compatibility hack...
Yes there are security concerns but I'm pretty vigilant. I haven't run a virus scanner in 15 years, I'm just extremely paranoid over what I click on and which sites I visit. I run an ad-blocker and pi-hole to decrease any attack vectors. If attacks like spear-phishing become a lot more prevalent and much harder to detect then maybe I'll have to upgrade to keep up with security patches but until then I'm keeping status quo with a lot of backups.
https://support.microsoft.com/en-us/help/4057281/windows-7-s...
Maybe more importantly, third parties will notice that MS isn't supporting it and is telling people to upgrade, so third parties won't support old OSes anymore.
To be blunt, this is a bad idea.
I'm sympathetic to the general motivation. I think the value and effectiveness of antivirus is generally overstated; it's often a replacement for vigilant browsing, and usually not an adequate replacement. If you keep to trusted sites, don't click email links, and don't ever unblock ads, you can do remarkably well for yourself. (Of course, if you've ever clicked some link and regretted it, it's time to start scanning or wiping.)
But you don't have to fall for spear-phishing or click shady ads to get into trouble. Since 2012, much less 2004, we've seen zero-days compromising servers and numerous other threats that could affect you indirectly. If your machine was Lenovo, it quite possibly came with malware. If you've used Sennheiser's setup app, your root certificate store may be poisoned. Further back, if you put Sony BMG music CDs into your machine, they may have given you a rootkit.
I don't worry about antivirus much for on-the-web protection; the threats most likely to reach me are the ones it doesn't protect against. But I think it's valuable to have something that keeps up with the history of other known screwups to help protect me against other, stranger threat vectors.
It's not the most secure method, obviously, but it works for me. And if the environment gets more dangerous than the status quo, I'm flexible enough to know I'll probably be forced to upgrade.
I'm not security-ignorant btw. I used to subscribe to both BugTraq and NTBugtraq back in the day and kept up over the decades. I just haven't seen anything in the last several years that can't be solved via not clicking on random links or installing new software. As said, spear-phishing/breaking out of the sandbox or serving malware via ads is my biggest concern these days and if it gets more prevalent then it will warrant a change in my views.
The problem isn't questionable sites (including ad networks), it's 0 days and hacked sites. uMatrix won't protect you from malicious js fed from the same site, or perhaps a malicious malformed font download[1].
[1] https://threatpost.com/of-truetype-font-vulnerabilities-and-...
The bad news is that most antivirus software also won't protect you from a hacked NYT server delivering 0-days, because it's generally reactionary. For this reason, I mostly don't worry too much about about while-browsing protection - if you're cautious, the remaining threats will also evade antivirus. In that sense, uMatrix and NoScript are more proactive. (uMatrix, for example, saved people from Magecart before it was ever discovered.)
But if you do pick something up, there's no guarantee it'll be nice obvious ransomware, rather than something quietly sniffing your keystrokes. That's where I advocate antivirus even for careful users - it's a repository of known threats to tip you off that something is wrong. DoublePulsar was first discovered infecting Windows machines in the wild, so cautious browsing didn't save the people that hit.
Bemstour was a mix of two NSA-discovered 0-days, which spent a full year in the wild before it was patched or disclosed. (Admittedly, the only known deployments were highly targeted, so it's not exactly grounds for personal paranoia.) EternalBlue was spun into the widespread WannaCry after the Windows 7 patch was released, but before Windows 8. (Having spent a while on 8 instead of 8.1 while 8.1 was still broken, that hits close to home.) I don't follow Windows that closely anymore, but haven't there been a few other botnets initiated with unpatched vulnerabilities that didn't require browsing somewhere ugly?
>But I think it's valuable to have something that keeps up with the history of other known screwups to help protect me against other, stranger threat vectors.
I don't think antiviruses protect you against 0days. If the attacker is going through the trouble of using a 0day, they're probably going to make their payload FUD as well. As for rest, I don't think they'll get picked up either, or at least, they'll only get picked up after a massive media shitstorm. Most
Although not a malware developer, my recommendation was installing the software in a VM or something, updating to current sigs, cutting off networking, testing sample till it passes, and delete the VM. Then, restart the process with clean VM or (more likely) from snapshot. I'm not up-to-date on what they're doing these days, though.
Why not simply switch to Linux? That's what I did, that way you don't have to install Windows 10 and don't have to worry about visiting web pages.
Whats the REAL reason for this nauseating, unacceptable, decision?
Did we go back to 1995 when disk space was expensive?
I'd like to look the manager/developer who approved that change in the eye and ask them what the hell were they thinking.
As far lying to the user goes...hasn't that been MS's motto for at least since W10 came out? That's the least surprising part. A poor technical decision is much more worrying.
These backups were really a bad plan - they were making a copy of the registry, and then a system restore point or 3rd party full system backup would backup all the backups.
Step 0: Back up your registry!
They're not going to do that because it's not important to them (and the registry is a bit of an icon at this point).
Instead of every tool making its own incompatible, undocumented, non-standard config file/database/format/tools.
Some apps are non-conforming, and store data elsewhere, but as a general model I think it works very well.
On macOS, the registry equivalent is all the plist files stored in ~/Library/Preferences and ~/Library/Application Support. These just get left behind when the .app is deleted.
Early macOS used the installer system, which still exists but is increasingly rare. You'll notice it because the installer has the .pkg extension. The installer writes "receipts" to a special folder, which contains all the files it created, which in principle should help you unininstall. In practice, this doesn't work well, either, because apps litter the file system with files after they're installed.
Apple encourages the use of sandboxing for new apps. You'll find that apps each get a root under ~/Library/Containers. This means you can wipe all of an app's data in one go; as I understand it, sandboxed apps have to explicitly request access to any files they need to access outside of their container.
With APFS they could go even further and give each app their own volume, I suspect.
But most apps aren't yet sandboxed, so we still have file systems polluted with stuff.
So the Registry is a great idea and great software design, but developers are "holding the phone wrong"?
I think applications should be standalone and not tied into some giant central spaghetti shared knot of chewing gum.
The beauty of Linux/Unix is that stuff is configured by text files. Windows was on that path i the early days when everything was configured with ini files before someone had the idea of introducing the registry.
A central configuration database with standard ways of accessing it, doubling as an early 'service-discovery' place (e.g. registration of COM components), with system-wide config and per-user hives loaded when needed, is a great idea, and the registry is tolerably good software design as a way to do that, considering it came from the early 1990s, but developers have carelessly misused it for years, and Microsoft take the blame for that.
Imagine you logged onto a server by SSH and your /home/.program/program.conf file is from a newer version and the program doesn't run. Nobody would attack "the concept of storing configuration in a text file" for that - but people would attack "the registry" when that equivalent happens on Windows.
How many times have people written scripts to "parse" and add/remove lines of config from text files, without ever saying "we're reinventing the wheel for the hundred thousandth time, what a miserable waste of human life, if only there was a standardised key/value store we could put data in with a standard tool"?
And I put "parse" in scare-quotes because how many actually implement a full and correct Apache/Bind/iptables/etc config file parser, instead of a quick regex/sed/AWK/Python hack? JSON changed this a little, but now you'd easily expect to configure a server/service using a REST interface, and the config would be persisted in some unknown not-user-facing database behind the scenes, and that's just "fine".
I thought it meant blaming the user for the flawed design.
> your /home/.program/program.conf file is from a newer version and the program doesn't run.
But a problem in program.conf would sabotage the program, not the entire system. Whereas a bad registry can stop you from booting. That is the main problem.
A real unix equivalent could maybe be a problem with something in /etc, but that stuff is supposed to be 1) set to basic defaults that will work in any circumstance, and 2) kept under lock and key. Whereas the Registry was born as a free-for-all, and only much later got a permission system retrofitted on top.
Was the Registry a good idea? Maybe; but it certainly had a terrible execution, and now we're stuck with the results.
> if only there was a standardised key/value store
Yes, if only - but there isn't, the Registry is Windows-only. That's why developers end up managing text files: because they work everywhere, in 1995 as in 2019; whereas APIs come and go.
> But a problem in program.conf would sabotage the program, not the entire system. Whereas a bad registry can stop you from booting. That is the main problem.
A bad user hive stored on a network drive, can stop a terminal server from booting? Can it? That's the comparison with /home/.program/program.conf that you're replying to.
> A real unix equivalent could maybe be a problem with something in /etc, but that stuff is supposed to be 1) set to basic defaults that will work in any circumstance
Like a kind of "safe mode" that can boot after something has screwed up the registry?
> That's why developers end up managing text files: because they work everywhere, in 1995 as in 2019; whereas APIs come and go.
Yeah, I've never had to fix character encoding issues in text files, or line ending, or newline at end of file, or escaping or quoting issues in text files, because they're all the same and never cause any problems. Microsoft APIs from years ago still work.
Indeed, at that was a major mistake. Multi-user systems had existed for 20 years, Windows 95 was a huge step back.
> I hazard a guess that with NT4 and Windows 2000, the user hive was unlikely to be able to crash your system
... you wish.
> A bad user hive stored on a network drive, can stop a terminal server from booting?
Maybe, I honestly have no idea - I've only seen it happening locally. I wouldn't put anything past registry corruption anyway.
> Like a kind of "safe mode" that can boot after something has screwed up the registry?
Access to Safe mode requires hardware action at boot. The worst you can get from a userland program in unix failing on logon is that you have to log on via shell.
> Yeah, I've never had to fix character encoding issues in text files
The difference is that you can fix all that yourself, with a shell and an editor, whereas if Windows says the registry is borked, the registry is borked and you have no recourse.
Single-user systems had existed for longer. They were dominant at the time especially on small systems - many variants of DOS, Windows 3.1, OS/2 up to version 3, Apple MacOS up to version 8, Amiga, Acorn, Atari, every console, every 8-bit micro, Symbolics Genera[1], BeOS pretended to be single-user. The days of a central computer with tons of connected terminals requiring multi-user auditing, separation, and billing - were fading. Individual computers were becoming cheaper, the internet hadn't risen. Looking back with hindsight of how things turned out, and saying "huge step back" when it was not a step back at the time, it was a step forward from Win 3.1 in many ways and a step sideways in that way, seems weird.
We still have not-multi-user systems now, for embedded devices and mobiles and similar. If it wasn't for network effects, it ought to be possible to make a single-user OS which was simpler and therefore faster and cheaper, and I bet it would be good enough for much of the computing done on the planet today - the amount of personal computers where multiple people need to logon, compared to the amount where you just want random people not to be able to poke at it without permission. Although totally not worth doing these days.
[1] http://www.bitsavers.org/pdf/symbolics/software/genera_8/Ope... page 12, last paragraph.
> ... you wish.
You started this bit by saying "once you give third parties control of the stability of your system, you lose". That happens if you give root access to anyone, on any platform. That happens in Windows 95, but the registry had system/user separation since Windows 2000. So that's 5 years without, vs 20 years with.
Yes I wish it was without problems, and that it had some more standard offline edit ability, but I don't think "userland can crash the system" was a design plan for the registry, so I don't judge it as bad design because of that.
cough dconf cough
The problem with the registry is that it's a complex mess that can't be pulled apart and it's not modular.
A clean operating system would separate applications cleanly from each other so they can be configured in an isolated manner, installed and uninstalled cleanly without leaving remnants of themselves in the operating system gumming up the works.
If you use Windows then you are probably used to Windows slowing down over time and you've probably just come to accept that you have to reinstall every so often because it has all become so slow. IMO that is at least partly, if not substantially attributable to the registry. By way of comparison, I'm still using the first build of Macintosh OS that I build 12 years ago and moved it from machine to machine. It does not slow over time.
Software should be loosely coupled - the registry tightly couples a whole stack of unrelated stuff together.
The Windows registry is a sticky mess of spaghetti mixed with chewing gum and glue and it can't be unwound.
Operating systems should be modular, able to be pulled apart and put together in a component like manner - the registry is the opposite concept, it's a central dumphouse that links and binds things and makes it hard to impossible to have a clean operating system.
Go have a look into your registry and tell me what's in there - does it make sense to you at any level at all? There you go - that's what's wrong with it.
This is not how you convince someone of a position. If I said your comment here was a spaghetti mixed with chewing gun would you find that informative, let alone compelling?
> If you use Windows then you are probably used to Windows slowing down over time
No, this is just your stereotype from over a decade ago.
> and you've probably just come to accept that you have to reinstall every so often
Again, false...
> IMO that is at least partly, if not substantially attributable to the registry.
All these problems just to blame the registry? With absolutely no substantiation for your claims?
As a Windows developer who's pretty familiar with its ins and outs (and who's run his fair share of registry defraggers/cleaners/etc. over a decade ago) and who actually pays attention to his OS performance I have never been able to measure a performance impact.
> A clean operating system would separate applications cleanly from each other so they can be configured in an isolated manner, installed and uninstalled cleanly without leaving remnants of themselves in the operating system gumming up the works.
I don't know what this means, but on any system programs will leave remnants on uninstall. Just diff your ~/ and /etc folders for a clean Linux system vs. one you've used for a while and then uninstalled packages from.
> Operating systems should be modular, able to be pulled apart and put together in a component like manner - the registry is the opposite concept, it's a central dumphouse that links and binds things and makes it hard to impossible to have a clean operating system.
"Gumming", "dumphouse", "sticky mess", "spaghetti"... these don't ground your position in anything, except maybe chewing gum.
> Go have a look into your registry and tell me what's in there - does it make sense to you at any level at all? There you go - that's what's wrong with it.
In fact yes it does, and in fact it shouldn't even have to make sense to a user, and only parts of it are relevant for developers, just like so many parts of any system.
In my experience people who describe the registry like this last used Windows as their primary system over a decade ago, read a lot of rants about it, switched to Linux, and just kept repeating myths ever since.
How did you read my sentence "on any system programs will leave remnants on uninstall" and conclude I was claiming the above?
Reinstalling is fine, but IMO should be a last option in many cases. Especially if you are trying to quickly recover from an incident - reinstalls take time!
Is that on by default? Here it is claimed it isn't:
https://www.techradar.com/how-to/how-to-use-system-restore-i...
"System Restore isn’t actually enabled by default in Windows 10, so you’ll need to turn it on."
> This change is by design, and is intended to help reduce the overall disk footprint size of Windows. To recover a system with a corrupt registry hive, Microsoft recommends that you use a system restore point.
> If you have to use the legacy backup behavior, you can re-enable it by configuring the following registry entry, and then restarting the computer: HKLM\System\CurrentControlSet\Control\Session Manager\Configuration Manager\EnablePeriodicBackup Type: REG_DWORD Value: 1
The issue being not that they stopped doing it but that they failed to properly communicate it to the users.
We constantly moan on HN about those diabolical Electron apps which waste 50 MB of disk.
Microsoft saved 50 MB of disk here, they are true heros. We applaud.
After all, why did I pay for all that sweet SSD disk space if not to keep it free.
>if it's in the documentation anywhere
A quick search for "RegBack" doesn't turn up any MSFT documentation on it. But it does turn up an article titled "How to restore Registry from its secret backup on Windows 10". This makes me think the feature is undocumented.
The civil side might be different, but that is not what the parent insinuated. (And yes, my question to the parent was obviously meant to show that I disagree.)
They got your money; so it's obtaining benefit by deception. If it says in the product specification that it does something that it doesn't do then it's fraud, which is criminal.
It's a de minimis form of selling you a product that they know to not include the features they sold.
But, police wouldn't pursue it (they don't even bother with burglary under O(£1000s) in UK); but you could sue for lost damages and you should in theory be successful.
I get the hunch MS is set on controlling the users configuration at all times. On the flipside i remember the hell of restore point trojans, and perhaps this is MS best go at mitigating a currently guesstimated threat that is coming?
Step one to editing the Registry is _stop editing the Registry._
I don't think it qualifies as "telling the user" if it involves the user poking around undocumented system tasks.
See the current situation of Windows 10. There are specific "checkpoint" versions and they force you really aggressively to come up to them when they get released.