AdaCore: Helping Developers Build Software that Matters
Everything we do at AdaCore is centered around helping developers build safe, secure and reliable software.
For over 25 years, we've worked with global leaders across the military and civil avionics, defense systems, air traffic management/control, space, railway, and financial services industries, building tools and providing services that ease the complex and difficult process of developing high-integrity software. As the need for truly secure and reliable applications expands into industries such as automotive, medical, energy, and IOT, we’re advancing our time-tested technologies to bring expertise and services to help a whole new generation of developers. Through our subscription-based business model and dedicated services arm, we have worked with hundreds of customers over the year on thousands of projects.
Our 120 experts worldwide in the US (New York, Lexington), France (Paris, Toulouse, Grenoble and Vannes), the UK, and Estonia, all play a role in developing state-of-the-art technologies to meet the challenges of building the highest grade of software.
Joining AdaCore is about joining a culture of innovation, openness, collaboration and dependability, which defines how we work together, with our customers and partners.
To ensure the quality of its technology, AdaCore runs several million test cases daily. To ease and fasten these operations on cross Linux platforms, run them on a cloud infrastructure, reduce memory and disk usage and improve the performances of our continuous integration pipeline, we aim to construct an ad hoc Linux mini-distribution that runs over QEMU for our test-suites.
In cooperation with our experts, the purpose of this internship is to:
Investigate the current needs of our existing testsuites, determine the minimum requirements that a Linux mini-distribution must meet for our validation testing.
Choose a base Linux distribution to use (e.g. Yocto, Busy Box, WRS Linux, etc), and build a minimal, portable, custom Linux distribution which we can run on QEMU.
Deploy that mini-distribution on a real target (probably a Xilinx Zinq UltraScale+)
Deploy that mini-distribution on QEMU, making adaptations to QEMU if needed (e.g. missing support for some hardware modules),
Transition, after having made the required adaptations to our infrastructure, our production testing to this new Linux mini-distribution running on QEMU.
Produce the documentation attached to the design of the mini-distribution and to its usage.
Skills required or Nice to have :
The work will require interacting closely with engineers from AdaCore (mostly in english).
The applicant should have a fair knowledge about the following topics. Having a solid knowledge about these topics is a plus, but it is not required for the applicant to know them all before applying.
Linux core components (systemd, udev, dbus, vfs, init scripts...), kernel configuration...
Knowledge of low level hardware components (CPU, UART, timers…).
Linux distribution design tools (yocto…) usage.
Knowledge of various programming languages (e.g. Ada, C/C++, Makefiles, Python, bash, yaml, etc).
Timeframe and location
Time scale flexible, ideally in 2022
Duration somewhat flexible, ideally 6 months
Location: Toulouse (France)