Getting to know the OS

Welcome to the BlackBerry 10 OS! This section describes how the BlackBerry 10 OS compares to UNIX and Microsoft Windows, from a user's (not a developer's) perspective. For more details about BlackBerry 10 OS's design and the philosophy behind it, see System architecture.

BlackBerry 10 OS compared with UNIX

If you are familiar with UNIX-style operating systems, you'll feel right at home with BlackBerry 10 OS. At the heart of the system is the QNX Neutrino microkernel, procnto , surrounded by other processes and the familiar Korn shell, ksh (see Using the command line). Each process has its own process ID, or pid, and contains one or more threads.

To determine the release version of the kernel on your system, use the uname -a command. For more information, see its entry in Utilities.

BlackBerry 10 OS is a multiuser OS; it supports any number of users at a time. The users are organized into groups that share similar permissions on files and directories.

BlackBerry 10 OS follows various industry standards, including POSIX (shell and utilities) and TCP/IP. This can make porting existing code and scripts to BlackBerry 10 OS easier.

BlackBerry 10 OS's command line looks just like the UNIX one; BlackBerry 10 OS supports many familiar utilities ( grep , find , ls , gawk ) and you can connect them with pipes, redirect the input and output, examine return codes, and so on. Many utilities are the same in UNIX and BlackBerry 10 OS, but some have a different name or syntax in BlackBerry 10 OS:

UNIX BlackBerry 10 OS See also:
dmesg slogger , sloginfo  
ifconfig eth0 ifconfig en0  
man use Using the command line
pg less Using the command line

For details on each command, see BlackBerry 10 OS Utilities.

BlackBerry 10 OS compared with Microsoft Windows

BlackBerry 10 OS and Windows have different architectures, but the main difference between them from a user's perspective is how you invoke programs. Much of what you do via a GUI in Windows you do in BlackBerry 10 OS through command-line utilities, configuration files, and scripts, although BlackBerry 10 OS does support a powerful Integrated Development Environment (IDE) to help you create, test, and debug software and embedded systems.

Here are some other differences:

  • BlackBerry 10 OS and DOS use different end-of-line characters; BlackBerry 10 OS uses a linefeed, while DOS uses a carriage return and a linefeed. If you need to transfer text files from one OS to the other, you can use BlackBerry 10 OS's textto utility to convert the files. For example, to convert the end-of-line characters to BlackBerry 10 OS-style:

    textto -l my_file

    To convert the end-of-line characters to DOS-style:

    textto -c my_file

  • BlackBerry 10 OS uses a slash (/) instead of a backslash (\) to separate components of a pathname.
  • You can't use DOS commands in BlackBerry 10 OS, but many have equivalent commands. For more information, see BlackBerry 10 OS for MS-DOS users.

How BlackBerry 10 OS is unique

The BlackBerry 10 OS consists of a microkernel (procnto) and various processes. Each process—even a device driver—runs in its own virtual memory space.

Diagram showing the microkernal and system processes.

The advantage of using virtual memory is that one process can't corrupt another process's memory space. For more information, see The philosophy of the BlackBerry 10 OS in System architecture.

BlackBerry 10 OS's most important features are its microkernel architecture and the resource manager framework that takes advantage of it (for a brief introduction, see Resource managers). Drivers have exactly the same status as other user applications, so you debug them using the same high-level, source-aware, breakpointing IDE that you'd use for user applications. This also means that:

  • You aren't also debugging the kernel when you're debugging a driver.
  • A faulty driver isn't likely to crash the OS.
  • You can usually stop and restart a driver without rebooting the system.

Developers can usually eliminate interrupt handlers (typically the most tricky code of all) by moving the hardware manipulation code up to the application thread level—with all the debugging advantages and freedom from restrictions that that implies. This gives BlackBerry 10 OS an enormous advantage over monolithic systems.

Likewise, in installations in the field, the modularity of BlackBerry 10 OS's components allows for the kind of redundant coverage expressed in our simple, yet very effective, High Availability (HA) manager, making it much easier to construct extremely robust designs than is possible with a more fused approach. People seem naturally attracted to the ease with which functioning devices can be planted in the POSIX pathname space as well.

Developers, system administrators, and users also appreciate BlackBerry 10 OS's adherence to POSIX, the realtime responsiveness that comes from our devotion to short nonpreemptible code paths, and the general robustness of the QNX Neutrino microkernel.

Some x86 systems can run in System Management Mode (SMM), where the BIOS installs special code that runs when a System Management Interrupt (SMI) occurs. SMI interrupts may be generated by the motherboard or peripheral hardware, and can't be masked by the operating system. When SMM is entered, normal operations—including the OS—are suspended, and the SMI handler runs at a high priority. Avoid using systems where SMM can't be disabled, because it can destroy BlackBerry 10 OS's realtime performance. The OS can't do anything about the delays that SMM introduces, nor can the OS even detect that the system has entered SMM.

BlackBerry 10 OS's microkernel architecture lets developers scale the code down to fit in a very constrained embedded system, but BlackBerry 10 OS is powerful enough to use as a desktop OS. BlackBerry 10 OS runs on multiple platforms, including x86, and ARM. It supports symmetric multiprocessing (SMP) and bound multiprocessing (BMP) on multicore systems with up to 32 processors; for more information, see Multicore processing.

BlackBerry 10 OS also features the Qnet protocol, which provides transparent distributed processing; you can access the files or processes on any machine on your network as if they were on your own machine.

Resource managers

A resource manager is a server program that accepts messages from other programs and, optionally, communicates with hardware. All of the BlackBerry 10 OS device drivers and file systems are implemented as resource managers. BlackBerry 10 OS resource managers are responsible for presenting an interface to various types of devices. This may involve managing actual hardware devices (such as serial ports, parallel ports, network cards, and disk drives) or virtual devices (such as /dev/null, the network file system, and pseudo-ttys).

The binding between the resource manager and the client programs that use the associated resource is done through a flexible mechanism called pathname-space mapping. In pathname-space mapping, an association is made between a pathname and a resource manager. The resource manager sets up this mapping by informing the BlackBerry 10 OS process manager that it's responsible for handling requests at (or below, in the case of file systems), a certain mountpoint. This allows the process manager to associate services (that is, functions provided by resource managers) with pathnames.

Once the resource manager has established its pathname prefix, it receives messages whenever any client program tries to do an open(), read(), write(), and so on, on that pathname.

Last modified: 2015-05-07

Got questions about leaving a comment? Get answers from our Disqus FAQ.

comments powered by Disqus