Does that make sense at all or is this an unrealistic idea? EDIT: Maybe this is how updates already work, I'm not sure
Does that make sense at all or is this an unrealistic idea? EDIT: Maybe this is how updates already work, I'm not sure
This is what ChromeOS and Android do. At least on Android Pixel phones, there's A and B partitions for each of the boot, system, and vendor partitions. The bootloader tracks whether A or B should be booted. Userspace downloads the updates and writes to the opposite-than-booted partition. On reboot, the bootloader boots the latest partition. Downsize is these partitions are now double the size, so less space for the user partition.
So when Windows says you have an update available, the design is that it did all the work that is possible and all that's left is (in theory) the copy bit that's left.
My completely ill-informed guess is that there are exceptions to this rule by teams that aren't fully aware of how updates work under the hood and as a result upgrading takes longer than it really should. As time goes by those teams get hit with a stick and they fix things, but the upgrade team probably plays a fair bit of wack-a-mole.
The update stage all the files that need to be change and complete the release process on boot before any system processors are allowed to lock anything.
Programs running in memory just stay running, even if you update the files that are those programs. This is how Linux works. Restart them when you need the new version.
Its clean. Its easy. I kept watching netflix as firefox compiled (~30 mins), and got to close the browser after the next episode was done, and open the latest Firefox to monkey with the new settings.
You are nearly (and generally) correct about programs just stay running even when overwritten but of course programs generally consist of more than one file and might run more than once and if you update part of this and something reloads or whatever, you can end up in a world of hurt. That said, it is behaviour that I have relied on more often than I can count and so have you with your Firefox anecdote. I've done some remote Gentoo updates with systems in quite the broken state - it keeps IT interesting! I once had to get Puppet to install telnetd on some systems so I could repair sshd.
Hats off to people like you. You’re what we mere mortals aspire to, and it’s always encouraging to hear that someone else has attained a level of mastery. Makes it seem more achievable!
Yes, and that's a gross oversimplification. Android got the idea from ChromeOS.
I suspect it's possible to reload the OS in place with kexec, but haven't proposed it yet.
Anyway, ChromeOS swaps the system and kernel between 4 partitions [1] - automatic update effectively installs a new system into the system partitions you're not booted from, then tells the boot loader to boot from the other ones next reboot.
[1] https://www.chromium.org/chromium-os/chromiumos-design-docs/...
Google uses portage: http://www.chromium.org/chromium-os/packages/portage
It would make more sense for Google to be using Portage to make/install their binary packages. Emerge and quickpkg can both make binary packages: https://wiki.gentoo.org/wiki/Binary_package_guide#Creating_b...
File copy speed itself is rarely the problem. IOPS, where hundreds of thousands of small read and write operations in the registry and other small files dominate the process.