The architecture of software Professor Christian Dietrich is the new head of the Department of Reliable System Software
In the world of software development, there are areas that work in the background, yet are crucial to the functioning of modern applications. One of these areas is system software, which ensures that the various programs run efficiently and stably. But what exactly is system software and why is it so important? Professor Christian Dietrich is the new Professor for Reliable System Software at the Institute for Operating Systems and Computer Networks at TU Braunschweig. He tells us why system software is always caught between two stools, what challenges it faces and what makes his research in this area so fascinating.
Why did you choose TU Braunschweig?
The decision to come to TU Braunschweig was easy for me for several reasons:
As a member of TU9, TU Braunschweig is an institution that I have known for a long time, and in the course of my career I have repeatedly met outstanding scientists from here. The positive words of my predecessor, Professor Rüdiger Kapitza, about TU Braunschweig reinforced this impression and made me enthusiastic about the university.
This positive impression was also confirmed during the appointment process, which led directly to in-depth technical discussions. For me, this is an essential aspect of a university: a place where you can discuss a wide range of topics with the most interested people.
But it wasn’t just the discussions with academics that impressed me, it was also the interested and engaged students. A university lives through its students, who fill the rooms, corridors and squares with life by actively participating in a lively academic dialogue.
A personal aspect that also influenced my decision was being closer to my family. Thanks to the position in Braunschweig, I can now participate much more intensively in everyday family life and thus find a better balance between professional and private commitments.
What exactly do you do in your research? How would you explain your work to someone unfamiliar with the subject?
Not all software is designed to solve users’ problems directly. Some software is designed to solve the problems of other programs, or at least to make their lives easier. System software, such as the operating system, falls into this category. System software is therefore not an end in itself, but achieves its value through interaction.
System software is not just an auxiliary component, but through the services it provides it significantly shapes the world view of the applications. This can be compared to the work of an architect: The buildings they design are not useful in themselves, but only when people use them. However, the geometry of the rooms essentially determines the life in them. A bath tub serves its purpose, but squeezing past the washing machine is no fun.
System software is always caught between two stools: On the one hand, new and innovative hardware is constantly coming onto the market, potentially promising more performance. On the other hand, there are application developers who would prefer not to change anything, but still want to take full advantage. The challenge for system software is to design a stable and future-proof building that will provide a home for its demanding occupants in a changing environment.
What are the main research areas and projects you will be working on at TU Braunschweig?
My main research area at TU Braunschweig will be system software for heterogeneous hardware and resource-intensive platforms, especially disaggregated systems. I am currently building a team of technically interested computer scientists who are interested in these topics.
To explain the concept of heterogeneous hardware, I’ll use an architectural analogy: traditionally, the resources (e.g. processors) within a computer are all the same, similar to a house where all the rooms are the same size and layout, so it’s very easy to move from one room to another. With heterogeneous hardware, however, we now combine powerful and energy-efficient processors in one system; suddenly we have very small and very large rooms. The challenge for system software is to make applications run optimally on these ‘irregular’ platforms, regardless of whether they are in a small or large room.
Another issue is disaggregated systems, which will be of paramount importance in the cloud of the future. Here’s another analogy: in the world of property, people tend to rent whole flats, and when the children move out, the children’s room all too often becomes a dusty storage room. It would be great if these unused rooms could be made available to young families without the social conflicts of a shared kitchen. While this is difficult to achieve with physical spaces, it will be possible with computing resources in the future. The exciting question is how to design such systems efficiently and with as little disruption to users as possible.
What motivated you to do research in this area?
Computer science can also be described as the ‘science of abstraction’. Because what we computer scientists really like to do is solve a big problem by layering many small levels of abstraction on top of each other. That way, each level remains distinct and can be reused. We have developed clever terms such as ‘separation of concerns’ and ‘information hiding’ for this purpose, but basically we wrap the prickly problem in abstractions until it no longer stings.
The charm of systems software research is that you have to keep many of these layers in mind at the same time in order to design a good, usable system. We are often the ones who have to explain to users who are comfortable with the upper layers why what they are doing is terribly slow and must always remain slow. This top-level view of many layers is very diverse, and you see many less populated areas of computer science, and there are many ‘rabbit holes’ to delve into.
Can you describe your daily work in three key words?
In teaching, I try to get the essence of the concepts across to the students, because this reduction to the essentials makes the acquired knowledge future-proof and adaptable. In research, I always stick to the technical details so that I don’t drift off into the realms of abstract professorial ideas. Meanwhile, my day-to-day work also involves a great deal of organisation, for which my email programme is my most important tool.