问题标签 [procfs]
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-kernel - 如何访问内核空间中的内核参数
这是我的实验室任务之一:我必须在此处创建一个 proc 条目:/proc/sys/kernel/并且我必须编写一个系统调用来为我刚刚添加的 proc 条目的不同值操作用户空间变量。例如:假设用户空间变量为 1,proc 条目为 0 或 1。现在系统调用应将用户空间变量增加 1(如果 proc 条目为 0/off)或将其乘以 2(如果 proc 条目为 1 /上)
我执行以下操作来添加 proc 条目:我通过在 kernel/sysctl.c 中的文件的内核 ctl 表部分下添加一个结构来创建一个条目 xxx。编译内核,系统使用该内核启动良好。该条目也作为 /proc/sys/kernel/xxx 添加到 proc 目录中。我现在可以从用户空间读取或写入它。我同时做了 cat 和 echo 来读写。
我在系统调用中做了以下事情:我写了一个系统调用来读取用户空间变量。我还完成并测试了 access_ok、copy_from user、copy_to_user 等等。我还完成了操作用户空间变量以始终递增(现在)。
我面临的问题:现在,我必须添加一个 if 条件来检查“xxx”值,以确定我应该增加还是乘以用户空间变量。这就是我卡住的地方。不是在写系统调用。我不知道如何阅读这个 proc 条目“xxx”。
- 我可以使用文件处理吗?
- 如果是这样,我应该在我的系统调用中使用 open() 系统调用吗?它会起作用吗?
当我检查时,有 sysctl 系统调用,但现在似乎已弃用。这个IBM 教程讨论了阅读 proc 条目。但是 create_proc_entry 不适用于 /proc/sys/kernel 目录中的参数,对吗?如果是这样,我怎么能使用 read proc entry 功能?
linux - /proc/$PID/pmaps 中出现了哪些库?
在 Linux 上,您可以检查 /proc/$PID/pmaps 以查看特定程序加载的库,并且程序可以打开 /proc/self/pmaps 以检查它本身已加载的库。
我知道 pmaps 只会包含动态库,显然内核无法预测我们以后可能会打开哪些库,所以我希望这些库不包含在 /proc/self/maps 中。但我不确定其他一些情况:
是否包含在构建时已链接但我们尚未调用任何函数的库?我的理解是 Linux 会延迟链接符号,直到第一次使用它们,所以我不确定它们是否会出现。
pmaps 是否包含所有递归使用的库?例如,如果我查看 pmaps 中的每个库并在其上运行 ldd,然后在这些库上运行 ldd,令人作呕,我不应该找到任何不在原始 pmaps 中的新库?我在几个二进制文件上试过这个,看起来是这样,但也许我很幸运。
c++ - 以非 root 用户身份以编程方式删除 Linux 缓存
出于测试目的,我可以通过写入 Linux 中 procfs 下的 drop_caches 文件来删除缓存内存。我只能以 root 身份执行此操作。这是在嵌入式 Linux 上,所以没有 sudo。
我可以通过从帖子中执行某些操作在 C++ 中以编程方式写入文件 -->如何在 Linux 系统上以编程方式清除 C++ 中的文件系统内存缓存?
挑战是希望在以非 root 用户身份运行应用程序时执行此操作。重新启动时,权限如下所示:
而且您似乎无法更改这些权限 - 即使以 root 身份:
我怎样才能在 Linux 上做到这一点?是否可以更改 procfs 文件的权限?如有必要,我可以完全定制我的内核。谢谢 -
linux - setenv/clearenv + procfs 环境
/proc/pid/environ
如果进程修改了其环境,是否可以从文件中获取相关信息?我的测试表明setenv/putenv/clearenv
不更新environ
文件。但是,bash
可以调用unset ENV
并查看 procfs 的变化。
linux - 审计过程
我想跟踪 GNU/Linux 机器上的重要系统更改,例如禁用 PaX、启用流量转发、ICMP 重定向、更改 printk 详细级别等。一般来说,所有这些操作都基于 /proc/sys/kernel/* 文件的更改。到目前为止,我还没有找到任何审计 procfs 的方法。也许使用 /proc/sys/kernel/* 值作为第一个参数(a0)为“写入”系统调用设置监视规则是可行的方法......只是想知道。但是,无法在 a0-3 auditd rules -F 参数中使用通配符,因此在最坏的情况下,我必须为该目录中的每个重要文件创建单独的规则。我会感谢任何有关此问题的提示,在此先感谢。
android - API中的Android Strange蓝牙问题或我遗漏了一些东西
我的问题是我无法找到我自己的蓝牙设备的设备类别和设备服务。虽然我可以使用
我什至尝试访问 sys>devices>virtual path 中的蓝牙文件夹,但该文件夹并非位于每个设备中。
有没有办法通过访问proc文件系统来获取蓝牙信息,如果是,请帮忙。
真的很奇怪,我能够通过获取远程设备的蓝牙类
btAdapter.getBondedDevices();//返回蓝牙设备类的集合
但我无法获得默认(自己的)蓝牙的设备类。
linux - 在 Linux 中获取 TCP RTT
我需要获取 TCP 流的 RTT。我已经查看了 proc 文件系统,但无法获得 TCP 的 RTT 值。如果有人对此有任何想法,请分享 RTT 将存储在哪个文件中。
提前致谢。
c - 如何知道linux调度器时间片?
我正在寻找我的 Linux 内核的时间片(或量子)的值。
具体问题:
- 是否有
/proc
公开此类信息的文件? - (或者)它在我的发行版的 Linux 标头中是否明确定义?
- (或者)Linux API(可能是 sysinfo)的 C 函数是否公开了这个值?
linux-kernel - 在 /proc/net 中创建 ProcFS 条目
我尝试/proc/net
从内核模块内部创建一个条目,如下所示:
为什么它会创建我的条目/proc/test
而不是/proc/net/test
?
(注意:我也想使用create_proc_entry
,而不是proc_create
。)