Kick-Starting the VxWorks 6.9 64-bit Port with Simics
By Jakob Engblom
Wind River just released the world's first 64-bit RTOS, Wind River VxWorks 6.9 for the 64-bit Intel x86 Architecture. This is a great achievement by the VxWorks team, and I am proud to say that Simics played a role in the development of the 64-bit port of VxWorks. Simics was used throughout the development in a variety of ways. One particular clever technique was used at the very start of the project to kick-start development and overcome the hurdle of getting hardware support in place.
An operating system really consists of two main parts. There is the kernel that manages the processors in the system, tracks the running tasks, deals with memory management, handles device drivers, fields interrupts, and provides services to programs. The kernel depends on the architecture of a system, but is fairly independent of any particular board or system. Then there is the hardware interface layer, or BSP (Board Support Package), that contains the drivers that actually make the OS run on a particular system.
The problem you face when starting to port an OS to a new architecture is that you have neither a kernel nor a BSP. To write the BSP, you need a kernel. To test the kernel, you need a BSP. Catch-22. Simics offered the shortest and cheapest way out of this cycle.