GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - SoftwareSystemsLaboratory/systems-code-examples

BranchesTags
Open more actions menu

Latest commit

 

History

216 Commits
216 Commits

Folders and files

NameName
Last commit message
Last commit date
.github/workflows
.github/workflows
 
 
better_gets
better_gets
 
 
bounded-buffer
bounded-buffer
 
 
bsd-tree-demo
bsd-tree-demo
 
 
bsd-tree-lib
bsd-tree-lib
 
 
c_intro
c_intro
 
 
charlist_t
charlist_t
 
 
dining-philosophers
dining-philosophers
 
 
dir_list
dir_list
 
 
dir_list_cpp
dir_list_cpp
 
 
domain_sock
domain_sock
 
 
file_rw
file_rw
 
 
fork
fork
 
 
fork_cpp
fork_cpp
 
 
fork_exec
fork_exec
 
 
fork_pipe
fork_pipe
 
 
fork_sigchld
fork_sigchld
 
 
fork_sigchld2
fork_sigchld2
 
 
getopt
getopt
 
 
gnu_pth
gnu_pth
 
 
hello-exe
hello-exe
 
 
hello-lib
hello-lib
 
 
linux-kernel
linux-kernel
 
 
llnl_pthreads_examples
llnl_pthreads_examples
 
 
lwlog-demo
lwlog-demo
 
 
lwlog-lib
lwlog-lib
 
 
malloc
malloc
 
 
minix-kernel
minix-kernel
 
 
mmap
mmap
 
 
mmap_locks
mmap_locks
 
 
monitor
monitor
 
 
mutex
mutex
 
 
objects
objects
 
 
parity
parity
 
 
pic
pic
 
 
qsort-demo
qsort-demo
 
 
rational_adt
rational_adt
 
 
read-write-demo
read-write-demo
 
 
regex-demo
regex-demo
 
 
scripts
scripts
 
 
semaphore
semaphore
 
 
simple_adt
simple_adt
 
 
spin_lock
spin_lock
 
 
std-hsearch
std-hsearch
 
 
std-queue
std-queue
 
 
std-tsearch
std-tsearch
 
 
stm
stm
 
 
strbuffer-demo
strbuffer-demo
 
 
strbuffer_t
strbuffer_t
 
 
strlen
strlen
 
 
strtok
strtok
 
 
syscall
syscall
 
 
threads_csharp
threads_csharp
 
 
vectored_io
vectored_io
 
 
wait
wait
 
 
.gitignore
.gitignore
 
 
.gitpod.yml
.gitpod.yml
 
 
.hgignore
.hgignore
 
 
AGENTS.md
AGENTS.md
 
 
CMakeLists.txt
CMakeLists.txt
 
 
README.md
README.md
 
 

Repository files navigation

Build Status

OS Examples

Synopsis

A number of example programs to accompany the os.cs.luc.edu lecture notes for the Operating Systems course at Loyola University Chicago.

Recent Developments

  • Updated CMake build process. All examples are driven by a top-level CMakeLists.txt. CMake is pretty awesome. I just don't have the time to write Makefiles by hand, and I never enjoyed working with autoconf.

  • Establish foundation for using GoogleTest.

  • Modular structure to allow various examples to be standalone programs, possibly with internal library dependencies.

  • Many new examples with pthreads.

Building

The default build compiles the example programs. GoogleTest-based test binaries are optional and are enabled with -DBUILD_TESTING=ON.

Default build:

  • git clone https://github.com/SoftwareSystemsLaboratory/systems-code-examples
  • cd systems-code-examples
  • cmake -S . -B build
  • cmake --build build

Build and run tests:

  • cmake -S . -B build -DBUILD_TESTING=ON
  • cmake --build build
  • ctest --test-dir build --output-on-failure

Build the Linux-only optional examples:

  • cmake -S . -B build -DBUILD_OPTIONAL_EXAMPLES=ON
  • cmake --build build

Debian/Linux/GNU Systems

  • git clone https://github.com/SoftwareSystemsLaboratory/systems-code-examples
  • apt install build-essential cmake
  • cd systems-code-examples
  • cmake -S . -B build
  • cmake --build build

OS X via Homebrew

We only provide limited support for OS X and Homebrew at this time. The core examples from https://os.cs.luc.edu work. However, some of the newer examples rely on some GNU-specific (and sometimes GNU-only) features that don't seem to have a clear equivalent on OS X (even via Homebrew). I'm still working on it.

Nevertheless, if you want to try, do the following:

  • git clone https://github.com/SoftwareSystemsLaboratory/systems-code-examples
  • brew install cmake
  • cd systems-code-examples
  • cmake -S . -B build
  • cmake --build build

To build the GoogleTest-based test binaries, configure with -DBUILD_TESTING=ON. This requires network access during CMake configuration unless GoogleTest has already been downloaded or supplied through CMake's FetchContent options.

Hopefully, by end of the Fall semester, I will be able to get the 5 pesky examples to build/run on OS X. It's not a matter of if but when.

About

No description, website, or topics provided.

Resources

Readme
Activity
Custom properties

Stars

32 stars

Watchers

22 watching

Forks

17 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.