Microkernel Development for Embedded Systems


This paper presents the development of a microkernel with a device driver controller for embedded systems. The implementation was done in C language aiming low cost microcontrollers. The proposed system allowed to perform soft real-time activities while keeping the drivers and the application isolated by a secure layer. The callback system proved itself extremely simple to use while still maintaining the security of the system regarding the temporal constraints.

Share and Cite:

R. Almeida, L. Ferreira and C. Valério, "Microkernel Development for Embedded Systems," Journal of Software Engineering and Applications, Vol. 6 No. 1, 2013, pp. 20-28. doi: 10.4236/jsea.2013.61003.

Conflicts of Interest

The authors declare no conflicts of interest.


[1] W. Stallings, “Computer Organization and Architecture,” 8th Edition, Prentice-Hall, Upper Saddle River, 2009.
[2] C. Hallinan, “Embedded Linux Primer,” 2nd Edition, Prentice-Hall, Upper Saddle River, 2010.
[3] P. Marwedel, “Embedded System Design,” 2nd Edition, Springer, Berlin, 2011. doi:10.1007/978-94-007-0257-8
[4] C. L. Liu and J. Layland, “Scheduling Algorithms for Multiprogramming in a Hard Real-Time Environment,” Journal of the ACM, Vol. 20, No. 1, 1973, pp. 46-61. doi:10.1145/321738.321743
[5] W. Wulf, E. Cohen, W. Corwin, A. Jones, R. Levin, C. Pierson and F. Pollack, “HYDRA: The Kernel of a Multiprocessor Operating System,” Communications of the ACM, Vol. 17, No. 6, 1974, pp. 337-345. doi:10.1145/355616.364017
[6] A. Silberschatz, G. Gagne and P. B. Galvin, “Operating System Concepts,” 8th Edition, Willey, New York, 2009.
[7] M. Barr, “Programming Embedded Systems: With C and GNU Development Tools,” 2nd Edition, O’Reilly, 2006.
[8] A. S. Tanenbaum, J. N. Herder and H. Bos, “Can we Make Operating Systems Reliable and Secure?” Computer, Vol. 39, No. 5, 2006. pp. 44-51.
[9] J. Liedtk, “Improving IPC by Kernel Design,” SOSP’93 Proceedings of the 14th ACM Symposium on Operating Systems Principles, Asheville, 5-8 December 1993, pp. 175-188.
[10] N. G. Leveson, “Software Safety in Embedded Computer Systems,” Communications of the ACM, Vol. 34, No. 2, 1991, pp. 34-46. doi:10.1145/102792.102799
[11] R. M. A. Almeida, “Questoes Temporais para Implementacao de Um Microkernel,” 2011. https://sites.google.com/site/rmaalmeida/extra/pic18fkernel-04
[12] D. Abbott, “Linux for Embedded and Real-Time Applications,” 2nd Edition, Newnes, Wolgan Valley, 2006.
[13] R. S. de Oliveira, A. da S. Carissimi and S. S. e Toscani, “Sistemas Operacionais,” 2nd Edition, Sagra-Luzzatto, 2001.
[14] D. P. Bovet and M. Cesati, “Understanding the Linux Kernel,” 2nd Edition, O’Reilly, 2006.
[15] K. W. Batcher and R. A. Walker, “Interrupt Triggered Software Prefetching for Embedded CPU Instruction Cache,” Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS’06), Washington DC, 4-7 April 2006, pp. 91-102.
[16] R. V. Aroca, “Análise de Sistemas Operacionais de Tempo Real para Aplicacoes de Robotica e Automacao,” Masters Dissertation, Universidade de Sao Paulo, Sao Paulo, 2008.
[17] F. Dabek, N. Zeldovich, F. Kaashoek, D. Mazières and R. Morris, “Event-Driven Programming for Robust Software,” Proceedings of the 10th Workshop on ACM SIGOPS European Workshop, ACM, New York, 2002, pp. 186-189. doi:10.1145/1133373.1133410

Copyright © 2022 by authors and Scientific Research Publishing Inc.

Creative Commons License

This work and the related PDF file are licensed under a Creative Commons Attribution 4.0 International License.