The term Vehicle.OS is currently extremely fashionable. It is representing the decoupling between in vehicle hardware and software. Nearly every big company, from automotive to tech, is jumping on the train, but what is meant with “OS”?
Due to Google Android it is

Due to Blackberry it is

Lets have a look on the definitions the popular cloud classification use:

Due to that, both before given Google and Blackberry statements point to PaaS – the platform provided in a managed manner to use. Wikipedia defines a computing platform as an “environment in which a piece of software is executed“.
The cloud classification and computing platform definition have two pillars in common:
- Middleware and
- Runtime.
The term middleware describes “any software that allows other software to interact” – the application program interfaces (API), frameworks and runtime libraries. In comparison the runtime executes (or even supports to) the program/ application e.g., a browser in the case of web-based program such as JavaScript
The company APEX.AI gives a bit more context:

Out of this it gets reduced on the runtime providing the following capabilities (partially taken from APEX.ai):
- First class C and C++ APIs for application developer, which are compatible with ROS2
- Middleware abstraction, simplifies the use of complex middleware interfaces
- Automotive production code quality through the elimination of all unsafe code constructions
- Fully deterministic software execution
- System safety enabled through managed nodes with lifecycle management
- etc.
- Development time and,
- Run time
This abstract from APEX.ai also provides a bunch of aspects, related to
of the business logic.
Development time:
- Interface abstraction and APIs: The mechanism for introducing business logic and getting them interacting with the runtime and system are well defined. Due to ROS2 documentation here it fundamentally is about:
sharing the Publish-Subscriber pattern, also use for offering services (aka remote procedure calls). For Python check the following example.
- Safe code constructions: Due to the Apex.ai slides here every construct that
- dynamically allocates memory e.g., string variables
- everything that results in blocking calls e.g., file writes
Run time:
- Deterministic execution: Every task runs in a separate process, bound to a separate CPU, has a well defined priority, is not interruptible etc.
- Lifecycle Management: A logical encapsulation programming unit, at runtime bound to a well defined lifecycle. Due to ROS2 wiki “A node is a process that performs computation”. ROS2 defines the lifecycle as follows:
