标签: linux-kernel

为什么我们需要linux中的交换器任务?

选择空闲任务(也称为交换器任务),以便在任务调度点处的运行队列中不再有可运行的任务时运行.但这项特殊任务的用途是什么?另一个问题是为什么我无法在用户区的"ps aux"输出(PID = 0)中找到此线程/进程?

linux scheduled-tasks linux-kernel

42
推荐指数
3
解决办法
3万
查看次数

How to read, understand, analyze and debug a Linux kernel panic?

Consider the following linux kernel dump stack trace, you can trigger a panic from the kernel source code by calling panic("debugging a linux kernel panic");:

[<001360ac>] (unwind_backtrace+0x0/0xf8) from [<00147b7c>] (warn_slowpath_common+0x50/0x60)
[<00147b7c>] (warn_slowpath_common+0x50/0x60) from [<00147c40>] (warn_slowpath_null+0x1c/0x24)
[<00147c40>] (warn_slowpath_null+0x1c/0x24) from [<0014de44>] (local_bh_enable_ip+0xa0/0xac)
[<0014de44>] (local_bh_enable_ip+0xa0/0xac) from [<0019594c>] (bdi_register+0xec/0x150)
Run Code Online (Sandbox Code Playgroud)
  • In unwind_backtrace+0x0/0xf8 what the +0x0/0xf8 stands for?
  • How can I see the C code of unwind_backtrace+0x0/0xf8?
  • How to interpret the panic's content?

c linux debugging linux-kernel panic

41
推荐指数
3
解决办法
6万
查看次数

KVM和LXC之间的区别

KVM和Linux容器(LXC)有什么区别?对我来说,如果我们同时使用内核的"命名空间"和"控制组"功能,那么LXC也是在同一内核中创建多个虚拟机的一种方式.

kvm linux-kernel lxc cgroups linux-namespaces

40
推荐指数
3
解决办法
3万
查看次数

为什么Linux不通过TSS使用硬件上下文切换?

我读了以下声明:

x86架构包括称为任务状态段(TSS)的特定段类型,用于存储硬件上下文.尽管Linux不使用硬件上下文切换,但它仍然被迫为系统中的每个不同CPU设置TSS.

我想知道:

  • 为什么Linux不使用硬件支持进行上下文切换?
  • 硬件方法不是比软件方法快得多吗?
  • 是否有任何操作系统可以利用硬件上下文切换?Windows使用它吗?

最后一如既往,感谢您的耐心和回复.

- - - - - -添加 - - - - - - -

http://wiki.osdev.org/Context_Switching得到了一些解释.

像我这样迷茫的人可以看看它.8 ^)

linux x86 low-level linux-kernel

39
推荐指数
3
解决办法
1万
查看次数

如何知道linux调度程序的时间片?

我正在寻找Linux内核的时间片(或量子)的值.

有没有/proc公开此类信息的文件?

(或)它在我的发行版的Linux头文件中是否定义良好?

(或者)是否有Linux API(可能是sysinfo)的C函数公开此值?

提前致谢.

c linux linux-kernel embedded-linux procfs

39
推荐指数
5
解决办法
5万
查看次数

Linux如何确定下一个PID?

Linux如何确定它将用于进程的下一个PID?这个问题的目的是为了更好地理解Linux内核.不要害怕发布内核源代码.如果顺序分配PID,Linux如何填补空白?当它到达终点时会发生什么?

例如,如果我从Apache运行一个PHP脚本,那么<?php print(getmypid());?>在刷新时会打印出相同的PID几分钟.这段时间是apache接收的请求数量的函数.即使只有一个客户端,PID最终也会改变.

当PID改变时,它将是一个接近的数字,但有多近?该数字似乎并不完全是连续的.如果我这样做,ps aux | grep apache我会得到相当多的过程:

在此输入图像描述

Linux如何选择下一个号码?前几个PID仍在运行,以及最近打印的PID.apache如何选择重用这些PID?

linux apache kernel linux-kernel

38
推荐指数
3
解决办法
2万
查看次数

Linux堆栈大小

我正在寻找linux内核中堆栈的良好描述,但我发现很难找到任何有用的东西.

我知道大多数系统的堆栈限制为4k,其他系统的堆栈限制为8k.我假设每个内核线程/下半部分都有自己的堆栈.我也听说如果一个中断发生,它会使用当前线程的堆栈,但是我找不到任何关于这个的文档.我正在寻找的是如何分配堆栈,如果有任何好的调试例程(我怀疑特定问题的堆栈溢出,我想知道是否有可能将内核编译为警察堆栈大小等).

linux linux-device-driver linux-kernel

38
推荐指数
3
解决办法
4万
查看次数

Linux内核代码中"EXPORT_SYMBOL"的含义是什么?

从这里开始

 48 struct snd_card *snd_cards[SNDRV_CARDS];
 49 EXPORT_SYMBOL(snd_cards);
Run Code Online (Sandbox Code Playgroud)

我不知道它的含义以及为什么使用它.我试图搜索它,但没有理解它的含义.

c linux linux-kernel

38
推荐指数
3
解决办法
5万
查看次数

Linux内核中的Slab和Slub Allocator之间有什么选择?

有哪些因素有助于决定Linux内核中内存分配器的选择?

在目前的Linux内核中,我们可以选择SLAB,SLUB或SLOB.我已经读过SLOB用于较小脚印的内核.但我想知道有助于在Slab Allocator和Slub Allocator之间做出决定的因素.

memory-management linux-kernel

38
推荐指数
1
解决办法
2万
查看次数

如何编译dts Linux设备树源文件到dtb?

我有一个设备树文件(.dts),我想为我的powerpc基板编译文件.

我怎样才能在我的机器上进行,这不是基于powerpc的?我可以使用我的Ubuntu系统上安装的DTC吗?或者更像是使用单独的编译器并传递ARCH信息(比如使用工具链)?

powerpc cross-compiling linux-kernel embedded-linux device-tree

36
推荐指数
3
解决办法
5万
查看次数