笔记整理—内核!启动!—kernel部分(3)init进程—进程1

        内核态下干了什么——构建内核。

        在init进程中,一个进程有两种状态。1为内核态,init属于内核进程。2.用户态,自己将init转为用户态。从进程1之后的进程就都可以工作在用户态。

        内核态中重点干了一件事情,挂载rootfs,找用户态init程序,并就将自己转变为用户态,因为用户态程序在rootfs中。内核智能执行哈函数,不存在广义上的应用。应用程序不会属于用户态,不在内核源代码中。

        init大部分有意义的事情是在用户态进行的,是别的或操作系统的开端,别的程序都将源于init进程,都派生于此。可以说用户态下的进程都是派生进程。

        init进程在内核态下,通过kernel_execve执行一个用户空间编译连接的应用完成跳跃。跳跃后还是用户态的进程1,这个跳跃过程不可逆,是说明操作系统已经运行起来了,未来调用内核态只能通过API进程访问。

        init进程构成看用户交互界面——人机交互。init进程是所有进程(1号进程)的父进程。

        init进程派生了login进程用于用户登录与命令执行,也派生了shell进程执行命令行环境的解析与执行。shell进程可以启动别的用户进程,用户可以在命令行下./xxx执行进程或程序。

         linux系统中每个进程都有一个自己的文件描述符表,记录了本进程打开的文件。linux系统中,一切都抽象为了文件,访问设备都会去打开这个设备文件。

        描述符eg:

/dev/fb0    LCD设备(真实设备)
/dev/buzer    蜂鸣器(真实设备)
/dev/console    控制台(虚拟设备)

        打开文件描述符sys_open();打开console文件用sys_open(0);复制两次文件描述符得到单个文件描述符0/1/2,构成标准输入/标准输出/标准err。

        使用prepare_namespace挂载rootfs。mount_block_root(root_device_name, root_mountflags);

        uboot通过传参通知内核rootfs的位置/类型 bootargs。root=/dev/mmcblock0p2 rw 位置

        rootfstype=ext3 类型。

        内核rootfs挂载成功将打印VFS:mounted root。失败则打印No Filee system could mount root,tried。然后重启。

        mmc:SD/inand blk0 inand p 2 inand的2分区。blk1 sd 分区 2分区 rw可写。

init_post()    寻找用户态下的进程1run_init_process()    kernel_execve()    执行用户态下的进程1

        确定init程序是谁:先从uboot看cmdline指定执行程序。init=/linuxrc 指定的根文件系统中的进程1.

        如果uboot没有指定root或不存在相关的根文件系统,则会执行备用方案:

/sbin/init
/etc/init
/bin/init
/bin/sh

        如果这四个方案都寄了,则内核err。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/53621.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ffmpeg 视频编码及基本知识

理论 H264编码原理(简略) 1. 视频为什么需要进行编码压缩 降低视频数据大小,方便存储和传输 2. 为什么压缩的原始数据采用YUV格式 彩色图像的格式是 RGB 的,但RGB 三个颜色是有相关性的。 采用YUV格式,利用人对图像的…

【C语言必学知识点七】什么?还有人不知道什么是柔性数组?还不速来!!!

动态内存管理——详细解读柔性数组 导读一、什么是柔性数组二、柔性数组的特点三、柔性数组的使用四、柔性数组的优势结语 导读 大家好,很高兴又和大家见面啦!!! 在上一篇内容中我们介绍了C/C程序中的内存分区,在C/C…

C++11 --- 可变参数模板

序言 不知道大家有没有细细研究过在 C 语言 中的 printf 函数,也许我们经常使用他,但是我们可能并不是那么了解他。先看一下调用格式:int printf ( const char * format, ... );,在这里的 format 代表我们的输出格式,后…

欧拉下搭建第三方软件仓库—docker

1.创建新的文件内容 切换目录到etc底下的yum.repos.d目录,创建docker-ce.repo文件 [rootlocalhost yum.repos.d]# cd /etc/yum.repos.d/ [rootlocalhost yum.repos.d]# vim docker-ce.repo 编辑文件,使用阿里源镜像源,镜像源在编辑中需要单独复制 h…

华为防火墙 nat64

如果设备接收到的IPv6报文的前缀是设备为NAT64定义的前缀,说明报文的目的地址是IPv4网络,报文将经过NAT64处理后被转发至IPv4网络。 如果设备接收到的IPv6报文的前缀不是设备为NAT64定义的前缀,说明报文的目的地址是IPv6网络,报文…

java直接实例化对象和使用接口实例化对象之间的区别(java小知识点)

文章目录 1.定义一个MyClass类和一个 MyInterface接口2.具体使用场景3.如何调用 MyClass 自己的特有方法?4.总结 1.定义一个MyClass类和一个 MyInterface接口 public interface MyInterface {void doSomething(); // 权限修饰符默认是public }public class MyClass…

设计模式 | 单例模式

定义 单例设计模式(Singleton Pattern)是一种创建型设计模式,它确保一个类只有一个实例,并提供一个全局访问点来获取该实例。这种模式常用于需要控制对某些资源的访问的场景,例如数据库连接、日志记录等。 单例模式涉…

网站钓鱼——挂马技术手段介绍

更多网安实战内容,可前往无问社区查看http://wwlib.cn/index.php/artread/artid/10194.html 网站挂马目前已经成为流氓软件以及红队人员快速获取目标主机权限的常用手段之一,在长时间的实战中也是出现了层出不穷的钓鱼方法,这次分享一下实际…

【北京迅为】《STM32MP157开发板使用手册》-第十三章 编译QtE5.12文件系统

iTOP-STM32MP157开发板采用ST推出的双核cortex-A7单核cortex-M4异构处理器,既可用Linux、又可以用于STM32单片机开发。开发板采用核心板底板结构,主频650M、1G内存、8G存储,核心板采用工业级板对板连接器,高可靠,牢固耐…

内网中的RDP利用

学习参考 https://www.freebuf.com/articles/network/276242.html能跟着实操的都实操一下。熟悉一些命令,过程。 实验环境:win2008,192.168.72.139 两个用户: administrator,shizuru RDP服务 确定/开启 RDP服务确…

Chainlit集成Mem0使用一个拥有个性化AI记忆的网页聊天应用

前言 Mem0 简介,可以看我上一篇文章《解决LLM的永久记忆的解决方案-Mem0实现个性化AI永久记忆功能》。本篇文章是对Mem0 实战使用的一个示例。通过Chainlit 快速实现ui界面和open ai的接入,通过使用Mem0 实现对聊天者的对话记录的记忆。 设计实现基本原…

828华为云征文|部署多媒体流媒体平台 Plex

828华为云征文|部署多媒体流媒体平台 Plex 一、Flexus云服务器X实例介绍1.1 云服务器介绍1.2 性能模式1.3 计费模式 二、Flexus云服务器X实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 Plex3.1 Plex 介绍3.2 Docker 环境搭建3.3 Plex 部署3.4 Plex 使…

张家辉新作《重生》内地票房逆袭

由张家辉领衔主演的电影《重生》在票房大获成功,击败多部同期中西强片,成为今年暑期档的最大黑马。张家辉在片中饰演的角色原本拥有幸福家庭,为了复仇走上亡命之徒的道路,影片中他再度展现了影帝级别的演技,受到网民和…

CCF推荐A类会议和期刊总结(计算机网络领域)- 2022

CCF推荐A类会议和期刊总结(计算机网络领域)- 2022 在中国计算机学会(CCF)的推荐体系中,A类会议和期刊代表着计算机网络领域的顶尖水平。这些会议和期刊不仅汇集了全球顶尖的研究成果,还引领着该领域的前沿发…

合碳智能 × Milvus:探索化学合成新境界——逆合成路线设计

合碳智能(C12.ai)成立于2022年,致力于运用AI和具身智能技术,为药物研发实验室提供新一代智能化解决方案,推动实验室从自动化迈向智能化,突破传统实验模式与人员的依赖,解决效率和成本的瓶颈&…

flume系列之:查看flume系统日志、查看统计flume日志类型、查看flume日志

遍历指定目录下多个文件查找指定内容 服务器系统日志会记录flume相关日志 cat /var/log/messages |grep -i oom查找系统日志中关于flume的指定日志 import osdef search_string_in_files(directory, search_string):count = 0

解决浏览器自动将http网址转https

删除浏览器自动使用https的方式 在浏览器地址栏输入:chrome://net-internals/#hsts PS:如果是edge浏览器可输入:edge://net-internals/#hsts 在Delete domain security policies搜索框下,输入要删除的域名,然后点击delete 解决方法&#…

linux系统下PostgreSQL的使用

文章目录 前言一、安装pgsql数据库二、安装c和c驱动三、使用1、头文件2、源文件3、main文件4、编译 前言 最近工作中使用到了pgsql,主要是使用其c驱动完成数据库创建及增删改查等操作… 一、安装pgsql数据库 使用命令如下: sudo apt-get install postgresql安装完成,使用如…

CCF编程能力等级认证GESP—C++3级—20240907

CCF编程能力等级认证GESP—C3级—20240907 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)平衡序列回文拼接 单选题(每题 2 分,共 …

回收玻璃减薄中的氢氟酸

回收玻璃减薄中的氢氟酸是一个重要的环保和资源再利用环节。在玻璃减薄过程中,氢氟酸作为主要的化学蚀刻剂,与玻璃基板表面的二氧化硅等成分发生反应,实现玻璃的减薄。然而,随着反应的进行,氢氟酸的浓度会逐渐降低&…