【吕建文 2019-2020-1 20199303《Linux内核原理与分析》第五周作业】教程文章相关的互联网学习教程文章

设备树blob是否绑定到特定的Linux内核版本?

我问自己,某个适用于Linux内核版本3.18的dtb是否与Linux内核版本4.9兼容. 我想不是,因为有关设备树的内核代码可能随时间发生变化,但它必须兼容,否则多个dts / dtsi文件必须一直在变化. 我使用谷歌来调查这个,但即使在官方文档中,我也找不到关于不同内核版本的兼容性的话.解决方法:设备树应该是一个稳定的ABI,因此为任何版本的内核编写的设备树应该可以使用任何以下内核版本. 但是,出于实际原因,情况往往并非如此.您可以查看Thomas的...

linux – 内核在哪里定义SD卡命名索引?【代码】

我正在运行一个从SDCard启动的嵌入式主板. rootfs的位置通过内核参数传递给内核:Kernel command line: console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait panic=10我注意到更改为不同的内核版本会将索引更改为mmcblk1,从而导致设备无法启动. 内核是在没有initramfs的情况下构建的. 两个版本的udevadm输出: mmcblk1$udevadm info --name=/dev/mmcblk1 --attribute-walklooking at device '/devices/platform/soc/1c0f000.mmc/mm...

如何找出linux内核环缓冲区大小?【代码】

对内核环缓冲区的大小,它可以容纳多少信息以及哪些数据类型感兴趣?解决方法:关于大小,它记录在内核的配置文件中.例如,在Amazon EC2上,它是256 KiB.# grep CONFIG_LOG_BUF_SHIFT /boot/config-`uname -r` CONFIG_LOG_BUF_SHIFT=18 # perl -e 'printf "%d KiB\n",(1<<18)/1024' 256 KiB #参考于/kernel/printk/printk.c#define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)更多信息,请见/kernel/trace/ring_buffer.c 请注意,如果您已...

当发现影响Linux内核的漏洞时,我应该如何处理Docker?【代码】

假设我有一台运行Docker的Ubuntu主机. 这个主机包含许多运行容器,它们使用许多不同的基本映像(FROM),例如ubuntu,alpine,java:8 …… 该主机还包含一些手工构建的图像. 今天,我能够停止并移除所有容器,然后再次创建所有容器.没有图像存储数据(我不提交容器).因此丢失我的数据不是问题.只要图像保持不变,再次获取我的服务不应成为问题. 假设已发现影响Linux内核的漏洞. 我更新了我的主机操作系统,以便主机不再容易受到攻击. Docker容...

为什么有一个Debian backport的Linux内核?

我理解有一个backport的原因是你可以在旧系统上运行更新的软件而不使用更新的(因此未经证实的)库.也就是说,较新的软件将由较旧的(并且经过认证的稳定)工具链构建.对于Linux内核(Debian 6附带2.6.32,后向内核是2.6.38),为什么还有后端?我问,因为我认为内核没有库依赖,所以从Debian的开发套件安装内核不应该引起问题.解决方法:backport内核对于那些拥有更新硬件的人来说非常有用,这些硬件需要比稳定版本提供的更新的驱动程序. 从uns...

FreeBSD vs Linux:内核调用约定的性能

从int80h.org, the FreeBSD Assembly Language Tutorial起[The Linux Calling] convention has a great disadvantage over the Unix way, at least as far as assembly language programming is concerned: Every time you make a kernel call you must push the registers, then pop them later. This makes your code bulkier and slower.继续谈论FreeBSD支持Linux惯例和“Unix惯例”If you are coding specifically for FreeBSD...

在linux内核中调试信息 – 它是如何工作的?

我发现我可以使用一些标志编译linux内核,添加调试支持,如CONFIG_DEBUG_INFO. SystemTap等一些实用程序也需要这些在调试中有用的选项. 我正在使用SystemTap,因为它允许我从整个系统获取所有系统调用(并且不会像使用strace跟踪所有进程一样挂起它). 我想知道如何从内核读取这些信息(以不会导致如此大的开销的方式).解决方法:CONFIG_DEBUG_INFO是关于使用调试符号构建内核(对于gdb或其他调试器).它们与内核本身分开存储在磁盘上,不会从...

寻找有linux内核4.0的发行版?

我想要升级到linux的计算机有一个不支持linux的wifi卡,但我读到了4.0内核支持的地方.因此我无法安装旧内核版本然后升级,因为它需要互联网连接. 有人能指出我已经升级到4.0内核的发行版吗?解决方法:Fedora 22 alpha已经得到它,Debian和Ubuntu也是如此.查看DistroWatch以获取更多信息.

设置Linux内核运行时参数的正确方法是什么?【代码】

设置Linux内核运行时参数的规定方法是什么?我有时会看到人们会在/etc/rc.local这样的文件中设置它们. 这真的是正确的方法吗?解决方法:您可以使用sysctl设置一些内核参数,特别是/ proc / sys下的参数.这些可以在文件/etc/sysctl.conf中设置,也可以在/etc/sysctl.d目录中添加到单个文件(某些发行版的首选方法,如Fedora)中.在有这个目录的发行版上,它是用于定制的. 摘自sysctl的手册页sysctl - configure kernel parameters at runt...

Linux内核同步方法

原文链接:http://www.cnblogs.com/nzbbody/p/4728289.html1、原子操作,是其它同步方法的基础。 2、自旋锁,线程试图获取一个已经被别人持有的自旋锁,当前线程处于忙等待,占用cpu资源。 3、读写自旋锁,根据通用性和针对性的特点,普通自旋锁在特定场景下的表现会退化。因此,提供了读写自旋锁,读锁可以加读锁,不能加写锁,写锁不能加任何锁。 4、需要注意的几项:普通自旋锁是不能递归的。读锁可以递归,写锁也不能递归。表面...

linux – 哪个内核重新加载?【代码】

我正在使用ssh远程访问某些机器.这些机器安装了自定义内核(基于2.6.28源代码).但是,每当我尝试使用sudo reboot重新启动计算机时,系统都会使用kexec并加载2.6.28-19通用内核,该内核也会安装在计算机上. 那么如何指定重启后加载哪个内核映像? 编辑:我在机器上安装了ubuntu 9.04,有grub 1.something.自定义内核基于2.6.28源代码,名称为2.6.28.10-custom-1.1.机器2.6.28-19-generic和2.6.28-6-386上安装了另外两个内核.我已经检查过,...

限制linux内核的内存区域【代码】

我在P1022RDK(P1022 Core)平台上运行ltib Linux.我有512 MB = 0x20000000内存.我希望我的Linux内核使用板载内存的后半部分(即256 MB到512 MB),并希望将前半部分内存保留用于其他目的. 为此,我使用ltib构建Linux内核,并设置以下内核配置.如果我正在以正确的方式做,请建议.CONFIG_LOWMEM_SIZE = 0x10000000 # 256 MB CONFIG_PHYSICAL_START = 0x10000000 # Starting from 256MB (second half of memory) 在Uboot上我按以下方式加载...

Linux内核中的ALSA是什么?

什么是ALSA?我阅读了维基百科页面,但无法理解.我所理解的是,它是内核中与声音有关的模块. 如果你不在内核中包含它会发生什么,这是否意味着扬声器不起作用或什么.我问,因为我正在尝试安装Linux版本,但我不知道内核是否应该包含ALSA解决方法:ALSA代表高级Linux声音架构,如果你真的很好奇,我鼓励你在他们的project website周围逛逛.具体来说,我会看一下“I’m new to ALSA pages & tutorials. ArchLinux维基可能最好地描述它.The Adv...

使用自定义内核时如何处理linux内核更新?【代码】

我需要在编译时使用自定义内核选项(ACPI_REV_OVERRIDE_POSSIBLE),以便我的图形卡能够与我的Dell XPS 15 9560上的bumblebeed和nvidia驱动程序一起正常工作.我正在使用ArchLinux.每隔几天,就有一个新的内核版本(4.11.5,4.11.6,…). 我该如何处理这些内核更新?我是否需要每次手动重新编译内核? (我制作了一个小脚本来加速这个过程,但是有些东西仍然需要手动完成,并且编译需要花费很长的时间).是否可以自动化该过程,例如每次内核更新...

os-prober需要什么Linux内核功能才能找到Windows 8安装?

我使用make localmodconfig构建了一个新的自定义Linux内核,在启动新内核后,update-grub不会检测到我的Windows 8安装. 我的发行版内核(我不需要大量模块)找到了Windows 8安装并将其添加到grub2菜单中没有任何问题,所以我必须缺少一些内核功能/模块. 要检测Windows 8引导加载程序需要哪些内核功能.添加到grub启动菜单?解决方法:os-prober(由update-grub使用)需要以下内核功能来检测Windows 8引导加载程序. >设备驱动程序 – > >多设...