当前位置:首页 > 技术学院 > 技术前线
[导读]Linux内核是一个操作系统(OS)内核,本质上定义为类Unix。它用于不同的操作系统,主要是以不同的Linux发行版的形式。Linux内核是第一个真正完整且突出的免费和开源软件示例。Linux 内核是第一个真正完整且突出的免费和开源软件示例,促使其广泛采用并得到了数千名开发人员的贡献。

Linux内核是一个操作系统(OS)内核,本质上定义为类Unix。它用于不同的操作系统,主要是以不同的Linux发行版的形式。Linux内核是第一个真正完整且突出的免费和开源软件示例。Linux 内核是第一个真正完整且突出的免费和开源软件示例,促使其广泛采用并得到了数千名开发人员的贡献。

Linux内核‌是操作系统的核心组件,作为开源软件由Linus Torvalds于1991年创建,负责管理硬件资源并为应用程序提供基础服务。

‌Linux内核的定义与起源‌

Linux内核是计算机操作系统最底层的核心程序,采用C语言编写并遵循POSIX标准,具备类Unix特性。它由芬兰程序员Linus Torvalds在1991年首次发布,并依托全球开发者社区协作维护,成为开源软件领域的典范。‌‌

‌核心功能特性‌

Linux内核通过以下机制实现硬件与软件的协同工作:

‌进程管理‌:采用层次化进程结构,通过调度算法分配CPU时间片,支持多任务并发执行。‌‌‌

‌内存管理‌:提供虚拟内存机制,实现进程间内存隔离与共享,优化物理内存使用效率。‌‌

‌设备驱动‌:抽象硬件操作细节,支持超过80%的常见硬件设备的即插即用。‌‌

‌文件系统‌:基于虚拟文件系统(VFS)架构,兼容ext4、XFS等数十种文件格式。‌‌

‌网络协议栈‌:内置TCP/IP协议族,支撑互联网通信基础功能。‌‌

Linux 内核(英语:Linux kernel),是 Linux 操作系统的内核,以 C 语言写成,符合 POSIX 标准,以 GNU 通用公共许可证发布。Linux 最早是由芬兰黑客林纳斯·托瓦兹为尝试在英特尔 x86 架构上提供自由免费的类 Unix 系统而开发的。该计划开始于 1991 年,林纳斯·托瓦兹当时在 Usenet 新闻组 comp.os.minix 登载帖子,这份著名的帖子标示着 Linux 计划的正式开始。

在计划的早期有一些 Minix 黑客提供了协助,而今天全球无数程序员正在为该计划无偿提供帮助。

技术上说 Linux 是一个内核。“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。一个内核不是一套完整的操作系统。一套基于 Linux 内核的完整操作系统叫作 Linux 操作系统,或是 GNU/Linux。

Linux 内核是在 GNU 通用公共许可证第 2 版之下发布的(加上一些非自由固件、blob 与各种非自由许可证)。

贡献者遍布世界各地,日常开发在 Linux 内核邮件列表。

源代码

一般情况下 Linux 内核源代码位于 /usr/src/linux 目录下。

/include子目录包含了建立内核代码时所需的大部分包含文件,这个模块利用其他模块重建内核。/init 子目录包含了内核的初始化代码,这是内核工作的开始的起点。/arch 子目录包含了所有硬件结构特定的内核代码。如:i386,alpha/drivers 子目录包含了内核中所有的设备驱动程序,如块设备和SCSI设备。/fs 子目录包含了所有的文件系统的代码。如:ext2,vfat等。/net 子目录包含了内核的连网代码。/mm 子目录包含了所有内存管理代码。/ipc 子目录包含了进程间通信代码。/kernel 子目录包含了主内核代码。内核程序

编译完成新内核后,会生成几个文件,这些文件是内核启动所需要的,这里简单介绍一下。

vmlinux,编译出来的最原始的内核文件,没有压缩,位于源码根目录下。该内核文件不能用来启动系统。

vmlinuz,这个就是我们要引导的内核,它一般是一个链接文件,位于根目录下。真正的文件位于/boot 文件夹下。z 表示压缩的内核,vm 表示 virtual memory 的意思。linux 支持虚拟内存,可利用硬盘空间作为虚拟内存使用。在编译内核时,通过 make zImage 或 make bzImage 生成 zImage 或 bzImage 原始压缩内核文件,这些内核文件位于 /usr/src/linux-2.6.23.9/arch/i386/boot 目录下;接着我们会把它拷贝到 /boot 目录下并改名为 vmlinuz;最后在根目录下创建一个到该文件的同名链接文件。bzImage 表示 big zImage 的意思,zImage 是老式的内核文件格式,在新的内核版本中已不使用了,现在生成的内核是 bzImage 格式的内核文件。这两种内核文件的区别是,zImage 解压缩内核到低端内存中(第一个640K),bzImage 解压缩内核到高端内存中(1M以上)

这两个内核文件都是使用 gzip 软件压缩的,但文件头部内嵌有 gzip 解压缩代码,能在启动时自动解压缩内核。使用 gzip 是不能正常解压内核的。

在源码根目录生成的 vmlinux 是一个没有压缩的内核文件。

如果在 /boot 目录下存在多个版本的内核文件,则可用 vmlinuz-xxxx 的方式命名。但根目录下的 vmlinuz 链接文件名一般不变。

initrd-x.x.x.img,initrd 是"initial ramdisk"的简写。作用是在内核引导前加载相应的硬件模块,为内核引导做准备。比如,使用的是 scsi 硬盘,而内核 vmlinuz 中并没有这个 scsi 硬件的驱动,那么在装入 scsi 模块之前,内核不能加载根文件系统,但 scsi 模块存储在根文件系统的/lib/modules 下。为了解决这个问题,可以引导一个能够读实际内核的 initrd 内核并用 initrd 修正 scsi 引导问题。initrd 可使用 mkinitrd 工具创建。

System.map,内核符号映射文件,位于/boot 目录下,与内核名要对应。内核编译完成后,在源码根目录下就会生成一个 System.map 文件。我们要把它拷贝到/boot 目录下并改成相关的名称。如内核名为 vmlinuz-2.6.23.9,则这个内核符号映射文件就应该命名为 System.map-2.6.23.9。

运行空间

Linux 系统由用户空间和内核空间两部分组成。

内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。

用户空间分为:

User Applications(用户应用程序)GNU C Library (glibc 即 c 运行库)内核空间分为:

System Call Interface(系统调用接口)Kernel(内核)Architecture Dependent Kernel Code(架构体系内核代码)子系统

Linux内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。

进程调度(SCHED):控制进程对CPU的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际上是仅等待CPU资源的进程,如果某个进程在等待其它资源,则该进程是不可运行进程。Linux使用了比较简单的基于优先级的进程调度算法选择新的进程。

内存管理(MM):允许多个进程安全的共享主内存区域。Linux 的内存管理支持虚拟内存,即在计算机中运行的程序,其代码,数据,堆栈的总量可以超过实际内存的大小,操作系统只是把当前使用的程序块保留在内存中,其余的程序块则保留在磁盘中。必要时,操作系统负责在磁盘和内存间交换程序块。内存管理从逻辑上分为硬件无关部分和硬件有关部分。硬件无关部分提供了进程的映射和逻辑内存的对换;硬件相关的部分为内存管理硬件提供了虚拟接口。

虚拟文件系统(VFS):隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS提供了多达数十种不同的文件系统。虚拟文件系统可以分为逻辑文件系统和设备驱动程序。逻辑文件系统指 Linux 所支持的文件系统,如 ext2,fat 等,设备驱动程序指为每一种硬件控制器所编写的设备驱动程序模块。

网络接口(NET):提供了对各种网络标准的存取和各种网络硬件的支持。网络接口可分为网络协议和网络驱动程序。网络协议部分负责实现每一种可能的网络传输协议。网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

进程间通讯(IPC):支持进程间各种通信机制。处于中心位置的进程调度,所有其它的子系统都依赖它,因为每个子系统都需要挂起或恢复进程。一般情况下,当一个进程等待硬件操作完成时,它被挂起;当操作真正完成时,进程被恢复执行。例如,当一个进程通过网络发送一条消息时,网络接口需要挂起发送进程,直到硬件成功成功地完成消息的发送,当消息被成功的发送出去以后,网络接口给进程返回一个代码,表示操作的成功或失败。其他子系统以相似的理由依赖于进程调度。

‌架构设计特点‌

Linux采用‌单内核(Monolithic Kernel)‌架构设计,具有以下技术优势:

所有核心服务运行在内核空间,避免频繁上下文切换带来的性能损耗。

通过模块化设计实现动态加载驱动和功能扩展,平衡性能与灵活性。‌‌

支持从嵌入式设备到超级计算机的跨平台运行,涵盖ARM、x86等多种指令集架构。‌‌

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭