JSEA  Vol.6 No.1 , January 2013
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.

Cite this paper
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.
[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