linux基础篇
文章平均质量分 71
chrisnotfound
这个作者很懒,什么都没留下…
展开
-
Linux udev识别移动设备
udev是什么udev 是Linux kernel 2.6系列的设备管理器。它主要的功能是管理/dev目录底下的设备节点。它同时也是用来接替devfs及hotplug的功能,这意味着它要在添加/删除硬件时处理/dev目录以及所有用户空间的行为,包括加载firmware时。udev系统由三个部分组成:libudev函数库,可以用来获取设备的信息,/usr/include/libudev.h。udev原创 2018-01-18 15:39:06 · 7259 阅读 · 0 评论 -
Linux动态链接器
我开始以为动态链接器ld-linux.so.x是linux内核的一部分,其实这种想法是错误的。分析完ELF可执行文件在内核中加载启动的源码后,可以参考博主的这两篇博客Linux加载启动可执行程序的过程(一)内核空间加载ELF的过程Linux加载启动可执行程序的过程(二)解释器完成动态链接我们可以知道,识别二进制映像以及文件映射到进程虚拟地址空间这个过程确实是在内核中完成的,但是动态链接的过程,需要...原创 2018-05-16 11:03:57 · 3968 阅读 · 0 评论 -
epoll详解
首先要知道,select,poll,epoll都是IO多路复用的机制。I/O多路复用就是通过一种机制,一个进程可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步非阻塞I/O,因为他们都需要在读写事件就绪后自己负责进行读写,而异步I/O则无需自己负责进行读写,内核来完成,然后会收到内核的信号,进程就会知...原创 2018-05-17 23:08:43 · 408 阅读 · 0 评论 -
Linux加载启动可执行程序的过程(二)解释器完成动态链接
接着上一篇博客。前面的工作都是在内核完成的,接下来会回到用户空间。第一步,解释器(也可以叫动态链接器)首先检查可执行程序所依赖的共享库,并在需要的时候对其进行加载。ELF 文件有一个特别的节区: .dynamic,它存放了和动态链接相关的很多信息,例如动态链接器通过它找到该文件使用的动态链接库。不过,该信息并未包含动态链接库的绝对路径,但解释器通过 LD_LIBRARY_PATH 参数可以找到(它...原创 2018-04-25 17:12:29 · 3311 阅读 · 1 评论 -
Linux加载启动可执行程序的过程(一)内核空间加载ELF的过程
linux内核启动时将ELF格式注册到内核可支持的文件格式链表中,也就是通过register_binfmt 函数将定义的elf_format结构体添加到链表中。该结构体如下:当我们执行一个可执行程序的时候, 内核会list_for_each_entry遍历所有注册的linux_binfmt对象, 对其调用load_binrary方法来尝试加载, 直到加载成功为止。上面代码可以看倒,ELF中加载程序...原创 2018-04-25 17:07:12 · 6367 阅读 · 0 评论 -
linux系统调用过程理解
用户可以通过两种方式使用系统调用:第一种方式是通过C库函数,包括系统调用在C库中的封装函数和其他普通函数。(如write,read,kill,mkdir等函数)第二种方式是使用_syscall宏。2.6.18版本之前的内核,在include/asm-i386/unistd.h文件中定义有7个_syscall宏,分别是:_syscall0(type,name) _syscall1(type,na...原创 2018-04-08 20:36:33 · 351 阅读 · 0 评论 -
Linux进程管理与调度
日期内核版本架构作者GitHubCSDN2016-07-21Linux-4.6X86 & armgatiemeLinuxDeviceDriversLinux进程管理与调度1 项目链接项目描述KernelInKernel一个运行在linux上的小巧内核, 修改了linux-kernel的start_kernel以启动我们自己的内核, 基于jserv/kernel-in-kernel(基于li...转载 2018-03-21 20:54:35 · 191 阅读 · 0 评论 -
Linux实现热补丁
热补丁是什么热补丁(hotfix),又称为patch,指能够修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。通过电子邮件或者其他途径来通知用户有关热补丁的消息,一般在软件供应商的网站上可以免费下载补丁程序。和升级软件版本相比,热补丁的主要优势是不会使设备当前正在运行的业务中断,即在不重启设备的情况下,可以对设备当前软件版本的缺陷进行修复。Linux热补丁实现如果要修改一个已经转载 2018-01-18 19:05:52 · 5994 阅读 · 0 评论 -
Linux编写内核模块及文件读写
sysfs是什么sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。该文件系统的目录层次结构严格按照内核的数据结构组织。除了二进制文件外(只有特殊场合才使用),sysfs文件内容均以ASCII格式保存,且一个文件只保存一个数据,另外,一个文件不可大于一个内存页(通常为4096字节)。项目要求将char数组保存到属性文件,下面将介绍如何完成。Linux内核模块是什原创 2018-01-18 15:44:55 · 13923 阅读 · 0 评论 -
Linux查看动态库.so导出函数列表
有两种方式:1.使用objdump命令。例如:objdump -tT xxx.so2.使用nm命令(个人觉得使用nm方式查看更方便。)例如 nm -D xxx.so(-D或-dynamic选项表示:显示动态符号。该选项仅对于动态库有意义)得到的结果中以T开头的就是导出函数实例:自己生成一个只包含test_b函数的动态库libtest.so使用awk命令筛选出第二列为-T的行...原创 2018-06-12 11:29:21 · 45778 阅读 · 0 评论