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...