Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CS 550 Operating Systems James Madison University, Fall 2014 In the field of digital forensics, the goal is to capture and evaluate data stored within a computer. However, this assumes you know where and how to find the data. The size of modern storage devices makes doing a brute force search of the entire device infeasible. Instead, investigators must understand how computers structure data (both in memory and in storage devices) as a first step to finding the data. The key to this search is metadata. This course will prepare you for later work in digital forensics by addressing a number of interesting questions: What can we learn by examining the metadata of modern file systems? How do we find data that only exists in memory (i.e., not on any storage device)? What hardware technologies are leveraged to create these structures? What if the data does not reside on this particular machine? What techniques and tools exist to either help or thwart a digital forensics investigator? After reviewing fundamental material covered in undergraduate OS courses, we will spend a large part of the semester examining virtual memory and file systems in significant detail. Later in the semester, we will also examine recent academic research that will have future impacts on digital forensics and the design of OS. Concepts and principles of multiple-user operating systems. Memory, CPU, I/O device allocation, scheduling and security. Memory hierarchies, performance evaluation, analytic models, simulation, concurrent programming and parallel processors. Completion of a student project is a significant part of the course. Course & Instructor Information Website: http://w3.cs.jmu.edu/kirkpams/550-f14 Time: Tu/Th 5:00 – 6:15 PM Location: ISAT/CS 243 Textbook: Silberschatz, A., et al., Operating System Concepts (9th Edition), Wiley Publishers. Instructor: Prof. Michael S. Kirkpatrick Email: [email protected] Office: ISAT/CS 223 Phone: (540) 568-3371 Office Hours: M/W 10:30 AM – 12:00 PM, Tu/Th 12:30 – 1:30 PM Course Goals Expertise in digital forensics depends on a thorough understanding of the system under investigation. To support this objective, students should meet the following goals upon completion of this course: • • • • • • Summarize the relationship between applications, OS, and hardware Explain details of x86 virtual memory and how to distinguish processes Describe the underlying structures of file system implementations Understand novel techniques that both aid and thwart digital forensic investigations Become more aware of the challenges that low-level systems software developers face Analyze and paraphrase technical documentation Course Content Reading material - We will be using Operating System Concepts (9th Edition) by A. Silberschatz, P.B. Galvin, and G. Gagne, ISBN: 978-1-118-06333-0, as our primary text. If you have the 8th Edition (which is available for free access on Safari books), that will suffice. You should also have a C reference handy, such as C : A Reference Manual (5th Edition) by S.P. Harbison and G.L. Steele, ISBN: 0-13-089592X. In addition, there will be a number of papers and technical writings made available through the semester. You should read these papers prior to class when assigned. 1 CS 550 Operating Systems, Fall 2014 Prof. Michael S. Kirkpatrick Projects - A significant focus of this course is translating the theory of OS design into concrete implementations. As such, there will be three major projects that involve modifying a small UNIX-like kernel. You will first implement a system call interface for executing user-mode programs. You will then use the resulting system to implement virtual memory and a basic file system. Students with little or no exposure to the C language should immediately begin studying it. File system research - Later in the semester, you will select a file system that we have not covered in class, and you will research it. You can start with the Wikipedia article for it, but then you should progress to material that provides more technical details. You will submit a short (around 5 pages) paper summarizing the technical details and explaining any other research that you did (such as installing and using it). You will also present your findings to the class later in the semester. Exams This course will include a single midterm and final exam. Evaluation Your overall course grade will be determined according to the following weights: Component Grade Percentage Projects 10%, 20%, 20% File system research 10% Midterm exam 15% Final exam 25% 100% Each project has a specified deadline. If you miss the deadline, you can turn in your project up to 48 hours late in exchange for an automatic 10% penalty. No exceptions will be made for the penalty, and no submissions will be accepted after the penalty deadline. All submitted code must compile and run on the stu server. Failure to provide compilable code will result in a grade of 0. All exams for this class will be open-book, open-notes. Make-up exams will only be allowed in the case of an excused absence (with documentation); these make-ups will consist of an alternate version and will be given only once. University Policies Adding/dropping classes - You are responsible for registering for classes and for verifying your schedule on MyMadison. The deadline for adding a fall semester class through MyMadison is Thursday, September 11 (signatures required after Tuesday, September 2). The last day to drop a course with a “W” grade is Thursday, October 23. After this date, “WP” and “WF” will only be granted under exceptional circumstances. No exceptions will be made to these deadlines. Cancellations - JMU’s cancellation policy (http://www.jmu.edu/JMUpolicy/1309.shtml) provides details regarding inclement weather and other emergencies. Academic Honesty - Students are expected to comply with the JMU Honor Code as stated in the Student Handbook and available from the Honor Council Web site (http://www.jmu.edu/honor/code.shtml). Consulting with other students and discussing course material is not a violation of the Honor Code and is encouraged in this course, provided that the final work that you submit is your own. Copying code or answers, whether from another student or from the Internet, is a violation. When in doubt, ask me. Religious observance accommodations - All faculty are required to give reasonable and appropriate accommodations to students requesting them on grounds of religious observation. If you need to request accommodations, you must let me know at least 2 weeks in advance. No adjustments will be made for project deadlines, as you have several weeks to complete this work. 2 CS 550 Operating Systems, Fall 2014 Prof. Michael S. Kirkpatrick Disability accomodations - JMU abides by Section 504 of the Rehabilitation Act of 1973 and the Americans with Disabilities Act, which mandate reasonable accommodations be provided for students with documented disabilities. If you have a disability and may require some type of instructional and/or examination accommodations, please contact me early in the semester so that I can provide or facilitate provision of accommodations you may need. If you have not already done so, you will need to register with the Office of Disability Services, the designated office on campus to provide services for students with disabilities. The office is located in Wilson Hall, Room 107 and you may call 540-568-6705 for more information. Detailed Course Objectives By the end of this semester, students fulfilling all responsibilities should be able to: 1. describe the structure, operation, and evolution of OS development, explaining the following terms within that context: (a) kernel, microkernel, monolithic kernel, resident monitor, virtual machine monitor, process, thread, context switch, mode switch, system call, interrupt 2. identify and explain the following basic OS concepts and services: (a) processes & threads, scheduling, synchronization, virtual memory, I/O systems, file systems, security & protection 3. define the challenges of concurrency, describe techniques for addressing them (e.g., semaphores, locks, monitors, message passing), and the problem of deadlock 4. explain the details of x86 virtual memory and UNIX-like file system implementations; describe the relevance of this material to the field of digital forensics 5. research existing systems and paraphrase technical documentation 6. summarize contemporary research in OS security 7. describe the industry trends that have and continue to influence the design of OS Tentative Schedule Week Topic Milestones 08/25 OS introduction, x86 architecture, processes 09/01 Pintos & threads 09/08 Threads & concurrency 09/15 Concurrency & deadlock 09/22 Virtual memory 09/29 Virtual memory 10/06 Memory forensics 10/13 Microkernels & hypervisors 10/20 File systems Midterm Exam, 10/21 10/27 File systems Project 2 11/03 Distributed file systems 11/10 Security & malware 11/17 Rootkits & Trusted Computing 11/24 No class – Thanksgiving Break 12/01 File system presentations 12/08 Final exam, Monday 12/09, 3:30 PM Project 1 Project 3, FS Report 3