启动进程linux
A. linux中从后台启动进程,应在命令结尾处加上什么符号
后面加&,就会在后台启动。

Linux是一个多任务的操作系统,系统上同时运行着多个进程,正在执行的一个或多个相关进程称为一个作业。
Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。 操作系统管理多个用户的请求和多个任务。
大多数系统都只有一个CPU和一个主存,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。操作系统管理这些资源并在多个用户间共享资源,当您提出一个请求时,给您造成一种假象,好像系统只被您独自占用。
B. linux后台启动进程
父子进程
在linux系统里面,子进程由父进程fork而来,而所有的进程都是由init进程或其子进程fork而来,即init进程是所有进程的祖先。
父子进程的运行是相对独立的,一方的退出不会导致另一方退出。
进程组和会话
Session特点
session可以在任何时候创建,调用setsid函数即可,session中的第一个进程即为session的leader,leader是不能变的。常见的创建session的场景是用户登录,启动bash进程时将会创建新的session,bash进程会作为session的leader,随后bash里面运行的进程(不特殊处理)都将属于这个session。
session的主要特点是当session的leader退出后,session中的所有其它进程将会收到SIGHUP信号,其默认行为是终止进程,即session的leader退出后,session中的其它进程也会退出。
如果session和tty关联的话,它们之间只能一一对应,一个tty只能属于一个session,一个session只能打开一个tty。当然session也可以不和任何tty关联。
进程的启动方式:
1)前台启动:用户输入命令,直接执行程序
2)后台启动:在命令行尾加入“&”符号
要使终端关闭时进程不退出,有以下几种情况:
1)用户进程拦截SIGHUP信号。
2)使用户进程和bash进程不在一个session。
C. Linux启动过程Kernel,Rootfs,Uboot,INIT进程,BootLoader,内核空间一次讲清楚!!!
在用户空间程序启动后,Linux系统进入正常工作状态,允许用户通过Shell或其他应用执行任务,如编辑文本和管理文件等。
以全志H6为例,BootLoader是嵌入式系统启动的关键组件。它负责加载内核文件和设备树文件等,为后续内核运行提供基础环境。BootLoader需完成一系列步骤,如读取、解压、编译和设置参数,以确保内核的顺利启动。
当内核加载完毕后,Linux会加载内存中的root文件系统(rootfs),它是系统的核心文件系统,包含了必需的目录如/bin, /dev等,为用户空间进程提供运行环境。rootfs是一个只包含基本系统组件的内存文件系统,不依赖硬盘。
内核加载rootfs是为了使用户空间进程能够访问和执行文件和资源。内核作为操作系统核心,虽然负责硬件和软件资源管理,但并不包含用户空间程序,因此需要rootfs来支持用户进程的运行。
在Linux启动过程中,init进程作为第一个用户级进程,负责系统初始化和启动,它会按照预定顺序启动其他进程和服务,如加载文件系统和守护进程。内核映像文件,如vmlinuz或bzImage,是编译后的二进制文件,是系统启动时被加载到内存中执行的。
内核空间和用户态是操作系统区分权限的两个层面。用户态程序通过系统调用与内核交互,实现对硬件资源的访问。CPU在内核模式下拥有高度权限,而在用户模式下程序受到限制,以确保系统的安全。