Linux
About Linux
‘The’ OS for Advanced Embedded Devices
In general terms, “Linux” refers to the combination of the Linux operating system “kernel” and collections of system applications and libraries which are distributed as open source and referred to as “distributions”.
This combination of software has proved absolutely unbeatable for use with embedded devices which require a powerful general purpose (non-realtime) operating system.
The Linux Kernel
The Linux kernel is the operating system core. It is the lowest level software that runs on the device, providing support for the device’s unique hardware capabilities while at the same time providing access to that hardware along with other services to higher level software like system applications.
The development project behind the Linux kernel is a massive collective effort from hundreds of people that has over a long period of time built up support for a vast array of hardware platforms and devices. Being the centre of so much focused development effort and continuous improvement allows it to be an increadibly solid foundation for an embedded device’s software stack.
Linux Distributions
Linux distributions bundle together collections of applications and libraries along with a mechanism to easily install them in order to form fulling functioning systems. For embedded Linux, the installation mechanism generally takes the form of a build system that combines the applications and libraries into software ‘images’ that can be installed on the device’s storage.
There are two well-used embedded Linux distributions - Buildroot and Yocto. Where possible, we recommend the use of Buildroot due to its developer centric nature, simplicity and ease of customisation leading to better development efficiency relative to Yocto.
Using Linux In Your Product
Many hardware vendors provide a Linux based BSP (board support package) that runs on a development kit or reference design board. This is an essential starting point but it is only the very first step in developing your product.
While the BSP may work well enough to demonstrate some basic functionality on the reference board, often a lot of work is still needed to create a platform that is suitable for functioning as the basis of a final product.
This work can include: adapting bootloader support, extending core hardware platform support, new device driver support, application and library selection, working through software bugs and early hardware issues, various software optimisation and build system improvements.
We can help with navigating the work required to get Linux working suitably on your hardware.
Our Linux Knowledge
How We Can Help
We can work with you at a level that best suits your company’s immediate and long-term development needs, including:
Providing a complete platform and application development service - we can cover all software areas and develop a turn-key product to your specifications.
Providing lower-level platform development support - working with your chosen hardware, we can give you a stable operating system and free up your development team to focus on the application.
Working alongside and aiding your development team - we can directly assist with any challenging issues while also easing their learning-curve. We can help establish strong development and maintenance practices as a core competency of your team.
Key Linux Tech Areas
Support for new hardware platforms
U-Boot bootloader support
Device driver development & device tree configuration
System app & library selection refinement
Original system app development
Interfacing with cloud infrastructure
Image size optimisation
Simulators and build options for improved development efficiency
Build system & CI customisation and improvement
Our Experience
Our work with SmallHD on their range of on-camera and production field monitors is a great example of how we can assist with Linux development. We’ve worked closely with their team on a wide range of Linux development areas - from low-level software support for new hardware to advanced high speed image processing pipelines.
Read more about how we’ve assisted with their development.
Tech Areas
Our Key Areas of Strength
Next Steps
More Software Capabilities
Find out more about our other capabilities and how we can help.
Contact
If you are looking for help with a project or product idea, we'd love to talk.