Migrating a Bare PC Web Server to a Multi-core Architecture
Hojin Chang, Ramesh K. Karne, Alexander L. Wijesinha · 2016
Bare PC applications run without the support of any OS, kernel, or embedded software. Many bare PC applications such as Web servers, mail servers, SIP servers and VoIP clients have been developed previously for the x86 Intel architecture. We migrate a bare PC Web server application enabling it to run on a 64-bit multicore desktop processor. Migration poses many challenges as this application runs on a bare PC. The 64-bit CPU architecture is significantly different from its 32-bit counterpart, making migration non-trivial. First, an attempt was made to run the existing code as is on the 64-bit processor without using any 64-bit CPU architectural features. Second, paging required by the 64-bit architecture was implemented. This requires many design changes to deal with paging and virtual memory issues since the Web server application is based on real memory without any paging. Finally, multi-tasked execution of the Web server on multicore is undertaken. This phase of migration is complex due to the complexity in 64 bit architecture and its intricacies. We give technical details underlying the migration process and present results of testing functional operations with some preliminary data to validate this approach.