嵌入式学习小组
直播中

刘世晓

7年用户 185经验值
私信 关注

如何理解Linux系统唯一一个main函数?

我一直都觉得操作系统是一个死循环,学习单片机的时候,自己写一个main函数(没有操作系统)的是相对容易的,到了学习STM32即使移植了一个ucos系统,其实也是很好理解的,移植了ucos系统后,在应用程序写了一个main函数。但是到了学习Linux系统后,发现自己懵了。我昨天看了Linux内核的源码,找到了一个main函数,就是在boot启动后的init函数里面,里面是不断地fork一个进程fork一个进程。那么Linux源代码几百万行模块化的分布,我发现main函数与其他各个模块好像没有联系,于是我有点不理解。在退一步来说,其实我想问,main函数这个概念是相对什么而言的,是相对于应用程序而言才有main函数这个概念的嘛?对于操作系统来说,因为操作系统也是一个软件(硬件上的第一层软件),那么如何在操作系统是一个死循环的基础上,找到Linux操作系统唯一的一个main函数,又或者学习操作系统的时候我怎么找到一个操作系统的主要核心就是那个死循环呢?这个问题百思不得其解。
我一共只有70金钱,全部悬赏哈,期待有质量的答案。如果有相关博客链接介绍希望各位给个链接。

回帖(1)

潘琳

2019-9-29 11:14:42
init是内核创建的第1个进程,其他子进程是它直接或间接创建的,PID=1,内核关闭时结束进程。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分