Home  >  Article  >  Operation and Maintenance  >  Is there a main function in the linux kernel?

Is there a main function in the linux kernel?

百草
百草Original
2023-07-10 10:09:041659browse

There is a main function in the Linux kernel, because the main function is at the top of the Linux kernel code. The main function is mainly responsible for obtaining the system's environment variables from the Kernel Control Block (KCB) and initializing the modules required by the system. The main function is the entry point of the program. Main is an interface name agreed between the application and the operating system, so the first function of each application in Linux must be main.

Is there a main function in the linux kernel?

The operating environment of this article: Linux 5.18.14 system, DELL G3 computer.

The Linux kernel has the main function; The main function is the entry point of the program. Main is an interface name agreed between the application and the operating system, so the first name of each application in Linux A function must be main.

The Linux kernel is the core of the operating system. It is responsible for executing drivers, startup tasks, handling errors, and managing memory for the system and all other underlying functions of the operating system. This article will introduce the important main function in the Linux kernel.

The main function is at the top of the Linux kernel code. The main function is mainly responsible for obtaining the system's environment variables from the Kernel Control Block (KCB) and initializing the modules required by the system (memory management, device drivers, etc.).

C language stipulates that the main function can only have two parameters, one is argc, one is argv and argc can only be an integer, and the second one must be an array of pointers to strings

Since the main function cannot be called by other functions, it is impossible to obtain the actual value inside the program. So, where do you assign the actual parameter values ​​to the formal parameters of the main

function? In fact, the parameter values ​​of the main function are obtained from the operating system command line. When we want to run an executable file,

type the file name at the DOS prompt, and then enter the actual parameters to transfer these actual parameters to the formal parameters of main. The general form of the command line in the DOS prompt is:

C:>executable file name parameters parameters...; However, special attention should be paid to the two formal parameters of main and the parameters in the command line. There is no one-to-one correspondence in position.

argc: The parameter indicates the number of parameters in the command line (note that the text name itself is also a parameter). The value of

rgc is determined by the parameter when entering the command line.

argv is automatically assigned by the system based on the actual number of parameters: The parameter is an array of string pointers, and the value of each element is the first address of each string in the command line (parameters are treated as strings). The length of the pointer array

is the number of parameters. The initial value of the array element is automatically assigned by the system

Linux kernel source code main function analysis

1. The main function is the entrance to the C language. This sentence is correct; but This sentence is just an agreement, not an eternal iron law! Judging from the more essential assembly code of the program, it is only agreed that after the assembly is initialized, it jumps to a label named "main"; the implication is that this label can also be renamed. For example, the C language entry for Linux is start_kernel ( ); From this label address, the world of C language is over. The name main is just because of everyone's agreement. It's okay to play around if you don't abide by the agreement, just like Apple's charging cable and other things are different from others.

2. Multiple main functions are not stored during compilation! Although each application has a main function (from the application point of view, the entry point of the application is the main function); however, the applications are compiled independently and will not be compiled together, and the operating system kernel is even less likely to interact with the application. Compiled together! So there is no conflict between multiple mains at all! ! It may be the unified interface between the operating system and the application program, or it may be the side effect of saying that main is the program entry point. Main is an interface name agreed between the application program and the operating system! So the first function of every application in Linux must be main. Unless you change the kernel scheduling interface.

The above is the detailed content of Is there a main function in the linux kernel?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn