3 ms·
This attitude is what has allowed Linux containers to work as well as they do. You can put software built and tested on a very old kernel and it runs successful
by ec109685 8y ago
This attitude is what has allowed Linux containers to work as well as they do. You can put software built and tested on a very old kernel and it runs successfully on a modern one. Container operators do not have to deeply worry that every kernel update will break all their developer’s applications.
- greenyoda 8y agoThis attitude is what allows any operating system to be usable. Nobody would want to develop code under Windows (or buy that code) if they knew that it would break when the user moved from Windows 7 to Windows 10. In the IBM mainframe world, people can still run code written in the 1960s (without even recompiling it). If Linus didn't fanatically enforce backward compatibility, nobody could rely on Linux for mission-critical systems.
- ec109685 8y agoThere were BC breaks across Mac OS X’s kernel. Windows does a good job keeping things backwards compatible as well.
- geofft 8y ago> You can put software built and tested on a very old kernel and it runs successfully on a modern one. This is factually untrue. CentOS 5's glibc makes system calls using the vsyscall page, which is off by default in e.g. Debian stable kernels because it's a huge security risk (it's a page at a fixed address that makes syscalls, it's an obvious ROP target and makes ASLR completely irrelevant, and it also contains fixed data so it's a useful target for other attacker-controlled pointers too). So CentOS 5 containers do not run on up-to-date Debian systems unless you reboot and change a kernel option. I think vsyscalls are on by default in Linus's tree but no distributor is gonna turn them on and take the security risk. The knob was put there so it could be turned off.