日前,Linus 发布了 Linux Kernel 3.5 正式版本。
主要特性更新如下:
1.ext4元数据校验和
现在的文件系统,比如ZFS和Btrfs,都证明了使用校验和对于保证文件系统的完整性很有价值,ext4也新增了存储多种元数据域校验和的功能。
2.Uprobes:用户空间探测器(userspace probes)
Uprobes是kprobe对应的用户空间,允许在用户应用的任意内存地址添加性能探测器,并且在不引起破坏的情况下收集调试和性能信息,可以用来寻找性能问题。这些探测器可以在程序运行时动态地添加,并不需要重新启动应用或者修改二进制文件。这些探测器通常通过仪表应用来管理,比如perf probe、systemtap 和 LTTng。
3.基于Seccomp的系统调用过滤
Seccomp (即“"secure computing”的别名)是2.6.12版本重新加入的简单沙盒机制,用来确保系统调用处于受限状态(仅允许对已打开的文件进行exit, sigreturn, read 和 write操作)。Seccomp现在又增加了新功能:不再是有限并且确定的系统调用,Seccomp现在已经成了一种过滤机制,用来管理一个系统调用是否被禁止(和Berkeley Packet Filter功能类似。
4.Bufferbloat fighting:CoDel队列管理
Codel即“controlled delay”是一种新的队列管理算法,用来处理整个网络过多的缓冲带来的问题(也就是“bufferbloat”)。Jim Getty,bufferbloat现象的发现者,认为这个算法是过去14年里用来解决AQM算法问题的最优秀解决方案。
5.TCP连接修复
作为进程检查点/重启目标的一部分,Linux在这个版本中支持停止TCP连接并在另一台主机上重启它。容器虚拟化实现将使用到这个特性,通过远程终端将整个网络连接透明地从一个宿主迁移到另一个。这项功能实现了将一个套接字放置到“修复”模式,这允许收集必要的信息或者在新的套接字中重建之前的状态。
6.TCP提前重传(TCP Early Retransmit)
TCP Early Retransmit允许触发快速转播,在特定的情况下减少快速重传确认请求的重复次数,这使得传输时延快速重传来恢复部分损失,否则会需要大量的重传超时损失。换句话说,连接从丢失的数据包包中恢复地更快,降低了延迟。
提前重传由tcp_early文件(/proc/sys/net/ipv4/tcp_early)控制,它支持三个值:“0”(关闭提前重传)、“1”(开启提前重传)和“2”(默认选项,启动提前重传但推迟快速重传和快速恢复)。
7.Android风格的自动挂起
在将Android代码合并进来时最具争议性的地方在于“suspend blockers”方法和“wakelocks”方法,这是一个特定的电源管理方法,目的在于尽可能地挂起系统。系统的自然状态是睡眠状态,仅为刷新内存和少量用来唤醒系统的进程提供电源,系统仅在做一些实在工作的时候全力工作,其它时候尽可能地进入挂起状态。
8.Btrfs:I/O故障统计和一些不明显的提升
I/O故障统计支持新增:I/O故障、CRC故障和生成的元数据块跟踪检查每个驱动器,Btrfs 检查并返回驱动器状态,将在未来的btrfs-progs中包含,即:btrfs device stats。
9.通过FireWire和USB的SCSI
本次更新还包括一个把IEEE-1394接口当作SCSI传输器的驱动,这也使得同一Firewire总线上的节点也能够显示SCSI设备。这和某些苹果机上的目标磁盘模式类似。
新版本同样为USB接口准备了相同功能的驱动,该驱动支持支持两种USB协议:BBB/BOT和UAS,推荐接口0(主接口)选择BOT,接口1选择UAS。两种协议都支持USB2.0和3.0,UAS甚至利用了USB3.0的流支持特性。
其它更新包括:
- 驱动和架构变化
-
核心变化:新增skew_tick启动选项、RCU锁、IPC mqueue等等。
-
内存管理:新增Frontswap和连续内存分配器,删除状态令牌代码和状态回收(它们已经不是很现在的VM模式)。
-
虚拟化:引入核心irqchip MSI直接信息注入。
-
安全性:SELinux、Smack、TOMOYO、Yama和Keys相关众多改进。
-
Perf/tracing:创建libtraceevent.a;注释浏览器新增跳转指令导航支持、环路检测、字符串搜索以及允许以不同颜色表示objdump行地址。
-
网络功能:新增或改进mac802154、ipv6、batman-adv、L2TP、NFC、802.11(无线)等等功能。
-
文件系统:新版本增强了对Btrfs、Tmpfs、XFS、CIFS、JFFS2、exofs和Cifs文件系统的支持。
详细更新可以查看Linux Kernel官网。
相关推荐
Linux Kernel Programming Guide.pdf
動態 Linux kernel 測試工具:SystemTap
3882页Linux Kernel Documentation; Linux Kernel官方文档
Linux Kernel Development details the design and implementation of the Linux kernel, presenting the content in a manner that is beneficial to those writing and developing kernel code, as well as to ...
Linux Kernel Development.pdf Linux Kernel Development.pdf Linux Kernel Development.pdf
The Linux kernel is one of the most interesting yet least understood open-source projects. It is also a basis for developing new kernel code. That is why Sams is excited to bring you the latest Linux ...
Linux kernel development 3rd edition, the classic good book
Linux Kernel核心中文手册Linux Kernel核心中文手册Linux Kernel核心中文手册Linux Kernel核心中文手册Linux Kernel核心中文手册Linux Kernel核心中文手册
Understanding the Linux Kernel 3rd Edition (English Version)
麒麟Linux kernel本地权限提升漏洞(CVE-2022-0847)漏洞补丁及相关依赖包3麒麟Linux kernel本地权限提升漏洞(CVE-2022-0847)漏洞补丁及相关依赖包3麒麟Linux kernel本地权限提升漏洞(CVE-2022-0847)漏洞补丁及相关...
Professional Linux Kernel Architecture
Linux Kernel 说明第三版,包括内存管理、进程、信号、文件系统等等相关说明
Linux Kernel in a Nutshell Linux Kernel in a Nutshell
Welcome, gentle reader, to Rusty’s Remarkably Unreliable Guide to Linux Kernel Hacking. This document describes the common routines and general requirements for kernel code: its goal is to serve as a...
Linux Kernel 四库全书,进阶学习Linux内核必备推荐书
linux kernel
Top Reasons people will buy this book: -Covers Linux on PPC -Top-down approach traces functionality from user space into the kernel -Lots of code commentary and examples. It walks you through the ...
linux Kernel 2.4 Internalslinux Kernel 2.4 Internalslinux Kernel 2.4 Internals
linux kernel network data flow 完整linux内核网络接受发送流程