Here is the fundamental difference.
In application-level programming, there is such a thing as a function that is guaranteed to succeed and return.
In systems-level programming, no such creature exists.
Ye young people who seek understanding of the computing world: this is not the whole of the law, but it is the law.