db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%T K\-CSP Component Based Development of Kernel Extensions
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%A Bernhard H.C. Sputh
db_connect: Could not connect to paper db at "wotug@dragon.kent.ac.uk"
%E Ian R. East, David Duce, Mark Green, Jeremy M. R. Martin, Peter H. Welch
%B Communicating Process Architectures 2004
%X Kernel extension development suffers from two problems.
Firstly, there is little to no code reuse. This is caused by
the fact that most kernel extensions are coded in the C
programming language. This language only allows code reuse
either by using `copy and paste\[rs] or by using libraries.
Secondly, the poor separation of synchronisation and
functionality code makes it difficult to change one without
affecting the other. It is, therefore, difficult to use the
synchronisation mechanisms correctly. The approach proposed
in this paper tries to solve these problems by introducing a
component based programming model for kernel extensions, and
a system based on this proposal is implemented for the Linux
kernel. The language used for the implementation is
Objective\-C, and as a synchronisation mechanism
Communicating Sequential Processes is used. This model
allows the functionality and synchronisation of a component
to be developed separately. Furthermore, due to the use of
Communicating Sequential Processes it is possible to verify
the correctness of the synchronisation. An example given in
this paper illustrates how easy it is to use the K\-CSP
environment for development.