Semantic patches considered helpful
Gilles Muller, Yoann Padioleau, Julia Lawall, René Rydhof Hansen · ACM SIGOPS Operating Systems Review · 2006
Modern software development is characterized by the use of libraries and interfaces. This software architecture carries down even to the operating system level. Linux, for example, is organized as a small kernel, complemented with libraries providing generic functionalities for use in implementing network access, file management, access to physical devices, etc. Much of the Linux source code then consists of service-specific files that use these libraries. These libraries are also used by the many OS-level services that are maintained outside of the Linux source tree.