OSwhatever wrote:
OS programming vs normal programming:
- Much more often chicken and egg problems
- Much more pointer arithmetics vs applications almost never
- More often have to go outside type safety
- Order of initialization much more important
- Often simpler primitives (in case of C++)
- Static allocation a virtue, application programming using "new" or "malloc" not really more common.
those problems are heavily fought in programs that :
* have complex functional modelisation. You dont know where to start.
* Pointer arithmetic is a core problem of memory allocators. It is encountered also in lock free structures. Or i-starve-memory things like
Xor linked lists* Order of initialization matters everywhere. Especially in huge systems with big inertial state. Try game mods for example.
* simpler primitives are meant to standardize stuff. Yoh will see them around each norm
IMHO Os deving big "problem " is, an OS does not solve one problem. Allow software to solve problems. That problem is also a turing general purpose language compiler problem.