- 8ch indent, no tabs - structs in MixedCase, variables, functions in lower_case - the destructors always unregister the object from the next bigger object, not the other way around - to minimize strict aliasing violations we prefer unions over casting - for robustness reasons destructors should be able to destruct half-initialized objects, too - error codes are returned as negative Exxx. i.e. return -EINVAL. There are some exceptions: for constructors its is OK to return NULL on OOM. For lookup functions NULL is fine too for "not found". - Do not issue NSS requests (that includes user name and host name lookups) from the main daemon as this might trigger deadlocks when we those lookups involve synchronously talking to services that we would need to start up. - Do not access any directories outside of /etc/, /dev, /lib from the init daemon to avoid deadlocks with the automounter. - Don't synchronously talk to any other service, due to risk of deadlocks.