Questions tagged [kernel]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
对操作系统中使用的“系统调用”机制有很好的描述吗?
我正在寻找系统调用机制的良好入门或技术描述,操作系统使用该机制从用户空间转换到内核以调用诸如“打开”、“读取”、“写入”等函数......
除了维基百科条目之外还有其他内容吗?欢迎使用网站、pdf、书籍、源代码 :)
yum 无法更新 Centos 6 内核,uname -r 仍然显示旧版本
我发送了这些命令:
如您所见,它仍在运行 2.6.32 内核的旧版本,而 yum 说我安装了另一个版本。我重新启动了系统,它是一个vps。
struct task_struct 中的字段“on_cpu”和struct thread_info 中的字段“cpu”是什么意思?
我想知道当前进程在Linux系统中运行在哪个cpu上,我有两个选择——
- 获取
on_cpu
结构中的字段task_struct
或 - 获取
cpu
struct中的字段thread_info
。
我编写了一个内核模块编程来探测这两个字段,并得到以下结果:
而且我不知道这两个字段的正确含义。
内核:如何从进程的 task_struct 中找到所有线程?
给定一个进程或线程的任务结构,遍历属于同一进程的所有其他线程的习惯用法是什么?
系统调用修改
我正在做两个系统调用(linux 3.2)。我创建了这两个系统调用,并编译了内核。这两个系统调用需要对文件进行写入和读取。我将修改两个系统调用,read 和 write 来读取这个文件。所以这个文件需要被这四个系统调用(读、写和我的两个系统调用)访问。我的问题是,我可以在哪里以及如何创建此文件以及如何访问和修改它。我将只将此文件用于这些系统调用。
Linux内核在哪里寻找可执行文件
首先是一些背景。我最近安装了一些软件(实际上是 TeX live),并且二进制文件由安装程序放置在非标准位置(/usr/local/texlive/2011/bin/x86_64-linux)。没问题,因为我可以更改 $PATH 以包含此目录。但是,我在 Makefiles 中使用了乳胶,Make 说它找不到“乳胶”。我最终意识到 Make 要求内核以独立于 shell 的方式运行乳胶。因此,我将所有乳胶可执行文件移动到 /usr/local/bin 并且一切正常,大概是因为内核现在可以看到可执行文件。
如果这是正确的,我的问题是:当被要求运行一个独立于 shell 的程序时,内核在哪里寻找可执行文件?
MIPS 中的操作系统如何访问外围设备?
我已经阅读了一段时间的 MIPS 汇编语言,只是为了学习。我现在知道用户代码中的系统调用和异常使处理器跳转到内核和异常处理所在的内存中的某个位置。
我很好奇操作系统如何访问外围设备,因为我看不到任何其他相关说明。处理器是导出自己的一组基本系统调用,还是外围设备以某种方式映射到内存?
make include/linux/version.h 时仍然缺少 version.h
我将在 linux 中为我的以太网 atheros ar8152 编译源代码并需要它的内核源代码。所以我通过输入 apt-get install apt-get install kernel-source-2.6.32 来获取源代码。然后 cd /usr/src
tar -jxvf kernel-source-2.6.32.tar.bz2 ln –s linux-source-2.6.32 linux
我正在做的安装源以太网是:make install
我收到错误消息:未配置 Linux 内核源 - 缺少 version.h
然后,我转到内核源目录 make include/linux/version.h
再试一次,我仍然收到上面的错误消息。
接下来我该怎么办?
需要你的帮助!
Linux内核中的stdlib.h替代品?
在 Linux 中开发内核模块时,不允许使用 C 标准库。
但是,如果我需要使用一些常见的功能,例如strcat()
,我需要去哪里?
有使用 SANOS 操作系统内核的经验吗?
当我遇到SANOS时,我正在浏览一个开源内核,这感觉像是值得作为开源保持活力的东西。为了使其达到现代标准,需要进行以下增强:
- 支持多个 CPU/内核
- 添加 IPv6(目前仅支持 IPv4)
- 能够运行 8192 个并发线程
- 能够支持 JDK 1.6 所需的附加仿真
所以,我有以下问题:
- 这里有没有人想分享他们使用 sanos 的经验?
- 什么是吸引其他愿意贡献时间以使其变得更好的人的最方便的方法?
- 它在哪些方面比 BSD 和/或 Linux 中使用的内核更好?
- 将 Ruby 移植到这个平台有什么好处吗?