In order to achieve a platform such as Industrial Grade Linux, but also in order to be able to develop application programs (userland code) for it, a toolchain will be required. A Toolchain is a systematic collection of programs, which are used around the production of a product (usually another program or a system of programs). The term explains itself with the fact that the tool programs are used as a rule in the form of a chain one after the other.
A simple tool box for the software development contains a text editor for the production of the source code, a compiler, a Linker for the production of the executable programs as well as libraries for the access to the public routines of the operating system and a Debugger.

Figure 2 shows the exemplary structure of the toolchain on the development machine:


Fig. 2: Toolchain - classical workflow

SDK - a software development kit is a collection of essential components such as compilers, utilities and information to be able to develop software for an operating system at all. The basis for this is the so-called toolchain. The exact contents of a SDK can vary from case to case very strongly, since it turns out differently complex depending upon matter. Mostly the kit contains at least the necessary APIs for an existing system and documentation, which gives the developer information about available interfaces or the general structure. Some build systems for Linux give the application developers an SDK for easy use.