linux-kernel相关内容

是否有宏定义来检查Linux内核版本?

我想知道是否有一个gcc宏会告诉我Linux内核版本,所以我可以适当地设置变量类型。如果没有,我将如何去定义我自己的这个宏? linux / version.h 文件有一个名为 KERNEL_VERSION 的宏,它可以让你根据当前的linux头文件版本( LINUX_VERSION_CODE )已安装。例如,要检查当前的Linux头文件是否适用于内核 v2.6.16 或更早的版本: #包括 ..
发布时间:2018-04-20 16:00:56 服务器开发

在Linux内核中使用浮点

我正在阅读罗伯特·洛夫(Robert Love)的“Linux内核开发”,我碰到以下的一段话: $ b )使用浮点 当用户空间进程使用浮点指令时,内核管理从整数到浮点模式的转换。当使用浮点指令时,内核要做的事情因体系结构而异,但内核通常会捕获一个陷阱,然后启动从整数到浮点模式的转换。 与用户空间不同的是,内核并没有对浮点的无缝支持,因为它不能轻易陷入自身。在内核中使用浮点需要手 ..
发布时间:2017-12-19 22:26:09 服务器开发

对jffs2 Linux文件系统的O_DIRECT支持

我试图用O_DIRECT打开一个文件,我们使用的是jffs2 fd = open(filename,O_RDONLY | O_DIRECT | O_SYNC); 但是我只得到一个“无效的参数”错误。 我也试过解决方案 中,但是无济于事。 Ofcourse我也已经把“-D_GNU_SOURCE”放在源代码中。 我读过tmpfs不支持O_DIRECT,但是不能 ..
发布时间:2017-11-06 21:57:39 服务器开发

VFS:达到文件最大限制1231582

我正在运行一个Linux 2.6.36内核,我看到一些随机错误。像 ls:加载共享库时出错:libpthread.so.0:无法打开共享对象文件:错误23 是的,我的系统无法持续运行'ls'命令。 : 我注意到在我的dmesg输出中有几个错误: pre $ #dmesg | tail [2808967.543203] EXT4-fs(sda3):re ..
发布时间:2017-11-06 21:53:36 服务器开发

如何从Linux内核的struct dentry中获得完整的路径名

我正在编写自己的内核模块,它捕获 vfs_mkdir(struct inode *,struct dentry *,int)内核函数调用,并尝试记录磁盘路径名 我想用 dentry_path 内核函数来转换 struct dentry * 到一个路径名。 当我插入模块时,出现错误 未知符号dentry_path 我的内核版本是2.6.32,它应该被导出。 我找不出原因。 是 ..
发布时间:2017-11-06 21:52:16 服务器开发

posix_fadvise(WILLNEED)使IO更慢?

在运行Linux内核版本2.6.18-194.26.1.el5的CentOS 5.5机器上,我注意到posix_fadvise(WILLNEED)使读取60K文件的速度比普通IO慢了近200%。 $ b 看起来实际的fadvise调用是同步的,它也延迟了在应用程序中使用从文件中读取数据的其他线程的计划。 是否有可能内核忙于从磁盘中获取数据,因为调用时间过长,最终导致其他计划任务延迟?我们 ..

冷缓存和热缓存概念是什么意思?

我读了一篇文章,并使用了术语“冷藏缓存”和“缓存温暖”。我搜索,但我没有找到有用的东西。 “冷藏缓存”和缓存缓存概念是什么意思? 我也访问这个链接但是我还需要更多的东西。 解决方案 缓存是一种结构,它保存一些值(inode,内存页,磁盘块等),以便更快速地查找。通过在快速搜索数据结构(哈希表,B +树)或更快的访问介质(RAM内存vs HDD,SSD vs HDD)中存储某种短引用, ..
发布时间:2017-11-06 21:34:51 其他开发

在内核模块中获取文件系统挂载点

我想在我的内核模块中获得文件系统的文件系统挂载点,这是一个可堆叠的文件系统。 例如。如果/ home / ab / abc是一个文件,/ home被安装在不同的文件系统上,我想要一个dentry或路径结构到/ home。 我想在模块中做这个,而不用修改内核代码。 例如/ home / user /中有一个文件,现在我想知道这个文件在哪个分区中。例如,该文件可能位于与“/”相同的分区中,或者该 ..
发布时间:2017-11-06 21:32:26 服务器开发

Linux内核模块中的文件I / O

我正在编写一个需要打开和读取文件的Linux内核模块。什么是最好的方式来完成? 解决方案 我能问你为什么要打开一个文件吗? b $ b 我喜欢遵循Linux开发(出于好奇,我不是内核开发者,我是Java),之前我已经看到过这个问题的讨论。我能够找到关于这个的 LKML消息,基本上提到这通常是一个坏主意。我几乎肯定LWN在去年覆盖了它,但是我很难找到这篇文章。 如果这是一个私有模块 ..
发布时间:2017-11-04 20:52:01 其他开发

如何在Linux内核模块中读取/写入文件?

我知道所有关于为什么不应该从内核读取/写入文件的讨论,而是如何使用/ proc或netlink来做到这一点。无论如何,我想读/写。我还读了 驱动我坚果 - 你永远不应该在内核。然而,问题是2.6.30不导出 sys_read()。相反,它包裹在 SYSCALL_DEFINE3 中。所以,如果我在我的模块中使用它,我得到以下警告: $ p $ 警告:“sys_read”[xxx.ko] un ..
发布时间:2017-11-04 20:33:26 其他开发

如果指定的文件被移动,删除,Linux上的打开的文件处理程序会发生什么

移动 - >文件处理程序是否保留有效? 已删除 - >这是否导致EBADF,表示无效的文件处理程序? 替换为新文件 - >文件指向这个新文件的处理程序? 将硬链接替换为新文件 - >我的文件处理程序是否“遵循”此链接? 替换为一个新的文件的软链接 - >我的文件处理程序是否现在这个软链接文件? 为什么我问这样的问题:我使用热插拔硬件(如USB设备等)。可能会发生,设备(也是/ dev ..
发布时间:2017-10-26 19:22:15 服务器开发

在Linux中除以零异常处理

我很想知道在linux中的零异常处理的分歧。当执行除零操作时,产生陷阱,即 INT0 发送到处理器,最终 SIGFPE 信号是发送到执行操作的进程。 正如我所看到的,零异常除以 trap_init()函数作为 set_trap_gate(0,& divide_error); 我想详细了解一下,在$ code> INT0 正在生成,并且 SIGFPE 被发送到进程之前 ..
发布时间:2017-09-29 12:31:41 其他开发

linux-kernel - 为什么我的linux(centos)usr/src下的内核全都是kconfig和makefile文件?而没有任何c文件?

问 题 为什么linux下(centos)usr/src下的内核全都是kconfig和makefile文件?一个c文件的影子都没看到???这是为什么?不懂 只在include文件夹下看到了些头文件 解决方案 本来就是这样的,如果你需要完整的代码,请到 https://www.kernel.org/ 下载 ..
发布时间:2017-09-06 10:44:49 服务器开发

linux-kernel - android下bootloader后进入recovery流程,属于安卓架构的哪一层面?

问 题 最近在了解安卓下进入recovery后的整体流程,包括factory reset和OTA升级的具体实现方法(源码),其中包括little kernel,recovery.cpp,init.rc,install.cpp,screen_ui.cpp等等。 想知道这个流程或者说这块内容属于安卓架构里面的哪一层?就是所谓的什么内核层,library层,应用层这种,还是说不属于里面的任何一层 ..
发布时间:2017-09-06 10:24:49 移动开发

linux-kernel - Linux 字符设备,从应用程序调用 read() 开始,到驱动的 read() 函数,中间经历了什么过程?

问 题 本人在 Linux 内核下设计过几个字符设备,从 “怎么用” 的这个角度来讲,略懂一些。 但是有一次,我被问到 “从应用程序系统调用开始,是怎么到达你的驱动函数的”?我瞬间语塞,不知道怎么回答。 于是我把这个问题转到 SegmentFault 吧,询问有无大牛能够回答,或者能够告诉我上哪里找答案、要看学习那些资料以了解这一点呢? 谢谢~~ 解决方案 如果你要 ..

linux - 如何从源码编译Centos7制作iso?

问 题 如题,最后做成像官网直接下载的iso。 新手,看vault.centos.org里面的文件各种头晕啊,不知道用哪几个能做成minimal.iso LFS貌似不是很符合这个要求? 解决方案 我的blog中有一篇编译制作一个mini linux,你可以去看一下! 博客链接 博文中没有完成,是因为使用了PD虚拟软件的原因,测试过使用vmware可以启动! ..
发布时间:2017-09-06 05:23:02 服务器开发

bash - 如何获得/etc/fstab 中的cifs.mount 挂载完成后的触发

问 题 如何获得/etc/fstab 中的cifs.mount 挂载完成后的触发 我想挂载一些脚本,但是脚本会访问到一些cifs.mount 之后的目录,我在启动最后的/etc/rc.d/rc.local中执行了脚本发现cifs.mount 还是没有完成!想请教除了nohug或者sleep之外的解决办法! 获得cifs.mount 之后的触发也行 =============== ..
发布时间:2017-09-06 03:14:37 其他开发

计算机网络 - linux如何实现用户态读取tap/veth等虚拟网络设备的数据?

问 题 计算机网络初心者,绝大意义上的小白一只。 我的问题环境是:希望在用户态从串口接收数据(网络报文),然后发给OVS进行选路或者其他的配置,再发到用户态从串口把数据转发出去。 此时就需要知道如何才能实现串口到bridge或者tap/veth等虚拟设备的通信问题,网上的教程标题没有与这个吻合度比较高的,所以我在想会不会是其他的表述方式呢? 希望各位能够提供一些指导,您认为合适的CSD ..