Download CS 550 Operating Systems - James Madison University

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Security-focused operating system wikipedia , lookup

DNIX wikipedia , lookup

VS/9 wikipedia , lookup

RSTS/E wikipedia , lookup

Burroughs MCP wikipedia , lookup

CP/M wikipedia , lookup

Spring (operating system) wikipedia , lookup

Unix security wikipedia , lookup

Paging wikipedia , lookup

Transcript
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