INTEGRITY KernelSpace Project A KernelSpace project is a stand-alone executable linked with INTEGRITY libraries suitable for running directly on a target. Use a KernelSpace project when only physical space is needed, or when further virtual AddressSpaces may be downloaded at run time.

INTEGRITY Monolith Project A monolith image is a stand-alone executable, suitable for running directly on a target, that contains a kernel and zero or more virtual AddressSpaces. Use a Monolith INTEGRITY Application Project to take advantage of the safety and security of INTEGRITY's memory mapping for application code without requiring run-time download.

Dynamic Download A Dynamic Download image consists of one or more virtual AddressSpace projects that are downloaded via MULTI onto an INTEGRITY kernel already running on your target. Use a Dynamic Download INTEGRITY Application Project to bundle related virtual AddressSpaces without linking in a kernel project, so it can be downloaded independently.

INTEGRITY KernelSpace Project This commented out KernelSpace project was created due to a Create Dynamic Download from Monolith action. To resurrect this kernel, select the parent Dynamic Download and choose Create Monolith from Dynamic Download. No actions should be done on this kernel when it is commented out.

Program Layout Selects which linker directives file to include in your program.

Kernel Libraries Select libraries to enable functionality in the kernel.

Kernel Modules Select OS Modules to enable in the kernel.

Create Monolith From Stand-alone Kernel Creates a monolith project around the stand-alone kernel. This will add the monolith build files and Integrate file. Subsequently, you can add virtual AddressSpaces, if desired.

Debugging Enables run-mode task debugging interface. Adds libdebug.a to the project.

Dynamic Load Enables kernel to dynamically load modules, i.e. Dynamic Download projects. Adds libload.a to the project.

Resource Manager Enables the Resource Manager. The Resource Manager is a mechanism for sharing resources among different AddressSpaces. Adds libres.a to the project.

EventAnalyzer Enables event logging. Use in tandem with the MULTI EventAnalyzer. Adds liblog.a to the project. Use of the EventAnalyzer in Live Mode requires a network stack, but Post-Mortem Mode does not.

Legacy GHnet Stack (Kernel) Adds the legacy TCP/IP Stack to the kernel. Adds libitcpip.a to the project.

TCP/IP Stack (Kernel) Adds the standard TCP/IP Stack to the kernel. Adds libitcpip.a to the project.

GHnet IPv4 Stack (Kernel) Adds the GHnet IPv4 Stack to the kernel. Adds libip4.a to the project.

GHnet IPv4/v6 Stack (Kernel) Adds the GHnet IPv4/v6 Stack to the kernel. Adds libip46.a to the project.

GHnet IPv4/v6 Routing Stack (Kernel) Adds the GHnet IPv4/v6 Routing Stack to the kernel. Adds libip46router.a to the project.

File System Client Allows use of the File System API. Adds libivfs.a to the project.

Virtual Dynamic Load Kernel Helper Adds kernel side support for a load agent in virtual AddressSpace. Adds libvload_kernel_helper.a to the project.

Socket Allows use of the Socket API. Adds libsocket.a to the project.

Net Allows use of the Network Library API. Adds libnet.a to the project.

RPC Allows use of the RPC API. Adds librpc.a to the project.

ResourceAnalyzer Enables kernel for later use of the MULTI Resource Analyzer. Adds libperf.a to the project.

Core File Collection Enables kernel for core file collection upon error. Adds libcore.a to the project.

Use Shared Libraries When checked, allows the INTEGRITY Application (Monolith or Dynamic Download) to be linked with shared libraries. When unchecked, the INTEGRITY Application (Monolith or Dynamic Download) will be linked statically with all libraries. Either one can be a size win depending on the behavior of your application.

Virtual AddressSpace

The result of building a virtual AddressSpace project is a fully linked ELF executable, called a virtual AddressSpace program. This program contains only the code and data for this single virtual AddressSpace.

User code for a virtual AddressSpace program begins with the standard C/C++ function main(). The entrypoint of the program is actually _start, which initializes the virtual AddressSpace so that the C/C++ run-time environment and the INTEGRITY API can be used. _start transfers control to main(), the start of user code for each virtual AddressSpace.

The thread of control executing into main() is known as the Initial Task. The name of the Initial Task as seen in the MULTI Task window is Initial, grouped with any other tasks that may be in the same AddressSpace.


Virtual Libraries Enable functionality in the virtual AddressSpace by adding libraries.

File System Client Allows use of the File System API. Adds libivfs.a to the project.

Socket Allows use of the Socket API. Adds libsocket.a to the project.

Net Allows use of the Network Library API. Adds libnet.a to the project.

Configuring Virtual Address Spaces Use this dialog to add virtual Address Spaces to the project. You may either add 'n' AddressSpaces with a default name, or explicitly name each AddressSpace in a comma separated list.

Configuring OS Modules Use this dialog to add INTEGRITY Operating System Modules to the project. Some selections are mutually exclusive.

File System (From Distribution) Use the File System Server provided from the INTEGRITY installation. This server should be used as is. If modifications are required, select "File System (User Configured)".

File System (User Configured) Create a File System Server in the current INTEGRITY Application. This can be configured with mount points and libraries to suit your application.

File System (Kernel, User Configured) Create a File System Server in the kernel of the current project. This can be configured with mount points and libraries to suit your application.

Legacy GHnet Stack (Virtual) Use the legacy virtual TCP/IP Stack Module provided from the INTEGRITY installation.

TCP/IP Stack (Virtual) Use the Virtual TCP/IP Stack Module provided from the INTEGRITY installation.

GHnet IPv4 Stack (Virtual) Use the Virtual GHnet IPv4 Stack Module provided from the INTEGRITY installation.

GHnet IPv4/v6 Stack (Virtual) Use the Virtual GHnet IPv4/v6 Stack Module provided from the INTEGRITY installation.

GHnet IPv4/v6 Routing Stack (Virtual) Use the Virtual GHnet IPv4/v6 Routing Stack Module provided from the INTEGRITY installation.

Kernel Provided Stack Use on a Dynamic Download when the kernel will provide a TCP/IP stack.

Kernel Provided Resource Manager Use on a Dynamic Download when the kernel will provide the Resource Manager.

Kernel Provided File System Use on a Dynamic Download when the kernel will provide a File System Server.

FTP Server Use the virtual FTP Server Module provided from the INTEGRITY installation.

Web Server Use the virtual Web Server Module provided from the INTEGRITY installation.

POSIX Network Server Use the virtual POSIX Network Server Module provided from the INTEGRITY installation.

INTEGRITY Shell Use the virtual INTEGRITY Shell Module provided from the INTEGRITY installation. Most users of the INTEGRITY Shell want a File System, TCP/IP stack, and the FTP Server, so the new project wizard will include those OS Modules into your project at the same time.

File System Libraries Enable various types of file systems.

File System Device Libraries Enable functionality relating to a hardware device in the file system by adding libraries.

Configure File System Clients Select which AddressSpaces should be clients of the File System Server.

File System Mount Table This file defines the Mount Table for the file system.

File System Mount Point A File System Mount Point defines a location on the initial file system and configures the type of file system used at that location.

File System Mount Point Directory Names a location on the initial file system.

File System Mount Point Device Names a location on the initial file system.

File System Mount Point Device Describes the hardware/software device used to back the file system. Choices are dependent upon the type of file system selected.

Physical Device The INTEGRITY IODevice used to back the file system. The pulldown contains common names of IODevices, make sure your choice is available on your BSP. Type in the name of the device if it is not listed.

Physical Slice Slice letter to partition. Use the string 'All' to specify there is only 1 partition.

RAM Disk Name Use a buffer in RAM to back the file system

RAM Disk Size Specify how large the RAM buffer should be. Must be power of 2.

NFS Server Name Machine to connect to using NFS.

NFS Share Name Path on machine to connect to using NFS.

Use GHFile GHFile only uses built-in values for device characteristics, no action is required.

File System Type Select the type of file system this mount point should implement.

File System Mount Point Options Select options based on the type of file system selected. Check 'Use Defaults' to let the underlying mount code decide the options.

rdonly Mounts the file system in read-only mode.

sync Mounts the file system in synchronous mode. This causes all writes to the file system to write directly to the device driver, rather than delaying writes in the file system cache. Mounting a file system in this way provides additional file system synchronization at the expense of write speed.

async Mounts the file system in asynchronous mode. This causes even metadata writes to be performed asynchronously. If a file system mounted in this way is not cleanly unmounted, the file system check utility will likely be unable to fix it. Although this option provides maximum write speed, it should only be used on a file system that will be reinitialized (with `[newfs`]) at each boot.

noatime Disables automatic update of the access time for files. This is useful for reducing writes to WLFS (for example) if accurate access time is not necessary.

"multi.mpm.int_fs_mntpoint_opts_mntudp", "multi.mpm.int_fs_mntpoint_opts_tcp"}
nfsv2 (NFS) Forces the use of version 2 of the NFS protocol.

nfsv3 (NFS) Forces the use of version 3 of the NFS protocol.

mntudp (NFS) Uses UDP to establish the NFS mount, even if the TCP transport is to be used after the file system is mounted.

tcp (NFS) Attempts to use TCP as the transport mechanism instead of the default UDP. Many NFS servers do not support this. Support for this option is experimental.

shortnames (MS-DOS) Forces the use of short filenames, ignoring any long filenames.

longnames (MS-DOS) Use and generate long filenames.

ignorelongalways (MS-DOS) Ignores the special long filename entries, even if deleting or renaming a file. This implies the `[-s`] option.

joliet (ISO9660) Use Joliet extensions on the CD if present.

rrip (ISO9660) Use Rockridge extensions on the CD if present.

rcaseins (ISO9660) Makes Rockridge names case insensitive.

File System Mount Point Table Options Select options based on the type of file system selected.

MNTTAB_MAKEMP Causes the mount point specified in the second field to be created on the underlying file system if it does not yet exist. This may be useful in connection with RAM Disks, which are always empty at startup.

MNTTAB_FSCK Requests that the file system server automatically run the appropriate file system checker program (for example, fsck_ffs for ffs) on the file system prior to mounting the file system. (See "Automatic File System Repair" later in this chapter.) The search path for the file system checker program can be controlled by altering the NULL-terminated array of strings names vfs_FsckSearchPath in the mount table file.

MNTTAB_REQ_FSCK When used in combination with MNTTAB_FSCK, tells the file system server to skip the mount entry if the file system checker program could not successfully correct errors on the file system. The root file system is always mounted read-only prior to running the file system checker, so if the file system checker fails to correct errors on the root file system, and the root file system entry has this option set, the root file system will remain mounted read-only. Failure to find or run the file system checker will be considered failure to correct errors for the purpose of this option.

MSDOS FAT The MSDOS file system originated with the Microsoft DOS operating system. It is sometimes referred to by its primary data structure, the file allocation system (FAT). Like FFS, MSDOS is a hierarchical, disk-based file system. The MSDOS file system comes in several variants named after the number of bits in each entry in its file allocation table: FAT12, FAT16, and FAT32.

NFS Client The Network File System (NFS) is commonly used in UNIX environments. It allows one machine (the NFS server) to share its files with other machines (NFS clients) across an IP network.

GHFile The GHFile file system from GHnet is an efficient, RAM-based system for storing files.

ISO9660 The ISO9660 file system is commonly found on Compact Disc media. INTEGRITY supports the generic ISO9660 standard format as well as the Rockridge and Joliet extensions.

FFS The Berkeley Fast File System (FFS) is an inode-based file system that first appeared in the BSD UNIX distribution from the University of California. The FFS file system, sometimes referred to by its predecessor's name, UFS (UNIX File System), is used by many BSD derivative operating systems such as NetBSD, FreeBSD, and OpenBSD.

RAM Disk The RAM disk pseudo-device can be used to emulate a disk on systems that have no other storage medium. A RAM disk is especially useful as a root file system onto which other file systems may be mounted.

File System Extra Library Auxiliary libraries required for the File System Server.

BSP Description Target resource file copied from INTEGRITY distribution. Defines the BSP for Integrate.

Linker Directives Linker directives file copied from INTEGRITY distribution.

RAM INTEGRITY linker directives file to run from RAM.

ROMCOPY INTEGRITY linker directives file to boot from ROM and run in RAM.

INTEGRITY.ld INTEGRITY virtual AddressSpace linker directives file.

POSIX System Server For applications that require a complete, certified POSIX implementation, use the POSIX system. The POSIX system provides a central server and loader which are needed to support process creation and interprocess communications.

POSIX Authorization Table Defines the User and Group databases.

POSIX Authorization User Defines a single User for access control purposes.

POSIX Authorization Group Defines a single Group for access control purposes.

User Name Username (max. 8 chars).

Password Password (unencrypted) (max. 8 chars).

User ID Numerical user ID.

Group Primary numerical group ID.

Supplemental Groups List of up to 8 supplemental group IDs.

Home directory Home directory for POSIX User and Group Database.

Group Name Group name (max. 8 chars).

Group ID Numerical group ID.

Create Monolith From Dynamic Download Add a new Kernel to the Dynamic Download project to make it be a Monolith, or resurrect one that had previously been removed, if this project had started out as a Monolith. You should build clean before converting or before using the converted project.

Create Dynamic Download From Monolith Comment out the KernelSpace entity in the Monolith project to make this project be a Dynamic Download. The kernel is preserved in case this operation should be undone. You should build clean before converting or before using the converted project.