iPosix - An object-orientated kernel in C++

iPosix - An object-orientated kernel in C++

Individual project (Diplom), Bachelor thesis

Bild

Completed on 14 September 2009 by Eike Möhlmann and Janko Timmermann

Contact person:

Subject areas

  • Operating systems
  • Software Engineering

Background

iPosix stands for Individual Project: Operating System 2009iPosix is a teaching operating system that was created as part of a bachelor's thesis by Eike Möhlmann and Janko Timmermann. It offers students a basic operating system that can be used, for example, as part of a work placement and can be extended by the students to deliberately add missing functionality. Based on their own experiences in lectures, internships and seminars in practical Computing Science, but mainly in the field of operating systems, the idea arose to provide future students with such a basic operating system and a corresponding clean and experimental working environment.

The iPosix teaching operating system is characterised in particular by the fact that theoretical concepts have been combined with software engineering methods. So-called design patterns and modelling tools such as UML were consistently used for conceptual design and subsequent implementation, resulting in high quality source texts and making it easier for students to work with iPosix. It also reduces the training effort for students, as they can recognise and apply patterns they have learned.

The target architecture for iPosix is Intel-compatible computers, as these are very widespread, especially in the private sector. This enables students to work with the operating system directly on their own computer and not exclusively with the help of special hardware, emulators or other simulation environments.

In order to reflect the modelling in the implementation, an object-oriented approach was chosen, as this is precisely what students are taught in their training. For this purpose, functionalities were encapsulated in
modules and classes. The use of the C++ programming language allows both the possibility of dealing with the hardware as well as exclusively with the more abstract, conceptual level of the modules and classes. In addition, standard libraries are available, which do not have to be modelled by own implementations. This means that the focus is placed on the actual programming of the operating system and the learning of operating system components and implementation details are hidden. This combination therefore allows fast and prototypical work. The object-orientated approach has achieved a clean separation of architecture-dependent components and architecture-independent components.

Furthermore, components and their utilisation strategy were consistently separated. For example, main memory management systems with different functional scope and different utilisation strategies can be easily programmed and integrated into the operating system. These combinations can now be replaced by other combinations during operation or before commissioning. This makes it quick and easy to compare and evaluate the respective components and strategies.

The development of iPosix was naturally a highly conceptual and practical task. The focus was therefore on the high quality and large scope of the implementation. A total of around 25,000 lines of source code were created.

Due to the systematic separation of hardware components, operating system components and utilisation strategies, iPosix can be used very well in the field of teaching and research. Future work is planned to include network connections for teaching and research into distributed systems, as well as the porting of some user programmes and dynamic loading of libraries. iPosix is already being used as a teaching operating system as part of other final theses and will be used in future, particularly in internships.

Previous knowledge

  • C++
  • Operating system architecture
(Changed: 11 Feb 2026)  Kurz-URL:Shortlink: https://uol.de/p37566en
Zum Seitananfang scrollen Scroll to the top of the page

This page contains automatically translated content.