How is software packaged and deployed onto a device?

Software is packaged as KOS Archive Bundles (KAB), an uncompressed zip file with a digital signature. KABs are designed to be immutable, deterministic, and secure to ensure the integrity of code on the device. KOS utilizes an assemble architecture, where KABs are individually built, and organized to be deployed onto a device. This allows for modular updates and addition to the system, without the need to rebuild the entire system.

Deployment occurs through Images, which are essentially virtual machines that specify what runs on a machine. These are governed by a Manifest, a signed blueprint that defines the specific KABs and KOS version to be used. Images can be run on a simulator on localhost, or on physical hardware. For successful deployment to hardware, the device must first be preloaded with a KOS bootloader, which is available for various boards, including Raspberry Pi, at kosdev.com.