On any Operating System (OS) there are normally different levels of permission based on where in memory (and where on the hardware architechture) your application is running. These permission levels are known as ring 3, 2, 1, 0, -1, -2 and -3. You can imagine it as an onion with the rings getting smaller as the permissions get higher. The inner most ring being ring -3 and outter most ring being ring 3 meaning ring 3 has the lowest permission level and ring -3 has the highest permission level.
At each ring we have:
When root access is gained the first step is to try and maintain it, one of the best ways to do this is by getting your own code to run in ring 0 (kernelland), or lower. This is achievable using a loadable kernel module (LVM). Here we will learn how to create one for Linux and how to make them do fun things, during which we'll explore the Linux kernel itself.