Self modifying code in Linux kernel - what where and how
Text segment is READONLY... Wait, what? Who said that? Modern Linux kernel uses self modifying code a lot. And that's not only about modules loading.
During this talk, we'll look at how different kinds of self modifying code are used in Linux kernel to extend functionality, assist in debugging, workaround hardware bugs, mitigate vulnerabilities and simply making kernel faster.
However rewriting code has its price which turns into increasing system complexity. I'll talk about it based on my experience with implementation of static branches for ARC architecture.
PS: don't rewrite yourself.
St. Petersburg, Russia
Linux kernel engineer
Evgeniy is a member of Synopsys open-source team which develops, ports and maintains projects for ARC processors architecture. He actively develops Linux kernel and U-Boot with journeys to other projects like Weston, Buildroot, uClibc-ng, etc.
His main focus is low-level stuff like DMA, caches, etc.