next up previous contents
Next: Testing and Analysis Up: Design and Implementation Previous: Kernel Configuration Options

Summary

In total there was an increase of 1382 lines of code in the Linux kernel. The patch file created is 2548 lines, which more accurately reflects the number of lines of code that have been changed, deleted and added in the kernel.

There were 12 major sections within the kernel that required modification.The kernel version that the protocol was implemented in is 2.0.32. The networking code in this kernel requires a lot of study before any changes were possible. Stevens [18] discusses the BSD implementation of T/TCP, but the BSD kernel has a very different design approach than Linux. Stevens gives a general idea of what is involved in the implementation of T/TCP, but it is not possible to follow the code he gives in his book.

Linux is developed by a world-wide collection programmers. This has both advantages and disadvantages. One of the more obvious disadvantages when it comes to coding within the kernel is that there are a number of differing coding styles to understand, code in one section may not be as clear or understandable as code in another section. The kernel also contains a number of layers that a system call has to propagate through (figure 5.1) before finally reaching its destination. This creates problems when trying to trace the flow of control to understand what is happening and where the problems may be occurring. Unfamiliarity with the Linux code and a severe lack of good documentation makes it very difficult to begin designing or coding within the kernel for the first time Linux programmer.

At the time of writing, there is an impending release of a new series of the Linux kernel. The code has been much improved with regards to efficiency and understandability. The implementation of T/TCP for the new kernel will be a relatively straightforward task compared with the current series. There was an attempt at the start of the coding phase to use the new development series of kernels, but it was found that the TCP code was not fully implemented and would have resulted in more work then to stick with the original stable kernels.


next up previous contents
Next: Testing and Analysis Up: Design and Implementation Previous: Kernel Configuration Options

Mark Stacey
Thu Apr 30 12:26:11 IST 1998