Does ROS development fall under the systems programming category?
As a full stack web developer and devops engineer, we write small chunks of code like microservices, or infrastructure-as-code, where each repository is really no larger than 50 to a 100 source files.
Most often we use frameworks that are optimized for specific tasks, and therefore hiding away the details of implementation.
Of course I know and have used the concepts of pub/sub, messaging, scheduling, etc. I also have a good grasp of CPU design and architectures and how the code design choices effect performance and efficiency, depending on the architecture.
However I have not truly practiced these concepts in a way that I can say I concretely know them. Therefore I would like to start writing my own (scaled down) version of a robot operating system that is intended to run on a single robot, so I can practice many of these techniques, such as:
- dynamic loading of dependencies based on configuration files
- a small runtime environment with some fault tolerance
- pub/sub mechanisms and message passing
- scheduling events
I watched videos on "Systems Programming" but that's not quite what this is. What is the name of the programming paradigm that teaches the development of these systems?