application, we do not need to handle all system
calls that are available in a commercial OS. The
above system calls are implemented in BMC as
direct hardware interfaces (Karne, Jaganathan and
Ahmed, 2005) which are controlled by an AO
programmer
5 TRANSFORMATION ISSUES
In theory, the transformation process is complete
once all system header files are removed and the
necessary bare PC interfaces are provided.
However, this proved to be not the case in practice.
The major obstacles encountered and other problems
include: executable formats, memory map and
layout, base address for relocation, and memory
allocation. The major items in transforming the
SQLITE application to a bare PC application can be
summarized as follows:
It is a large and complex application that
also interacts with a database
It uses its own mini-OS structures
It is very much intertwined with OS header
files and system calls
It uses internal cache, paging, and memory
management
It built its own I/O calls on top of standard
I/O.
The issues identified above are unique to the
SQLITE program. Similar issues will arise and need
to be addressed when transforming complex
applications that are closely integrated with the
underlying OS and environments.
6 CONCLUSIONS
Transforming complex applications to run on a bare
PC with no operating system or kernel support is not
trivial. We discussed a methodology for
transforming SQLITE and detailed the steps for
compiling, linking and running the application on a
bare PC. We also identified several design issues
related to the transformation process. In particular,
we identified system calls related to the SQLITE
application and classified them into groups. The
direct bare hardware interfaces (hardware APIs) are
general and can be used to build any bare PC
application (not just SQLITE). This work serves as a
foundation for transforming conventional OS-based
applications to run on a bare PC and will help in
building an automated transformation tool in the
future.
REFERENCES
Ahn, W., Qi, S., Nicolaides, M., and Torrellas, J., 2009.
BulkCompiler: High-Performance Sequential
Consistency through Cooperative Compiler and
Hardware Support. In IEEE/ACM International
Symposium on Micro Architecture.
Appiah-Kubi, P., Karne, R., and Wijesinha, A., 2010. The
Design and Performance of a Bare PC Webmail
Server. In the 12th IEEE International Conference on
High Performance Computing and Communications,
AHPCC.
Engler, D., 1998. The Exokernel Operating System
Architecture. Department of Electrical Engineering
and Computer Science, Massachusetts Institute of
Technology, Ph.D. Dissertation.
FreeBSD/Linux Kernel Cross Reference, http://
fxr.watson.org/ fxr/source/kern/syscalls.c.
He, L., Karne, R., and Wijesinha, A., 2008. Design and
Performance of a bare PC Web Server. In
International Journal of Computer and Applications,
Acta Press.
Hwang,Y., Lin,T., Chang, R., 2010. DisIRer: Converting
a Retargetable Compiler into a Multiplatform Binary
Translator. In ACM Transactions on Architecture and
Code Optimization , Vol. 7, Issue 4.
Karne, R., Jaganathan,K., Ahmed, T., and Rosa, N., 2005.
DOSC: Dispersed Operating System Computing. In
20th Annual ACM Conference on Object Oriented
Programming (OOPSLA).
Karne, R., Jaganathan,K., and Ahmed, T., 2005. How to
run C++ Applications on a bare PC. In 6th ACIS
International Conference on Software Engineering,
Artificial Intelligence, Networking, and Parallel
Distributed Computing (SNPD), p. 50-55.
Khaksari, G., Karne, R., and Wijesinha, A., 2012. A Bare
Machine Application Development Methodology. In
International Journal of Computer Applications
(IJCA), Vol. 19, No.1.
Lange, J., Pedretti, K., Hudson,T., Dinda, P., Cui, Z.,
Xia, L., Bridges, P., Gocke, A., Jaconette, S.,
Levenhagen, M., and Brightwell, R., 2010. Palacios
and Kitten: New High Performance Operating
Systems for Scalable Virtualized and Native
Supercomputing. In Proceedings of the 24th IEEE
International Parallel and Distributed Processing
Symposium.
Pai, V., Druschel, P., and Zwaenepoel, W., 2000. IO-Lite:
A Unified I/O Buffering and Caching System. In
ACM Transactions on Computer Systems, Vol.18 (1),
p. 37-66, ACM.
Schoeberl, M., Korsholm, K., Kalibera, T., and Ravn,
A., 2011. A Hardware Abstraction Layer in Java. In
ACM Transactions on Embedded Computing Systems,
Vol.10, No.04, Article 42.
Soumya,S., Guerin, R., and Hosanagar, K ., 2011.
Functionality-rich Vs Minimalist Platforms: A Two-
sided Market Analysis. In ACM Computer
Communication Review, Volume 41, Number 5, p36-
43.
ICSOFT 2012 - 7th International Conference on Software Paradigm Trends
314