Provides introduction to Linux and Windows operating systems and system administration. Covers files and directories, ownership
and sharing, programs and processes, system calls, libraries, dynamic linking, command line shells, scripting, regular expressions
and secure network protocols.
Undergraduate level CS 1160 Minimum Grade of D OR Undergraduate level CS 1180 Minimum Grade of D OR
Undergraduate level CEG 2170 Minimum Grade of D
Students will be provided with online reference material through the course of the class. Textbook(s) can be purchased at the
student's discretion.
- The Linux Command Line, 2nd Edition, no starch press, William Shotts https://linuxcommand.org/lc3_learning_the_shell.php
- How Linux Works, 3rd Edition: What Every Superuser Should Know, no starch press, Brian Ward
- Pro Git, Apress, Scott Chacon and Ben Straub https://git-scm.com/book/en/v2
- UNIX and Linux System Administration Handbook 5th Edition, Addison-Wesley Professional, Evi Nemeth, Garth Snyder
- A Practical Guide to Linux: Commands, Editors, and Shell Programming, Prentice Hall, Mark G. Sobell
- https://proquest.safaribooksonline.com/book/operating-systems-and-server-administration/linux/9780134774626
- This book can be read online – use your Wright State Library credentials. Edition does not matter.
- WSL2 Ubuntu (for Windows users), AWS Virtual Servers (via Education Account)
https://pilot.wright.edu Pilot will be used in this course for submitting labs and projects and for accessing course materials and
grades. It is the student's responsibility to check the Pilot site, as well as his/her WSU email, for course announcements, updates
to project requirements, etc.
- Lab assignments: 60%
- Quizzes: 10%
- Exams: 30% (15% for midterm and 15% for the final exam).
- No makeup exams are given unless there is a verifiable emergency.
- The grading scale for the course is
- [90-100] A
- [80-89.99] B
- [70-79.99] C
- [60-69.99] D
- [0-59.99] F
Students are responsible for keeping up with due dates. Specific dates are given in the Dropbox section of Pilot.
All labs must be submitted via the Dropbox on Pilot. Be sure you upload the files and then click submit. If you do not receive an email
confirmation, then your work was not properly submitted. Be sure to allow enough time to submit your work before the Dropbox closes.
Personal computer issues/loss of data/not allowing enough upload time are not valid justifications to merit an extension of the deadline.
Quizzes and Exams will be given in an online format. Dates for both will be announced with ample time. If the student requires any
change / extension they are responsible for notifying the instructor as soon as possible.
Late work will receive a penalty of 10% off per day. Work more than 3 days late will not be accepted.
Exams and quizzes will only be open for the time frame specified.
Any student with a disability must register with the Office of Disability Services to determine what accommodations, if any, are appropriate.
The student must inform the instructor of the special accommodations needed as soon as possible.
This course requires you to have access to a computer and the internet. If you do not own or have access to any of these items, please see the
“Remote Support Information” options through CaTS and contact them for assistance here: wright.edu/it. In the event CaTS does not have support
options, please contact the instructor via email as soon as possible.
The Department of Computer Science and Engineering maintains a help room, staffed by upper-level students, for students in introductory
programming classes.
A virtual help room is available via the Department’s Discord server. In the “WSU Computer Science Department” Discord server, select the
“CS Help Room” channel. Here you can make a post to “cs-help-room" to list your questions or request one-on-one support with voice or
screen sharing.
Tutoring Services provides individual and small group academic support for a wide range of courses. Students can meet with an individual
tutor by appointment for frequently requested courses numbered 3000 and below.
Students who want to develop strategies and skills specific to their needs for all of their courses can meet by appointment with a Study
Coach. Study Coaching is an excellent way to get personalized solutions to the challenges of online and in-person courses.
For students to sign up for appointments, follow the link on the website (www.wright.edu/tutoring) to the Tutoring Services Online Request
form. Once the form is received, their front desk staff will be in contact regarding their appointment status. Appointments are free and
are set for one hour each week through the last week of classes.
Labs are to be completed individually. Sharing your work or copying someone else's work will result in a 0 for the assignment(s) and a
formal Academic Integrity Violation will be submitted. The university policy on academic misconduct can be found at http://www.wright.edu/students/judicial/integrity.html
The topics are grouped based on coherence. This is not necessarily the weekly schedule, more of a guideline for topics this class will cover.
Note: Commands are referenced in Unix/ Linux terminology. Windows equivalents will also be discussed.
- Operating systems as jargon – Windows, Linux, Mac
- Linux distributions: Debian, RedHat, etc
- Intro to course tools (AWS & MobaXTerm)
- Intro to shells (bash, sh, zsh, powershell, ssh) and commands (man, vim, history)
- Intro to ssh & key pairs
- Intro to git (clone, commit, push, add)
- OS structure in Linux (and Mac) vs Windows
- Files vs directories
- Commands: ls, cp, mkdir, rmdir, vim, mv, rm, cat, touch, head/tail, less/more
- Importance of names and extensions (file)
- Ownership & sharing
- rwx permissions in Linux (and Windows counterpart)
- user vs. group vs. other
- chmod, chown
- User types and groups: sudo vs. admin vs. “other” (sudo, adduser, deluser)
- Hard links & soft links (ln)
- Inodes
- File locks
- Aliases & customizations (.bashrc, .vimrc)
- Commands: grep, diff, find, file, wc, sort, uniq, whereis, which
- IO redirection (<, >, |, tee)
- PATH (order of execution)
- Scripting languages: bash, python
- Regular expressions (grep, sed, test)
- Alternate data streams (od, /dev/null)
- Requiring root to run
- Assembly/machine language programming
- Bits (1), bytes (8 bits), word (16, 32, or 64 bits)
- Interpreters
- Libraries & dynamic linking (loads and links the shared libraries needed by an executable when it is executed)
- Memory handling in programming (static vs. stack vs. heap)
- Makefiles
- Compiling programs (Linux is not Windows)
- Linux ELF (Executable & Linkable Format)
- Windows EXE
- Overview of command line debugging
- Commands: ldd, make
- RAM vs. ROM (SSDs vs HDDs)
- Suspend vs hibernation of an OS
- Virtual memory & swap tables (one go) / paging (chunking)
- Booting of OS
- Von Neumann machine: Control unit; instruction fetch, decode, and execution
- Power on self-test (POST)
- BIOS vs UEFI
- Boot loaders: NTLDR, GRUB
- Fragmentation
- Sequential and random access
- Compression (gzip, tar)
- File systems: vfat, ntfs, ext
- implementations / fragmentation / performance
- Network file share: SFTP, NFS, Samba
- Commands: df, du, mount, umount, etc/fstab
- MBR vs GPT
- Devices and drivers
- Task Manager (Linux [top] vs. Windows)
- init process / kernel level vs user level processes
- parent vs child process
- System calls (way for programs / APIs to interact with the operating system)
- systemd - systemctl & journalctl
- Fork & exec
- Commands: kill, ps, top, nice, bg, fg, jobs, nohup, killall, screen
- Preemptive (interruptible) and non-preemptive scheduling, priorities, signals
- CPU & kernel memory management
- Thread vs Fork
- Single CPU multi-tasking
- Multiple CPUs and SMP (Symmetric multiprocessing)
- Git servers vs. clients
- Basic commands: push, pull, commit, add, init, clone, branching, custom configurations
- Host names, IP addresses, Subnets, DNS, URLs
- Protocols: HTTP vs HTTPS
- TCP and UDP
- Ports vs sockets, clients and servers, secure shell, sftp
- Application opens a socket which is connected to a port
- X11 in terms of graphical “forwarding” and role of a GUI
- Web browsers (URLs, SSL certs) and clients (ping, wget, traceroute)
- Physical pieces of a network
- hosts, routers, switches, ISPs, wireless, LAN
- Firewalls
- OSI layers (encapsulation / packets, application, transport, network, datalink, physical)
- File system & hardware integrity
- Updates (Linux vs. Windows)
- Installing packages with make
- systemctl & journalctl
- Virus scanning & types of computer diseases
- Creating archives, password locking files
- System restore (automatic, manual, backups)
- Windows Registry
- Passwords: /etc/passwd, /etc/shadow
- Boot scripts & init.d
- Access Control List (ACL)
- Open source movement
- Torrents & ethics
- Commands: write, finger, who, mesg
- Virtual machines (GUI style) and hypervisors
- Containers
- Cloud computing (Google, AWS, Azure) & basic terminology
- Storage buckets, cloud networking, heavy computation
- Building a Linux kernel from source