Careers > Implement migration mechanism to speed up OS booting over QEMU
Last modified 10/7/2024 10:32:02 AM

Implement migration mechanism to speed up OS booting over QEMU

Internship
AdaCore
Grenoble (France)

AdaCore: Helping Developers Build Software that Matters

Everything we do at AdaCore is centered around helping developers build safe, secure and reliable software.

For 30 years, we've partnered with global leaders in aerospace & defense, air traffic management, space, railway and financial services. We've developed tools and services simplifying high-integrity software development through a subscription-based model. As demand for secure applications grows in industries like automotive, medical, energy, and IoT, we're adapting our proven technologies to assist a new generation of developers.

Our 150 global experts based in the US, France, Germany, the UK, and Estonia, collectively develop cutting-edge technologies to address the challenges of high-grade software development.

Joining AdaCore is about joining a culture of innovation, openness, collaboration and dependability, which defines how we work together, with our customers and partners.

Context:

To ensure the quality of its technology, AdaCore runs several million test cases daily. To ease and speed up these operations on cross platforms (VxWorks, Linux…), we run them on a cloud infrastructure, reduce memory and disk usage and improve the performance of our continuous integration pipeline. 

However, our current approach involved booting for the beginning this cross operating system for every single test. This could be quick enough to go unnoticed but for some, like Embedded-Linux, each boot could take around 2s, raising considerably the amount of time spent on testing. We recently experimented, with success, a QEMU workflow, called migration, allowing us to save a VM after the boot phase and start every test from that point.

The goal of the internship is to implement this migration workflow on as many cross OSes as possible, starting with embedded-Linux.

Goals:

In cooperation with our experts, the purpose of this internship is to:

  • Investigate migration availability for Linux over 4 different CPUs: aarch64, arm, ppc, ppc64.

  • Implement missing QEMU features to allow migration

  • Adjust Linux configuration and rebuild it using Yocto

  • Create or adapt scripts to interface this new technology within our existing projects

  • Repeat with other operating systems (VxWorks, Rtems, QNX) over different emulations (Xilinx ZCU102, x86, etc)

 

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.

  • QEMU usage. 

  • Linux configuration

  • Low level hardware components (CPU, UART, timers…). 

  • Various programming languages (e.g. Python but also Ada, C/C++, Makefiles, Bash, YAML, etc).

 

Timeframe & Location: 

During 2025 - 6 months - Grenoble office

 

Beyond the job

We're a global organization driven by diverse backgrounds, fostering innovation through an open exchange of ideas. We welcome applicants of all backgrounds, celebrating diversity in ethnicity, nationality, gender, age, religion, abilities, sexual orientation, veteran or marital status. 

Our commitment is to help our teammates, wherever they are based, feel comfortable and satisfied, by encouraging flexibility to ensure them a healthy work-life balance. Additionally, we prioritize individual development by offering continuous training from day one with a personalized onboarding plan.

 

 

Powered by Hello Talent