Course Info / Syllabus

Labs

Lecture Topics

Exam Reviews

Source Code & Other Resources


Operating Systems Concepts & Design

CEG 2350 - OS Concepts and Usage

Fall 2025

Schedule Information

Lecture:

Lab:

See Course Info in Pilot for:

Exam Information

Section 01

Exam 1: TBD

Exam 2: TBD

Final: 8:00 - 10:00 AM Tuesday, December 9th in TBD

Section 02

Exam 1: TBD

Exam 2: TBD

Final: 2:45 - 4:45 PM Thursday, December 11th in TBD

Course Description

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.

Prerequisites:

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 throughout the course. Textbook(s) can be purchased at the student’s discretion and may better support different learning styles. Books are ranked in order from beginner (towards the level of this course) to advanced (good resources for continued learning).

Learning Git: A Hands-On and Visual Guide to the Basics of Git, O’Reilly, Anna Skoulikari

The Linux Command Line, 2nd Edition, no starch press, William Shotts

How Linux Works, 3rd Edition: What Every Superuser Should Know, no starch press, Brian Ward

Pro Git, 2nd Edition: Everything you need to know about git, Apress, Scott Chacon and Ben Straub

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, 4th Edition, Prentice Hall, Mark G. Sobell

Software:

A terminal emulator:

AWS Virtual Server (via AWS Academy Account)

Git & a GitHub account

Visual Studio Code (or preferred text based editor with git integration)

See Environment Setup in Content -> Course Information for instructions & additional links.

Communication:

Pilot will be used in this course for submitting labs and for accessing course materials and grades.

It is the student’s responsibility to check the Pilot site, as well as their Wright State email, for course announcements, updates to assignment requirements, etc.

This course makes heavy usage of Discord for communication in and outside of class. It is strongly advised to keep an eye on Discord conversations for additional resources and troubleshooting assistance.

Grading:

Lab assignments: 60% (12 planned labs, 5% each)

Quizzes: 10% (10 planned, 1% each)

Exams: 30% (3 exams – two during the semester & the final exam, 10% each)

No makeup exams are given unless there is a verifiable emergency. Missing any of the course exams may result in a meeting with the instructor and earning no more than a D in the course.

The final exam is a cumulative test of you understanding of topics in this course. Receiving a failing grade (less than 70%) on the final exam may result in a meeting with the instructor and earning no more than a D in the course.

You may miss (receive a 0) on no more than two lab assignments. Each lab will cover a different topic and will be your primary time to practice and reinforce course concepts. If more than two labs are missed, you may earn no more than a D in the course.

The grading scale for the course is [90-100] A; [80-90) B; [70-80) C; [60-69) D; [0-60) F*

*Final assigned grade is at the discretion of the instructor.

Attendance Policy:

Attendance will not be taken for this course. This is an in-person course, and you are expected to attend all sessions. If you need to miss a class for illness or other personal reasons, it is your responsibility to catch up on topics and practice activities.

Access to an archive of course lectures from Spring 2023 is given via Content -> Course Video Archive -> Panopto - Spring 2023 Videos w/ Captions. The videos are captioned and searchable for specific content. The videos can be used for additional review or more practice exercises.

Assignment \ Quiz \ Exam Policy:

Students are responsible for keeping up with due dates. Specific dates are given in the Dropbox and Quizzes & Exams sections 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.

Exams will be given in person. Quizzes will be available online and may be taken outside of class. 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.

Approximately every two weeks, the instructor and / or teaching assistants will connect to your AWS lab environment to check that you are making progress towards the work stated in the lab instructions. If your lab environment lacks evidence of such progress, it will result in a meeting with the instructor to determine an appropriate plan of action.

Late Policy:

No late work will be accepted for this course.

Exams and quizzes will only be open for the time frame specified.

Lab Redo Policy:

There will be two lab assignment redo opportunities given during this course. These opportunities can be for a missed lab, lab with a low grade, or missed portions (including extra credit portions). Specific details will be announced during the course.

Students with disabilities:

Any student with a disability (physical or mental) must register with the Office of Disability Services to determine what accommodation(s), if any, are appropriate. The student must inform the instructor of the special accommodation(s) needed as soon as possible.

Technology Requirements:

This course requires you to have access to a computer and the internet.

007 SSC has laptops at the tables for student use. To access an account with the course software installed, see 007 SSC Account Info in Pilot in Content -> Course Information

CECS has two open computer labs – 152B & D open 24/7.

There are several open computer lab options across campus – primarily in the library & library annex. A full list can be found here: https://www.wright.edu/information-technology/computer-labs

Laptops2Go (by CaTS) can be an option if you need a system during a school day: https://www.wright.edu/information-technology/laptops2golaptop-check-out-service

In the event none of these options can solve your needs, please contact the instructor via email as soon as possible.

CSE Help Room:

The Department of Computer Science and Engineering maintains a help room, staffed by upper-level students, for students in introductory programming classes. The help room is not intended to help with this course, but many student-staff working in the help room have taken this course and may be available to assist you. You should first use the course Discord channel, contact your TAs, and contact the instructor before attempting to use the help room student-staff.

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 & Study Coaches:

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 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.

Academic misconduct:

No food or drink is allowed in the computer labs. Do not be disruptive during lecture or lab. Violations of either of these rules can cause for dismissal from lecture or lab for that period.

Labs are to be completed individually. Sharing your work or copying someone else’s work or plagiarizing from online resources 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 assignments in this course are designed to develop the student’s ‘own’ voice and perspective through troubleshooting & testing of their knowledge. The use of AI of any kind in these types of assignments would undermine that work, its purpose, and ultimately any benefit that it could provide towards your learning experience. Therefore, the use of any generative AI to help with your assignments will be considered the same as getting help from another person, that is, plagiarism, and will be penalized accordingly.

Use of AI tools to perform lab assignments for you may result in a minimum of a 0 on the assignment and a formal Academic Integrity Violation will be submitted. Use of AI tools during an exam will result in a minimum of a 0 for the exam and a formal Academic Integrity Violation will be submitted. Use of AI tools on the final exam will result in an F in the courses and a formal Academic Integrity Violation will be submitted. This policy will be discussed in the classroom at the beginning of the semester. Further questions and comments are welcome and should be addressed to the faculty member teaching the class.

Course Objectives:

During this course, student will practice & understand:

Lecture Topics:

The below topic list is not a weekly order of topics, but the organized summary of topics covered throughout this course.

Intro topics

  1. Shells
    • Windows: powershell, cmd
    • Linux / Mac: bash, sh, zsh
  2. SSH
    • the command, its options, and structure of information
    • private key files (location and permissions)
    • public keys and the authorized_keys file

Files, directories, and OS structure

  1. Filesystem structure in Linux, Mac, and Windows
  2. Files vs directories
  3. Commands: ls, cp, mkdir, rmdir, vim, mv, rm, cd, cat, touch, head/tail, less/more
  4. Importance of names and extensions (file)
  5. Ownership & sharing
    • rwx permissions in Linux
    • user vs. group vs. other
    • creating users & groups (and naming rules)
    • chmod, chown, chgrp, adduser, deluser
    • sudo & the root user

Scripting

  1. Environment variables
    • HOME
    • USER
    • SHELL
    • PATH
  2. Aliases & customizations (.bashrc, .profile)
  3. Commands: diff, find, file, wc, sort, uniq, whereis, which
  4. IO streams (standard input, output (1) and error (2)) and redirection (<, >, », , tee)
  5. executing scripts
    • within current bash shell (source (or .)
    • by specifying interpreter (bash)
    • by specifying the interpreter with #! (./)
    • by name from any location (adding path to PATH)
  6. Scripting languages: bash
    • variables
    • reading input
    • printf vs echo
    • arguments
    • conditionals (test)
    • if
    • for
    • while
    • case
    • getopts
    • functions
  7. Regular expressions
  8. grep (search)
  9. sed (search and replace)
  10. awk (manipulate formatted data)

Computer Hardware & VMs

  1. Computer Hardware:
    • CPU
    • RAM
    • Motherboard
    • Disks (HDD, SSD, NVME)
    • GPU (discrete / dedicated vs integrated)
  2. VMs
    • hypervisor
    • host considerations when creating VMs
    • installing guest VMs

Boot Process

  1. BIOS / UEFI
  2. POST
  3. bootloader
  4. kernel
  5. OS

Filesystems & Disks

  1. Devices
    • block - SSD, HDD, NVME, CD, USB
    • character - /dev/null, /dev/zero, /dev/random
  2. Partition tables & partitions
    • MBR vs GPT
    • Tools: parted, gdisk, fdisk
  3. Filesystems
    • Standard defaults for Windows, Linux, and Mac
    • compatibility, metadata, structure
    • inodes
      • Symbolic links vs. hard links
      • Tools: ln, stat
    • Tools: du, df, mkfs
  4. Mounting & “ejecting”
    • mounting to /
    • automounting with fstab entries
    • Tools: mount, umount
  5. Compression (tar & gzip)

Process Control

  1. Terminology
    • process
    • application
    • service / daemon
  2. Process states
    • Running
    • Sleeping
    • Stopped
    • Zombie
    • Orphan
  3. Process metadata
    • PID
    • PPID
    • User
    • Command
    • Controlling terminal
  4. Process manipulation
    • viewing active processes
    • killing processes
    • foreground vs background processes (bg, fg)
    • “pseudo terminals” via tmux
  5. Service manipulation with systemctl
    • enable vs disable
    • start, stop, reload / restart
    • format of a service unit file
  6. init / systemd
    • systemctl (manage services)
    • journalctl (view service logs)
  7. Tools: ps, top, kill, jobs

Programming

  1. Languages:
    • Interpreted: bash, python
    • Compiled: C / C++, Java (JDK vs JVM)
  2. Compilation (in C / C++):
    • pre-processor
    • compiler
    • assembler
    • linker
    • gcc/ g++ and compilation flags
    • Linux ELF (Executable & Linkable Format)
    • Windows EXE
  3. Makefiles
    • make
    • targets
    • dependencies
    • actions
  4. Tools: which, whereis, ldd

Networking

  1. Core networking concepts
    • Methods of communication (physical layer): wifi, ethernet, fiber
    • Network interface (NIC)
      • communicates over physical layer
      • Media Access Control address (MAC)
    • Network concepts
      • IPv4 vs IPv6 addressing
      • DNS
      • DHCP
      • subnets
      • routes
      • border gateways / Network Address Translation (NAT)
      • ports
  2. IPv4 concepts
    • Subnetting & CIDR notation
  3. Firewalls
    • inbound / INPUT / ingress
    • outbound / OUTPUT / egress
    • common sense rules & trusted networks
    • applied questions will be with a view of an AWS Security Group
  4. Commands: ip, route, arp, iptables, ping, curl, wget

Network protocols

  1. HTTP
  2. HTTPS
    • certificates & Certificate Authorities
  3. SSH
    • ssh
    • sftp
    • Files:
      • private key
      • public key
      • config
      • known_hosts
      • authorized_keys

Git (version control)

  1. Version control as a concept
  2. Steps to clone with ssh for authentication
  3. Basic commands:
    • clone
    • add
    • commit
    • push
    • pull
    • status
    • branch
    • checkout
    • merge
  4. Files:
    • .gitignore