LinuxLink Concepts and Terminology

Introduction

LinuxLink is a framework for building products based on embedded Linux. The LinuxLink framework includes software, tools, educational content, and support, and it has been designed from the ground up to ease and accelerate the software development tasks. This document introduces the inherent concepts and terminology important to getting the most out of and making the best use of the framework. Some concepts and terminology may be familiar, some may be new, and some may have different meanings than in your previous experience. Whether you are new to embedded Linux or a seasoned embedded Linux professional, we urge you to take a few minutes to read this document.

Throughout this document, important terminology is displayed in bold-italic the first time it is used.

Anatomy of an Embedded Linux System — Important Terminology

In the LinuxLink model, an embedded Linux product has five major components:

  1. Target Hardware or just Target: The actual hardware or a development kit (with the processor and all supporting electronics) that runs the software.
  2. Bootloader: The software that runs prior to Linux that is responsible for (some) hardware initialization and loading Linux. Typically, this is uBoot (http://www.denx.de/wiki/U-Boot), but can be other bootloaders. The specific bootloader is board dependent.
  3. Kernel: The Linux kernel (http://en.wikipedia.org/wiki/Linux_kernel) and Linux device drivers for hardware peripherals.
  4. Application: The software you develop. Typically, this is what makes your product unique and adds value for your customers.
  5. Root File System or RFS: All other software which will compose your product! This includes open source packages, libraries and utilities, as well as third-party software.

Collectively, the Kernel and RFS are referred to as the Software Platform or just Platform.

We will avoid using the term ‘middleware’ as it has various meanings throughout the industry and does not add to the understanding of LinuxLink.

Tools

Cross-build Environment

The LinuxLink tools are designed and intended to be used in a cross-build environment. This means that the compilers, linkers, and other programs that create the executables for the target, run on an x86, Linux workstation (aka Host). LinuxLink tools are supported on several distributions (e.g., Ubuntu®, Fedora™) are supported, as well as a Linux guest in VirtualBox® on Windows® (http://www.virtualbox.org). The Factory Build Engine (described later) can run on an x86 Linux server as well.

Toolchain

The term toolchain refers to the set of programs (compiler, linker, etc.) and libraries necessary to cross-build your system. The contents of the toolchain are dependent on many factors including the “C” library (glibc or uClibc) as well your product features (e.g. X11, audio support, etc.). Each of the libraries necessary for building has a corresponding run-time library which needs to be included in the RFS. The LinuxLink Factory (see ‘Factory,’ below) builds the complete required toolchain and includes the required run-time libraries automatically, based on your RFS selections, ensuring that runtime and development environments are always in sync.

Factory

The LinuxLink Factory is the tool that builds the Platform (recall that the ‘Platform’ is the Kernel and RFS), and it is used in two forms: 1) Web (cloud) and 2) Desktop) (locally). The Factory can be thought of as having five components: 1) Build Engine, 2) Advice Engine, 3) Update Engine, 4) Web User Interface (UI) and 5) Desktop User Interface (UI).

  1. Build Engine — This is the set of programs, scripts and meta-data that are used for fetching required sources, patching, cross-building, formatting and packaging for booting. The file that contains the specifications for your custom platform is known as a workorder.
  2. Advice Engine — A set of recommendations that have been created by Timesys experts based upon experience and that have been coded and automated in a database. This advice goes beyond package dependencies and provides checks on the rationalness of your choices.
  3. Update Engine — A pro-active system that simplifies package updates management and integration.
  4. Web User Interface (UI) — A wizard-like interface on the Timesys LinuxLink Web site that is accessed by your browser and which guides you through the choices and options for building your custom platform.
  5. Desktop User Interface (UI) — A wizard-like interface also used to choose packages and options. As the name indicates, it runs on your Linux host. The Desktop UI provides more detailed choices for package configuration and building than does the Web UI.

Web Factory

The Web Factory refers to the cloud-based Timesys-hosted build environment. You can access the Web Factory UI via your browser at the Timesys LinuxLink Web site (https://linuxlink.timesys.com/). Once there, create a new build from the Web Builds Dashboard. After you choose and submit your platform options, Timesys servers build the toolchain and platform which are then provided to you via a download link, along with the workorder for your platform. Advice and Update Notifications are available within the Web UI.

Desktop Factory

The Desktop Factory consists of the Desktop Factory UI and Build Engine which are installed on your local “desktop” Linux workstation. It provides the greatest degree of selection and customization options for configuring the toolchain and packages for your platform. The Desktop Factory accesses the Advice Engine and Update Engine via Web services from the Timesys servers.

Yocto Project Café

The Yocto Project Café BSP build environment that makes getting started with Yocto Project-based development easy by creating a custom layer for you based on your package selections. You can access it via your browser at the Timesys LinuxLink Web site (https://linuxlink.timesys.com/). Once there, navigate to “Tools” > “Web Builds” and then create a new custom image from the Yocto Dashboard. After choosing a base image and desired packages, an installer for your custom image is generated for you to download. Running the Yocto Installer sets up an environment with your configuration ready to build.

TimeStorm IDE

TimeStorm is the Timesys IDE for developing applications on your workstation. It includes the Eclipse IDE and Timesys plugins which make it easy to cross compile, run and debug on the target. It requires that the toolchain created either by the Web Factory, Desktop Factory, or Yocto Project Café be installed on the same workstation where TimeStorm will be used. The Timesys plugins require a license file which is created and downloaded from the Timesys LinuxLink Web site and installed on your workstation. Once your application is debugged to your satisfaction, the Desktop Factory can be configured to build it and include it in the platform.

The LinuxLink Web Site

The LinuxLink Web site (https://linuxlink.timesys.com) is your portal into all Timesys resources. The following are some important areas of the LinuxLink Web site that will be valuable during your development:

Support

The support portal enables you to open, track the status of, reply to, and close your tickets. The following outlines the support you will receive, based on your support contract:

  • LinuxLink subscriberIssues related to developing your product using the LinuxLink framework.
  • TimeStorm — Support for application development issues using TimeStorm.
  • Free LinuxLink user — Support for build issues only using the Web Factory or Yocto Project Café.

Docs

Timesys has authored and assembled a plethora of “how to” documentation for the various tasks associated with building an embedded Linux product, and Getting Started Guides for supported boards. The link to our documentation index can be found from the top navigation bar. This location contains links to the most relevant and popular documents. Additionally, you can always use the search bar located at the top of the page to find other documents.

Resources

In addition to Docs, Timesys provides additional resources to help you with your development. Here you’ll links to our Blog, webinars, and the Web Build Tour.

Git Repos

This is where you access Timeys Git Repos, including:

  1. My Repos — Links to https://src.timesys.com, where private git repositories can be located for collaboration with Timesys. This applies to projects done with services, BSP maintenance and Platinum support customers.
  2. Meta-timesys Layer — Links to the meta-timesys Yocto layer source. Meta-timesys provides tools for security (CVE notification) and support that can be included in any Yocto BSP.
  3. Factory Git — Where you can view the Factory git history online and download shapshots of any version.

Security

Within this area, you can manage security notifications for your builds and view CVE Reports. Notifications are sent weekly by email, so make sure your user preferences are set to allow update and notification emails.

Tools Menu

From the Tools Menu in the top navigation, you can navigate to:

  1. Boards — Where you access your Boards Dashboard and can find the boards supported in Factory and Yocto machines supported by Yocto Project Café. Clicking on a board takes you to the individual board dashboard where you can find demos and starting points.
  2. Web Builds — This is where you access your Web Builds Dashboard, where you will manage your Factory builds and Yocto Project Café installers. You can toggle between build engines by clicking Change Engine on the dashboard header. For either engine, your dashboard is where you create new configurations or fork existing ones to further modify them. When they are no longer needed they can be archived with the option of unarchiving or forking them later if you change your mind.
  3. TimeStorm IDE — Here you can download the latest version of TimeStorm along with the user manual and release notes.
  4. Factory Packages — This is where you can find the packages that are supported in Factory, including versions and license information.
  5. Factory Git — Where you can access the Timesys Git Tree
  6. Factory Download — Here you can get the latest version of the Desktop Factory and access the Factory ChangeLog and other Factory documentation.
  7. Your User Account — Within this area is where you can: view your profile information and request a password reset link; access your account preferences to generate an API key and opt in/out of weekly email notifications; and access private files available for download.

Other Terminology You May Encounter

Glossary Of Terms

Here you can find a quick reference list of terms and their meanings

Board Support Package (BSP) — A name that refers to a bootable kernel and minimal set of packages.

Software Development Kit (SDK) — A downloadable tarball that contains the platform and toolchain. The SDK enables application programmers to get started quickly.

Starting Point — Simply put, a ‘starting point’ is Timesys’ terminology for a pre-built BSP/SDK. A starting point is a platform and toolchain that has been specified by Timesys and is pre-built and available for download from the Timesys LinuxLink Web site. In some cases, these are intended to be small, with the minimal resources necessary to write and debug a C program. In other cases, they can be quite rich with a GUI-based demo program.

Workorder — A set of specifications for your platform. This is the Factory build configuration. A workorder defines all the Linux components that are in the final, functional product including kernel, toolchain and packages as well as package license information, and it contains your selected root filesystem optimization and build output options.