linux 0号进程

x86系统初始化:
1 bios系统启动
2 配置A20 段选择子 等配置
3 跳到 start_kernel

start_kernel(init/main.c)分析生成0号进程 1号进程 2号进程功能作用?

0号进程:

struct task_struct init_task = INIT_TASK(init_task);
set_task_stack_end_magic(&init_task);  
使用全局变量来设置进程全局环境。
作用:
	1 初始化各个模块  (MM/FS/VFS/sched)
	2 创建1号进程 2号进程  
		1号进程 kernel_thread(kernel_init, NULL, CLONE_FS); 
		2号进程 kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);
	3 把自己变成idle。(当任务链没有任务,会执行idle进程)	
			cpu_startup_entry	
				do_idle();

1号进程 kernel_init:

run_init_process(execute_command);
	do_execve
try_to_run_init_process("/sbin/init") 
try_to_run_init_process("/etc/init")
try_to_run_init_process("/bin/init")
try_to_run_init_process("/bin/sh")
主要用户加载根文件系统init进程,然后iret到用户态。
是应用层进程祖先进程

2号进程 kthreadd:

管理和调度其他内核线程kernel_thread, 会循环执行一个kthread的函数,
该函数的作用就是运行kthread_create_list全局链表中维护的kthread, 
当我们调用kernel_thread创建的内核线程会被加入到此链表中,
因此所有的内核线程都是直接或者间接的以kthreadd为父进程

参考https://blog.csdn.net/21cnbao?type=blog

Linux中查看进程可以使用多种命令。一种常用的方法是使用`ps`命令结合`grep`命令来查找特定程序的进程。使用以下命令可以查看已知程序名称的进程: ``` ps -ef | grep 程序名称 ``` 或者 ``` ps -aux | grep 程序名称 ``` 另外,可以使用`pgrep`命令来查询程序的进程ID,该命令返回的信息非常简洁。使用以下命令可以查询程序是否正在运行: ``` pgrep -l 程序名称 ``` 如果你想要查看特定端口进程(即查看端口占用情况),可以使用以下命令: ``` lsof -i:端口 ``` 这个命令会列出指定端口的占用情况,包括进程名称、进程ID和进程所有者。另外一个命令是`netstat -ntlp`,它可以查看当前所有的TCP端口。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [linux查看进程、端口](https://blog.csdn.net/m0_67392661/article/details/126434511)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [linux下查看进程id时用到的命令](https://blog.csdn.net/weixin_30521649/article/details/96884247)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

slp941019

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值