Comparison of custom embedded Linux build systems: Yocto and Buildroot
Loading...
URL
Journal Title
Journal ISSN
Volume Title
Perustieteiden korkeakoulu |
Master's thesis
Unless otherwise stated, all rights belong to the author. You may download, display and print this publication for Your own personal use. Commercial use is prohibited.
Authors
Date
2022-06-13
Department
Major/Subject
Computer science
Mcode
SCI3042
Degree programme
Master’s Programme in Computer, Communication and Information Sciences
Language
en
Pages
49
Series
Abstract
The popularity of Internet of things devices is increasing and many embedded applications are using Linux as an operating system to enable the usage of common tools in normal development. Large embedded systems are not sustainable to be developed in bare metal environments and operating systems are used to lessen the burden of hardware knowledge. Building operating systems such as Linux to embedded devices is not trivial and various build systems have been developed to ease the integration. Currently, popular build systems for embedded Linux are Yocto project and Buildroot. These build systems offer abstraction from embedded devices and allow more flexibility for adding features to Linux images. In this thesis, Yocto and Buildroot are compared as development platforms and in performance. Build system-agnostic projects are developed to cancel any differences between build system-specific requirements. Each project is then expanded to include various features in the build systems such as dependencies commonly needed in program development. Performance is measured in terms of build times and memory usage to get an idea of system requirements. The main differences between the environments are the learning curves and performance. Yocto's steep learning curve can be daunting, but Yocto excellently handles large-scale projects with its robustness. However, his robustness comes with a performance penalty, scaling poorly in core usage and image creation is much slower compared to Buildroot. Buildroot, being a simpler environment, is easier to pick up and iterate quickly when prototyping is important.Esineiden internet- laitteiden suosio on nousussa, ja monet sulautetut järjestelmät käyttävät Linux- käyttöjärjestelmää helpottamaan yleisten työkalujen käyttöä tavallisessa ohjelmistokehityksessä. Suurten sulautettujen järjestelmien kehitys ei ole kestävää ilman käyttöjärjestelmää, ja niitä käytetään vähentämään riippuvuutta laitteistoriippuvaiseen tietoon sekä muuhun kehitykseen. Käyttöjärjestelmien kääntäminen on vaivalloista, ja useita käännösympäristöjä on kehitetty helpottamaan käännöstyötä. Tällä hetkellä yleisimmät käännösympäristöt ovat Yocto ja Buildroot. Nämä ympäristöt tarjoavat abstraktiota sulautettuihin järjestelmiin sekä joustavuutta uusien ominaisuuksien luontiin. Tässä työssä Yoctoa ja Buildroottia verrataan toisiinsa niiden kehitysominaisuuksien sekä suorituskyvyn puitteissa. Ensiksi kehitetään kehitysympäristöstä riippumattomia projekteja, että voitaisiin minimoida niistä tulevat riippuvuudet. Vähitellen näihin projekteihin lisätään erilaisia riippuvuuksia ja ominaisuuksia, joita tavallisessakin ohjelmistokehityksessä voi ilmetä. Suorituskykyä mitataan seuraamalla muistin kulutusta sekä käännöksiin käytettyä aikaa. Suorituskykymittaukset ovat tärkeitä muun muassa. käännöspalvelimien suunnittelussa. Kaksi suurinta eroa näiden ympäristöjen välillä on oppimiskäyrässä ja suorituskyvyssä. Yocton jyrkkä oppimiskäyrä voi olla lannistava, mutta sen suurten projektien hallinnointiominaisuudet ovat merkittävästi paremmat kuin Buildrootin. Näiden ominaisuuksien vuoksi Yocton suorituskyky on merkittävästi hitaampi kuin Buildrootin, ja se skaalautuu heikosti prosessoriytimien määrän ja muistin kasvaessa. Buildroot tarjoaa yksinkertaisemman ympäristön Linux- käännöksille ja sen nopea suorituskyky on ideaalinen, kun käännöksiä tehdään tiheästi ja prototyyppien luominen on tärkeää.Description
Supervisor
Hirvisalo, VesaThesis advisor
Ackers, DanKeywords
embedded systems, Linux, Yocto, Buildroot, build systems