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.
Text Books
- Mark G. Sobell, "A Practical Guide to Linux(R) Commands, Editors, and Shell
Programming", Prentice Hall,
ISBN-10: 0131478230, ISBN-13: 978-0131478237, 2005.
- Web site:
http://www.cs.wright.edu/~pmateti/Courses/233/Top/index.html
Prerequisites
Its prerequisites are general
exposure to PCs, and MS Windows which is so common that we do not list it as
official prerequisites. It 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.
- 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.
- Files and directories. File names and extensions. Operations on files
and directories. Compression. File systems: ISO9660, ext2, 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.
- 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.
- Command Line Shells. Scripting languages. Linux bash. Windows cmd.
File system browsers. Cygwin.
- Utilities. Regular expressions, Version control. Commands: grep,
diff, patch, make, find, od, svn.
- 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.
- Users. Classes of users and their privileges. Passwords,
MD5. Power users, Administrators, etc. SUID programs. Commands:
passwd, newusers, userdel, sudo, su.
- 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.
- 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 25% and 35%. Eight labs each worth 5%
each.
Lab Oriented
This course is lab-oriented. Expected number of labs: 8; about one per
week. Lab work is scheduled for 100 minutes in OSIS lab (429
Russ) with PCs
that can dual boot Linux and Windows.