文章分类 -  linux

摘要:虚拟文件系统(Virtual Filesystem Switch,VFS)为各种文件系统提供了一个通用的接口, 它使得上层进程在进行与文件系统相关的操作时可以使用同一组系统调用,但是系统调用在内核中可以根据不同的文件系统执行不同的操作。 阅读全文
posted @ 2020-02-28 05:22 friedCoder 阅读(473) 评论(0) 推荐(0)
摘要:EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就 可以在您的内核模块中直接调用 ,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用。 使用方法 1、在模块函数定义之后使用“EXPORT_SYMBOL(函数名)”来声明。 2、在调用该 阅读全文
posted @ 2020-02-28 04:55 friedCoder 阅读(290) 评论(0) 推荐(0)
摘要:asmlinkage是个宏,使用它是为了保持参数在stack中。因为从汇编语言到C语言代码参数 的传递是通过stack的,它也可能从stack中得到一些不需要的参数。Asmlinkage将要 解析那些参数。 看一下/arch/x86/include/asm/linkage.h里面的定义: __att 阅读全文
posted @ 2020-02-28 04:21 friedCoder 阅读(240) 评论(0) 推荐(0)
摘要:linux通过软中断进行系统调用,只有进入内核态才能调用系统函数。 如果系统调用失败,可以通过errno查看调用失败的原因。 阅读全文
posted @ 2020-02-28 04:12 friedCoder 阅读(71) 评论(0) 推荐(0)
摘要:1.dmesg介绍 在dmesg里我们可以查看到开机信息,printk产生的信息等。若研究内核代码,在代码中插入printk函数,然后通过dmesg观察是一个很好地方法。 2.dmesg输出含义 dmesg 输出的数字含义 终端输入dmesg,可以看到每行最开始显示的是一个综括号,里面的数字为tim 阅读全文
posted @ 2020-02-28 03:59 friedCoder 阅读(510) 评论(0) 推荐(0)
摘要:printk相当于printf的孪生姐妹,她们一个运行在用户态的,另一个则在内核态被人们所熟知的。 但是根据不同的操作系统也会有不一样的效果,例如编写一个hello word 内核模块,使用这个函数不一定会将内容显示到终端上, 但是一定在内核缓冲区里,可以使用dmesg查看效果。 printk是在内 阅读全文
posted @ 2020-02-27 22:10 friedCoder 阅读(732) 评论(0) 推荐(0)
摘要:一般来说著名的 Linux 系统基本上分两大类: RedHat 系列:Redhat、Centos、Fedora 等 Debian 系列:Debian、Ubuntu 等 Dpkg (Debian系):Ubuntu RPM (Red Hat系):CentOS、Fedora 虽然RPM与DPKG有效的解决 阅读全文
posted @ 2020-02-27 15:29 friedCoder 阅读(183) 评论(0) 推荐(0)
摘要:原因是资源占用。 因为一些特殊原因安装失败,但是进程依然占用着该资源 解决办法: 杀死所有关于apt的进程 如果还是不行,则将所有的lock文件删除。 阅读全文
posted @ 2020-02-27 09:03 friedCoder 阅读(582) 评论(0) 推荐(0)
摘要:/dev/loop(或称vnd (vnode disk)、lofi(循环文件接口))是一种伪设备,这种设备使得文件可以如同块设备一般被访问。 在使用之前,循环设备必须 与现存文件系统上的文件相关联。这种关联将提供给用户一个应用程序接口,接口将允许文件视为块特殊文件(参见设备文件系统)使用 。 因此, 阅读全文
posted @ 2020-02-26 19:14 friedCoder 阅读(456) 评论(0) 推荐(0)
摘要:压缩/解压 阅读全文
posted @ 2020-02-26 09:32 friedCoder 阅读(90) 评论(0) 推荐(0)
摘要:1:后台下载 使用wget b + url 2:查看wget后台进度 (断点续传) wget c + 正在执行的下载地址 tail f wget log 3: 指定目录 wget P 指定目录 下载地址 4:批量下载。 如果有多个文件需要下载,那么可以生成一个文件,把每个文件的URL写一行,例如生成 阅读全文
posted @ 2020-02-26 09:26 friedCoder 阅读(103) 评论(0) 推荐(0)
摘要:https://mirror.bjtu.edu.cn/kernel/linux/kernel/v4.x/ 阅读全文
posted @ 2020-02-26 09:21 friedCoder 阅读(448) 评论(0) 推荐(0)
摘要:要找出系统上正在运行的Linux内核版本,请输入以下命令: uname -srm 输出结果: Linux 3.10.0-957.12.2.el7.x86_64 x86_64 3 - 内核版本. 10 - 主修订版本. 0-957 - 次要修订版本. 12 - 补丁版本. uname -a 如果是64 阅读全文
posted @ 2020-02-26 08:33 friedCoder 阅读(171) 评论(0) 推荐(0)
摘要:set print address set print address on 打开地址输出,当程序显示函数信息时,GDB会显出函数的参数地址。系统默认为打开的,如: set print address off 关闭函数的参数地址显示,如: show print address 查看当前地址显示选项是 阅读全文
posted @ 2020-02-25 07:45 friedCoder 阅读(3832) 评论(0) 推荐(0)
摘要:活动的 (可用的) 硬件观察点的个数是有限的。如果你设置了过多的硬件观察点,当程序从中断的状态变为执行的状态时,GDB 可能无法把它们全部插入。另外,活动的硬件观察点的数量只有在试图继续执行程序时才能知道,所以,直到这种尝试发生之前 GDB 无法警告你这一点。 如果这种情况真的发生了,你可以用 di 阅读全文
posted @ 2020-02-25 07:35 friedCoder 阅读(528) 评论(0) 推荐(0)
摘要:https://www.jianshu.com/p/636d68de629b 阅读全文
posted @ 2020-02-25 07:34 friedCoder 阅读(63) 评论(0) 推荐(0)
摘要:fd对应的文件需要以读写方式打开 阅读全文
posted @ 2020-02-25 07:32 friedCoder 阅读(202) 评论(0) 推荐(0)
摘要:参考: https://www.cnblogs.com/charlesblc/p/6263665.html mmap使用细节 1、使用mmap需要注意的一个关键点是,mmap映射区域大小必须是物理页大小(page_size)的整倍数(32位系统中通常是4k字节)。原因是,内存的最小粒度是页,而进程虚 阅读全文
posted @ 2020-02-25 07:29 friedCoder 阅读(1297) 评论(0) 推荐(0)
摘要:参考: https://blog.csdn.net/kunkliu/article/details/98950196 这个参数设定了 'binary' 选项。其作用是排除所有的意外副作用。例如,'textwidth'设为零,免得文本行给擅自排版了。并且,文件一律以 Unix 文件格式读取。 文件里的 阅读全文
posted @ 2020-02-25 07:22 friedCoder 阅读(160) 评论(0) 推荐(0)
摘要:显示进程 `ps aux` 显示线程 `ps T ` 阅读全文
posted @ 2020-02-23 11:14 friedCoder 阅读(69) 评论(0) 推荐(0)