LinuxUser Kernel Column: Linux 3.9
The Linux kernel is a very mature codebase with many millions of hours’ worth of developer time invested. There are several popular kernel test suites, including the LTP (Linux Test Project), as well as the proprietary tests run by various commercial Linux interests. Most test suites are written with the premise that they will test real- world scenarios, and so they are formed from small test cases that are run in sequence. Each test case (or unit test) will perform some sample workload and compare expected to actual results as a measure of success. What these test cases don’t typically cover well, however, are malicious or illegal sequences of system calls (operations). This is where ‘fuzzers’ like Trinity come into play.
Trinity was written by Dave Jones and has been under active development for several years. It is a ‘system call fuzzer’, meaning it will call random kernel system calls (the standard interface by which applications communicate with the kernel) according to a few simple rules.