New hardware
A driver is needed for PCIe, USB, network, character or block devices.
LINUX KERNEL DEVELOPMENT
System components for hardware, networking, storage and data protection — designed for kernel lifecycle, concurrency, performance and maintainable releases.
When it is needed
A driver is needed for PCIe, USB, network, character or block devices.
The product needs a module for storage, encryption, packet processing, a virtual device or event interception.
An out-of-tree module depends on internal APIs, unstable structures, a specific configuration or distribution build.
Scope
Engineering process
Public interfaces are preferred, dependencies on internal structures are minimized and the supported-version matrix is explicit.
probe/remove, open/release, suspend/resume, hot unplug and resource-release ordering.
Copy or zero-copy, queues, backpressure, batching, NUMA, cache locality and execution-context constraints.
Spinlocks, mutexes, RCU, atomics, reference counting, memory ordering and race detection.
Tracing, counters, fault injection, lockdep, KASAN/KCSAN and crash-dump analysis.
CI builds, DKMS or packages, test kernels, documentation and an update strategy.
PROJECT EXAMPLE
The anonymized example shows the form of the outcome and validation without exposing a customer or confidential code.
An out-of-tree module built for only one kernel and broke after distribution updates because it depended on unstable internal APIs.
The kernel boundary was reduced, version-specific calls were isolated, and multi-branch builds plus lifecycle tests were added.
Kernel updates no longer required a broad module rewrite; incompatibilities were confined to a small adapter.
CI builds across the kernel matrix, load and unload under traffic, and validation of both fast and error paths.
How to start
Kernel APIs, lifecycle, concurrency, compatibility and test plan.
Build on the target kernel, reproduce the defect, fix it and run regression tests.
Initialization, basic I/O, user interface and performance validation.
The minimum paid engagement is three working days, starting from RUB 200,000 or the equivalent in another currency. After a short introductory call, scope, deliverable, validation method and price are fixed.
Before the project starts
Yes, but the actual kernel versions, configurations and update rules must be defined. A distribution name alone is not enough to assess compatibility.
DKMS is useful for out-of-tree modules that must rebuild after kernel updates. A controlled appliance or custom OS image may be better served by a package tied to a fixed kernel matrix.
Usually within a reasonable range, if a compatibility layer isolates API differences and unnecessary internal dependencies are avoided. Unlimited compatibility is not free.
A reproducible workload is defined first. CPU, latency, throughput, queues, cache behavior and NUMA are measured before and after changes using the same test and regression criteria.
Engagement model
Maxim personally leads architecture, critical implementation, diagnostics and final technical validation. Additional engineers or domain specialists are involved only with the customer’s agreement and with explicit roles and responsibility.
Discuss the project
Include the platform, what already exists, where the problem occurs, the target load and the acceptance criterion. This is enough to choose a sensible first stage and validation method.