![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
认真帅
压力来源于无法自律而假装努力,现状跟不上欲望而产生的焦虑恐慌
展开
-
编译出错,出现 vfs_read[******.ko] undefined !
出现类似问题的原因是锁使用的函数无符号导出,本例是因为linux-4.0以后的版本取消了vfs_read()的符号导出EXPORT_SYMBOL(vfs_read)解决办法:(1)使用fp->f_op->read()函数,但是使用这个,虽然可以编译通过,但是在加载时,fp->f_op->read的返回值是NULL,原因未找到;(2)使用修改内核(不建议,会污染内核):...原创 2019-09-07 18:12:06 · 6201 阅读 · 0 评论 -
在内核中读文件大小的方法
方法一:使用struct kstat结构体和vfs_stat()函数,使用方法和功能类似于应用态的struct stat和stat()函数。举例:读取文件 struct kstat stat; char *file_path = "/text.txt"; int file_size = 0; ret = vfs_stat(file_path, &stat);...原创 2019-09-07 18:13:38 · 2664 阅读 · 0 评论 -
内存映射:mmap与ioremap
对于提供了MMU(存储管理器,辅助操作系统进行内存管理,提供虚实地址转换等硬件支持)的处理器而言,Linux提供了复杂的存储管理系统,使得进程所能访问的内存达到4GB。 进程的4GB内存空间被人为的分为两个部分--用户空间与内核空间。用户空间地址分布从0到3GB(PAGE_OFFSET,在0x86中它等于0xC0000000),3GB到4GB为内核空间。 1.不管是在用户空间还是在内核...转载 2019-09-21 14:58:57 · 1065 阅读 · 0 评论