Development of FreeBSD loadable kernel modules for an instructor led training workshop to understand UDP like data sending functionality
Meriläinen, Julius (2021)
Meriläinen, Julius
2021
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2021110319225
https://urn.fi/URN:NBN:fi:amk-2021110319225
Tiivistelmä
The goal of the development project this thesis covers was to produce modules consisting of software implementations for an instructor led workshop type of training. The target group for the training consisted of software developers with application network programming experience, but without prior experience on transport level protocol implementation on operating system’s kernel level. The developed modules focused on introducing the basics of how an operating system kernel handles sending application data to another host in a local area test network. The User Datagram Protocol’s (UDP) data sending facility was chosen as the basis for the training module implementations because UDP specification and the kernel level implementation were deemed to be relatively straightforward to understand and work with.
Four modules were implemented as an outcome of the development project, each module containing a FreeBSD operating system loadable kernel module, a test client, and a test server to test the data sending functionality of the kernel module. The kernel modules were based on simplifying and modifiying the kernel level implementation of UDP protocol’s datagram sending facility. The implemented kernel modules functioned as expected. They sent successfully the data from a user space application process to another host running a UDP test server program.
Four modules were implemented as an outcome of the development project, each module containing a FreeBSD operating system loadable kernel module, a test client, and a test server to test the data sending functionality of the kernel module. The kernel modules were based on simplifying and modifiying the kernel level implementation of UDP protocol’s datagram sending facility. The implemented kernel modules functioned as expected. They sent successfully the data from a user space application process to another host running a UDP test server program.