CPSC 405 Lecture: O/S overview Overview * What's a computer - Draw a diagram in your notebook. - Someone draw theirs on the board. * What's an operating system? - List OS attributes in your notebook. - Ask individuals for an attribute. [user/kernel diagram] - h/w: CPU, RAM, disk, net, &c - user applications: sh, cc, DB, &c - kernel services: FS, processes, memory, network, &c - system calls * What is the purpose of an O/S? - Multiplex the hardware among many applications - Isolate applications for security and to contain bugs - Allow sharing among cooperating applications - Abstract the hardware for portability - Provide useful services * Design tensions make O/S design interesting - efficient vs abstract/portable/general-purpose - powerful vs simple interfaces - flexible vs secure - compatible vs new hardware and interfaces * You'll be glad you took this course if you... * are curious about how computer systems work * need to track down bugs or security problems * care about high performance Class structure * Online course information: web site -- schedule, assignments, labs https://gusty.bike/xv6index.html Discord -- announcements, discussion, lab help * Lectures * O/S ideas * case study of xv6, a small O/S, via code and xv6 book * lab background * O/S papers * You can submit questions about readings on Discord - channel lecture-quesions * Labs: The point: hands-on experience Mostly one every two weeks Three kinds: Systems programming (due next week...) O/S primitives, e.g. thread switching. O/S kernel extensions to xv6, e.g. network. For help: Be in class for the start of labs Ask questions in class Ask questions on Discord Ask questions during office hours Arrange for a Zoom meeting and ask questions Programming Problems - solution must be yours Questions - you can get help from anyone * Grading: 50% labs 25% midterm exam 25% final exam