Announcements
- Textbooks:
Linux Kernel Development (2nd Edition) by Robert Love;
and the dinosaur book, Operating System Concepts by Silberschatz, Galvin and Gagne.
- Computer
Access :-)
- Modus Operandi: Essays, Discussion
and Hacking.
- For a syallabus, or near equivalent, see last
year's offering of the course.
- The grader is Aman Kakkad. His email is a.kakkad at umiami dot edu. He will be most helpful in the hacking part of this class. I don't think he will make himself available to proof read your written essays.
- Need help? IM me!
Grader and I are offering IM address. Get address in class or email me.
Class notes
- Introduction
- Kernels
- Processes
- Kernel abstractions.
- Scheduling, context switch.
- Synchronization
- Interrupts and exceptions
- Memory
- Linking and loading
- GOT and PLT
- Relocation, Position Independent Code
- Snapping.
- Well Known DLL's, DLL Hell
- Classic SO's in unix
- ELF and Dwarf.
- Linking and loading tools on all platforms
- Virtual memory
- Segmenting
- Demand paging and working sets.
- Swap space
- Implementations
- Memory management
- VAT, virtual address allocations.
- Buddy System
- Slab
- heap storage, e.g. malloc
- File systems
- Properties and varieties
- Nameing, folders
- Sharing and locking (op-locks in CIFS)
- streams, resource fork (internal structures)
- Types (resource, extensions, magic numbers)
- ownership and protections
- Stream, block, special file systems such as /dev, /proc and /tmp
- remote file services
- Examples:
- FAT: a simple file system
- NTFS: NT file systems
- EXT2 and 3: Extensible unix file system for unix
- Journaling file systems
- Log-structured file systems
- Network file systems
- Disk technology
- Other
- Global File Systems
- Storage area Networks
- Database backing stores
- FUSE and file system services. File system drivers
- Security, Privacy and Protection
- General Remarks (HTML)
- Subject, Objects, Groups
- Permissions, ACLS and Capabilites.
-
- Unix and NT Protections
- Information security modeling
- Confidentiality: Bell-LePadula and governmental secrecry structures
- Integrity: Biba and Clark-Wilson
- Access: do not spam this site!
- Trusted computing and DRM
- Standards bodies
- Graphical Systems, Fonts, Color control
- Software engineering and the development processes
- Open Source Movement,
- Release Engineering
- Vulnerability Management.
- Hackers and hacking
Assignments
- Assignment 1:
Write a 5 page paper following the history of either the Unix, Microsoft or Apple operating systems.
Topics that must be covered:
- the evolution of a separate and clearly defined kernel;
- the development of a layered structure;
- and the role of hardware advances in balancing operating system requirements.
Due Sept 12.
- Assignment 2:
- Read Dino textbook through chapter 7.
- Read Love textbook through chapter 10.
- Download and compile the linux kernel.
- Add the notnice system call to the linux kernel.
Due October 13-th.
- Assignment 3:
- Read Dino textbook chapters 8 and 9.
- Read Love textbook 11, 14 and 15.
- Write a short paper on OS X memory management: how does it to
virtual memory, page tables, page eviction, working set control, control of thrasing.
Due October 20-th.
- Assignment 4:
- Read Dino textbook chapters 10 through 13.
- Read Love textbook chapters 12 and 13.
- Write a file system based on the ideas of FAT. Use FUSE to attach the file system to your favorite operating system.
- Hint: fat-fuse (careful: I think most of the answer is here, so just look quickly)
Due November 17-th.
- Assignment 5:
- A final paper! Due at the final moment!
References