COURSE SYLLABUS Instructor P. Tobin Maginnis Fall Semester 1999 CSCI 323 - Systems Programming Catalog Data: Systems Programming. Instruction set formats; assembles; macroprocessors; loaders; linkage editors; dynamic linking and loading, dynamic binding. Prerequisite: 112. (3). Textbooks: 1. M. Beck, et. al., Linux Kernel Internals Addison-Wesley, 1996, ISBN 0-201-87741-4 2. Welsh, M. & L. Kaufman, Running Linux, 2nd ed., O'Reilly & Associates, 1996 Recommended: 1. Loukides, M., System Performance Tuning, O'Reilly & Associates, 1992 2. Parker, T., Linux System Administrators Survival Guide, Sams Publishing, 1996 3. Hunt, C., TCP/IP Network Administration, 2nd Ed., O'Reilly & Associates, 1997 4. Albitz, P. & C. Liu, DNS & Bind, 2nd ed., O'Reilly & Associates, 1997 5. Laurie, B. & P. Laurie, Apache: The Definitive Guide, O'Reilly & Associates, 1997 Coordinator: P. Tobin Maginnis, Associate Professor of Computer and Information Science. Goals: Show students how to exploit the vast amount of open system software available today. Provide an in-depth analysis of the UNIX operating system design with an emphasis on component interactions. Describe operating system administration issues including: installation, configuration, and performance tuning. Prerequisite by Topic: 1. Familiarity with general purpose high-level language 2. Familiarity with general programming concepts Topics: 1. Linux archives, disk partitions, and bootup (1 hour) 2. Compiling the Linux kernel (2 hours) 3. X-Window design, installation, and configuration (4 hours) 4. Linux kernel overview, data structures, algorithms, system call interface. (3 hours) 5. Network daemon design, installation, and configuration (3 hours) 6. Inter-process communication (3 hours) 7. WWW design, installation, and configuration (3 hours) 8. The Linux file system (3 hours) 9. System management (3 hours) 10. Linux device drivers (3 hours) 11. Linux socket, TCP, & IP implementation (4 hours) 12. Linux kernel dynamic load modules (2 hours) 12. Performance tuning issues: measure & manage (2 hours) 13. Tests (three plus the final exam) Exercises: Unit One Program Exercise, CSCI 323 Systems Programming Install Linux on one of the Departmental machines. Unit Two Program Exercise, CSCI 323 Systems Programming Install, configure, and test a X-Window desktop environment. Unit Three Program Exercise, CSCI 323 Systems Programming Configure the network daemons for a typical multiuser Internet host. Unit Four Program Exercise, CSCI 323 Systems Programming Create a virtual WWW host with virtual e-mail. Unit Five Program Exercise, CSCI 323 Systems Programming Set up a private network that allows direct access to the Internet. Unit Six Program Exercise, CSCI 323 Systems Programming Configure a MS-Windows shared hard disk and configure the MS-Windows 3.1x emulation routines. Course Grading: Three written tests @ 100 points each 300 Six program exercises @ 16.66 points each 100 --- Total course points 400 First ten questions of the final must replace a previous test, last ten questions count 4 bonus points for each question. Grading scale: 360 and up -> A 320 to 359 -> B 280 to 319 -> C 240 to 279 -> D Below 340 -> F