![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
文章平均质量分 68
feike24
这个作者很懒,什么都没留下…
展开
-
堆栈
进程映像程序是保存在磁盘上的可执行文件。运行程序时,需要将可执行文件加载到内存,形成进程。一个程序(文件)可以同时存在多个进程(内存)。进程在内存空间中的布局就是进程映像。从低地址到高地址依次为:代码区(text):可执行指令、字面值常量、具有常属性的全局和静态局部变量。只读。数据区(data):初始化的全局和静态局部变量。 有初值,直接存在程序文件中。BSS区:未初始化的全局和静态局部变原创 2016-08-31 09:53:04 · 272 阅读 · 0 评论 -
Linux 设备驱动的重点、难点
Linux 设备驱动的重点、难点1.Linux学习重点和难点● 编写 Linux 设备驱动要求工程师有非常好的硬件基础,懂得 SRAM、 Flash、 SDRAM、磁盘的读写方式,UART、 I2C、 USB 等设备的接口以及轮询、中断、 DMA 的原理,PCI 总线的工作方式以及 CPU 的内存管理单元( MMU)等。 ● 编写 Linux 设备驱动要求工程师有非常好的 C 语言基础,能灵活地运原创 2017-11-02 09:46:08 · 931 阅读 · 0 评论 -
支持异步通知的globalfifo驱动
前言驱动程序运行在内核空间中,应用程序运行在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时候,我们希望通知用户程序设备已经ok,用户程序可以读取了,这样应用程序就不需要一直查询该设备的状态,从而节约了资源,这就是异步通知。好,那下一个问题就来了,这个过程如何实现呢?简单,两方面的工作。一 驱动方面在设备抽象的数据结构中增加一个struct fasync_struct的指针原创 2017-11-13 20:46:30 · 761 阅读 · 1 评论 -
Linux内核模块
1.Linux内核模块简介Linux内核如此之大,如何将需要的部分包含在内核中。把需要的功能编译到Linux内核中。这样会产生两个问题,一生成的内核很大,二如果在现有的内核中新增或者删除功能,将重新编译内核。Linux提供一种机制,称为模块(Module)。其具有特点是模块本身不被编译入内核映像,从而控制内核的大小。模块一旦被加载,就和内核中的其他部分相同。2.Linux内核模块程序结构(1)原创 2017-11-02 10:09:46 · 158 阅读 · 0 评论 -
Linux必学的60个命令
Linux必学的60个命令Linux提供了大量的命令,利用它可以有效地完成大量的工作,如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以,在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重转载 2016-08-26 23:04:55 · 689 阅读 · 0 评论 -
Linux中粘滞位
Linux粘滞位使用粘滞位(Stickybit),又称粘着位,是Unix文件系统权限的一个旗标。最常见的用法在目录上设置粘滞位,也只能针对目录设置,对于目录内文件有效。则设置了粘滞位后,只有目录内文件的所有者或者root才可以删除或移动该文件。如果不为目录设置粘滞位,任何具有该目录写和执行权限的用户都可以删除和移动其中的文件。实际应用中,粘滞位一般于/tmp目录,以防止普通用户删除或移动其他用户的文原创 2016-08-26 17:47:43 · 619 阅读 · 0 评论 -
Linux进程之task_struct结构体
进程是处于执行期的程序以及它所管理的资源(如打开的文件、挂起的信号、进程状态、地址空间等等)的总称。注意,程序并不是进程,实际上两个或多个进程不仅有可能执行同一程序,而且还有可能共享地址空间等资源。Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。它定义在linux-2.6.38.8/include/linux/sched.h文件原创 2016-08-25 18:16:45 · 804 阅读 · 0 评论 -
实现read文件
read#include <unistd.h>ssize_t read ( int fd, // 文件描述符 void* buf, // 缓冲区 size_t count // 期望读取的字节数);成功返回实际读取的字节数(0表示读到文件尾),失败返回-1。read.c文件 创建read.txt文件 1 好好学习Linux编译运行后: tar原创 2016-09-05 20:32:32 · 408 阅读 · 0 评论 -
Linux下find查找命令用法
Linux下find命令在目录结构中搜索文件,并执行指定的操作。1.命令格式:find pathname -options [-print -exec -ok ...]2.命令功能:用于在文件树中查找文件,并作出相应的处理3.命令参数:pathname: find命令所查找的目录路径。例如用 . 来表示当前目录,用 / 来表示系统根目录。 -原创 2016-08-23 21:17:38 · 784 阅读 · 0 评论 -
Linux文件的三种时间属性
在windows下,一个文件有:创建时间、修改时间、访问时间。而在Linux下,一个文件也有三种时间,分别是:访问时间、修改时间、状态改动时间。两者有此不同,在Linux下没有创建时间的概念,也就是不能知道文件的建立时间,但如果文件建立后就没有修改过,修改时间=建立时间;如果文件建立后,状态就没有改动过,那么状态改动时间=建立时间;如果文件建立后,没有被读取过,那么访问时间=建立时间,原创 2016-08-22 16:48:24 · 300 阅读 · 0 评论 -
函数调用约定与名字修饰约定
在Windows下,由于很多语言支持动态链接库技术,因此动态链接库是一种很好的混合编程方法。语言对函数的约定有两种:函数调用约定和名字修饰约定。不同语言默认的调用调用约定和函数的命名方式是不同的,要想不同的语言开发的动态链接库能够相互调用,那么开发动态链接库的语言和调用链接库的语言的函数约定必须相同,同时在编译时函数的修饰名也必须一样。 1.函数调用约定 调用约定决定了函数参数传送时入栈和出转载 2016-09-03 19:43:14 · 443 阅读 · 0 评论