问题标签 [linux-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.
linux - How can I disable "demand paging" for one of my userspace programs?
For an dedicated test I have to disable "demand paging" for exactly one of my userspace programs
Any idea how I could do this ? (embedded linux appliance; 2.6 kernel)
linux - 是否可以用 gcc 以外的东西编译 Linux 内核
我想知道是否有人设法用 gcc 以外的其他编译器编译 Linux 内核。或者如果有人曾经尝试过?问题可能看起来很愚蠢或学术性的,但是当我想到以下问题的答案时就出现了:Are C++ int operations atomic on the mips architecture
似乎某些操作的原子性不仅取决于 cpu 架构,还取决于使用的编译器。所以,我想知道在 Linux 世界中是否存在除 gcc 之外的其他编译器。
licensing - 使用 GPL 的非 GPL 内核模块
我工作的公司正在开发一个闭源内核模块(.ko 文件)。该模块必须调用 gpl2 模块中包含的函数。基本上我们有这样的情况:
这合法吗?在这个例子中我们是否违反了 GPL2 许可?请注意,closed.c 不包含任何 gpl2 头文件。
multithreading - 1024 个 CPU 的内核调度
Azul Systems 的设备支持数千个缓存一致的 CPU。我很想深入了解操作系统需要发生哪些更改才能安排数千个同时运行的线程。
linux - 可靠的UDP
如何开发 Linux 内核模块以使 UDP 可靠?这是我的大学作业,我不知道如何进行。如何通过加载新的内核模块来更改 linux 内核中的默认 UDP 行为?以及如何编写这样的内核模块?
c - 内核模块中的进程描述符
是否可以获得指向内核模块中进程的进程描述符的指针?如果可能,请发布如何?我需要找到进程打开的所有文件及其每个文件描述符的偏移值....
open-source - 有使用 SANOS 操作系统内核的经验吗?
当我遇到SANOS时,我正在浏览一个开源内核,这感觉像是值得作为开源保持活力的东西。为了使其达到现代标准,需要进行以下增强:
- 支持多个 CPU/内核
- 添加 IPv6(目前仅支持 IPv4)
- 能够运行 8192 个并发线程
- 能够支持 JDK 1.6 所需的附加仿真
所以,我有以下问题:
- 这里有没有人想分享他们使用 sanos 的经验?
- 什么是吸引其他愿意贡献时间以使其变得更好的人的最方便的方法?
- 它在哪些方面比 BSD 和/或 Linux 中使用的内核更好?
- 将 Ruby 移植到这个平台有什么好处吗?
linux - 确定进程花费在阻塞/执行上的时间量
好的,所以对于我的编程任务(是的,我们都可以求助于我们认为合适的任何资源)我必须找出进程花费了多少时间阻塞/睡眠/运行。
我的第一次尝试是创建一个 bash 脚本......看起来像这样:
但随后所有的问题都在报告睡眠状态。再加上这种方法会要求我像疯了一样投票......所以运行测试可能会改变结果......(呃)
现在,使用系统调用或跟踪进程状态的方法来编译新版本的 linux 并非不可能。我唯一担心的是试图找出如何跟踪不断变化的进程状态并确保我不会错过任何东西......
c - open() 返回“没有这样的设备”错误,但是有这样的设备(linux)
我正在尝试使用一个有点旧的 DAQ,并且不得不跳过一些圈来获得一个旧的(大约 2004 年)设备驱动程序来编译它(DTI-DT340 Linux-DAQ-PCI)。
我已经到了可以编译的地步,我可以加载内核模块,它找到卡,我可以使用 mknod 创建字符设备。
但是当我尝试打开这些设备时,我似乎无法打开这些设备并不断收到errno 19 (ENODEV) 'No such device'
但是 mknod 对制作它没有任何抱怨,而且它就在那里:
有什么我忽略的事情吗?打开失败的原因可能是什么?
这是我用来加载驱动程序和制作设备的脚本。
一些附加信息:
回答: printk 确认 -ENODEV 是从 open() 内部抛出的。遵循旧式
(已弃用),if(!pdev)
以 true 结束,并返回 -ENODEV。
我越来越近了——我想我必须完成并更新 pci 代码以使用更现代的机制......
c - 如何在内核和用户空间之间创建“netlink”?
我想使用 netlink 在应用程序和内核空间之间进行通信。我的Linux内核版本是2.6.28,下面是我的错误代码:
简短的错误消息是:
在文件<linux/netlink.h>
中,函数netlink_kernel_create()
定义为
我不明白第一个参数使用什么,net
. 有人可以解释我应该在这里使用什么吗?