Skip to content
Lawrence Angrave edited this page Jan 19, 2016 · 7 revisions

Welcome to the System Programming Projects wiki! This wiki describes some System Programming project ideas and additional System Programming materials that are aimed at honors students at CS241 at UIUC. Honors students should sign up for the Honors Piazza. This semester's honors course is run by graduate TA Atul (sandur2) and undergraduate Robert (rgandre2).

Readme

  • Honors-Readme. This entry is not really a project. Instead we'll collect and organize some interesting web-articles and other resources that are beyond CS241 but are interesting for honors students.

File system projects

  • Fuse-fs Write your own filesystem! Using FUSE you can write a filesystem in user-space. Albeit a little slower than a native filesystem, FUSE filesystems are easier to write and to debug.

Memory allocator projects

  • Create your heap allocator with the following characteristics: Implement your own malloc,realloc,calloc and free. Write a buddy allocator together and use mmap to reserve a large section of memory from the operating system. How will you make your memory allocator thread safe?

Mini-busybox

  • Implement a single executable that implements basic versions of ls, grep, cat, time. Note POSIX and gnu provide a regular expressions library (see regex.h).

Implement a pipe-like interprocess blocking queue

  • Using shared memory (mmap) and shared semaphores implement a blocking buffer that behaves like a pipe i.e. data can be streamed into or out of the buffer from one process to another. Implement ssize_t enqueue(queue*, void*data, ssize_t bytes) and ssize_t dequeue(queue*, void*data, ssize_t maxbytes) that behave like write and read.

Synchronization

More ideas

  • Get involved with Angrave's Linux-In-The_Browser project
  • Get involved with Angrave's ClassTranscribe (crowd-sourced transcription of lectures)
  • Get involved with Angrave's ClassCapture project (distributed lecture video capture using Android & IPhone)
  • Create questions for the System Programming wiki book
Clone this wiki locally