Linux is currently the most common and pervasive kernel around, from server grade setups to embedded systems and SoC architectures. It’s also present in modern desktop PCs for gaming, and especially in the recent cloud providers that are offering services for a myriad of clients around the world. As such, many challenges and issues are present, as well as maintenance and distribution tasks, security concerns and improvement opportunities.
For that, Igalia relies on a multi-profile set of engineers able to tackle issues and requests in various realms of the kernel ecosystem, always with an upstream-driven approach, a work based on community discussions and a high quality focus. We are ready to contribute to your company success with kernel-related challenges in your product or solution. Our expertise and work cases span multiple domains and layers.
Core kernel abstractions and debug infrastructure
The core kernel abstractions make the kernel robust and optimized for multiple architectures and systems, and enable interesting usages like virtualization and containers. Our team has deep expertise in using in-kernel debug infrastructure, like the tracing mechanisms, pstore and kdump, but even more in contributing to such infrastructure by providing improvements and fixes over the time and integrating/optimizing their userspace counterparts.
We also have experience and interest in dealing with synchronization primitives, concurrency, scheduling problems and power management optimizations. Our experience spans from futex improvements to scheduler benchmarks and energy consumption optimizations. Virtualization (KVM/Hyper-V) is another area of great interest for us.
Kernel DRM graphics layer
There has never so much interest in Linux graphics as right now. Recent advances in open-source graphics drivers and Linux gaming ecosystem are enabling more and more users to have high-performance gaming setups using Linux while fully relying on free and open-source software. Also, GPGPU usages are increasing as GPUs architectures evolve to a new level of processing power.
We have a team of graphics engineers working on display and graphics drivers of the Linux GPU DRM subsystem, and even as kernel maintainers in some areas/drivers of the Linux graphics stack. Improving test coverage and APIs is another important part of our job here, along with participating in community discussions of new standards/interfaces in kernel graphics.
Storage technologies and generic device drivers
One of the fastest-evolving areas in recent years is storage, with new technologies as NVMe (and NVMe over fabrics), the block-MQ abstraction in kernel, and virtualized fast storages. This is a especially important area for cloud providers’ performance; hence, there are multiple challenges and optimization opportunities in this realm, which are very interesting to handle.
Our engineers have experience in the kernel block layer as well as NVMe, (i)SCSI, software RAID, and in storage/filesystems overall, positioning us to address issues of many natures. We also have expertise in generic device drivers development and bug fixing, such as network, infiniband and SPI drivers.
Hardware architecture, enablement and validation
Hardware/software interaction is one of the most challenging and interesting areas of systems development today due to its intricate set of (often subtle) problems and complexities. Our team has a good amount of experience in stable architectures (like PowerPC, ARM and x86) as well as a deep interest in modern architectures like RISC-V.
Having worked on issues and improvements related to PCI/VFIO, as well as device-tree adjustments, bootloader issues and kernel/firmware interaction (UEFI/ACPI), Igalia is well positioned to analyze low-level issues and potential improvements for multiple hardware setups.
We are working on:
Igalia offers multiple services regarding the whole kernel ecosystem and has engineers with vast and diverse experience in multiple domains, from hardware architecture to complex system software abstractions. We can help with:
- Hardware enablement and validation, providing optimal HW/device operation and firmware interaction for either server-class or SoC/embedded systems.
- Feature design and development, enabling new use cases and improvements in the Linux kernel interfaces and abstractions.
- Complex problems solving and investigation in all kernel realms and layers, making use of modern in-kernel and external debug approaches.
- Integration and upstreaming of kernel and related userland code, by making use of new interfaces and always seeking reviews/discussions with the upstream kernel community.