top band

Friday 5:10 p.m.–5:40 p.m.

Porting Python to run without an OS

Josh Triplett

Audience level:
Novice
Category:
Python Internals

Description

We've ported Python to run directly on hardware, without an OS, as a testing and exploration environment for firmware, ACPI, and UEFI. This talk will explore porting Python to a new platform, embedding Python, recreating enough of libc and POSIX to run Python without an OS, and binding to platform-specific services. Includes live demo of bare-metal Python, directly driving hardware.

Abstract

We've ported Python to run directly on hardware, without an operating system, based on the GRUB2 bootloader, as part of the BIOS Implementation Test Suite (BITS) project (http://biosbits.org). We're using Python as a testing and exploration environment for hardware, BIOS, ACPI, and UEFI. In this talk, we'll explore the process of porting Python to a new platform, building an embedded Python as part of another project, recreating enough of libc and POSIX to run Python without an OS, extending CPython with Python itself rather than C, binding to platform-specific services using a foreign-function interface, accessing hardware, and rewriting bits of the CPython implementation and standard libraries for additional portability. This talk includes a live demo of bare-metal Python, directly driving hardware.
bottom band background