writing this was partly a byproduct of thinking a lot about how applications interface with OS.
-
writing this was partly a byproduct of thinking a lot about how applications interface with OS.
i like the fact that Linux syscall abi is stable. Kernel's good, but userland shits the bed: libc, dynamic linker and threading are all interdependent. you can talk to the kernel directly but the second you need a dynamic library it's game over. libc infects everything, and is the reason that being able to run the same Linux binary on two different computers is not a given.
-
writing this was partly a byproduct of thinking a lot about how applications interface with OS.
i like the fact that Linux syscall abi is stable. Kernel's good, but userland shits the bed: libc, dynamic linker and threading are all interdependent. you can talk to the kernel directly but the second you need a dynamic library it's game over. libc infects everything, and is the reason that being able to run the same Linux binary on two different computers is not a given.
@nicebyte Which leads us to this classic:
-
writing this was partly a byproduct of thinking a lot about how applications interface with OS.
i like the fact that Linux syscall abi is stable. Kernel's good, but userland shits the bed: libc, dynamic linker and threading are all interdependent. you can talk to the kernel directly but the second you need a dynamic library it's game over. libc infects everything, and is the reason that being able to run the same Linux binary on two different computers is not a given.
It's such an annoying design, and the worst part is - what on earth does C have to do with it? The language runtime should be completely separate from bits that actually talk to the OS. Kernel should come with some userland libs that wrap syscalls - kind of like windows. And as an extra bonus it makes things like wine possible!
-
writing this was partly a byproduct of thinking a lot about how applications interface with OS.
i like the fact that Linux syscall abi is stable. Kernel's good, but userland shits the bed: libc, dynamic linker and threading are all interdependent. you can talk to the kernel directly but the second you need a dynamic library it's game over. libc infects everything, and is the reason that being able to run the same Linux binary on two different computers is not a given.
Note you can do amazing heroics like this but in a better world the problem that requires this solution wouldn't exist https://github.com/graphitemaster/detour
-
undefined aeva@mastodon.gamedev.place shared this topic