精华内容
下载资源
问答
  • linux内核精髓
    2021-05-15 12:08:49

    Linux内核精髓:精通Linux内核必会的75个绝技_高桥&浩和_科技 互联网 计算机技术详细内容介绍

    书名:Linux内核精髓:精通Linux内核必会的75个绝技

    作者:高桥&浩和

    分类:科技 互联网 计算机技术

    豆瓣评分:0

    简介:

    经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远。随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于Linux内核的研究者和开发者而言,要系统研究Linux内核绝非易事。鉴于此,本书选取了Linux内核的资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等核心主题进行了深入剖析和讲解,总结出了75个能使读者深刻理解Linux内核精髓的技巧和最佳实践。

    提取码:6666

    以上就是Linux内核精髓:精通Linux内核必会的75个绝技_高桥&浩和_科技 互联网 计算机技术全部内容,希望对大家有所帮助。

    更多相关内容
  • Linux内核精髓

    2018-05-29 11:17:36
    linux内核精髓-精通linux内核必会的75个绝技,PDF版本,如果觉得内容不错,请购买支持正版。
  • linux学习的必修书籍,深入理解linux,扫描版的,但是有目录字迹清晰。
  • 资源名称:Linux内核精髓-精通Linux内核必会的75个绝技(带书签高清完整版)资源截图: 资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
  • Linux内核精髓-精通Linux内核必会的75个绝技(差书).pdfLinux内核精髓-精通Linux内核必会的75个绝技(差书).pdfLinux内核精髓-精通Linux内核必会的75个绝技(差书).pdf
  • 这本书是我少数几个设置了分数限制的书,它是完整版,现在网上的大多数都是mini版本,知道这本书价值的人自然不会因为任何限制而阻碍求知的欲望,因为它物有所值。
  • 随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于Linux内核的研究者和开发者而言,要系统研究Linux内核绝非易事。作为一个内核相关的工作人员,你...
  • Linux内核精髓:精通Linux内核必会的75个绝技》 《Linux内核精髓:精通Linux内核必会的75个绝技》 《Linux内核精髓:精通Linux内核必会的75个绝技》
  • Linux内核精髓-精通Linux内核必会的75个绝技,带书签完整版,有需要的朋友可以下载进行学习研究.
  • 学习操作系统必备-LInux内核精髓-精通Linux内核必会的75个绝技
  • 经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远。...鉴于此,Linux内核精髓精通Linux内核必会的75个绝技一书选取了资源管理(CPU、内存、进程等)、文件系统、网络、...

    经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远。随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于Linux内核的研究者和开发者而言,要系统研究Linux内核绝非易事。鉴于此,Linux内核精髓精通Linux内核必会的75个绝技一书选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等Linux内核的核心主题进行了深入剖析和讲解,总结出了75个能有助于读者深刻理解Linux内核精髓的技巧和最佳实践。

    Linux内核精髓精通Linux内核必会的75个绝技目录

    编者与作者介绍

    主编致辞

    前言

    第1章 内核入门

    HACK #1 如何获取Linux内核

    HACK #2 如何编译Linux内核

    HACK #3 如何编写内核模块

    HACK #4 如何使用Git

    HACK #5 使用checkpatch.pl检查补丁的格式

    HACK #6 使用localmodconfig缩短编译时间

    第2章 资源管理

    HACK #7 Cgroup、Namespace、Linux容器

    HACK #8 调度策略

    HACK #9 RT Group Scheduling 与RT Throttling

    HACK #10 Fair Group Scheduling

    编者与作者介绍

    主编致辞

    前言

    第1章 内核入门

    HACK #1 如何获取Linux内核

    HACK #2 如何编译Linux内核

    HACK #3 如何编写内核模块

    HACK #4 如何使用Git

    HACK #5 使用checkpatch.pl检查补丁的格式

    HACK #6 使用localmodconfig缩短编译时间

    第2章 资源管理

    HACK #7 Cgroup、Namespace、Linux容器

    HACK #8 调度策略

    HACK #9 RT Group Scheduling 与RT Throttling

    HACK #10 Fair Group Scheduling

    HACK #11cpuset

    HACK #12 使用Memory Cgroup限制内存使用量

    HACK #13 使用Block I\/O控制器设置I\/O优先级

    HACK #14 虚拟存储子系统的调整

    HACK #15 ramzswap

    HACK #16 OOM Killer的运行与结构

    第3章 文件系统

    HACK #17 如何使用ext

    HACK #18 向ext4转换

    HACK #19 ext4的调整

    HACK #20 使用fio进行I\/O的基准测试

    HACK #21FUSE

    第4章 网络

    HACK #22 如何控制网络的带宽

    HACK #23 TUN\/TAP设备

    HACK #24 网桥设备

    HACK #25 VLAN

    HACK #26 bonding驱动程序

    HACK #27 Network Drop Monitor

    第5章 虚拟化

    HACK #28 如何使用Xen

    HACK #29 如何使用KVM

    HACK #30 如何不使用DVD安装操作系统

    HACK #31 更改虚拟CPU分配方法,提高性能

    HACK #32 如何使用EPT提高客户端操作系统的性能

    HACK #33 使用IOMMU提高客户端操作系统运行速度

    HACK #34 使用IOMMU+SR-IOV提高客户端操作系统速度

    HACK #35 SR-IOV带宽控制

    HACK #36 使用KSM节约内存

    HACK #37 如何挂载客户端操作系统的磁盘

    HACK #38 从客户端操作系统识别虚拟机环境

    HACK #39 如何调试客户端操作系统

    第6章 省电

    HACK #40 ACPI

    HACK #41 使用ACPI的 S状态

    HACK #42 使用CPU省电(C、P状态)

    HACK #43 PCI设备的热插拔

    HACK #44 虚拟环境下的省电

    HACK #45 远程管理机器的电源

    HACK #46 USB的电力管理

    HACK #47 显示器的省电

    HACK #48 通过网络设备节省电能

    HACK #49 关闭键盘的LED来省电

    HACK #50 PowerTOP

    HACK #51 硬盘的省电

    第7章 调试

    HACK #52 SysRq键

    HACK #53 使用diskdump提取内核崩溃转储

    HACK #54 使用Kdump提取内核崩溃转储

    HACK #55 崩溃测试

    HACK #56 IPMI看门狗计时器

    HACK #57 NMI看门狗计时器

    HACK #58 soft lockup

    HACK #59 crash命令

    HACK #60 核心转储过滤器

    HACK #61 生成用户模式进程的进程核心转储

    HACK #62 使用lockdep查找系统的死锁

    HACK #63 检测内核的内存泄漏

    第8章 概要分析与追踪

    HACK #64 使用perf tools的概要分析(1)

    HACK #65 使用perf tools的概要分析(2)

    HACK #66 进行内核或进程的各种概要分析

    HACK #67 追踪内核的函数调用

    HACK #68  ftrace的插件追踪器

    HACK #69 记录内核的运行事件

    HACK #70 使用trace-cmd的内核追踪

    HACK #71 将动态追踪事件添加到内核中

    HACK #72 使用SystemTap进行内核追踪

    HACK #73 使用SystemTap编写对话型程序

    HACK #74 SystemTap脚本的重复利用

    HACK #75 运用SystemTap

    d212a4ef8c9f98c834812a0e15e6e625.gif

    展开全文
  • 随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于Linux内核的研究者和开发者而言,要系统研究Linux内核绝非易事。鉴于此,本书选取了资源管理(CPU、...

    ae7ad317b6757babdaf5ca2fb12132cf.png

    8bc9a7a0fb6363dfb57db1d8c4d743ec.png

    内容推荐

    经过近20年的发展,Linux操作系统已经成为当今最成功的开源软件之一,使用广泛,影响深远。随着Linux操作系统功能的不断丰富和完善,Linux内核的源代码也从最初的几万行增加到如今的数百万行,庞大无比,对于Linux内核的研究者和开发者而言,要系统研究Linux内核绝非易事。鉴于此,本书选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等Linux内核的核心主题进行了深入剖析和讲解,总结出了75个能有助于读者深刻理解Linux内核精髓的技巧和最佳实践。

    作者简介

    主编简介 高桥 浩和(Hirokazu Takahashi)毕业于北海道大学电子工学系。从VAX全盛时代开始致力于各种UNIX系列操作系统的功能强化和内核调整,以及大规模系统的实

    显示全部信息

    目录

    编者与作者介绍

    主编致辞

    前言

    第1章 内核入门

    HACK #1 如何获取Linux内核

    HACK #2 如何编译Linux内核

    HACK #3 如何编写内核模块

    HACK #4 如何使用Git

    HACK #5 使用checkpatch.pl检查补丁的格式

    HACK #6 使用localmodconfig缩短编译时间

    第2章 资源管理

    HACK #7 Cgroup、Namespace、Linux容器

    HACK #8 调度策略

    HACK #9 RT Group Scheduling 与RT Throttling

    HACK #10 Fair Group Scheduling

    HACK #11cpuset

    HACK #12 使用Memory Cgroup限制内存使用量

    HACK #13 使用Block I\/O控制器设置I\/O优先级

    HACK #14 虚拟存储子系统的调整

    HACK #15 ramzswap

    HACK #16 OOM Killer的运行与结构

    第3章 文件系统

    HACK #17 如何使用ext

    HACK #18 向ext4转换

    HACK #19 ext4的调整

    HACK #20 使用fio进行I\/O的基准测试

    HACK #21FUSE

    第4章 网络

    HACK #22 如何控制网络的带宽

    HACK #23 TUN\/TAP设备

    HACK #24 网桥设备

    HACK #25 VLAN

    HACK #26 bonding驱动程序

    HACK #27 Network Drop Monitor

    第5章 虚拟化

    HACK #28 如何使用Xen

    HACK #29 如何使用KVM

    HACK #30 如何不使用DVD安装操作系统

    HACK #31 更改虚拟CPU分配方法,提高性能

    HACK #32 如何使用EPT提高客户端操作系统的性能

    HACK #33 使用IOMMU提高客户端操作系统运行速度

    HACK #34 使用IOMMU+SR-IOV提高客户端操作系统速度

    HACK #35 SR-IOV带宽控制

    HACK #36 使用KSM节约内存

    HACK #37 如何挂载客户端操作系统的磁盘

    HACK #38 从客户端操作系统识别虚拟机环境

    HACK #39 如何调试客户端操作系统

    第6章 省电

    HACK #40 ACPI

    HACK #41 使用ACPI的 S状态

    HACK #42 使用CPU省电(C、P状态)

    HACK #43 PCI设备的热插拔

    HACK #44 虚拟环境下的省电

    HACK #45 远程管理机器的电源

    HACK #46 USB的电力管理

    HACK #47 显示器的省电

    HACK #48 通过网络设备节省电能

    HACK #49 关闭键盘的LED来省电

    HACK #50 PowerTOP

    HACK #51 硬盘的省电

    第7章 调试

    HACK #52 SysRq键

    HACK #53 使用diskdump提取内核崩溃转储

    HACK #54 使用Kdump提取内核崩溃转储

    HACK #55 崩溃测试

    HACK #56 IPMI看门狗计时器

    HACK #57 NMI看门狗计时器

    HACK #58 soft lockup

    HACK #59 crash命令

    HACK #60 核心转储过滤器

    HACK #61 生成用户模式进程的进程核心转储

    HACK #62 使用lockdep查找系统的死锁

    HACK #63 检测内核的内存泄漏

    第8章 概要分析与追踪

    HACK #64 使用perf tools的概要分析(1)

    HACK #65 使用perf tools的概要分析(2)

    HACK #66 进行内核或进程的各种概要分析

    HACK #67 追踪内核的函数调用

    HACK #68  ftrace的插件追踪器

    HACK #69 记录内核的运行事件

    HACK #70 使用trace-cmd的内核追踪

    HACK #71 将动态追踪事件添加到内核中

    HACK #72 使用SystemTap进行内核追踪

    HACK #73 使用SystemTap编写对话型程序

    HACK #74 SystemTap脚本的重复利用

    HACK #75 运用SystemTap

    展开全文
  • 鉴于此,《Linux内核精髓:精通Linux内核必会的75个绝技》选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等Linux内核的核心主题进行了深入剖析和讲解,总结出...
  • Linux内核精髓.pdf

    热门讨论 2013-06-14 22:33:28
    Linux内核精髓.pdf,精通linux必会的75个绝技
  • Linux内核精髓:精通Linux内核必会的75个绝技 文字版 Linux内核精髓:精通Linux内核必会的75个绝技 文字版 Linux内核精髓:精通Linux内核必会的75个绝技 文字版
  • 解析Linux内核开发技巧,包含如果编译内核源码,如果使用kvm以及其他在现代Linux环境下构建以及调试代码技巧
  • Linux内核精髓:精通Linux内核必会的75个绝技-高桥%26浩和
  • [Linux内核精髓:精通Linux内核必会的75个绝技]---高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有版权问题,请联系删除!
  • Linux内核精髓-精通Linux内核必会的75个绝技 http://product.china-pub.com/3022376 高清扫描版,带书签
  • cpuset是Linux控制组(Cgroup)之一,其功能是指定特定进程或线程所使用的CPU组。另外,除CPU以外,同样还能指定内存节点的分配。以前的内核具有CPU affinity功能,该功能将线程分配给特定CPU。现在的内核中虽然也有...

    HACK #11cpuset

    本节介绍控制物理CPU分配的cpuset。
    cpuset是Linux控制组(Cgroup)之一,其功能是指定特定进程或线程所使用的CPU组。另外,除CPU以外,同样还能指定内存节点的分配。
    以前的内核具有CPU affinity功能,该功能将线程分配给特定CPU。现在的内核中虽然也有affinity(taskset命令),但推荐使用cpuset。
    用法
    使用cpuset前,必须通过内核config启用cpuset功能。
    CONFIG_CPUSETS=y
    最近的发布版在标准中就已启用。cpuset就是作为Cgroup提供的一个功能。因此,使用cpuset时,就需要挂载 Cgroup文件系统。使用下列方法启用cpuset选项,挂载Cgroup后,就可以使用cpuset(参考Hack #7)。

    # mount -o cpuset -t cgroup cgroup /cgroup
    

    在这里创建一个新的CPU分配组GroupA。与其他Cgroup同样在挂载的Cgroup下创建新目录GroupA,作为分组GroupA。

    # mkdir /cgroup/GroupA
    

    编辑新创建分组GroupA的cpuset,修改CPU分配情况。这里以仅将CPU0分配给分组GroupA的情况为例进行说明。在分组GroupA下的特殊文件cpuset.cpus内写入要分配的CPU编号,使用下列命令,来控制分组的cpuset。

    # echo 0 > /cgroup/GroupA/cpuset.cpus
    

    到这一步,就完成了仅使用CPU0作为GroupA的CPU分配的设置。
    接下来,在这个分组GroupA中添加进程。这里将当前shell添加到GroupA中。使用下列命令,将PID(

    $$ 表示shell本身的PID)写入GroupA下的task文件。

    # echo 
    $$
     > /cgroup/GroupA/task
    

    此后由当前shell启动的进程全部在这个GroupA下,使用的CPU仅限于0号CPU。
    现在确认所使用的CPU数量是否受限,以及产生的效果如何。本节显示的是以Fedora 12为例的情况。
    本示例中使用的Fedora 12内核如下。

    # uname -a
    Linux fedora12 2.6.31.12-174.2.22.fc12.x86_64 #1 SMP Fri Feb 19 18:55:03 UTC 2010
    x86_64 x86_64 x86_64 GNU/Linux
    

    如果使用cpuset改变所使用的CPU数量会怎么样?比较内核的编译时间。
    首先准备好要进行比较的编译。为了避免磁盘性能的影响,首先创建内存文件系统tmpfs,并在其中配置源文件。创建目录/tmp/build,挂载 tmpfs,命令如下所示。

    # mkdir /tmp/build
    # mount -t tmpfs none /tmp/build
    

    本次测量的是内核源代码每次在创建的tmpfs下解压缩tarball时,使用默认config所花费的内核编译时间。使用的一系列命令行如下。

    # cd /tmp/build/
    # tar jxf /ext4data/kernel/linux-2.6.33.tar.bz2 
    # cd linux-2.6.33/
    # make defconfig
    # time make -j 2
    

    首先测量Linux 2.6.33的编译时间。
    将Cgroup挂载到/cgroup,创建分组GroupA。

    # mount -o cpuset -t cgroup cgroup /cgroup
    # mkdir /cgroup/GroupA
    

    接下来看一下向分组GroupA分配两个CPU时的结果。

    # echo"0-1" > /cgroup/GroupA/cpuset.cpus
    # echo 0 > /cgroup/GroupA/cpuset.mems   mems默认为空,因此需要填入值
    # echo 
    $$
     > /cgroup/GroupA/tasks
    

    编译时间如下。

    # time make -j 2
    real   4m55.568s
    user   2m42.066s
    sys    5m4.575s
    

    然后将CPU缩减到只有0号CPU。

    # echo 0 > /cgroup/GroupA/cpuset.cpus
    # echo 0 > /cgroup/GroupA/cpuset.mems
    # echo 
    $$
     > /cgroup/GroupA/tasks 
    
    # mount -t tmpfs none /tmp/build
    # cd /tmp/build/
    # tar jxf /ext4data/kernel/linux-2.6.33.tar.bz2 
    # cd linux-2.6.33/
    # make defconfig
    # time make -j 2
    real    7m44.491s
    user    2m47.319s
    sys    4m56.737s
    

    可以看到,CPU数量变为1,实际花费的时间(real)增加。
    下面以对虚拟化(KVM)进程所使用的CPU进行限制的情况为例,看一下将分配给KVM进程的CPU固定,并确保主机操作系统能够一直使用CPU后,是否能够减少虚拟化的影响。
    这个示例同样使用Fedora 12。
    首先使用KVM,启动两个客户端操作系统。然后,在客户端操作系统中循环进行内核编译,加大CPU负载。
    在解压缩Linux 2.6.33源代码的目录下,无限循环执行make clean和make命令,增加客户端操作系统的CPU负载。

    hshimamoto@ubuntu:~/kernel/linux-2.6.33$ while :; do make clean; time make; done
    hshimamoto@opensuse:~/kernel/linux-2.6.33> while :; do make clean; time make; done
    

    在这种情况下计算主机操作系统上的内核编译时间。同前例一样,需要创建tmpfs,消除磁盘性能的影响后再进行测量。计算结果如下。

    # time make -j 2
    real    8m20.468s
    user    2m45.890s
    sys     4m51.091s
    

    然后,将KVM的qemu-kvm进程可以使用的CPU设置为只有0号CPU。

    # mount -o cpuset -t cgroup cgroup /cgroup
    # mkdir /cgroup/kvm
    
    # echo 0 > /cgroup/kvm/cpuset.meme  将kvm分组的cpuset设为只有0
    # echo 0 > /cgroup/kvm/cpuset.cpus
    

    将启动中的qemu-kvm移动到kvm分组。

    # ps x | grep qemu
     2495 pts/2    Sl+  238:37 qemu-kvm
     2628 pts/3    Sl+  255:33 qemu-kvm
    
    # for i in '\ls /proc/2495/task/'; do echo $i > /cgroup/kvm/tasks; done
    # for i in '\ls /proc/2628/task/'; do echo $i > /cgroup/kvm/tasks; done
    

    另外,ksmd(参考Hack #36)也使用CPU,因此这里也将其加入kvm分组。

    # ps ux | grep ksmd
    root     35  2.2  0.0     0   0?     SN   Mar23 119:42[ksmd]
    
    # echo 35 > /cgroup/kvm/tasks
    

    现在,主机操作系统的内核编译时间就变成如下所示。

    # time make -j 2
    
    real    7m55.081s
    user    2m43.303s
    sys     5m12.039s
    

    可以发现,内核编译所花费的实际时间减少了接近30秒。
    这是因为虚拟化的KVM进程只在CPU0上运行,在主机操作系统上就可以使用100%的CPU。
    小结
    本节介绍了使用Linux中的Cgroup的cpuset。通过使用这个功能,就可以限制特定进程所使用的CPU。从另一个角度来看,通过固定使用的CPU,还可以提高缓存的利用效率和性能。
    —Hiroshi Shimamoto

    展开全文
  • Linux内核精髓:精通Linux内核必会的75个绝技》前言 内核是操作系统的核心,操作系统的基本功能都是由内核提供的。文件生成和数据包传输等也是通过内核的功能实现的。但这些都不是简单的任务。平时可能意识不到,...
  • 1章 内核入门HACK #1 如何获取Linux内核HACK #2 如何编译Linux内核HACK #3 如何编写内核模块HACK #4 如何使用GitHACK #5 使用checkpatch.pl检查补丁的格式HACK #6 使用localmodconfig缩短编译时间 ...
  • Linux内核精髓:精通Linux内核必会的75个绝技,已处理为护眼的绿豆沙底色,看着眼睛不累
  • 本节将介绍向Linux内核中动态添加功能的结构—内核模块的编写方法。内核模块Linux内核是单内核(monolithic kernel),也就是所有的内核功能都集成在一个内核空间内。但是内核具有模块功能,可以将磁盘驱动程序、...
  • 内核是操作系统的核心,操作系统的基本功能都是由内核提供的。文件生成和数据包传输等也是通过内核的功能实现的。但这些都不是简单的任务。平时可能意识不到,但这其中确实包含了很多先进技术。例如,在文件系统方面...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,143
精华内容 2,857
关键字:

linux内核精髓