Rename get_program_directory to get_program_root_directory
Don't store root directory in program scheduler, it's not needed
Use dedicated enum for the directory object entry type

Not all file types can be directory entries.
Remove process state change timestamp and move PID to get_process_identity
Simplify file object read behavior in case there is nothing to read

If reading would block or reading returns zero bytes read then just
return an empty buffer, instead of an error.