CEG 233: Linux and Windows

Syllabus

Catalog Description: Introduction to Linux and Windows systems. GUI and Windowing Systems. Files and Directories. Ownership and Sharing. Programs and Processes. System calls, Libraries. Loading. Dynamic linking. Command Line Shells. Scripting languages. Regular expressions. Clients and Servers. Web browser clients and servers. Secure shell, sftp. SSL/TSL. HTTPS. System Administration. 4 credit hours. 3 hours lectures, 2 hours labs. Prerequisites: CS 240 or CS 220 or equivalent.

Overview

This is a freshman-level 4 credit hour course conducted in a 10-week term. Its goal is to develop in the minds of students an effective operational model of computer systems running either Linux or Windows. This course is lab-oriented.

Source Materials

  1. Mark G. Sobell, "A Practical Guide to Linux Commands, Editors, and Shell Programming", Prentice Hall, 2009, 1080 pp. http://proquest.safaribooksonline.com. ezproxy.libraries.wright.edu:2048/0131478230/
  2. Bruce Payette, Windows PowerShell in Action, Manning Publications, 2007; 576 pp.; http://proquest.safaribooksonline.com.ezproxy.libraries.wright.edu: 2048/9781932394500
  3. William R. Stanek, Windows 7 Administrator's Pocket Consultant, Microsoft Press, 2009, 704 pp; http://proquest.safaribooksonline.com.ezproxy.libraries.wright.edu:2048/9780735634732
  4. Web site: http://www.cs.wright.edu/~pmateti/Courses/233/Top/index.html

Prerequisites

General exposure to PCs, and MS Windows which is so common that we do not list it as official prerequisites. CEG233 does not assume prior exposure to Unix/Linux. Familiarity with a programming language (such as C++, or Java) is expected. It is assumed that you are comfortable with control structures such as loops and if-statements.

Content

The topics are grouped based on coherence. Even though there are nine items below, worth one week each, they are not to be taken literally as weekly schedules.

Unix/Linux command names are well-known, whereas their Windows-equivalents are often hidden behind a GUI; so, only Linux command names are shown, but the equivalent Windows operations are also included.

  1. GUI and Windowing Systems. Mouse clicks etc. as events. Coupling of events to actions. Focus. Cut and paste models. X11, KDE, Gnome, xterm. Fonts, bit maps, vector drawings. Tiled and overlapped windows.
  2. Files and directories. File names and extensions. Operations on files and directories. Compression. File systems: ISO9660, ext2/3/4, vfat, ntfs. Fragmentation. Sequential and random access. Large streaming files. rwx-permissions. Ownership and sharing. Access control lists. Alternate data streams. Hard and soft links. Commands: ls, ln, cp, mv, rm, cat, chmod, chown, umask, dd, gzip, tar, file, wc, sort, uniq.
  3. Programs and Processes. System calls, libraries. Virtual memory. Swap space. Loading. Dynamic linking. Unix/Linux ELF, COFF and a.out. Windows COM, EXE. Signals. Single CPU Multi-tasking, multiple CPUs and SMP. Commands: kill, ps, top, nice, bg, fg, ldd, size, task manager.
  4. Command Line Shells. Scripting languages. Linux bash. Windows PowerShell. File system browsers. Cygwin.
  5. Utilities. Regular expressions, Version control. Commands: grep, diff, patch, make, find, od, svn.
  6. Networking. Host names, IP addresses. Protocols. TCP and UDP. DNS. ports. URLs. Sockets. Clients and servers. Web browsers and clients. Secure shell, sftp. SSL/TSL. HTTPS. NFS and Samba. Commands: ssh, sftp, ping, traceroute, wget.
  7. Users. Classes of users and their privileges. Passwords, MD5. Power users, Administrators, etc. SUID programs. Commands: passwd, newusers, userdel, sudo, su.
  8. System Administration. File system integrity, virus scanning, patch management. Archives. System restore. Windows Registry. Booting of OS. Power on self test. BIOS. Boot loaders: NTLDR, GRUB. Process init. login. Suspend v. hibernation. Linux distributions: Debian, RedHat, etc. Windows XP and Vista. Open source movement. Commands and files: df, du, mount, umount, /etc/passwd, /etc/shadow, /etc/fstab, /etc/inittab, init.d scripts.
  9. Recap. Operating Systems? Kernels? Systems programs? Applications? Layered view. Components: Processes, Virtual Memory, File Systems, Networking, Events, and Device Drivers. Services: Resource management, protection, multi-programming, multi-tasking.

Grading

Two on-line exams worth 20% and 35%. Nine labs each worth 5% each. Course grades will be based on the total score as follows. A: 90-100, B: 80-89, C:70-79, D: 60-69, F: below 60. Grades may be further curved if appropriate.

Lab Oriented

This course is lab-oriented. Expected number of labs: 10 or 9; about one per week. Lab work is scheduled for 100 minutes in OSIS lab (429 Russ) with PCs that can dual boot into Linux or Windows.