YOCTO PROJECT In­cu­bat­ing Linux-Based Sys­tems

This ar­ti­cle fo­cuses on Yocto – a com­plete em­bed­ded Linux devel­op­ment en­vi­ron­ment that of­fers tools, meta­data and doc­u­men­ta­tion.

OpenSource For You - - DEVELOPERS OVERVIEW -

The Yocto Project helps de­vel­op­ers and com­pa­nies get their project off the ground. It is an open source col­lab­o­ra­tion project that pro­vides tem­plates, tools and meth­ods to cre­ate cus­tom Linux-based sys­tems for em­bed­ded prod­ucts, re­gard­less of the hard­ware ar­chi­tec­ture.

While build­ing Linux-based em­bed­ded prod­ucts, it is im­por­tant to have full con­trol over the soft­ware run­ning on the em­bed­ded de­vice. This doesn’t hap­pen when you are us­ing a nor­mal Linux OS for your de­vice. The soft­ware should have full ac­cess as per the hard­ware re­quire­ments. That’s where the Yocto Project comes in handy. It helps you cre­ate cus­tom Linux-based sys­tems for any hard­ware ar­chi­tec­ture and makes the de­vice eas­ier to use and faster than ex­pected.

The Yocto Project was founded in 2010 as a so­lu­tion for em­bed­ded Linux devel­op­ment by many open source ven­dors, hard­ware man­u­fac­tur­ers and elec­tronic com­pa­nies. The project aims at help­ing de­vel­op­ers build their own Linux dis­tri­bu­tions, spe­cific to their own en­vi­ron­ments. The project pro­vides de­vel­op­ers with in­ter­op­er­a­ble tools, meth­ods and pro­cesses that help in the devel­op­ment of Linux-based em­bed­ded sys­tems. The cen­tral goal of the project is to en­able the user to re­use and cus­tomise tools and work­ing code. It en­cour­ages in­ter­ac­tion with em­bed­ded projects and has been a steady con­trib­u­tor to the OpenEmbed­ded core, BitBake, the Linux ker­nel devel­op­ment process and sev­eral other projects. It not only deals with build­ing Linux-based em­bed­ded sys­tems, but also the tool chain for cross com­pi­la­tion and soft­ware devel­op­ment kits (SDK) so that users can choose the pack­age man­ager for­mat they in­tend to use.

The goals of the Yocto Project

Although the main aim is to help de­vel­op­ers of cus­tomised Linux sys­tems sup­port­ing var­i­ous hard­ware ar­chi­tec­tures, it has also a key role in sev­eral other fields where it sup­ports and en­cour­ages the Linux com­mu­nity. Its goals are: To de­velop cus­tom Linux-based em­bed­ded sys­tems re­gard­less of the ar­chi­tec­ture. To pro­vide in­ter­op­er­abil­ity be­tween tools and work­ing code, which will re­duce the money and time spent on the project. To de­velop li­cence-aware build sys­tems that make it pos­si­ble to in­clude or re­move soft­ware com­po­nents based on spe­cific li­cence groups and the cor­re­spond­ing re­stric­tion lev­els. To pro­vide a place for open source projects that help in the devel­op­ment of Linux-based em­bed­ded sys­tems and cus­tomis­able Linux plat­forms. To fo­cus on cre­at­ing sin­gle build sys­tems that ad­dress the needs of all users that other soft­ware com­po­nents can later be teth­ered to. To en­sure that the tools de­vel­oped are ar­chi­tec­turally in­de­pen­dent. To pro­vide a bet­ter graph­i­cal user in­ter­face to the build sys­tem, which eases ac­cess. To pro­vide re­sources and in­for­ma­tion, cater­ing to both new and ex­pe­ri­enced users. To pro­vide core sys­tem com­po­nent recipes pro­vided by the OpenEmbed­ded project. To fur­ther ed­u­cate the com­mu­nity about the ben­e­fits of this stan­dard­i­s­a­tion and col­lab­o­ra­tion in the Linux com­mu­nity and in the in­dus­try.

The Yocto Project com­mu­nity

The com­mu­nity shares many com­mon traits with a typ­i­cal open source or­gan­i­sa­tion. Any­one who is in­ter­ested can con­trib­ute to the devel­op­ment of the project. The Yocto Project is de­vel­oped and gov­erned as a col­lab­o­ra­tive ef­fort by an open com­mu­nity of pro­fes­sion­als, vol­un­teers and con­trib­u­tors.

The project’s gov­er­nance is mainly di­vided into two wings

—ad­min­is­tra­tive and tech­ni­cal. The ad­min­is­tra­tive board in­cludes ex­ec­u­tive lead­ers from or­gan­i­sa­tions that par­tic­i­pate on the ad­vi­sory board and also in sev­eral sub-groups that per­form sev­eral non-tech­ni­cal ser­vices in­clud­ing com­mu­nity man­age­ment, fi­nan­cial man­age­ment, in­fra­struc­ture man­age­ment, ad­vo­cacy and outreach. The tech­ni­cal board in­cludes sev­eral sub-groups, which over­see tasks that range from sub­mit­ting patches to the project ar­chi­tect to de­cid­ing on who is the fi­nal au­thor­ity on the project.

The build­ing of the project re­quires the co­or­di­nated ef­forts of many peo­ple, who work in sev­eral roles. These roles are listed below. Ar­chi­tect: One who holds the fi­nal au­thor­ity and pro­vides over­all lead­er­ship to the project’s devel­op­ment. Sub-sys­tem main­tain­ers: The project is fur­ther di­vided into sev­eral sub-projects and the main­tain­ers are as­signed to these sub-projects. Layer main­tain­ers: Those who en­sure the com­po­nents’ ex­cel­lence and func­tion­al­ity. Tech­ni­cal lead­ers: Those who work within the sub­pro­jects, do­ing the same thing as the layer main­tain­ers. Up­stream projects: Many Yocto Project com­po­nents such as the Linux ker­nel are de­pen­dent on the up­stream projects. Ad­vi­sory board: The ad­vi­sory board gives di­rec­tion to the project and helps in set­ting the re­quire­ments for the project.


The build sys­tem is com­posed of dif­fer­ent lay­ers, which are the con­tain­ers for the build­ing blocks used to con­struct the sys­tem. The lay­ers are grouped ac­cord­ing to func­tion­al­ity, which makes the man­age­ment of ex­ten­sions and cus­tomi­sa­tions eas­ier.

Devel­op­erSpe­cific Layer Hard­wareSpe­cific BSP Yocto­Spe­cific Layer Meta­data Fig­ure 2: YP lay­ers Com­mer­cial Layer UI­Spe­cific Layer OpenEmbed­ded Core Meta­data

Fig­ure1: YP com­mu­nity

Newspapers in English

Newspapers from India

© PressReader. All rights reserved.