Careers > Software Engineer - Port a cross OS to QEMU for automatic toolchain setup
Last modified 11/28/2022 9:51:47 AM

Software Engineer - Port a cross OS to QEMU for automatic toolchain setup

Internship
AdaCore
Toulouse, France
Bac +4/5

Everything we do at AdaCore is centered around helping developers build the safest, most secure open-source software. 

For over 25 years, we've worked with global leaders across avionics, aerospace and defense 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.

Our 150 experts worldwide in the US (New York), France (Paris, Toulouse, Grenoble and Vannes), the UK, Estonia and Germany all play a role in developing bleeding edge technologies to meet the highest grade of 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 (LynxOS, Linux…), we run them on a cloud infrastructure, reduce memory and disk usage and improve the performance of our continuous integration pipeline. The goal of the internship is to adapt our facilities to run our test-suites over QEMU for our *-LynxOS-178 and other cross targets.

Goals

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

  • Investigate the current needs of our existing testsuites, determine the proper way to make host and target communicate (UART, RSH, SSH…) in order to send data and retrieve traces for our validation testing.

  • Configure and build LynxOS178 image and update our test-suite engines to fit the constraints determined during the previous step, if necessary.

  • Adapt the QEMU simulated model if some hardware modules are missing support to run our testsuite (UART, network…).

  • Transition, after having made the required adaptations to our infrastructure,  our production testing to this LynxOS178 image running on QEMU.

  • Produce the documentation attached to this design and to its usage.

To introduce the applicant to our infrastructure, some steps might be added. For example, running the built LynxOS image on a real board to validate it is functional.

One of these steps could conclude that it is technically impossible to run our LynxOS test-suites over QEMU. In that case, Linux will be targeted instead of LynxOS. We already have several cross Linux testings (armhf, ppc…) that run over QEMU. The work will be to extend our infrastructure to add support to other CPUs. So the second step becomes: defining the proper configuration to build a Linux distribution (using YOCTO) to run our testsuite over QEMU.

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.

  • LynxOS178 usage and configuration. 

  • QEMU usage. 

  • Knowledge of low level hardware components (CPU, UART, timers…). 

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

Timeframe:

During 2023 - 6 months

References

https://www.qemu.org/ - https://www.lynx.com/products/lynxos-posix-real-time-operating-system-rtos - https://www.yoctoproject.org/

Powered by Hello Talent