函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:init\main.c Create Date:2022-07-27 15:15:48
Last Modify:2022-05-23 13:07:03 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:启动内核

函数原型:asmlinkage __visible void __init start_kernel(void)

返回类型:void

参数:

581  设置任务栈
582  抢占到内核启动控制的CPU号
583  初始化debug kernel相关信息
585  group_init_early - cgroup initialization at system boot* Initialize cgroups at system boot, and initialize any* subsystems that request early init.
587  禁止中断()
588  中断禁用标志 = true
594  Activate the first processor.
595  设置高端地址()
596  打印注释信息("%s", linux_banner)
597  early_security_init()
598  平台相关启动
599  保存未改变的comand_line到字符数组static_command_line中
600  setup_nr_cpu_ids()
601  SMP体系CPU分配内存
602  smp_prepare_boot_cpu()
603  Must be called _AFTER_ setting up the per_cpu areas
605  建立内存管理节点(ZONE)表
606  分配内存页
608  打印注释信息("Kernel command line: %s\n", Untouched command line saved by arch-specific code. )
610  jump_label_init()
611  解析命令行参数
612  after_dashes等于解析参数
616  如果非是错误或空解析参数
624  日志缓冲设置
625  s/dcache.c
626  内置异常表排序
627  设置异常处理程序
628  设置内核内存分配器
630  ftrace_init()
633  early_trace_init()
640  初始化调度器数据结构并创建运行队列
645  禁止抢占()
646  如果WARN(!已禁止中断(), "Interrupts were enabled *very* early, fixing it\n")则禁止中断()
649  radix树算法初始化
655  housekeeping_init()
662  workqueue_init_early - early init for workqueue subsystem* This is the first half of two-staged workqueue subsystem initialization* and invoked as soon as the bare basics - memory allocation, cpumasks and* idr are up
664  初始化直接读拷贝更新的锁机制
667  初始化trace
669  如果initcall_debuginitcall_debug_enable()
672  context_tracking_init()
674  静态中断初始化
675  体系相关中断初始化
676  初始化勾选控件
677  初始化RCU锁
678  初始化引导CPU的时钟相关的数据结构
679  初始化高精度定时器
680  初始化软件中断
681  初始化系统时钟计时
691  rand_initialize()
692  add_latent_entropy()
693  add_device_randomness(command_line, strlen - Find the length of a string*@s: The string to be sized)
694  初始化带防止栈溢出攻击保护的堆栈
696  初始化系统时钟
697  printk_safe_init()
698  perf_event_init()
699  分配内核性能统计
700  call_function_init()
701  WARN(!已禁止中断(), "Interrupts were enabled early\n")
703  中断禁用标志 = false
704  开中断()
706  slab分配器后期初始化
713  控制台初始化
714  如果panic_laterpanic - halt the system*@fmt: The text string to print* Display a message, then perform cleanups.* This function never returns.
718  初始化lockdep哈希表
725  测试锁的API是否正常使用
733  mem_encrypt_init()
744  创建每个CPU的高速缓存集合数组
745  初始化NUMA的内存访问策略
746  ACPI初始化
747  如果late_time_initlate_time_init()
749  初始化调度时钟
750  calibrate_delay()
751  pid_idr_init()
752  匿名虚拟内存域初始化
757  thread_stack_cache_init()
758  任务信用系统初始化
759  进程创建机制初始化
760  进程缓存初始化
761  uts_ns_init()
762  文件系统的缓存区初始化
763  内核密钥管理系统初始化
764  内核安全框架初始化
765  内核调试系统后期初始化
766  虚拟文件系统缓存初始化
767  pagecache_init()
768  信号管理系统初始化
769  seq_file_init()
770  proc文件系统初始化
771  nsfs_init()
772  cpuset_init()
773  group_init - cgroup initialization* Register cgroup filesystem and /proc file, and initialize* any subsystems that didn't request early init.
774  任务状态初始化
775  任务延迟机制初始化
777  poking_init()
778  检查CPU配置是否非法使用不具备的功能
780  acpi_subsystem_init()
781  arch_post_acpi_subsys_init()
782  simple fireware interface 初始化
785  arch_call_rest_init()
调用者
名称描述
i386_start_kernel平台相关内核启动(head_32.S调用)