It seems like the browser you are using has JavaScript disabled. As a result, the site will not function properly. We really want you to enable it so you may experience our site as we intended it. If you have no idea what we are talking about or if you need help, visit http://www.enable-javascript.com×
This website uses cookies. By continuing to browse this site you are agreeing to our use of cookies. Find out more on our cookie page.×

Oops, it seems like you're using an old browser that we do not fully support. If you're able to, please upgrade your browser here.×
This website uses cookies. By continuing to browse this site you are agreeing to our use of cookies. Find out more on our cookie page.×

Why POSIX for embedded systems?

A common problem with realtime application development is that each realtime
OS tends to come equipped with its own proprietary API. In the absence of industry
standards, this isn't an unusual state for a competitive marketplace to evolve into, since
surveys of the realtime marketplace regularly show heavy use of in-house proprietary
operating systems. POSIX represents a chance to unify this marketplace. Among the many
POSIX standards, those of most interest to embedded systems developers are:

1003.1—defines the API for process management, device I/O,
file system I/O, and basic IPC. This encompasses what might be described as the base
functionality of a UNIX OS, serving as a useful standard for many applications. From a
C-language programming perspective, ANSI X3J11 C is assumed as a starting point, and
then the various aspects of managing processes, files, and tty devices are detailed
beyond what ANSI C specifies.

Apart from any bandwagon motive for adopting industry standards, there are
several specific advantages to applying the POSIX standard to the embedded realtime
marketplace.

Multiple OS sources

Hardware manufacturers are loath to choose a single-sourced hardware
component because of the risks implied if that source discontinues production. For the same
reason, manufacturers shouldn't be tied to a single-sourced, proprietary OS simply because
their application source code isn't portable to other OSs. By building applications to the
POSIX
standards, developers can use OSs from multiple vendors. Application source code can be
readily ported from platform to platform and from OS to OS, provided that developers avoid
using OS-specific extensions.

Portability of development staff

Using a common API for embedded development, programmers experienced with
one realtime OS can directly apply their skill sets to other projects involving other
processors and operating systems. In addition, programmers with UNIX or POSIX
experience can easily work on embedded realtime systems, since the nonrealtime portion of
the realtime OS's API is already familiar territory.

Development environment: native and cross development

With the addition of interface hardware similar to the target runtime
system, a workstation running a POSIX OS
can become a functional superset of the embedded system. As a result, the application can
be conveniently developed on the self-hosted desktop system. Even in a cross-hosted
development environment, the API remains essentially the same. Regardless of the particular
host (BlackBerry 10 OS, Linux, Windows, and so on) or the target (x86, ARM), the programmer doesn't need to
worry about platform-specific endian, alignment, or I/O issues.

Last modified: 2014-11-17

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

1. Choose your focus

This is the focus controller. Use this controller to choose your primary development approach (Cascades or Core).

By selecting a focus, you get to decide what content should be front and center on the site.

2. Download the tools

Before you start developing, you'll need to visit the Downloads tab. Here you'll find downloads for the BlackBerry 10 Native SDK, BlackBerry 10 Device Simulator, and some other useful tools.

3. Try the sample apps

Now featuring a filter control, the Sample apps tab allows you to search for samples by name or by feature.

Select either the Core or Cascades check boxes to display the samples relevant to your focus.

4. Educate yourself

The Documentation tab contains tons of examples, tutorials, and best practices to guide you along the path towards building an awesome app.

The documentation for your preferred focus always appears at the top of the left-hand navigation, but you can still access the rest of the documentation at the bottom.

5. Start developing

The Reference tab is where you'll find essential details about how to use our APIs.

You can use the left-hand navigation to choose how you would like to browse the reference: by module, by topic, or alphabetically. If you have an idea of what you are looking for, start typing it in the Filter box.