Nav Your Heart Out
Unix systems appear in many different places, such as machines that maintain your student information to systems that serve up web pages for your online banking. The reasons are both historic and practical: some software was originally developed only under unix and requires support in that OS, as well as some tasks being simply easier to manage on a unix system.
No matter what type of software you may design and implement, chances are some of that software you will be developing on a unix based system, or deploying it on one. Understanding unix systems will prepare you for entry into a larger world within computing, as well as having an idea of the different issues faced by people very day within the large environment of computing. After taking this course, you should have:
The goal of this course is to familiarize you with standard tools and services configuration under Linux to solve everyday, common problems of security, availability, and scalability. I want you to walk out of this course confident to maneuver inside a unix system.
As mentioned above, the course is structured around Linux, as this variant of unix is very common and widespread. Other variants such as BSD and Solaris will be mentioned, but not really covered in this class. There is so much information out there that falls under the category of 'unix' that it is impossible to cover even just one distribution of Linux, much less variants of unix itself in a single unix course.
Upon completion of the course, you will:
No one part of unix at the user and administration level is complex, but the sheer volume of information is generally what is overwhelming, and 50% of the battle in unix is knowing where to look for necessary information to solve the task at hand. Many different utilities and daemons interact and end up being co-dependent, allowing for a lot of things to go wrong in many different places when managed poorly, or even simply changed without knowing the full effect on the system of those changes! That by far is the most common problem when dealing with unix is knowing what reach your changes have when made. Only time and experience lend to seeing all of the interactions of the processes within a unix system.
Some programming is required for the course, but only in the form of scripting languages. Familiarity does help, as many programming courses introduce you to a unix environment. A unix system can be managed without a single line of code written, but many tasks done by an administrator are made a thousand times easier when done in scripting. You will be introduced to scripting in the Bash shell and in Perl.
There is one instructor for this course (me), as well as a grader. We will also have a few guest lecturers during the semester on different topics that should prove to be interesting to you.
TR 9:30am-10:45am Room ECCR 200 (check the map)
Lecture happens both days in ECCR 200 and labs are done on your own time elsewhere. Occasionally I will cover lab-specific material and even solve some of the lab for you, so it pays to show up to class!
Even though we will be building a machine from scratch, you will still need an account in the CSEL. All students taking this class are allowed an account in the CSEL for the semester. If you do not already have an active account, follow the instructions on this page to create or reactivate an account.
We have a mailing list that is maintained by ITS through CUConnect. Only registered students are a part of this list, and I'm pretty sure everyone in the class can send mail to the list. That email is CSCI4113_001_20091_B1@rosters.colorado.edu
Grading is broken up into 3 parts:
Labs: There will be labs released each week on Tuesday, and some will be more involved than others. You have one week to complete each lab, as they are due exactly one week from the time they are assigned.
Quizzes/Final Exam: We will have four quizzes during the semester. These are in-class quizzes and will be given out a half an hour before the end of class that day. They are closed book, closed note, and will be written appropriately for the format. I will announce all quizzes before they happen. The final exam will be given as a take-home exam due at the time of the scheduled final exam time for the class.
Attendance/Clicker Questions: Attendance will be mandatory for 27/30 of the lecture periods (including the first day of class). Each day of attendance is worth 0.5% of your final exam, for a total of 13%. If you decide to attend all 30 lectures, you will receive extra credit for the extra days you attend. Attendance will be measured using the CU clicker system. This means you need to shell out the $40 to buy a clicker if you haven't already. They are available at the CU bookstore.
In this class we will be using the book Linux System Administration, 2nd Ed. by Nemeth, Snyder and Hein. It's a good book, written by CU Computer Science alumnus and faculty, so you'll see interesting examples of machines we have on our network here. This book costs $50 and is available at the bookstore.
The page was originally developed by Phil Jones (now graduated), and content added by Chris Schenk, Phil
Jones, and Aaron Bach. The information in the slides from class is mainly from Chris, with some images taken from slides created by the previous teacher of this course, Tor Mohling. Useful information on the course will be maintained on this page (as best as can be achieved).
http://www.cs.colorado.edu/~schenkc/courses/csci4113-sp09
To see Tor Mohling's old web page here at the University, please visit http://bio3d.colorado.edu/~tor/.
There are a few things you can do keep me happy with you, yes you, specifically: