Linux Kernel Function Start_kernel ()

Source: Internet
Author: User
Linux Kernel Function Start_kernel ()-General Linux technology-Linux programming and kernel information. For more information, see the following. Start_kernel () calls a series of initialization functions to complete the kernel settings. Some of these actions are public, and others are executed only after configuration.

In the start_kernel () function,

Output Linux version information (printk (linux_banner ))

Set the architecture-related environment (setup_arch ())

Page table structure initialization (paging_init ())

Use the entry point in "arch/alpha/kernel/entry. S" to set the system self-trapping entry (trap_init ())

Use the alpha_mv structure and entry. S entry to initialize the system IRQ (init_IRQ ())

Initialize the core process scheduler (including initializing several default Bottom-half and sched_init ())

Time, Timer initialization (including reading CMOS clock, estimated clock speed, initialization timer interruption, etc., time_init ())

Extract and analyze the core startup parameters (read the parameters from the environment variables, set the corresponding flag to wait for processing, (parse_options ())

Console initialization (initialize before PCI for output information, console_init ())

Profile data structure initialization (prof_buffer and prof_len variables)

Core Cache initialization (Cache describing Cache Information, kmem_cache_init ())

Delay calibration (get the delay between the clock jiffies and CPU clock speed ticks, calibrate_delay ())

Memory initialization (set the initial values of memory upstream and downstream and page table items, mem_init ())

Create and set internal and general cache ("slab_cache", kmem_cache_sizes_init ())

Create uid taskcount SLAB cache ("uid_cache", uidcache_init ())

Create a File cache ("files_cache", filescache_init ())

Create directory cache ("dentry_cache", dcache_init ())

Create a cache related to the VM ("vm_area_struct", "mm_struct", vma_init ())

Block device read/write buffer initialization ("buffer_head" cache user accelerated access, buffer_init ())

Create page cache (Memory Page hash table initialization, page_cache_init ())

Create a signal queue cache ("signal_queue", signals_init ())

Initialize memory inode table (inode_init ())

Create a memory file descriptor table ("filp_cache", file_table_init ())

Check the architecture Vulnerability (for alpha, this function is empty, check_bugs ())

Initialize the remaining CPU of the SMP machine (except the current Boot CPU) (this function is null for kernels without SMP configuration, smp_init ())

Start the init process (create the first core thread, call the init () function, the original execution sequence calls cpu_idle () for scheduling, init ())

So far start_kernel () has ended, and the basic core environment has been established.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.