Assignment 0: Operator Overloading in C++

Learning Objectives

  • Getting to know the programming language C++
  • First steps with the version management system git


This task is voluntary and will not be evaluated. However, it is highly recommended as preparation for the first assignment.

Output Stream

For test outputs and to facilitate troubleshooting, output functions are essential in operating system development. StuBS achieves this with functionality similar to the output stream of the C++ I/O library, in our case provided by the classes Stringbuffer and OutputStream – the standard library itself is of course not available on bare hardware.

Do not use any C/C++ library functions (especially no sprintf) and avoid dynamic memory allocation. The only exceptions is the library function putchar(). Additionally, the system calls open(), write(), close() and fsync() may be used.

The implementation should be extensively tested by implementing the classes ConsoleOut and FileOut and use them in a console application on Linux. It will be integrated in OOStuBS or MPStuBS in the next assignment.

Class Map for Assignment 0

A test application can be found in the test-stream folder.

Further Reading