Linux with Operating System Concepts  book cover
2nd Edition

Linux with Operating System Concepts

  • Available for pre-order. Item will ship after December 29, 2021
ISBN 9781032063454
December 29, 2021 Forthcoming by Chapman and Hall/CRC
608 Pages 284 B/W Illustrations

SAVE ~ $19.99
was $99.95
USD $79.96

Prices & shipping based on shipping country


Book Description

A True Textbook for an Introductory Course, System Administration Course, or a Combination Course

Linux with Operating System Concepts merges conceptual operating system (OS) and Unix/Linux topics into one cohesive textbook for undergraduate students. The book can be used for a one- or two-semester course on Linux or Unix. It is complete with review sections, problems, definitions, and concepts.

Details for Introductory and Advanced Users

The book covers Linux from both the user and system administrator positions. From a user perspective, it emphasizes command line interaction. From a system administrator perspective, the text reinforces shell scripting with examples of administration scripts that support the automation of administrator tasks.

Thorough Coverage of Concepts and Linux Commands

The author incorporates OS concepts not found in most Linux/Unix textbooks, including kernels, file systems, storage devices, virtual memory, and process management. He also introduces computer science topics, such as computer networks and TCP/IP, encryption, file compression and the GNUs C compiler.

New in this Edition

The book has been updated to systemd Linux and the newer services like Cockpit, NetworkManager, firewalld and journald. This edition explores Linux beyond CentOS/Red Hat by adding detail on Debian distributions. Content across most topics has been updated and improved.

Table of Contents

Acknowledgements and Contributions


How to Use This Textbook

New to this Edtion

Available Online Supplements

About the Author

Linux:  What, Why, Who and When, and How


What is Linux?

Early Operating Systems

The Operating System Kernel

Other Operating System Components

So, What is Linux?

Why Use Linux?

Who Developed Linux and When?

The Birth and Development of Unix


Enter Linux Torvalds

The Open Source Community

How do You Use Linux?

Installing Debian Linux

Installing CentOS Linux

Installing Ubuntu Linux

Installing Linux Mint

An Introduction to the Shell and Command Line

Chapter Review




Entering Linux Commands

Simple Linux Commands

Commands with Options and Parameters

Forms of Linux Help

Man Pages

Other Forms of Command Line Help

Bash Features

Recalling Commands Through the History List

Shell Variables


Command Line Editing


Other Useful Bash Features

Tailoring Our Environment


An Example to Illustrate How to Use vi


Interpreters in Programming Languages

Interpreters in Shells

The Bash Interpreter

Chapter Review


Linux File Commands


Storage Terminology

Filename Specification

The Path

Filename Arguments with Paths

The PATH Variable

Specifying Filenames with Wildcards

File Commands

Directory Commands

File Movement and Copy Commands

File Deletion Commands

Creating and Deleting Directories

Textfile Viewing Commands

File Comparison Commands

File Manipulation Commands

Miscellaneous but Useful File Commands


What Are Permissions?

Altering Permissions from the Command Line

Altering Permissions from the GUI

Advanced Permissions

Hard and Symbolic Links

Locating Files

Search Using the File Browser

The find Command

Other Means of Locating Files

Secondary Storage Devices

The Hard Disk Drive

Magnetic Tape

Optical Discs

Flash Memory Drives

Device Drivers

File Compression

Types of File Compression

The Lempel-Ziv Algorithms for Lossless Compression

Other Lossless Compression Algorithms

Compression and Decompression Programs in Linux

Chapter Review


Managing Processes


Forms of Process Management

Single Process Execution

Concurrent Processing

Interrupt Handling

Starting, Pausing and Resuming Processes

Ownership of Running Processes

Launching Processes from the Command Line

Suspending and Resuming Processes from the Command Line

Monitoring Processes

GUI Monitoring Tools

Command Line Monitoring Tools

Managing Process Priority

Process Termination

Orphans and Zombies

Killing Processes

Shutting Down Linux

A Look at System Resources

Memory and Virtual Memory

Linux Commands to Inspect System Resources

Chapter Review


Regular Expressions



Controlling Repeated Characters Through *, + and ?

Using and Modifying the . Metacharacter

Controlling Where a Pattern Matches

Matching from a List of Options

Matching Characters That Must Not Appear

Matching Metacharacters Literally

More Precisely Controlling Repetition

Selecting Between Sequences



Using egrep

Useful egrep Options

Examples: Searching the Linux Dictionary

Using egrep to Control the Output of Other Linux Commands


Basic sed Syntax


Other sed Capabilities


awk Condition-Action Pairs

BEGIN and END Sections

Other Forms of Control

awk Command Line Options and Arguments

Non-file Input to awk

Chapter Review


Shell Scripting


Simple Scripting

Scripts of Linux Instructions

Running Scripts

Scripting Errors

Variables, Assignments and Parameters

Bash Variables

Assignment Statements

Executing Linux Commands from Within Assignment Statements

Arithmetic Operations in Assignment Statements

String Operations Using expr

Command Line Parameters

Input and Output

Output with echo

Input with read

Selection Statements

Conditions for Strings and Integers

File Conditions

The if-then and if-then-else Statements

Nested Statements

Case Statement

Conditions Outside of Selection Statements


Conditional Loops

Counter Controlled Loops

Iterator Loops

Using the seq Command to Generate a List

The while read Statement


Declaring and Initializing Arrays

Accessing Array Elements and Entire Arrays

Example Scripts Using Arrays

String Manipulation

Substrings Revisited

String Regular Expression Matching


Defining Bash Functions

Using Functions

Functions and Variables

exit and return Statements

Chapter Review


User Accounts


Creating Accounts and Groups

Creating User and Group Accounts Through the GUI

Creating User and Group Accounts from the Command Line

Creating a Large Number of User Accounts

Managing Users and Groups

Password Management

Automatically Generating Passwords

Managing Passwords

PAM and Enforcing Strong Passwords

Establishing Common User Resources

Populating User Home Directories with Initial Files

Initial User Settings and Defaults

The sudo Command


SELinux Components

A Closer Look at Contexts


Establishing User and Group Policies

Chapter Review


Administering Linux File Systems


Storage Access

Disk Storage and Blocks

Block Indexing Using a File Allocation Table

Other Disk Storage Details

File Storage and Object Storage

Linux Files

Files Versus Directories

Non-file File Types

Links as File Types

Reviewing the File Types

The inode

inode Metadata

inode Pointers

Linux Commands to Inspect inodes and Files

Partitions and File Systems

Why Partition?

Viewing the Available Partitions

Creating Partitions


Using a Logical Volume Manager to Partition

Adding a Disk Drive

Administrative File System Tasks

Mounting and Unmounting File Systems

Remote File Systems

Establishing Quotas on a File System

Miscellaneous Administrative File System Commands

Linux Top-level Directories

Root (/) Partition Directories

The /etc Directory

The /boot, /home and /var Directories

Virtual Filesystem Directories

Chapter Review


System Initialization and Services


Booting the Computer

Volatile and Non-volatile Memory

The Boot Process

The Linux Boot Process

Loading and Running the Linux Kernel

Initialization of the Linux Operating System

Target Unit Files

Service Unit Files

Other Unit File Types

Modifying System Initialization

Linux Services

What Are Services?

An Examination of Significant Linux Services

Using systemctl

Configuration Files

Non-service Configuration Files

Configuring rsyslog

Configuring nfs

Configuring logrotate

Configuring auditd

Chapter Review


Network Configuration


Computer Networks and TCP/IP

Network Connection Devices

The TCP/IP Protocol Stack



Domains, the Domain Name System and Host Names

Linux NetworkManager Service and Related Services and Files


Other Network Services of Note

Establishing DNS Access

Obtaining IP Addresses

Configuring Our Interface Device(s)

Setting Up a DHCP Server

Network Programs

The ip Program

Remote Access and File Transfer Programs

Network Inspection Programs

Address Resolution Programs

The Linux Firewall

The firewalld Service

The Firewall Config GUI Tool



Chapter Review


Software Installation and Maintenance


Software Maintenance Terminology

Types of Programming Languages

Types of Software

Types of Software Licenses

Types of Software Management

Installation and Maintenance of Software from a “Store”

Red Hat Software GUI

Debian Mint Software GUI

Ubuntu Software Center

rpm and dpkg



dnf/yum and apt

Installation of Source Code

Obtaining Installation Packages

Extracting from the Archive

Running the configure Script

The make Step and the makefile

The make install Step

The gcc Compiler


Lexical Analysis and Syntactic Parsing

Semantic Analysis, Compilation and Optimization


Using gcc

Software Documentation

Chapter Review


Maintaining and Troubleshooting Linux


File System Integrity:  Backups, RAID and Encryption

Backups:  Why, How and When

RAID for File System Integrity

Encryption and Encryption Programs

Task Scheduling

at and atd

crontab and crond

System Monitoring

Operating System Issues that Degrade Performance

Processor and Process System Monitoring Tools

Memory System Monitoring Tools

I/O System Monitoring Tools

Log Files

rsyslog-Created Log Files

auditd Logs

Examining the Log Files



Chapter Review



View More



Richard Fox is a professor of computer science at Northern Kentucky University (NKU).  He regularly teaches courses in both computer science (Artificial Intelligence, Computer Systems, Computer Architecture, Concepts of Programming Languages, Object-Oriented Programming I and II) and computer information technology (IT Fundamentals, Unix/Linux). Dr. Fox, who has been at NKU since 2001, is the current chair of NKU’s University Curriculum Committee. Prior to NKU, Dr. Fox taught for 9 years at the University of Texas – Pan American (now known as University of Texas – Rio Grande Valley).  Richard has received teaching awards from UTPA and from NKU, and a service award from NKU. Dr. Fox received a Ph.D. in Computer and Information Sciences from The Ohio State University in 1992.  He also has an M.S. in Computer and Information Sciences from Ohio State (1988) and a B.S. in Computer Science from the University of Missouri Rolla (now Missouri University of Science and Technology) in 1986. Dr. Fox has written two other textbooks published by Taylor & Francis/CSC Press in the IT field (Linux and Operating System Concepts, 2015, and Internet Infrastructure:  Networking, Web Services and Cloud Computing, with Dr. Wei Hao, 2018). Dr. Fox has also authored or co-authored of over 50 peer reviewed research articles primarily in the area of Artificial Intelligence.  Richard Fox grew up in St. Louis, Missouri and now lives in Cincinnati, Ohio. He is a big science fiction fan and progressive rock fan. As you will see in reading this text, his favorite composer is Frank Zappa.