linux程序设计
文章平均质量分 67
小黑屋关门了
这个作者很懒,什么都没留下…
展开
-
进程之间的通信——管道
在linux中,进程的通信可以通过信号量,互斥量来进行交流,但这些变量只是一个简单的数据结构,而不是一组数据字符串,所以通信过程变得复杂,而且效率不高。 所以为了使得进程间的通信变得更加方便,便引入了管道(pipe)。通常把一个进程的输出通过管道链接到另一个进程的输入。 在shell命令中,命令的连接通过管道字符(‘ | ’)来完成的,比如: cmd1 | cmd2 cmd1的标准输入来自原创 2016-06-25 11:54:19 · 344 阅读 · 0 评论 -
linux——list.h
*linux中的头文件list.h 在Linux的源码中有一个自己为建立链表而写的链表头文件,以后可以直接调用里面的函数来使用链表。 list.h在linux中的路径为/usr/src/kernels/include/linux。不同的版本可能不一样。 list.h中有两个宏定义:#define LIST_HEAD_INIT(name) {&(name),&(name)}#define LI原创 2016-09-23 10:58:31 · 6332 阅读 · 0 评论 -
简单学习内核模块的 Makefile 文件
我的linux是centos 6.7 64位。 Makefile 文件是用来对内核模块进行编译的。具体的写法如下: obj-m := [模块名].o CURRENT_PATH := (shellpwd)//指定当前路径LINUXKERNELSPATH:=/usr/src/kernels/(shell pwd) //指定当前路径 LINUX_KERNELS_PATH := /原创 2016-09-29 18:53:21 · 942 阅读 · 0 评论 -
Linux内核体系结构--1
操作系统内核的结构模式主要可分为整体式单内核模式和层次式的微内核模式。Linux 0.11内核,采用了单内核模式。单内核模式的主要优点是内核代码结构紧凑,执行速度块,不足之处主要是结构性不强。在单内核模式的系统中,操作系统提供的服务流程为:应用程序使用指定的参数值执行系统调用指令(int x80),是CPU从用户态切换到核心态,然后操作系统根据具体的参数值调用特定的系统调用服务程序,而这些服务程序原创 2016-11-29 17:38:01 · 384 阅读 · 0 评论 -
文件操作
管理文件系统主要操作的具体表现为: 在写操作的过程中,通过“超级快->逻辑块位图->数据块”这条路线可以查找到硬盘上的空闲数据块;通过“超级快->i节点位图->i节点表中的i节点->数据块”这条路线可以访问到文件中指定的数据块。 文件系统给通常的组织规则是: 根目录文件i节点->根目录文件->根目录文件中A的目录项->A目录文件的i节点->A目录文件->A目录文件中的B目录项->B目录文件的i原创 2017-01-15 09:32:30 · 234 阅读 · 0 评论 -
面向连接的通信(LINUX)
首先介绍几个缩写,UICI(Universal Ineternet Communication Interface)叫做通用因特网通信接口,它其实是面向连接通信的一个简化的API( Application Programming Interface)应用程序接口。 UICI接口是通过流套接字和TCP实现的。 下来介绍常用的一种通信模型,客户机-服务器。 它们通信的方式是:原创 2017-01-16 13:17:53 · 553 阅读 · 0 评论 -
Linux程序设计——信号
信号在linux中,信号是系统为了响应的某些条件,而生成的事件。进程会根据收到的信号,作出相应的动作。信号可以被生成、捕获、响应或忽略。信号是因为错误的条件而生成,它们由shell和终端处理器生成来引起中断,信号还可以作为进程之间传递消息或者是修改行为的一种方法,明确的从一个进程传递给另一个进程。信号的名称都在头文件signal.h中进行了定义。如果进程收到了一个信号,但是并没原创 2016-05-27 18:56:52 · 362 阅读 · 0 评论 -
Linux程序设计——线程
Linux程序设计——线程 线程是一个进程内部的一个控制序列,可以理解为:线程是运行在进程上下文中的逻辑流。原创 2016-06-07 17:55:47 · 343 阅读 · 0 评论 -
通过PROC文件收集进程信息
cgroup 是对进程进行划分,将使用资源状况近乎相同的进程规划到同一个 cgroup 当中。进程的相关信息保存在 /proc/pid 目录中,而其中的文件较多,具体通过哪个文件来获取数据。随后跟踪了 top 命令的执行过程,即strace top,看到该过程主要打开了两个文件,一个是 stat,另一个是 statm。如图:stat 文件包含的信息广泛,而 statm 主要包含存储的使用情况,所以决原创 2017-12-29 14:07:58 · 455 阅读 · 0 评论