Last time

Simple version of OS organization:

Kernel + Hardware: Abstract machine

System Calls with x86-64 Linux

fd = open("f", O_RDONLY);

int open(char const* f, int flags) {
	// move f into %rdi
	asm("movqsl %eax, %rax");
	// move flags into %rsi

	asm("movq %12, %rax");
	asm("SYSCALL");
}
	

Operating System Organization

When creating a large application, what approach should we take?