The philosophy of the BlackBerry 10 OS
The primary goal of the BlackBerry 10 OS is to deliver the open systems POSIX API in a robust, scalable form suitable for a wide range of systems—from tiny, resource-constrained embedded systems to high-end distributed computing environments. For mission-critical applications, a robust architecture is also fundamental, so the OS makes flexible and complete use of MMU hardware.
Of course, simply setting out these goals doesn't guarantee results. We invite you to read through this System architecture guide to get a feel for our implementation approach and the design trade-offs chosen to achieve these goals. BlackBerry 10 OS is the first OS product of its kind to truly deliver open systems standards, wide scalability, and high reliability.
An embeddable POSIX OS?
According to a prevailing myth, if you scratch a POSIX operating system, you find UNIX beneath the surface! A POSIX OS is therefore too large and unsuitable for embedded systems. POSIX is not UNIX. Although the POSIX standards are rooted in existing UNIX practice, the POSIX working groups explicitly defined the standards in terms of interface, not implementation.
Thanks to the precise specification within the standards, as well as the availability of POSIX test suites, nontraditional OS architectures can provide a POSIX API without adopting the traditional UNIX kernel. Compare any two POSIX systems and they look very much alike—they have many of the same functions, utilities, and so on. But when it comes to performance or reliability, they may be as different as night and day. Architecture makes the difference.
Despite its decidedly non-UNIX architecture, BlackBerry 10 OS implements the standard POSIX API. By adopting a microkernel architecture, the OS delivers this API in a form easily scaled down for realtime embedded systems or incrementally scaled up, as required.
Since you can readily scale a microkernel OS simply by including or omitting the particular processes that provide the functionality required, you can use a single microkernel OS for a much wider range of purposes than you can a realtime executive. Product development often takes the form of creating a product line, with successive models providing greater functionality. Rather than be forced to change operating systems for each version of the product, developers using a microkernel OS can easily scale the system as needed—by adding file systems, networking, graphical user interfaces, and other technologies.
Some of the advantages to this scalable approach include:
- Portable application code (between product-line members)
- Common tools used to develop the entire product line
- Portable skill sets of development staff
- Reduced time-to-market
Last modified: 2015-03-31