Chapter 2. Configuring and Tuning

This chapter explains how to configure and tune a C5 operating system.

The C5 operating system offers a high degree of flexibility, allowing you to tailor the system configuration to the requirements of your application. Depending on the system configuration, applications are offered a range of APIs and a range of development environment tools. Two configuration profiles are included in this C5 operating system delivery: a basic configuration profile and an extended configuration profile. You can use one of these configuration profiles as the starting point for configuring your C5 operating system. See Section 2.1.2, “Configuration Profiles”.

An additional chapter focusing on configuring your system image with complete file system support, is also provided. See Chapter 4, Configuring the System Image with File System Support.

[Note]Note

The C5 operating system performance can be analyzed and optimized using its performance profiling system. This is described in “ Performance Profiling” in C5 2.1 Application Developer's Guide.

2.1. Configuration Options

Configuring a C5 operating system means defining all the components, and their characteristics, that are assembled to form a system image. There are several types of configuration options:

  • Feature options: the C5 operating system features.

  • Static tunable parameters.

  • Dynamic tunable parameters (the environment).

  • System image components: system and application actors that are loaded at system boot time.

Configuration settings, including the configuration profile definitions are stored in the configuration directory, conf, in your system image build area. The configuration directory is read and updated by the command-line configuration tool: configurator

2.1.1. Feature Options

A C5 feature is a boolean variable, whose value determines whether or not a particular component is included in the system image. Setting a feature to true results in code being added to the microkernel, providing additional services such as file system handlers, or networking protocols.

Feature options within the C5 operating system are listed in “ C5 Operating System Features” in C5 2.1 Features and Architecture Overview.

2.1.2. Configuration Profiles

The C5 operating system provides two pre-defined configuration profiles, the basic profile and the extended profile, to help you select an initial configuration for the operating system. These profiles include or remove certain features in the system.

The extended profile is the default profile, and does not need to be explicitly specified.

The basic configuration profilecorresponds to a realistic configuration, keeping the footprint small. With this configuration, applications are usually embedded in the system image and launched either at boot time or subsequently from the image file system or the boot file system. This configuration uses the flat memory model, to minimize the footprint.

In the basic profile, application actors are loaded at boot time as part of the system image. These actors are also known as boot actors.

When the system boots, actors included in the system image are loaded. For each actor, a thread is created and starts running at the actor's program entry point.

For instructions on building an application actor, embedding it in the system image and running it in the basic profile, consult the C5 2.1 Application Developer's Guide.

The extended configuration profile corresponds to a reference configuration for telecommunications systems. It includes support for networking using remote IPC over Ethernet and an NFS client. This uses the protected memory model.

Table 2.1, “Microkernel Feature settings in the extended and basic configuration profiles” shows the settings of all the features in the extended and basic configuration profiles.

Table 2.1. Microkernel Feature settings in the extended and basic configuration profiles

Nameextended profile valuebasic profile value
Microkernel features
  USER_MODEtruetrue
  ROUND_ROBINtruefalse
  VIRTUAL_ADDRESS_SPACE truefalse
  ON_DEMAND_PAGING[a]falsefalse
  MONITORfalsefalse
  SEMtruetrue
  EVENTtruetrue
  RTMUTEXfalsefalse
  SOFTINTRfalsefalse
  TIMERtruetrue
  VTIMERfalsefalse
  DATEtruetrue
  RTCtruetrue
  MKSTATfalsefalse
  PERFtruetrue
  MONtruefalse
  IPCtruetrue
  IPC_REMOTEfalsefalse
  MIPCtruetrue
  LAPBINDtruetrue
  LAPSAFEtruetrue
  LOGtruetrue
  SYSTEM_DUMPfalsefalse
  BLACKBOXtruetrue

[a] The ON_DEMAND paging feature is platform-dependent. On platforms that do not support the virtual memory model, this can be hidden, using: configurator -list features.

Table 2.2. C_INIT Feature Settings and Input Output Manager Feature settings in the extended and basic configuration profiles

Nameextended profile valuebasic profile value
C_INIT features
  RSHtruefalse
  LOCAL_CONSOLEfalsetrue
Input Output Manager features
  IOM_IPCfalsefalse
  IOM_OSIfalsefalse
  DEV_MEMtruefalse
  DEV_CDROMtruetrue
  DEV_DISKtruetrue
  DEV_NVRAMtruetrue
  RAM_DISKtruetrue
  SCSI_DISKfalsefalse
  RAWFLASHtruetrue
  OS_GAUGESfalsefalse
  VTTYfalsefalse
  WDTfalsefalse
  FIFOFStruefalse
  FS_MAPPERfalsefalse
  MSDOSFStruetrue
  UFSfalsefalse
  ISOFStruetrue
  NFS_CLIENTtruefalse
  NFS_SERVERfalsefalse
  ACTOR_SRCDBGtruetrue
  GZ_FILEtruefalse
  CORE_DUMPfalsefalse
  IOM_DEV_MNGTtruetrue
  POSIX_MQfalsefalse
  POSIX_SHMtruefalse
  AF_LOCALtruetrue
  BPFtruefalse
  POSIX_SOCKETStruetrue
  PPPfalsefalse
  SLIPfalsefalse
  IPv6falsefalse
  POSIX_REALTIME_SIGNALS truetrue
  SOLARIS_SYSEVENTfalse false
  HOT_RESTARTfalsefalse
  DRV_MERGEfalsefalse
  DEBUG_SYSTEMtruetrue
  EBD_MONITORfalsefalse

Both configuration profiles include support for system debugging.

You can use one of these configuration profiles as the initial configuration for your system, and add or remove specific feature options using the configurator utility (see Section 2.3, “Configuration Tool”).

2.1.3. Tunable Parameters

Tunable parameters are system parameters which affect system behavior and capabilities. They are used to configure the microkernel and the included features, to change their behavior, and adapt them to your needs. Typical examples of tunables are: maximum number of microkernel objects, scheduler type and attributes for threads, or system clock frequency. Each system component or feature adds a number of these tunable parameters.

2.1.3.1. Static Parameters

Static parameters are tunable parameters whose values are set permanently within a system image. Changing these values requires rebuilding the system image.

The procedure for assigning new values to tunable parameters is detailed in Section 2.3.4, “Changing Tunable Parameter Values”.

2.1.3.2. Dynamic Parameters

For some tunable parameters, an additional flexibility is offered: the ability to assign values to these parameters at various stages of system production and execution. These types of parameters are called dynamic parameters. These dynamic parameters define the system environment. A basic set of services allows this environment to be constructed and consulted within a system image, at boot time and runtime.

Compared to static parameters, dynamic parameters require additional target data memory in order to store their names and values.

The procedure for modifying dynamic parameters is detailed in Section 2.3.5, “Modifying the System Environment”.

2.1.4. System Image Components

The system image contains a configured version of the C5 operating system, and possibly some user-defined applications (actors).

Depending on its configuration options, the C5 operating system is built from a microkernel and a collection of actors. These actors, which contribute to the implementation of some C5 operating system features and system image components are called C5 operating system actors.

Configuration options concerning the system image components or OS actors deal mainly with the inclusion of system and application actors within system images.