Questions tagged «linux-kernel»

有关Linux内核和Linux内核相关主题的问题,例如。实现细节,例如系统调用,内核自定义等。对于不涉及内核细节的Linux用户空间主题,[linux]或发行标签更为合适。

7
为什么安装需要root特权?
为什么Linux要求用户必须是root用户/使用sudo /每次安装都经过特定授权才能安装某些东西?似乎是否允许用户安装某些东西的决定应该基于他们对源卷/网络共享和安装点的访问权限。非root用户挂载的两个用途是将文件系统映像挂载到用户拥有的方向,并将网络共享挂载到用户拥有的目录。似乎如果用户可以控制安装方程式的两侧,那么一切都应该很酷。 澄清访问限制: 我认为我应该能够装载用户可以访问的任何装载点,否则该装载点将是用户的所有者。 例如,在我的计算机上,/ dev / sda1由拥有权限的root用户和组磁盘拥有brw-rw----。因此,非root用户不能弄乱/ dev / sda1,并且显然mount不应允许他们挂载它。但是,如果用户拥有/home/my_user/my_imagefile.img和挂载点/ home / my_user / my_image /,为什么他们不能使用以下命令在该挂载点上挂载该映像文件: mount /home/my_user/my_imagefile.img /home/my_user/my_image/ -o loop 正如kormac指出的那样,存在一个suid问题。因此,必须添加一些限制来防止suid成为问题以及潜在的其他问题。也许这样做的一种方法是使操作系统将所有文件视为属于执行挂载的用户。但是对于简单的读/写/执行,我不明白为什么这会是一个问题。 用例: 我在实验室中有一个帐户,我的家庭空间限制为8GB。这很小,很烦人。我想从我的个人服务器上挂载nfs卷,以实质上增加我所拥有的空间。但是,由于Linux不允许这种事情,所以我只能将来回传输文件的速度限制在8GB以下。

3
在Linux上,“正常运行时间”何时开始计算?
我的电脑说: $ uptime 10:20:35 up 1:46, 3 users, load average: 0,03, 0,10, 0,13 如果我检查,last我会看到: reboot system boot 3.19.0-51-generi Tue Apr 12 08:34 - 10:20 (01:45) 然后我检查: $ ls -l /var/log/boot.log -rw-r--r-- 1 root root 4734 Apr 12 08:34 boot.log 然后在/var/log/syslog今天的第一行中看到: Apr 12 08:34:39 PC... rsyslogd: [origin software="rsyslogd" swVersion="7.4.4" x-pid="820" x-info="http://www.rsyslog.com"] …

3
内核有main()函数吗?[关闭]
我正在学习设备驱动程序和内核编程。根据Jonathan Corbet的书,main()设备驱动程序中没有功能。 所以我有两个问题: 为什么我们不需要main()设备驱动程序中的功能? 内核本身是否具有main()功能? 谁可以给我解释一下这个?


7
是否可以单独安装Linux内核?
我只是好奇是否可以单独安装Linux内核,或者是否需要使用其中一种。如果可能,您将如何做?我不需要详细的教程。我只想知道它将在概念上如何完成。我对低级的东西不好,并且想知道如何将操作系统带入计算机。我想这与MBR有关。 哦,我注意到很多答案都表明某些最小Linux的一定分布。我可能应该说过,我并不想安装最小或裸露的Linux。这个问题纯粹是理论上的。尽管如此,我还是非常感谢所有答案,如果我想安装真正个性化的Linux,请立即参考它们。


3
为什么有Linux内核策略可以永不中断用户空间?
我开始在Linux Kernel Mailing列表上的礼节中考虑此问题。作为世界上最著名,可以说是最成功,最重要的自由软件项目,Linux内核受到了广泛的关注。该项目的创始人和负责人Linus Torvalds在这里显然不需要介绍。 莱纳斯(Linus)在LKML上有时会引起争议。他自己承认,这些火焰经常与破坏用户空间有关。这使我想到了我的问题。 关于中断用户空间为何如此糟糕,我可以有一些历史观点吗?据我了解,破坏用户空间将需要在应用程序级别进行修复,但这是否不好,如果它可以改善内核代码呢? 据我了解,Linus声明的政策是不破坏用户空间胜过其他一切,包括代码质量。为什么这如此重要,这种政策的利弊是什么? (显然,一贯实施的这种政策存在一些弊端,因为莱纳斯偶尔就其主题在LKML上与他的高级副手之间存在“分歧”。据我所知,他总是在此事上有所作为。)



1
将CPU调速器设置为按需或保守
我cpupower在ArchLinux上苦苦挣扎。我想将州长设置为ondemand,甚至设置为conservative。 首先,如果我这样做$ sudo cpupower frequency-info --governors,我只会得到performance powersave。 所以我寻找这样的可用模块 ls -1 /lib/modules/`uname -r`/kernel/drivers/cpufreq/ ...我得到 acpi-cpufreq.ko.gz amd_freq_sensitivity.ko.gz cpufreq_conservative.ko.gz cpufreq_powersave.ko.gz cpufreq_stats.ko.gz cpufreq_userspace.ko.gz p4-clockmod.ko.gz pcc-cpufreq.ko.gz powernow-k8.ko.gz speedstep-lib.ko.gz 因此,首先似乎没有“按需”模块。我想念什么? 然后,我尝试启用至少保守的功能: $ sudo modprobe cpufreq_conservative 然后我检查模块是否实际加载 $ lsmod | grep cpufreq 并检查它现在是否可用 $ sudo cpupower frequency-info --governors 但不幸的是,我仍然得到相同的结果:performance powersave只有,如果我尝试启用保守 $ sudo cpupower frequency-set -g conservative 它说该模块不可用。 …

2
为什么在`rm`坏后关闭计算机电源会保存我的文件?
经典情况:我遇到了麻烦rm,立即意识到我删除了错误的文件。(没有什么紧要关头,我可以容忍最近的备份,但仍然很烦人。) 如果想使用extundelete此类工具恢复文件,我知道进一步的磁盘活动是我的敌人,所以我立即物理关闭了计算机的电源(即使用电源按钮,而不是使用halt诸如此类的命令)。这是一台笔记本电脑,没有重要任务在运行,也没有打开任何东西,因此是可以接受的操作。(顺便说一句,从那以后我就知道,在这种情况下要做的第一件事就是首先估计丢失的文件是否仍然可以通过https://unix.stackexchange.com/a/101247进程打开-如果是,则应以这种方式恢复它们,而不是关闭机器电源。) 尽管如此,一旦机器断电,我想了一会儿并认为文件不值得花时间启动实时系统进行适当的取证。所以我重新启动了机器。然后我发现我的文件仍坐在磁盘上:在rm断电之前,这些文件还没有传播到磁盘上。我跳了一点舞,感谢系统管理员之神的意想不到的宽恕。 现在我的问题是了解这是怎么可能的,以及在将an rm实际传播到磁盘之前的典型延迟是多少?我知道磁盘IO不会立即刷新,但会在内存中放置一段时间,但是我认为磁盘日志会迅速确保挂起的操作不会完全丢失。https://unix.stackexchange.com/a/78766似乎暗示了一种单独的机制来刷新脏页和刷新日记帐操作,但没有提供足够的详细信息说明日记帐将如何涉及到rm以及预期的延迟时间操作被刷新。 更多详细信息:数据位于LUKS卷内的ext4分区中,并且在备份计算机时,我在中看到以下内容syslog: Sep 24 10:24:58 gamma kernel: [ 11.457007] EXT4-fs (dm-0): 1 orphan inode deleted Sep 24 10:24:58 gamma kernel: [ 11.458393] EXT4-fs (dm-0): recovery complete Sep 24 10:24:58 gamma kernel: [ 11.482475] EXT4-fs (dm-0): mounted filesystem with ordered data mode. Opts: (null) 但是我不相信它与rm。 另一个问题是是否有一种方法可以告诉内核不执行任何未决的磁盘操作(而是将其转储到某个地方),而不是关闭计算机电源。(当然,不执行挂起的操作听起来很危险,但是无论如何关闭机器电源,都会发生这种情况,并且在某些情况下可以节省您的时间。)这当然会“更清洁”,也很有趣例如,对于那些不易关闭物理电源的远程服务器。


2
在UEFI / EFI引导中,何时需要将add_efi_memmap指定为内核参数?
我正在阅读一些教程,了解如何EFI存根(efistub)加载Linux内核。这些指令通常使用内核引导参数add_efi_memmap。预期的硬件是具有8GB RAM的Intel x64。我当前的设置正在运行grub-efi引导程序和内核v3.13。 GRUB引导,而不在add_efi_memmap引导参数: 23BIOS-e820行数dmesg | grep BIOS-e820: | wc -l 243EFI内存行的计数dmesg | grep efi:\ mem | wc -l DMA区域:24保留页 内存:7840568K / 8283384K可用 442816K保留 GRUB引导与 add_efi_memmap EFI内存映射的大小似乎有所不同: 23 BIOS-e820行 57 EFI内存线 DMA区域:22保留页 内存:7885076K / 8283384K 398308K保留 EFI存根启动不包含 add_efi_memmap: 22 BIOS-e820行 60 EFI内存线 DMA区域:21保留页 内存:可用7885012K / 8283384K EFI存根启动用 add_efi_memmap: 22 BIOS-e820行 …

2
ip vs ifconfig命令的优缺点
在某种程度上,在我遇到的有关Linux的一些教材(来自Linux Foundation)中,提到了以下内容: ip该命令比ifconfig使用Netlink套接字而不是ioctl系统调用更为通用和高效。 任何人都可以详细说明一下,因为我不了解幕后情况。 PS我知道这些工具上的这个主题,但没有解决它们在操作方式上的特定差异

2
Linux内核的系统关闭如何在内部工作?
对于系统关闭时用户空间和init-system(经典的init sysV / upstart / systemd)如何工作,我有个大概的想法。(本质上是“ Stop!”,“请立即停止”,“我需要杀死您以停止的过程”并等待...的顺序。) 无论如何,我非常不知道内核中的系统关闭是如何工作的(肯定还有很多事情要做)? 我尝试查看内核文档https://www.kernel.org/doc/htmldocs/,甚至使用NSA的pal搜索工具为我提供了寻找其工作原理的开端。 我还搜索了SE U + L,却一无所获(我是否忽略了它?) 无论如何,尽管这个问题可能有点挑战性,但它会在这个问答网络中得到一个答案,因为我认为会有更多的人有兴趣了解关闭时Linux内核中发生的情况。 可能还会进行更改,以链接到一些更详细的说明。 答案可能包括使用哪些系统调用和哪些内核信号? https://github.com/torvalds/linux/blob/b3a3a9c441e2c8f6b6760de9331023a7906a4ac6/arch/x86/kernel/reboot.c 似乎是与重启相关的x86使用文件(已经接近关机,是吗?) 也许 可以在http://lxr.free-electrons.com/source/kernel/reboot.c#L176此处找到的代码片段进行解释 176 void kernel_power_off(void) 177 { (178)第178章 第179章 180 pm_power_off_prepare(); 第181回 第182回 183 pr_emerg(“ Power down \ n”); 184 kmsg_dump(KMSG_DUMP_POWEROFF); 第185章 186} 第187章(二更)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.