The goal of this course is to explore operating systems fundamentals including: processes, threads, interprocess communication, syncronization, deadlock, scheduling, memory management, multicore/multiprocessor computing, i/o, performance and security. Lectures in class will be reinforced with programming projects using the Linux operating system..