Linux Kernel Learning Summary
20125101 Song Yumeng
Through this period of time on the Linux learning, I have a relatively simple knowledge of Linux, and a lot of gains. From the outset, the assembly knowledge and data structure knowledge can not be well combined, and now can skillfully use the experimental building virtual machine for experiments and analysis of experimental results. During this time, whether it was disassembly of C code, GDB tracking core code, or creating a new process within the Linux kernel, executing executable programs, I have accumulated a lot of new knowledge to help me better understand the Linux system. Below, I give a brief summary of the knowledge of Linux system I have learned, and I will exchange with you.
When you start to learn the kernel, do not stick to one aspect, do not focus on a subsystem to the actual line of code to go, because in this case, the involved face will be very wide, will encounter many difficulties, prone to frustration, In a function body (assuming that a particular functional function is being learned at the beginning of a particular aspect) it is likely to be doped with the design concepts of other subsystems (many of which are large amounts of related data structures or global variables to support the management of the subsystem) and the corresponding code implementation, this time see these things, numerous miscellaneous , there is no clue and very do not understand, will produce a lot of questions, (this time if the questions tangled, inquisitive, then the fact is in the process of learning the current subsystem frequently to get involved in other subsystems, when the attention is scattered), In fact, after understanding the various subsystems and then look back at these things, it is much simpler, and the idea will be more clear.
Understanding of the Linux system:
Linux is a free-to-use and free-to-propagate Unix-like operating system, a POSIX and Unix-based multiuser, multitasking, multi-threaded and multi-CPU operating system. There are some notable differences between the Linux kernel and the traditional UNIX system. It supports 32-bit and 64-bit hardware. Linux inherits the design idea of Unix as the core of network, and is a stable multi-user network operating system. There are many different Linux versions of Linux, but they all use the Linux kernel. Linux is widely used and contains many things. The Linux system is based on the kernel, C libraries, toolset and the basic tools of the system.
Learn about the Linux kernel:
In the course of the NetEase Cloud class, the teacher starts with the von Neumann architecture, integrates the basic knowledge of the Linux kernel, and starts from the single-step execution of the Analysis assembly code to learn the source code of the Linux kernel. Learning process, we understand the characteristics of the Linux operating system, the system calls the process, to the menu add instructions, using the GDB tracking system call kernel functions, some related process data structure, process creation, executable program loading and execution and so on. Start by learning about Linux systems, start understanding Linux systems by reviewing and pondering, and start mastering Linux systems with homework and experimentation. However, the paper on the end of the light, I know this matter to preach. Only after the study, the actual hands-on operation, self-tapping code, only to be really mastered this knowledge, of course, I am still working towards this.
Blog Directory list:
- How Linux and the security kernel analyze how computers work
- How the Linux kernel analyzes how the operating system works
- Trace analysis of the boot process of the Linux kernel
- Use the same system call using the Library function API and the embed assembly code in C code two ways
- Analyzing the System_call interrupt processing process
- Analyzing the process of creating a new process for the Linux kernel
- How the Linux kernel loads and launches an executable program
- The process of understanding process scheduling and process switching during the time-tracking analysis process
Learning Summary:
After this period of study, I think the introduction of Linux is not easy, he is difficult to learn, because there is a large scale and complex level. Naturally it is not easy to find the place to start. So what I learned was just fur. But I learned a lot of things. including debugging techniques, programming style, precautions. The pity is that there is a lot of code that you can't read, not to mention handwritten code. The power of interest is endless. Interest can bring passion, if the work can be combined with interest, work will have enthusiasm, then work is not just work, it is a kind of enjoyment.
In short I from a vacant rookie, has arrived at the beginning of the first glimpse of the doorway, where the bitterness, still deliberately.
Linux Kernel Learning Summary