3 | Wind River Linux 4Key ComponentsFigure 1 is an overview of thecomponents of Wind River Linux. Theproduct consists of source code and abuild system that generates an optimizedrun-time image suitable for embeddeddevices. The components of the productare referenced by the developer tocreate a defined run-time image.Wind River Linux contains the followingcomponents:• Application packages: Hundreds ofsoftware packages that operate inprotected Linux user mode• Kernel source: The 2.6.34 Linux kernelwith many fixes and feature enhancements• Board support packages: Hardwareenablement components• Tools: Software development tools,including the award-winning Eclipse-based Wind River Workbench develop-ment suite• Build system: The Wind River LinuxDistribution Assembly Tool, which isused by the developer to compile andassemble these components• Toolchain: The cross-compiler basedon the GNU Compiler Collection (GCC)• Pre-configured profiles for market-specific device types:- Consumer premise equipment profile- Industrial equipment profile- Network equipment profile- Network equipment profile with LinuxStandard Base (LSB) support- Small footprint network equipmentprofile- Mobile multimedia device profileKey BenefitsThe following are some of the competitiveadvantages of Wind River Linux:• Commercial product quality with ex-tensive testing and quality assurance,reliable service packs, and securitypatches with standard software prod-uct life cycle support• Extensive hardware and software eco-system support• Lower costs, by eliminating the burdenof building, supporting, and main-taining your own Linux distribution,allowing you to focus on differentiatingapplications rather than on maintainingLinux itself• Reduced complexity of present andfuture projects, by leveraging the WindRiver Linux cross-build system and lay-ers development methodology• Rich tools and development-environmentsupport based on the Eclipse framework• Compliance with industry standardssuch as Carrier Grade Linux to meetmarket-specific needs• Delivery of advanced functionality andcapabilities with guaranteed real-timeperformance, advanced networkingstacks, and enhanced multi-coresupport• Predictable roadmap for long-termproduct planning• Complete and detailed documentationof software package license informationto help ensure compliance with legaland regulatory requirementsWind River Linux DistributionAssembly ToolWind River Linux Distribution AssemblyTool (LDAT) is a build system to cross-compile and assemble components forrun-time images. LDAT is licensed underthe GNU General Public License version2. LDAT commonly addresses the usecases shown in Figure 2.Project CreationUsers start by creating a project usingLDAT. They reference configurationinformation such as the hardwaretarget, kernel type, profiles, andpointers to other custom software.This creates a project. LDAT usesautoconf to generate a configuredbuild directory. There are a largenumber of options to select the board,kernel configuration, user spaceconfiguration, and so on. The profileoption may be used to automaticallyselect the kernel and user spaceconfiguration based on the selectedboard support package (BSP) andprofile combination. The core layersare selected automatically based onthe LDAT configuration directory(toolchain version, kernel version, etc.)unless overridden by user arguments.Additional layers may be included eitherat the user’s request or automaticallyby other layers. The configure scriptsearches for layers specified withoutan absolute or relative path.CustomLayer 2Binary RPMsRun-TimeImageCustomLayer 1CoreLayerKernelLayerRoot FileSystemCreationPackageCompilationToolchainProjectCreationProjectFigure 2: Typical use cases enabled with Wind River LinuxDeveloper’sRun-TimeImageUser Space PackagesKernel SourceBSPsToolsBuild System (LDAT)ToolchainFigure 1: Major components of Wind River Linux4 | Wind River Linux 4The configured project directory is itselfa layer that can provide modifiedversions of packages or tools, changeconfiguration information, and includeother layers. The project directory canresynchronize these external layers. Thisallows for the user to include softwarebeing actively developed externally.DevelopmentTools such as Wind River Workbenchcan help you add packages, makechanges, debug, and compile software.LDAT creates file systems in a multitudeof configurable ways. An originalequipment manufacturer (OEM), asubsequent integrator or developer, oreven final users may want to modify thefile system composition. To this end, allthe user space components, regardlessof origin, open source trees, sourceRPMs, or customer trees, are packagedas binary RPMs and can be added ordeleted or updated at will using thetarget-bound RPM binaries, which alsocan be included in the file system.Users compile packages from sourcepackages to binary RPMs. This uses theWind River toolchain. The LDATcross-build environment uses a simplefront-end makefile fragment and, forSRPM packages, a modified spec file toprovide the information required tomake the package conform to LDAT andmake it cross-buildable. If source codechanges to the package are alsorequired, patches are either appliedonce the package is extracted or duringthe normal prep stage of the RPM build.Patches (and the spec file) can beprovided with the package in the layerand through templates included in theconfiguration, if configuration-specificmodifications are required. Most opensource packages can be imported withminimal changes and are immediatelybuildable with LDAT.Both package formats support a pristinesource model. This means the originalupstream open source code is providedplus incremental patches that eachimplement one major feature. Thisallows for maximum transparency ofsource code.Configuration ChecksumsLDAT understands dependencies sothat packages are rebuilt when theirdependents are changed. To determinewhether a package is valid for thecurrent configuration, LDAT uses achecksum value calculated for thecurrent configuration and compares itwith the version stored in the RPM. Theconfiguration checksum includes thesources and patches for the package ortool, the LDAT makefile fragment for thepackage, any additional configurationfiles, toolchain flags, and so on, alongwith the configuration checksums of anyother package this package dependson. When the checksum doesn’t match,the prebuilt version is ignored and thepackage will be rebuilt (as will anypackages that depend on it).To build packages, the build systemcalls the cross-toolchains with minimalperformance overhead. The ability touse prebuilt versions of most or all hosttools and target packages withchecksums to ensure they are valid,along with the ability to update thebuild configuration with layer changesand to update the target file systemwithout reassembling it from scratch,provides quick turnaround fordevelopment builds.Package building also generates asysroot to ensure that the rightdevelopment libraries are being used.This can be exported to other users.File System CreationUsers create a tuned root file systemand run-time image. Once all of thepackages are built, the target file systemis assembled from the RPMs. If the filesystem has previously been assembledin this build directory, it can either berebuilt from scratch or updated in placeby uninstalling and reinstalling RPMsthat have been changed, added, orremoved.Footprint optimization tools areincluded to reduce resources.Layer ExportUsers can create a custom layer forreuse by other development groups orother projects. After the system is built,the make export-layer command can beused to generate a layer thatincorporates any local changes to theconfiguration, packages, or tools. Themake install-prebuilt target can be usedto place prebuilt copies of the hosttools, target packages, and kernel intoeither a new or existing layer for use bysubsequent builds.PseudoPseudo is a tool that ships with WindRiver Linux, providing limited emulationof root access, preserving userownership, modes, and device nodescorrectly for the eventual target filesystem. The Pseudo tool allows packagebills and file system creation withoutroot privileges.QEMUWind River Linux ships with QEMU, ahardware simulator. QEMU simulatesARM, PowerPC, x86, and MIPS hardware.This is integrated tightly with LDAT sothat launching a test version insimulated hardware is trivial.LayersLDAT uses a hierarchical “layer”structure where each layer may provideanything from a simple configurationsetting or a single package tosomething more complicated, such ascompletely replacing the kernel oraugmenting toolchains, host tools, andso on.The layers provided with Wind RiverLinux include the “core” layer (calledwrll- wrlinux), which supplies the userspace packages and core configurationinformation, the kernel layer for thekernel sources, a host-tools layer fortools that run on the build host, and atoolchain layer that contains thetoolchains for cross-development.Add-ons for ecosystem products aretypically provided as layers that mayaugment or modify the defaultconfiguration. User-defined layers mayprovide local changes and prebuiltbinaries to speed development.5 | Wind River Linux 4Server InstallA possible output of LDAT is a bootableDVD image to boot an x86 machine thatwill then launch an interactive installer.The user can then use this tool to installthe generated run-time image on thatmachine’s hard drive.Compiler on the TargetThe entire toolchain can be used on x86targets to allow for native-modecompilation of applications.ToolchainThe Wind River Linux toolchain is acustomized distribution of SourceryG++ version 4.4. This toolchain offers anumber of additional features andmodifications from the upstreamprojects, making exact version numbersnoncomparable, but the core utilitiesare gcc 4.4, binutils 2.19, and gdb 7.0.Additional support for specificembedded processors and extendedfunctionality are included in thetoolchain.The toolchain is maintained by CodeSourcery, providing support from someof the major contributors to thetoolchain components. This expertiseprovides confidence that bugs will befixed quickly and correctly. Newfunctionality and bug fixes developedfor this toolchain are contributed to theupstream projects whenever possible,as part of Wind River’s commitment tothe open source community.The Wind River Linux toolchain supportsARM, x86, MIPS, and PowerPC targets.C LibraryTo enhance support for embeddedsystems in the C library, Wind River hascollaborated with other key vendors tofound eGlibc, an embedded-orienteddistribution of the GNU C library, andcontinues to sponsor the eGlibc project.The eGlibc project provides superiorsupport for non-x86 architectures suchas ARM, PowerPC, and MIPS and has anumber of features to make it easier tobuild with a smaller footprint for targetsystems. Wind River also has uClibcsupport, suitable for small footprinttargets.Multilib SupportThe Wind River Linux build systemsupports simultaneous use of twodifferent CPU types (within the samegeneral family) on a single target; forinstance, a target could be configuredwith both 32-bit and 64-bit binaries,allowing per-package choices of space/speed trade-offs.Prebuilt MultilibsThe Wind River Linux toolchain providesprebuilt library components, includingthe C library, for a large variety ofmultilibs. Each prebuilt library is fullyvalidated as part of the validationprocess. Prebuilt libraries reducecompilation time while providing extrasecurity and certainty. For each multilib,the toolchain contains configurationfiles to set up the compiler and othertools to produce compatible code forthat multilib. Additional CPU-specificoptimizations are available for a broadrange of CPUs and configurations.Toolchain WrappersWind River Linux uses toolchain wrapperscripts that simplify cross-development.The project configuration process setsup toolchain wrappers for each CPUtype used in the project. Thesewrappers combine target sysrootconfiguration and toolchain compilationoptions to provide seamless building fora target CPU. Users can then use thewrapper program as a substitute forGCC rather than trying to embedneeded compiler options in packagebuild processes. The preconfigured CPUtemplates provide the right combinationof options to get good results from eachCPU.Toolchain BuildingThe Wind River Linux toolchain isdistributed and fully supported as acollection of prebuilt binaries. However,source for every toolchain component isprovided, along with configuration dataand build scripts to rebuild the toolchaincompletely from source. Each toolchaincomponent is distributed as acombination of a specific upstreamsource release or snapshot plus anyadditional patches provided by CodeSourcery or Wind River. The toolchainbuild process automates the task ofbootstrapping a new cross-compiletoolchain, reducing hundreds ofcommands and configuration steps to asimple “make toolchain.”Toolchain ExportWhen a toolchain has been configuredfor a project on a Linux host, it ispossible to export that toolchain as anarchive that can be used as a toolchainon another host. This can help withdistributed development environments.Run-Time FeaturesThe following are features of therun-time image that runs on the target.KernelThe Linux 2.6.34 kernel forms the basisof the Wind River Linux kernel. WindRiver adds many features and bug fixesto this kernel, and this specific kernelsource configuration is tested andsupported. The Wind River kernel addsto the kernel.org 2.6.34.x baseline byimporting and validating changes fromthe following categories:• Mainline: The feature set of the Linuxkernel from kernel.org, with extendedor validated features in particular con-figurations and applications• External: Features imported from an-other external source and merged intothe Wind River kernel• Internal: Features that are in layers ormerged into the kernel, developed byWind River• Fixed: Bug fixes for drivers; features inmainline or external projectsThese kernel features are testedindividually, merged, and then tested asa complete system. This includes stressand use case testing and ensures thatthe features are stable individually,integrate with Wind River tools, andform a solid base for deploymenttuning.The Wind River kernel is presented tothe developer through a fully patched,history-clean Git repository. This storesthe selected features, board support,and configurations extensively tested byWind River. Presenting the Wind Riverkernel in this manner allows the end user6 | Wind River Linux 4to leverage community best practices toseamlessly manage the development,build, and debug cycles.From this Git tree, the build systemgenerates a flat tree that contains thespecific features required for the targetkernel’s use. Storing the source code inGit enables users to more easilyunderstand what changes have beenmade to the kernel and why. Wind Riveruses a combination of tags andbranches to assist in delineatingbetween the various added features.The workflow of the Wind River kernelfollows the recognized community bestpractices. In particular, the kernel asshipped with the product should beconsidered an “upstream source” andviewed as a series of historical/documented modifications (commits) tothe kernel. These modifications to thekernel represent the development andstabilization done by the Wind Riverkernel development teams.Contact Wind River for more informationabout kernel development workflowwith Wind River Linux.BrowsingThe Wind River Linux kerneldevelopment methodology simplifiesthe following use cases for browsing andunderstanding kernel code:• Showing changes, e.g., “What changeswere made to foo.c?”• Showing foo.diff• Showing groups of changes, e.g.,“Show me only the LTTng patches.”• Comparing branches, e.g., “What’sdifferent between the ixm27 and imx31BSPs?”• Completing annotation for all changes,e.g., “Where did feature X come fromand why is it there?”• Showing standard commit IDs, e.g., “Isee a kernel change on another tree; isthis included in my tree?”Kernel FeaturesThe kernel forms the basis of manyfeatures in the Wind River Linuxrun-time. The following kernel featuresare available:• kexec: A system call that provides theability to shut down the current kerneland start another without rebootinghardware• kdump: Kernel crash dump• ramconsole: Early boot messagelogging into RAM small/embeddedconfigurations and modifications forfootprint reduction and analysisKernel StylesThe code base of the Wind River Linuxkernel supports many features that areavailable for specific applications butnot necessarily suitable for all. WindRiver provides predefined kernel stylesthat are specific to these applications.The kernel styles shipped with theproduct are described here:• standard: The standard kernel repre-sents a common feature and technol-ogy base for all other kernel types. It isWind River’s goal to include all possiblefeatures in this single kernel type, mak-ing it suitable for many applications anda jumping-off point for more specifickernel implementations or the applica-tion of customizations such as embed-ded templates, or optional features.When it isn’t possible for a feature tocoexist at either compile time or run-time, it is merged into a specific kerneltype.• cgl: This kernel is targeted at network-ing equipment. This kernel includesupgrades such as shelf management,security, fault tolerance, threadedinterrupt request lines (IRQs), andcrash analysis that are not available inthe other kernel types. This kernel isa suitable jumping-off point for highavailability solutions.• preempt_rt: The preempt_rt or “real-time preemption” kernel implementsreal-time capabilities for specifichardware.File SystemsThe following are kernel file systemfeatures in Wind River Linux:• Boot technologies, i.e., ramdisk, ex-ecute in place (XIP), kernel libc supportfor boot environments (klibc), initialramfs support (initramfs), fastboot(asynchronous boot/init)• Flash file systems, i.e., yaffs, yaffs2, jffs,Advanced XIP file system (axfs)• Logical Volume Manager (LVM andLVM2)• RAID• Network file systems, i.e., NFS, SMB,CIFS• Disk file systems, i.e., ext2, ext3, ext4• Other file systems, i.e., stackable unifi-cation file system (unionfs), file systemfor large device scalability (logfs),compressed read-only file system(squashfs), compressed ROM file sys-tem (cramfs)• Persistent file systems, i.e., pramfs,pmemfs• Revoke, i.e., revokeat() system call forinode-based revocationInput and OutputThe following are input and output (I/O)features of the kernel:• I/O splice: A system call that copiesdata between a file descriptor anda pipe, or between a pipe and userspace, without actually copying thedata• User space I/O: Drivers that allow pro-grams easy access to kernel interruptsand memory locations; used for usermode drivers• eventfd: An event wait/notify mecha-nism used by user space applicationsand the kernel to notify user spaceapplications of events, enhanced toefficiently deliver interrupts to KVMguests via an ioeventfd• epoll: A variant of poll(2) that can beused either as an edge- or a level-triggered interface; scales well to largenumbers of watched fds7 | Wind River Linux 4SecurityWind River Linux includes the followingfeatures to improve system security:• BSDJail (bsdjail): A facility for creatingchroot jails hardened against attackvectors that defeat common chrootprotections• Simplified Mandatory Access Con-trol Kernel (SMACK): A small, fast,name-based mandatory access controlmechanism focusing on the Bell-LaPadula security model• Integrity Measurement Architecture:Support for run-time validation ofexecutables and critical system filesoptionally using a hardware TrustedPlatform Module• Security Enhanced Linux (SELinux): Afull-featured Linux Security Module pro-viding a reference monitor capable ofproviding multilayer security and multi-category security, implementing bothmandatory access control (MAC) androle-based access control (RBAC)• cgroups and controllers: Support forgrouping sets of processes together,for use with process control subsystemssuch as Cpusets, CFS, memory controls,and device isolation; includes nettraffic controller, memrlimit controller,dm-ioband bio_tracking, and groupscheduling controllers• OCF (Open Cryptographic Frame-work): Hardware-accelerated crypto-graphic support for specific BSPsDebugging and ProfilingThe following are debugging features ofWind River Linux:• oprofile: Kernel.org oprofile enhancedwith tracing through the syscall bound-ary• ftrace: Lightweight function tracing,with dynamic ftrace and early-ftracefor boot-time measurement enhance-ments; also provides trace-cmd fordirect access to options and tracers• ptrace: Process trace, single-step,multi-threaded trace support• kprobes: Kernel address trapping• KGDB: Kernel debug support over se-rial, Ethernet, and console• lockdep: Lock dependency checkingand analysis• KDB (all architectures): Kernel de-bugger with kernel mode switching,allowing for debugging the kernel youare running on, thus not requiring anadditional machine• PowerTOP: Location of programs thatare misbehaving while your computeris idle• perf: Rich abstractions over hardwareperformance monitoring capabilities;per-task, per-CPU, and per-workloadcounters and counter groups andsampling capabilities; extensions forsupport of MIPS and PowerPC architec-tures• kmemcheck: Kernel memory checkingand leak detection• wrnote: ELF image annotation for coredump debug• On-chip debugging: Support for WindRiver on-chip debugging devices• Linux Trace Toolkit (LTTng): Extensible,lightweight kernel instrumentation fortracing program execution and debug-ging parallel and real-time behavior• latencyTOP: Latency visualization sup-port• Boot-time reduction: Enhancements formeasuring and streamlining boot time• Footprint reduction: Kernel configura-tion and modifications to limit the run-time kernel footprintReal-Time and DeterministicScheduling BehaviorThe following are specific real-time anddeterministic scheduling behaviorfeatures:• preempt_rt, which reduces the schedul-ing latency of the kernel by replacing al-most every spinlock used by the kernelwith preemptible mutexes, making allbut the most critical kernel code invol-untarily preemptible• Voluntary kernel preemption (desktop),which reduces kernel latency by addingmore explicit preemption points tokernel code• No forced preemption (none), the tradi-tional Linux preemption model• Robust priority inheritance mutex,inheritance support for user spacemutexes• High resolution timers (HRT)• Dynamic tick support (NOHZ), whichonly triggers timer interrupts on an as-needed basis, when the system is busyand when it is idle• CPU isolation for dedicated processingor use by Wind River Hypervisor• Optional/experimental support for BFSand EDF scheduling on x86 targetsWind River Workbench andDevelopment ToolsThe Eclipse-based Wind RiverWorkbench development suite offersdeep capability throughout thedevelopment process in a singleintegrated environment, with completeplatform integration and tools fordebugging, code analysis, advancedvisualization, root-cause analysis, andtest.Analysis ToolsWorkbench and Wind River Linux makea number of analysis tools available tothe developer. Some are enhancedversions of open source tools related toprofiling and memory usage, and someare specifically developed by WindRiver:• Performance analysis: Wind RiverWorkbench Performance Profileranalyzes how a CPU is spending itscycles by providing a detailed function-by-function analysis that shows howindividual routines within the processesconsume those cycles. This feature isbased on the open source tool oprofile,with additional visualization and inte-gration in Workbench.• Memory analysis: Wind River Work-bench Memory Analyzer is a dynamicmemory analysis tool that helps preventand fix such problems as memory leaks,excessive number of memory alloca-tions, and excessive memory allocationsizes. Memory Analyzer uses the opensource tool mpatrol, with additionalvisualization in Workbench.• Boot-time analysis: This uses the ftracetool to provide lightweight functiontracing and includes dynamic ftrace andearly-ftrace for boot-time analysis.• Code execution coverage: The codecoverage analyzer feature of Wind RiverWorkbench determines the percent-age of source code executed by yoursoftware test case and points to thesections of code that have not beenfully tested.• Valgrind: By running an application in avirtual machine, valgrind tracks memorymanagement problems and threadingbugs.• LTTng: This tool provides tracing capa-bilities for both kernel and user space.8 | Wind River Linux 4• System viewer: Wind River SystemViewer supports visualization of multi-core systems; per-core filter and searchfacilities; the recording of a number ofcustom events, which use a printf-likeformat string; graphical and tabularrepresentations of various types of logfile analyses such as CPU usage (ag-gregate and per core), system load, andper-core ready and running states. Sys-tem Viewer also supports a host-drivenupload method for log files, resulting inlog transfer without interference fromtask CPU use. It also allows for transferof multiple logs, plus transfer withoutrequiring you to call target functions.Package ManagementWind River provides several tools toexamine the file system’s package list,examine package-level dependencies,perform safe package addition orremoval based on those dependencies,and perform file-level examination andcontrol of the file system contents:• Package lists and snapshots: Theuser space file system is built up fromdiscrete packages, from open source,user source, and virtual packages fromcustom content. Workbench provides away to control that package list, to ex-plore different package combinations,and to preserve safe combinations.• Dependency tracking: Workbenchallows the user to visualize the (deep)forward and reverse dependencies andto add or remove packages, knowingthat the dependencies are reportedand managed.• Direct package updates to target:Workbench facilitates RPM manage-ment on the target as on a regular Linuxhost. Packages can be developed andcompiled and then pushed to the run-ning target for fast turnaround debug-ging using incremental updates.Development ToolsWind River provides several tools toexamine and directly control the filesystem content below the package level.There are also tools to import new opensource packages, import new patches,and directly examine a package’s patchtree:• File system layout: The user can di-rectly see the final file system contentand directly remove or add files ata fine-grain level below the coarserpackage-level dependencies, allowingdirect control of the file system foot-print. Wind River also provides tools todiscover and visualize which files aretouched during a target run.• Disk space allocation tool: The usercan understand what and how muchspace directories are consuming.• Package import tools: Workbench hasa feature to handle most of the initialpackage importation and cross-compilation setup, to help speed upthe adoption of new open source pack-ages into a user’s project.• Patch import and export tools:Workbench enables the user to viewthe patch tree directly and patch filesfor both source RPM and regular pack-ages. It also provides tools to helpimport and resolve new patches and toexport user changes as new portablepatches into a layer directory.Export LayerThe export layer feature will automaticallyexport changes made in a project into anew portable Wind River Linux layer. Thisincludes package list changes, file systemtrimming, kernel configure changes, andnew local packages additions:• Import source trees from within aWind River Linux layer for compile/edit/debug.• Interact with source code held in asoftware configuration management(SCM) system.• Export Workbench projects intoWind River Linux packages.Hardware SupportThe following are highlights of hardwarefeatures:• Multi-architecture support: MIPS,MIPS64, ARM, x86, x86-64, PowerPC• SMP/AMP/multi-core• CPU isolation (cpuisol)• CPU hotplug• IEEE floating point conformance forPowerPC processors supporting signalprocessing extensions (SPE)• Talitos Freescale security engine,hardware acceleration for PowerQuicc Eprocessors• Device drivers for peripherals such asaudio, Ethernet, GPIO, SDIO, SCSI,MTD, serial, framebuffer, VGA (graph-ics), keyboard, USB (gadget, host,OTG), touch screen, PATA/SATA, sound,PMEM, wireless (Wi-Fi), Bluetooth, MTP• EDAC (error detection and correction),a set of Linux kernel modules for han-dling hardware-related errors• Integration of upstream kernel archi-tecture trees, such as linux-omap andlinux-davinci stagingVirtualizationWind River Linux 4 offers a choice ofopen source and commercialvirtualization solutions:• Wind River Hypervisor, which enablesx86 and e500/e500mc-based guestkernels• KVM (host/guest), on selected x86-64platforms• virtio support• Containers/cgroups, i.e., mainline +blkio, dm-ioband, net_traffic controllersfor container-based resource manage-mentPower ManagementWind River Linux 4 offers ways toanalyze and reduce power consumption:• PowerTOP for x86 provides the capabil-ity to analyze power consumption onx86 processors.• Kernel additions to Advanced Con-figuration and Power Interface (ACPI)provides the capability to control powerconsumption in systems that supportACPI.• Tickless kernel allows lower powerconsumption by eliminating clock inter-rupts.• Low-power hypervisor allows virtualiza-tion to be used in low-power configura-tions.Networking FeaturesWind River Linux 4 includes features thatdirectly support networkingapplications.System Black BoxTaking cues from the aviation industry,the persistent memory framework(PMEM) of Wind River Linux provides asystem black box acting much like thecombined flight data recorder andcockpit voice recorder. Schedulerdecision history, logs of all exceptions,panic and console logs, kernel logmessages, system reset and rebootlogging, Linux Trace Toolkit (a set ofkernel patches and supporting userspace tools to control tracing) logs,9 | Wind River Linux 4even end-user defined events can all belogged to dedicated nonvolatilememory, external memory, peripherals,or even protected segments of normalsystem RAM. This enables fasterrecovery and better system uptimes byallowing all necessary debuginformation to be preserved by thePMEM driver in these protected regionsof memory for later analysis whileallowing the system to reboot andre-enter service immediately.Transparent Inter-processCommunication ProtocolAs a major contributor and one of themaintainers of the TIPC project, WindRiver actively develops this cross-platform, high-speed communicationstechnology aimed specifically atclustered computing environments.TIPC is a communications protocol thatprovides developers with an extremelyflexible means of creating distributed,cooperative applications that maymigrate as required throughout thecluster seamlessly. Wind River continuesto invest in TIPC, and Wind River Linuxremains up-to-date with developmentsin the TIPC project.SecurityOriginally developed by the NationalSecurity Agency (NSA), SELinux is thegold standard of flexible and trustedcomputing environments. SELinux isboth a Linux Security Module (LSM)—apiece of the kernel that arbitrates accessto all system resources based on thesystem policy—and a collection ofsupporting user space tools fordeveloping, applying, enforcing,auditing, and debugging the securitypolicy used by the LSM. Wind RiverLinux includes three levels of securityout of the box for SELinux-enabledconfigurations based on the SELinuxReference Policy Project and configuredspecifically for Wind River Linux.Wind River Linux also includesadvanced, preemptive securitytechnologies such as multilevel run-timestack and buffer overflow protectionand a suite of tools that togetherprovide a complete intrusion detectionand prevention system.The PaX patch set adds dynamicallyconfigurable, least-privilege protectionsfor memory pages and segments as wellas many system hardening features suchas address space layout randomization(ALSR). Complemented by GRSecurity,further kernel patches that build uponPaX and implement a trusted executionmodel, role-based access control,detailed system accounting logs, andfine-grained privilege separation, theeffect is a second highly securereference monitor providing a completesecurity system.Linux Standard Base 4.0Linux Standard Base (LSB) is a set ofstandards for Linux distributions andapplications aimed at providingcross-platform compatibility betweenLSB-compliant Linux distributions andapplications. It is supported on x86,Power PC, and MIPS architectures. WindRiver Linux supports all required userspace functionality to be LSB certifiablewith the Linux Foundation.Reliability, Availability, ManageabilityThe first certified Carrier Grade Linux 4distribution, Wind River Linux continuesto address the needs of networkequipment providers and has beendesigned to meet the upcoming CarrierGrade Linux 5.0 specification. WindRiver Linux 4 continues to add supportfor faster, more reliable systems andadvanced cluster managementtechnologies essential to meeting highavailability requirements.Wind River Linux also meets the SCOPEAlliance Linux profile and addresses keySCOPE Alliance gaps. These includepersistent shared memory with thesystem black box, coherent user andkernel tracing framework with LTTng,run-time analysis tools, and commoncommand-line tools such as strace andltrace for doing system call and librarytracing.Features included in Wind River Linuxthat go beyond the existing CarrierGrade Linux requirements include thefollowing:• Coarse resource enforcement thatallows memory and scheduling limitsto be enforced on a group basis ratherthan per-process or per-object• Layer 2 Tunneling Protocol (L2TP ver-sion 3) support• File access tracing that provides exten-sive logging and notification optionsfor monitoring file access and recordingsystem events• Redundant virtual routing support,based on the Common Address Redun-dancy Protocol, that provides the abilityto create highly available dynamic rout-ers and gateways• Feature-rich IPsec environment rangingfrom simple certificate creation andmanagement to cryptographic reliabil-ity and integrity self-tests• Dynamic multi-category securitymanagement tools for virtual gueststhrough libvirt and the SELinux svirttools• Support for advanced system archi-tectures that leverage memory andprocessor latency domains with toolssuch as numactl and libnuma that en-able application and system designersto get the absolute best performanceout of their real and virtual machines• Reliable damage-resistant file systemsupport, detailed in the new CGL 5.0specification, including data and meta-data integrity checking mechanismsWith support for both standalone andclustered systems as well as the PICMGAdvanced TelecommunicationsComputing Architecture (ATCA)specification, Wind River Linux provideshighly available solutions for devices atboth the network core and edge.Network-Based Storage SolutionsWind River Linux provides functionalityfor centralized logging servers,centralized billing and accountingservers, and share file system servers byintegrating technologies such as thedistributed replicated block device(DRBD), multiple redundantcommunication paths to externalstorage over fiber channel links, ATA10 | Wind River Linux 4over Ethernet, the Oracle Cluster FileSystem version 2 (OCFS2), and InternetSmall Computer System Interface(iSCSI).Board Support PackagesWind River Linux board supportpackages (BSPs) are hardware-enablement components that containelements such as drivers and settingsneeded to make Wind River Linuxsupport specific hardware.BSPs are separable configurationcomponents that can be created andadded to Wind River Linux at any time.In addition to the BSPs Wind River Linuxships with, boards are added continuallyaccording to customer demand andhardware availability. Such additionalBSPs are available through Wind RiverOnline Support to customers under anactive platform subscription. Also, WindRiver Services can create customer-specific BSPs for hardware that is notcovered.A typical BSP includes board-specificconfiguration files that overwrite or addconfiguration options defined by thecommon platform templates. Additionalkernel patches included in the BSP canadd new device drivers or applynecessary changes to existing Linuxcode. BSPs can also contain additionaluser space components or other files.Wind River has validated properoperation of the Linux run-time for eachsupported reference board. Thesupported features are board-specificand depend on availability and maturityof the code in the open sourcecommunity.Wind River Linux ships with more than40 BSPs covering ARM, Intel, x86, MIPS,and PowerPC target processors.BSPs are also created and shippedasynchronously, after the product isreleased. Contact Wind River to get anup-to-date supported BSP list withdetailed descriptions of supportedperipherals.ApplicationsWind River Linux provides more than550 integrated user space applicationpackages. They implement functionalitytypical of an embedded Linux run-time.The Wind River build system (LDAT)generates binary RPMs from thesesources. LDAT can then use these togenerate a root file system.Origins and PortingA variety of open source projects formsthe origins of the user space code base.About 150 packages are based ontraditionally prepackaged treescontaining source code, configurationscripts, and makefiles or makefileprecursors (i.e., a classic packageformat). The remaining 400 have sourceRPMs as their base.Wind River patches these upstreamsources for integration and bug fixing.These packages generally contain thefollowing types of patches:• Cross compilation: Many packagesare expected to be compiled on x86architectures for x86 architectures.This often means host libraries can bereferenced or linked in.• Multilib: This ensures that packages canbe built for both 32- and 64-bit targets.• Other defects: Wind River ensuresthat packages are properly integratedtogether.The Wind River Linux DistributionAssembly Tool (LDAT) will access theported components, pass theappropriate cross-compilationparameters, and create a file systemmatching the target’s architecture andthe kernel’s configuration. Customerscan add their own user space packagesusing the LDAT tool. Instructions for thisare included in the productdocumentation.Package CategoriesWind River Linux 4 comprises 550software packages, which can begrouped in the following categories. Afull list of packages can be found at theend of this document in “Appendix A:Package Summary by Category.” Forpackage details (source package names,binary package names, versions,licenses, etc.), contact Wind River.It is easiest to consider the package listin terms of categories used:• Administration• Base libraries• Basic C support• Booting and startup• Daemons• Databases• Debugging• Development tools• Devices• DirectFB• Documentation and printing• File systems• File transforms• Graphics• Hardware• High availability• Host tools• Kernel• Middleware• Multimedia• Networking• Network daemons• Scripting languages• Security• SELinux• Setup• Shells• Sound• System• System analysis• Test• Utilities• Virtualization• Wind River instrumentation• X ServerProfilesWind River Linux ships with severalprofiles that define preassembled rootfile systems and kernels for industry-specific functionality as listed previouslyin the “Key Components” section.Testing and ValidationWind River is committed to providingquality products for both proprietaryand open-source-based technologies.Our quality policies include formal codeinspections, peer reviews, projectreviews, program audits, and traceablerequirements change management.Wind River Linux was created followinga methodical process to thoroughly testkey features on every supportedreference configuration (defined bydevelopment host, kernel and packageconfigurations, and supported board).11 | Wind River Linux 4Wind River has developed a robust,scalable, and automated build and testinfrastructure with more than 4,000 testcases and 301,336 test runs. Thisinfrastructure supports many processorarchitectures and uses a combination ofcommercial, open source, andproprietary tests, including LTP Core,LTP Network, LSB, TAHI, and OpenPOSIX. Wind River uses coverage tools,such as gcov and lcov, to optimize testdevelopment and close gaps in existingtest suites.Automated and manual tests of WindRiver Linux 4 include the following:• Automated boot login: This tests thebooting process of any target architec-ture for a given kernel and rootfs. Theprocess is completely automated for aset of targets, which helps in determin-ing the boot sanity of the target.• CD sanity: This automation suite coversCD installation on a new release, fol-lowed by building the rootfs for varioustarget combinations using prebuilt RPMs.It boots the target with the prebuiltkernel and rootfs and executes KGDBand user-mode tests on the target, thenreports the results to the database.• Linux Test Project (LTP): This test suitevalidates the reliability, robustness, andstability of Linux kernel and its networkcomponents.• Open HPI: The Open HardwarePlatform Interface is an abstractedinterface for managing computer hard-ware, typically chassis and rack-basedservers. HPI includes resource model-ing; access to and control over sensor,control, watchdog, and inventory dataassociated with resources; abstractedSystem Event Log interfaces; hardwareevents and alarms; and a managedhotswap interface.• Open POSIX: This test suite is forPOSIX 2001 APIs not tied to specificimplementations. It provides confor-mance, functional, and stress testing,with an initial focus on threads, clocksand timers, signals, message queues,and semaphores.• Real-Time Feature Testing with Lm-bench Realfeel: Real-Time Feature Test-ing tests performance. Lmbench is usedto measure I/O of the kernel. Realfeeltests scheduler behavior.• Saftest: This tests the Open HPI package.• Kernel Feature Test Package (kftp):This tests kernel features against archi-tecture and hardware configurations.• User space: User space tests verifythat user packages have compiled andoperated correctly in target run-timesystems.• LDAT: This tests build system function-ality.• Toolchain: This verifies that toolchainscomply and operate correctly in targetrun-time systems.• nmap: This is a network explorationtool and security scanner.• Netperf: This tool tests networkingperformance.• CGL compliance: This tests more than120 P1 requirements.• kexec and core-dump, server-basedinstall: This tests CGL features.• TAHI IPv6 conformance: The TAHIProject is a joint effort to develop andprovide verification technology for IPv6.The TAHI IPv6 conformance tests ensureinteroperability with IPv6 protocols.• iozone: This is a file system perfor-mance test tool.• nbench byte: This tests CPU calculationperformance.• Footprint: This tests the static kernelfootprint.• Static rootfs footprint: This tests thestatic rootfs footprint size.• Dynamic footprint: This tests the run-time system footprint.• Boot-time: This measures board boot-up time.• Coverity: The system is tested usingCoverity static analysis software.• Board-specific: Along with new BSPsadded for release, there are board-specific tests mentioned in the boardreadme. These tests were executed aspart of regression testing on Wind RiverLinux 4.• Documentation: Documentation forWind River Linux 4.0 was tested to makesure all steps are properly recorded.• Host OS: Installation is tested on vari-ous host OSes supported for Wind Riv-er Linux 4 as well as sample applicationbuild and debugging from Workbenchand platform build.• HRT regression: HRT features for previ-ous releases were tested for regressionon the supported platforms.• Install bundle: Installation testing wasdone for various product structurebundles.• RT regression: Regression testingfeatures in previous releases weretested for regression on the supportedplatforms.• Usability: Wind River Linux 4 and Work-bench 3.3 usability testing is based onthe usability testing document.• Use case: The use cases for Work-bench, run-time analysis tools, andbuild system were tested on supportedhosts and platforms.• Workbench integration: Wind Rivertests the feature integration of Work-bench with Wind Manage, SystemViewer, and run-time analysis tools.• Wind River Linux 4 bug fix: The bugsfixed during various release cycles weretested for the fixes then closed.Optional Add-on ProductsWind River provides other products toimplement functionality not available inthe base product.IPL Cantata++IPL Cantata++, now available forWind River Linux, is a set of tools thatallows developers greater efficiency incompleting unit testing, integrationtesting, and code coverage analysis onthe tests. The integration of Cantata++with the Wind River Workbenchdevelopment suite places thesecapabilities within easy reach. Cantata++increases software quality, decreasestime-to-market, and reduces supportcosts through better, faster, moreautomated testing in the developmentlife cycle.Wind River Workbench On-ChipDebuggingIn the early stages of hardware andsoftware development, a robustconnection to the microprocessorthrough its run-control port is essential.Wind River Workbench providesconnectivity between the hostdevelopment environment and thetarget device via the JTAG or on-chipdebugging interface of themicroprocessor that resides on thedevice.