Linux 为什么选企鹅作为Logo
企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家。Linux 选择企鹅图案作标志,其含意也是表明:开源的Linux,为全人类共同所有,任何公司无权将其私有。
操作系统启动流程
BIOS->BIOS自检->bootloader->os
UEFI->bootloader->os
BIOS(Basic Input/Output System)是计算机系统中的一个基本输入输出系统,主要作用是在计算机启动时进行硬件检测和初始化,以及启动操作系统。
BIOS和UEFI都是计算机启动的基础,它们都有类似的启动流程:BIOS/UEFI自检 -> 启动引导程序(bootloader) -> 操作系统(OS)。
BIOS启动流程:
- BIOS自检(Power On Self Test,POST):计算机开机时,BIOS程序会首先进行自检,检查计算机硬件是否正常工作。如果出现错误,BIOS将在屏幕上显示错误信息。
- 启动引导程序(bootloader):如果自检成功,BIOS会将启动引导程序(bootloader)从硬盘、软盘或其他可启动介质加载到内存中,让引导程序接管计算机的控制权。
- 引导程序加载操作系统内核:引导程序会读取硬盘上的主操作系统内核文件,并将其加载到内存中,然后启动操作系统。
- 操作系统启动:一旦内核加载到内存中,操作系统就开始运行了。内核负责初始化计算机硬件、加载系统服务和驱动程序,并最终显示登录屏幕或桌面。
UEFI启动流程:
- UEFI启动:计算机开机时,UEFI会首先进行初始化和自检,确定启动方式和引导程序的位置。
- 启动引导程序(bootloader):UEFI将从预定义的位置(如硬盘的EFI分区)加载启动引导程序,并将控制权交给引导程序。
- 引导程序加载操作系统内核:引导程序会读取硬盘上的主操作系统内核文件,并将其加载到内存中,然后启动操作系统。
- 操作系统启动:一旦内核加载到内存中,操作系统就开始运行了。内核负责初始化计算机硬件、加载系统服务和驱动程序,并最终显示登录屏幕或桌面。
UEFI和BIOS的区别
来源:BIOS、UEFI、Boot Loader都是些什么 - 知乎 (zhihu.com)
linux发展简史
- 1991年:Linus Torvalds在芬兰赫尔辛基大学开发出第一个版本的Linux内核。
- 1992年:Linux发布了第一个正式版,它使用了GNU通用公共许可证(GPL),这是一种自由软件许可证,其主要目的是保证用户有权利访问、修改、共享和使用软件。
- 1993年:Slackware成为了第一个发行的Linux操作系统。Slackware是基于Linux内核的一个Unix-like操作系统,被广泛使用在服务器和个人电脑领域。
- 1994年:Red Hat成为了第一个商业化的Linux操作系统发行商,它也是目前使用最广泛的Linux操作系统之一。
- 1996年:Linux 2.0内核发布,其中包含了对多处理器系统的支持,使得Linux成为了一种适用于服务器的操作系统。
- 1998年:第一个Linux协会——Linux International成立,它的主要目的是推广Linux操作系统的使用。
- 1999年:Red Hat推出了企业级Linux发行版Red Hat Enterprise Linux(RHEL),它是专门为企业级用户开发的一款Linux操作系统,具有更好的稳定性、可靠性和安全性。
- 2003年:SuSE Linux公司被Novell收购,成为Novell的一个子公司。
- 2004年:Ubuntu Linux发行版首次发布,它是一款易于使用的Linux操作系统,被广泛应用于个人电脑和服务器领域。
- 2007年:Android操作系统发布,它基于Linux内核,被广泛应用于智能手机、平板电脑和其他移动设备领域。
- 2011年:Linux内核3.0发布,其中包含了对Android和嵌入式设备的支持。
- 2015年:Linux内核4.0发布,其中包含了对虚拟化和容器技术的支持,使得Linux成为了一种适用于云计算的操作系统。
- 2021年:Linux内核5.10 LTS发布,它是一个长期支持版本,将得到至少6年的维护支持。Linux发展到今天已经成为了一个非常庞大的社区,有数以百计的开发者为其
linux体系结构
内核空间:是操作系统的核心部分,包含了进程管理、内存管理、文件系统、设备驱动程序等重要组成部分。内核的主要职责是管理系统硬件资源,提供各种服务,如进程调度、内存管理、文件系统管理、网络通信等,同时也是用户态程序与硬件之间的桥梁,为用户态程序提供了各种系统调用接口。
用户空间:包含用户态进程运行的环境,也是大多数应用程序运行的环境。用户空间中包含了各种系统库、应用程序和用户数据。用户空间中的程序通过系统调用和内核空间交互来使用系统资源和提供各种服务。
linux文件系统
Linux文件系统是一个层次化的目录结构,类似于一棵树,称为“虚拟文件系统(Virtual File System)”。每个文件或目录都有一个唯一的路径名,从根目录“/”开始,每一级目录用“/”隔开,例如“/home/user/Documents”。
Linux文件系统可以分为以下几个部分:
- 根目录:Linux文件系统的根目录为“/”,所有文件和目录都是从这个根目录开始的。
- 标准目录:在Linux中,有一些目录是标准目录,它们通常包含特定类型的文件。例如,“/bin”目录包含二进制可执行文件,“/etc”目录包含系统配置文件,“/usr”目录包含用户应用程序,“/var”目录包含可变数据(如日志文件)等等。
- 挂载点:Linux可以将不同的文件系统挂载到不同的目录下。挂载点是指一个目录,它作为文件系统的根目录,文件系统中的文件和目录都可以通过挂载点进行访问。例如,“/mnt”目录通常用于挂载可移动设备(如U盘)。
- proc文件系统:proc文件系统是一个虚拟文件系统,它不是一个真正的文件系统,而是内核提供的一个接口,用于显示和修改系统内核的状态。在proc文件系统中,每个进程都有一个目录,以其进程ID命名。例如,“/proc/1234”表示进程ID为1234的进程。
- sys文件系统:sys文件系统也是一个虚拟文件系统,它提供了对Linux内核中各种系统信息的访问。例如,“/sys/devices”目录包含系统中所有设备的信息