-Processes can specify if they can run as kernel-mode or user-mode or both
-Services are normal processes except that they export services as well as import them
kernel:
-bootup from multiboot to arbiterd
--parse multiboot
--change into protected mode
--starts arbiterd
-single-threaded
arbiterd:
-runs as root
-runs for entire time the os is online
-connects processes to services
-multi-threaded
-when asked for a services, returns a list of services if more than one of that type available, default should be number 0 in that list
-creates processes and has complete control over them and their address space
arbiterd:
-creates processes
-manages user-level protection
fsd:
-allows access to filesystem
-connects processes to services (services mounted into filesystem)
-process connects to a file (object) and sends messages to it
--read and write messages for normal files
--custom messages for other files
arbiterd:
-started by kernel at bootup
-executes init scripts, which loads various services
-starts processes
-manages users
-passes port to filesystem root to process
/proc/123/environment/ == the processes // tree
mount -t blabla //block/ide/0/0 /
mount -t blabla /something/image.img /myimage
-process gets passed a port to its import device filesystem
-filesystem goes like so:
--/sockets/ returns list of local sockets
use // and /