Misplaced Pages

OpenEmbedded

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

OpenEmbedded (OE) is a build automation framework and cross-compile environment used to create Linux distributions for embedded devices . The framework is developed by the OpenEmbedded community, which was formally established in 2003. OpenEmbedded is the recommended build system of the Yocto Project , which is a Linux Foundation workgroup that assists commercial companies in the development of Linux-based systems for embedded products.

#856143

32-461: The build system is based on BitBake . A BitBake configuration file, called a recipe, specifies various information such as dependency and source code locations, how to build a package, and how to install and remove a compiled package. OpenEmbedded tools use these recipes to fetch and patch source code, compile and link binaries, produce binary packages ( ipk , deb , rpm ), and create bootable images . Historically, OpenEmbedded recipes were stored in

64-424: A device, device type, directory prefix, file path separator, or file type. File systems typically support organizing files into directories , also called folders , which segregate files into groups. This may be implemented by associating the file name with an index in a table of contents or an inode in a Unix-like file system. Directory structures may be flat (i.e. linear), or allow hierarchies by allowing

96-672: A directory to contain directories, called subdirectories. The first file system to support arbitrary hierarchies of directories was used in the Multics operating system. The native file systems of Unix-like systems also support arbitrary directory hierarchies, as do, Apple 's Hierarchical File System and its successor HFS+ in classic Mac OS , the FAT file system in MS-DOS 2.0 and later versions of MS-DOS and in Microsoft Windows ,

128-443: A file system creates a file, it allocates space for data. Some file systems permit or require specifying an initial space allocation and subsequent incremental allocations as the file grows. To delete a file, the file system records that the file's space is free; available to use for another file. A local file system manages storage space to provide a level of reliability and efficiency. Generally, it allocates storage device space in

160-422: A file system implementation. The physical file system layer provides relatively low-level access to a storage device (e.g. disk). It reads and writes data blocks , provides buffering and other memory management and controls placement of blocks in specific locations on the storage medium. This layer uses device drivers or channel I/O to drive the storage device. A file name , or filename , identifies

192-417: A file to consuming applications and in some cases users. A file name is unique so that an application can refer to exactly one file for a particular name. If the file system supports directories, then generally file name uniqueness is enforced within the context of each directory. In other words, a storage can contain multiple files with the same name, but not in the same directory. Most file systems restrict

224-436: A first step in a cross-build setup, the framework will attempt to create a cross-compiler toolchain suited for the target platform. File system In computing , a file system or filesystem (often abbreviated to FS or fs ) governs file organization and access. A local file system is a capability of an operating system that services the applications running on the same computer . A distributed file system

256-706: A forked file system on the Macintosh, and Microsoft supports streams in NTFS. Some file systems maintain multiple past revisions of a file under a single file name; the file name by itself retrieves the most recent version, while prior saved version can be accessed using a special naming convention such as "filename;4" or "filename(-4)" to access the version four saves ago. See comparison of file systems#Metadata for details on which file systems support which kinds of metadata. A local file system tracks which areas of storage belong to which file and which are not being used. When

288-477: A granular manner, usually multiple physical units (i.e. bytes ). For example, in Apple DOS of the early 1980s, 256-byte sectors on 140 kilobyte floppy disk used a track/sector map . The granular nature results in unused space, sometimes called slack space , for each file except for those that have the rare size that is a multiple of the granular allocation. For a 512-byte allocation, the average unused space

320-534: A single repository, and the metadata was structured as what is now called "OpenEmbedded-Classic". Starting in 2010, the structure was modified to better support the ever-growing number of recipes. Recipe metadata was split into multiple layers. The lowest layer, which includes platform-independent and distribution-independent meta data is called "OpenEmbedded-Core". Architecture-specific, application-specific and distribution-dependent instructions are applied in appropriate target support layers that can override or complement

352-431: A stream of bytes . Typically, to read file data, a program provides a memory buffer and the file system retrieves data from the medium and then writes the data to the buffer. A write involves the program providing a buffer of bytes that the file system reads and then stores to the medium. Some file systems, or layers on top of a file system, allow a program to define a record so that a program can read and write data as

SECTION 10

#1732791754857

384-585: A structure; not an unorganized sequence of bytes. If a fixed length record definition is used, then locating the n record can be calculated mathematically, which is relatively fast compared to parsing the data for record separators. An identification for each record, also known as a key, allows a program to read, write and update records without regard to their location in storage. Such storage requires managing blocks of media, usually separating key blocks and data blocks. Efficient algorithms can be developed with pyramid structures for locating records. Typically,

416-432: A user's use of storage space. A file system typically ensures that stored data remains consistent in both normal operations as well as exceptional situations like: Recovery from exceptional situations may include updating metadata, directory entries and handling data that was buffered but not written to storage media. A file system might record events to allow analysis of issues such as: Many file systems access data as

448-405: Is 256 bytes. For 64 KB clusters, the average unused space is 32 KB. Generally, the allocation unit size is set when the storage is configured. Choosing a relatively small size compared to the files stored, results in excessive access overhead. Choosing a relatively large size results in excessive unused space. Choosing an allocation size based on the average size of files expected to be in

480-714: Is a protocol that provides file access between networked computers. A file system provides a data storage service that allows applications to share mass storage . Without a file system, applications could access the storage in incompatible ways that lead to resource contention , data corruption and data loss . There are many file system designs and implementations – with various structure and features and various resulting characteristics such as speed, flexibility, security, size and more. Files systems have been developed for many types of storage devices , including hard disk drives (HDDs), solid-state drives (SSDs), magnetic tapes and optical discs . A portion of

512-534: Is invisible to the end user and the system still works correctly. However this can degrade performance on some storage hardware that work better with contiguous blocks such as hard disk drives . Other hardware such as solid-state drives are not affected by fragmentation. A file system often supports access control of data that it manages. The intent of access control is often to prevent certain users from reading or modifying certain files. Access control can also restrict access by program in order to ensure that data

544-510: Is modified in a controlled way. Examples include passwords stored in the metadata of the file or elsewhere and file permissions in the form of permission bits, access control lists , or capabilities . The need for file system utilities to be able to access the data at the media level to reorganize the structures and provide efficient backup usually means that these are only effective for polite users but are not effective against intruders. Methods for encrypting file data are sometimes included in

576-550: Is stored inside the allocation group itself. Additional attributes can be associated on file systems, such as NTFS , XFS , ext2 , ext3 , some versions of UFS , and HFS+ , using extended file attributes . Some file systems provide for user defined attributes such as the author of the document, the character encoding of a document or the size of an image. Some file systems allow for different data collections to be associated with one file name. These separate collections may be referred to as streams or forks . Apple has long used

608-606: The Gentoo Linux distribution. BitBake existed for some time in the OpenEmbedded project until it was separated out into a standalone, maintained, distribution-independent tool. BitBake is co-maintained by the Yocto Project and the OpenEmbedded project. BitBake recipes specify how a particular package is built. Recipes consist of the source URL ( http , https , ftp , cvs , svn , git , local file system) of

640-680: The NTFS file system in the Windows NT family of operating systems, and the ODS-2 (On-Disk Structure-2) and higher levels of the Files-11 file system in OpenVMS . In addition to data, the file content, a file system also manages associated metadata which may include but is not limited to: A file system stores associated metadata separate from the content of the file. Most file systems store

672-478: The UI-Layer can be supplemented by various Linux distributions . The following list is available for OpenEmbedded: Various devices are supported: BitBake BitBake is a make -like build tool with the special focus of distributions and packages for embedded Linux cross compilation , although it is not limited to that. It is inspired by Portage , which is the package management system used by

SECTION 20

#1732791754857

704-456: The achievements of OpenZaurus with contributions from projects like Familiar Linux and OpenSIMpad into a common codebase. OpenEmbedded superseded these projects and was used to build any of them from the same code base. OpenEmbedded-Core (OE-Core) resulted from the merge of the Yocto Project with OpenEmbedded. Since then, all package recipes are maintained through OpenEmbedded-Core. OpenEmbedded-Core has adapted this layered structure in

736-421: The computer main memory can be set up as a RAM disk that serves as a storage device for a file system. File systems such as tmpfs can store files in virtual memory . A virtual file system provides access to files that are either computed on request, called virtual files (see procfs and sysfs ), or are mapping into another, backing storage. From c.  1900 and before the advent of computers

768-519: The concepts. The logical file system layer provides relatively high-level access via an application programming interface (API) for file operations including open, close, read and write – delegating operations to lower layers. This layer manages open file table entries and per-process file descriptors. It provides file access, directory operations, security and protection. The virtual file system , an optional layer, supports multiple concurrent instances of physical file systems, each of which called

800-416: The file system. This is very effective since there is no need for file system utilities to know the encryption seed to effectively manage the data. The risks of relying on encryption include the fact that an attacker can copy the data and use brute force to decrypt the data. Additionally, losing the seed means losing the data. Some operating systems allow a system administrator to enable disk quotas to limit

832-633: The instructions from lower layers. Additionally, changes to the recipes at the core layer are now managed with a pull model: instead of committing their changes directly to the repository (as was previously the case), developers now send patches to a mailing list. When approved, the patches are merged (pulled) by a maintainer. The OpenEmbedded framework can be installed and automatically updated via Git . The OpenEmbedded Image Creator, called Wic, can be used to generate disk image files; generally with extension .wic . The OpenEmbedded Project , created by Chris Larson, Michael Lauer, and Holger Schurig, merged

864-500: The length of a file name. Some file systems match file names as case sensitive and others as case insensitive. For example, the names MYFILE and myfile match the same file for case insensitive, but different files for case sensitive. Most modern file systems allow a file name to contain a wide range of characters from the Unicode character set. Some restrict characters such as those used to indicate special attributes such as

896-409: The merge with Yocto and new layer entries were added over time. The Layers represent a structure which is only of declarative nature. The specific entries are stricter in the scope of deciding which entry provides which packages. Overview of layers is available in: layers .openembedded .org /layerindex /branch /master /layers / In OpenEmbedded-Classic, the configurations from Base- to

928-595: The names of all the files in one directory in one place—the directory table for that directory—which is often stored like any other file. Many file systems put only some of the metadata for a file in the directory table, and the rest of the metadata for that file in a completely separate structure, such as the inode . Most file systems also store metadata not associated with any one particular file. Such metadata includes information about unused regions— free space bitmap , block availability map —and information about bad sectors . Often such information about an allocation group

960-432: The package, dependencies and compile or install options. They also store the metadata for the package in standard variables. During the build process, recipes are used to track dependencies, performing native or cross-compilation of the package and package it so that it is suitable for installation on the local or a target device. It is also possible to create complete images consisting of a root file system and kernel. As

992-429: The storage tends to minimize unusable space. As a file system creates, modifies and deletes files, the underlying storage representation may become fragmented . Files and the unused space between files will occupy allocation blocks that are not contiguous. A file becomes fragmented if space needed to store its content cannot be allocated in contiguous blocks. Free space becomes fragmented when files are deleted. This

OpenEmbedded - Misplaced Pages Continue

1024-442: The terms file system , filing system and system for filing were used to describe methods of organizing, storing and retrieving paper documents. By 1961, the term file system was being applied to computerized filing alongside the original meaning. By 1964, it was in general use. A local file system's architecture can be described as layers of abstraction even though a particular file system design may not actually separate

#856143