Sabaton™ is a novel approach to build Linux embedded systems in the Automotive and IOT space. Build fast, safe and compact Linux embedded systems and build them quicker than ever.
With a strong focus on security from the ground-up, Sabaton is ready to take on the challenges of the connected ecosystem where device security is critical. See Security for more details.
Sabaton Auto uses a modern language and tools for a much improved experience for embedded developers. Leapfrog your embedded Linux product into the modern development ecosystem and interface seamlessly with the latest in Cloud-native technologies. NATS.io, Hyperledger just to name a few. The future of the Cloud and Edge will be Rust.
Tread Fast
A modern language and modern toolchain to build products as fast as you can think. Rapid build cycles, separation of slow-moving and fast-moving source code, and easy integration with CI/CD pipelines to build a high-quality product even with rapid iterations.
The speed of developing new features is crucial to being successful in the competitive and challenging automotive industry. C and C++ development tends to be error prone and takes a longer time to write good good and validate new features. With Rust, you can churn out features as you think, letting the language worry about managing memory and concurrent accesses to data.
- Use the same programming language on the device, the edge and the cloud.
- Develop and run components on a regular development machine. A network-centric architecture allow transparent access to resources on the target.
- Increase the productivity of your development teams by using a a modern language that allows developers to focus on feature development.
- Zero overhead interoperability with C and C++ allows you to reuse existing software. You can also integrate with Make and CMake build systems to compile existing libraries.
- Build product images in minutes without needing powerful (and expensive) build machines.
Tread Boldly
Nothing is constant but change. Refactor quickly and boldly. Confidently make changes and allow the tooling and language to help you sort out issues.
Latent software defects in C and C++ software is very often the cause of security breaches and hard to debug and reproduce issues. A minor mistake modifying C and C++ software could lead to hundreds of hours of lost time in debugging. An entire class of latent software defects are out of the picture when using Rust for system software development.
A software product line approach with easy configurability allows you to maintain multiple products out of a single build tree. This improves the ability to continuously build and test.
Thread Safely
Sabaton uses Rust as the primary programming language. An ideal language for security sensitive software and system software in general, Rust helps you avoid memory issues and data races with the convenience of a modern high-level language without losing performance. C and C++ applications are still supported of course and the GNU toolchain is shipped as part of the Sabaton NDK.
Just focus on developing your feature, let the language take care about memory issues and data races. Sabaton integrates with the Cargo build system that orchestrates the build.
Rust Programming Language
- Rust is a type-safe and memory-safe language that reduces a lot of common issues faced with C and C++ programming. Coding errors are detected at compile time, and therefore it costs less to implement software in Rust. A large percentage of security issues are due to such coding errors and using Rust also improves the security of the system.
- Rust catches concurrency bugs at compile time and prevents runtime issues that are very hard to debug. This makes it the right choice to develop high quality software for multi-core systems.
- Rust has no runtime or garbage collector. It compiles to native code and is frequently also used for bare-metal software.
- Rust is gaining popularity on the Cloud as it improves performance and the cost efficiency of the cloud systems - especially for short running tasks.
- Rust has been under development since 2010 and was created by the Mozilla foundation. Rust is now managed by the Rust Foundation. AWS, Facebook, Google, Huawei, Microsoft and Mozilla are founding members of the Rust Foundation.
- Google Android introduced Rust into the Android stack - it is now possible to develop Android system applications using Rust. Google Fuchsia has large amounts of software written in Rust.
- Microsoft has released a Rust for Windows SDK with Windows 10.
- Rust uses the LLVM toolchain and can be targeted to run on Arm, Aarch64, RiscV, Intel and even in the browser by using WASM.
- Rust also managed to break into the Linux kernel. Google is funding this activity mainly to improve security. .
The signs are clear; several organizations have acknowledged the advantages of using Rust for system software development. Not only is the language powerful and secure, it also comes with a library ecosystem and tools around it that greatly improve the developer experience and productivity.
We predict that Rust will become mainstream in a couple of years and it will be easier to find Rust developers than C/C++ developers. The same developers can develop software on the device as well as software on the cloud.
Read the paper The Case for Using Rust in Automotive Systems
Out-of-the-box features
- DDS - Eclipse Cyclone DDS
- MQTT - Paho MQTT
- Eclipse Iceoryx
- Develop asynchronous applications accessing DDS topics or services provided by other applications.
- Hardware independent security abstraction API
A software product-line approach with easy configurability enables you to develop your product line out of a single build tree.
Whats in a name?
A Sabaton is a Knight's foot armour. Basically, it keeps you safe from the footgun. 😀
Focus on the feature implementation Let the language and tools keep you safe from shooting yourself in the foot.
Reimagining Embedded Linux Development
Sabaton takes a fresh approach to Embedded Linux Development, using modern tools and workflows. The application developer is freed from the burden of custom build tools and scripts as she mostly works using Rust tools.