Questions tagged «kernel»

有关UNIX内核的所有内容:开发,配置,编译,设计等。

1
如何在Linux系统上清空缓冲区和缓存?
在进行基准测试之前,如何释放Linux内核为其缓冲区和缓存消耗的内存(RAM)? 请注意,这对于基准测试最有用。清空缓冲区和缓存会降低性能!如果您在这里是因为您认为释放缓冲区和缓存是一件好事,那就去看Linux吃我的RAM!。简而言之:空闲内存就是未使用的内存就是浪费的内存。
315 linux  kernel  performance  cache  ram 

4
Segmentation Fault在后台如何工作?
除了“ CPU的MMU发送信号”和“内核将其定向到有问题的程序,终止它”之外,我似乎找不到任何其他信息。 我以为它可能会将信号发送到外壳,外壳通过终止有问题的进程和打印来处理它"Segmentation fault"。因此,我通过编写一个极小的shell (称为crsh(废话外壳))测试了该假设。该外壳程序不执行任何操作,只是接受用户输入并将其输入给system()方法。 #include <stdio.h> #include <stdlib.h> int main(){ char cmdbuf[1000]; while (1){ printf("Crap Shell> "); fgets(cmdbuf, 1000, stdin); system(cmdbuf); } } 因此,我在一个裸终端(没有bash在下面运行)中运行了这个shell 。然后,我继续运行一个产生段错误的程序。如果我的假设正确,则可能是a)崩溃crsh,关闭xterm,b)不打印"Segmentation fault"或c)两者。 braden@system ~/code/crsh/ $ xterm -e ./crsh Crap Shell> ./segfault Segmentation fault Crap Shell> [still running] 回到正方形,我猜。我刚刚演示了执行此操作的不是外壳程序,而是其下的系统。甚至如何打印“细分故障”?“谁”在做?内核?还有吗 信号及其所有副作用如何从硬件传播到程序的最终终止?


1
达到内核inotify监视限制
我目前在linux机器上遇到问题,因为我已经以root身份返回了返回错误的命令,因为已经达到了inotify监视限制。 # tail -f /var/log/messages [...] tail: cannot watch '/var/log/messages': No space left on device # inotifywatch -v /var/log/messages Establishing watches... Failed to watch /var/log/messages; upper limit on inotify watches reached! Please increase the amount of inotify watches allowed per user via '/proc/sys/fs/inotify/max_user_watches'.` 我用谷歌搜索了一下,发现的每个解决方案都是通过增加以下限制: sudo sysctl fs.inotify.max_user_watches=<some random high number> …
206 linux  kernel  inotify 

4
我如何在Linux下从/ proc / $ pid / mem中读取?
在Linux的proc(5)手册页告诉我,/proc/$pid/mem“可用于访问进程的内存的页面”。但是直接尝试使用它只会给我 $ cat /proc/$$/mem /proc/self/mem cat: /proc/3065/mem: No such process cat: /proc/self/mem: Input/output error 为什么无法cat打印自己的内存(/proc/self/mem)?当我尝试打印外壳程序的内存时(/proc/$$/mem很明显该进程存在),这个奇怪的“没有这样的进程”错误是什么?那我该如何阅读/proc/$pid/mem?
142 linux  kernel  process  memory  proc 



3
为什么默认将swappiness设置为60?
我刚刚读了一些有关Linux上交换性能的内容。我不明白为什么默认设置为60。 据我说,该参数应设置为10,以减少交换。交换位于我的硬盘驱动器上,因此它比内存慢得多。 他们为什么要这样配置内核?
109 linux  kernel  swap 




12
延迟将数据写入磁盘的背后原理是什么?
在Linux中,命令的完成执行(例如cp或dd不代表已将数据写入设备)。例如,必须调用sync或调用驱动器上的“安全删除”或“弹出”功能。 这种方法背后的哲学是什么?为什么不立即写入数据?是否存在由于I / O错误而导致写入失败的危险?

3
用户空间和内核空间之间有什么区别?
当代表用户程序(即系统调用)执行内核时,是否使用了内核空间?还是所有内核线程(例如调度程序)的地址空间? 如果是第一个,则意味着普通用户程序不能拥有超过3GB的内存(如果划分为3GB + 1GB)?另外,在那种情况下内核如何使用高级内存,因为逻辑上将映射1GB内核空间,因此高级内存中的页面将映射到哪个虚拟内存地址?
72 linux  kernel  drivers 

2
什么是内核ip转发?
我在很多博客上都看到过,使用此命令启用IP转发,同时在Linux上使用许多网络安全/嗅探工具 echo 1 > /proc/sys/net/ipv4/ip_forward 谁能用外行人的方式解释我,这个命令的本质是什么?它会将您的系统变成路由器吗?
70 linux  kernel  ip  routing 

6
内核驱动程序和内核模块之间有什么区别?
当我lspci -k使用3.2.0-29-通用内核在Kubuntu上执行操作时,我会看到类似以下内容: 01:00.0 VGA compatible controller: NVIDIA Corporation G86 [Quadro NVS 290] (rev a1) Subsystem: NVIDIA Corporation Device 0492 Kernel driver in use: nvidia Kernel modules: nvidia_current, nouveau, nvidiafb 有一个内核驱动程序nvidia和内核模块nvidia_current,nouveau,nvidiafb。 现在我想知道内核驱动程序和内核模块之间有什么区别?

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.