This section lists general guidelines and items you should be aware of as you design BlackDog applications:
Available UNIX Utilities. The BlackDog SDK (and the BlackDog device) includes BusyBox that combines tiny versions of many core UNIX utilities into a single small executable. The utilities in Busybox provide replacements for most of the utilities you usually find in GNU fileutils, shellutils, and so forth. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. Therefore, if you have Makefiles and applications that call command line utilities and options, you should verify that they use only commands and options available for BusyBox. See the Busybox Manual for more information (visit http://www.busybox.net/ for the most recent information).
Minimize Use of Floating Point Operations. Floating point operations on the BlackDog device run slow because the BlackDog device has no floating point unit (FPU). Realm recommends that developers minimize use of floating point operations in their BlackDog applications.
Permissions. The BlackDog SDK has a single user root with all privileges of the super user (that is, all applications currently run with full administrator access rights).
Disabled Inbound Connections to BlackDog. Inbound connections from external networks to the BlackDog are disabled as a security design feature of Network Address Translation (NAT). Developers should open connections from the BlackDog out to external networks, never in the opposite direction. The only exception is the direct connection from the PC host to the BlackDog.
Also note that ICMP (used by PING) is not passed by the NAT software (called Realm-networking.exe). This means that the BlackDog device cannot ping other machines, and external devices (except the host) cannot ping the BlackDog device.
Application Shutdown. In general, your BlackDog applications can rely on a clean shutdown when the device is disconnected from the host. When the BlackDog is disconnected, battery power allows the BlackDog to suspend applications and perform a clean shutdown of the operating system. However, like any application, clean shutdown sequences can never be fully guaranteed. Therefore, you may want to design your applications to take appropriate measures in the event of unexpected termination.