随笔分类 -  Linux C

摘要:参考链接:http://www.liaoxuefeng.com 安装 安装步骤: ①先给操作系统装入git工具,以Linux为例: $ sudo apt-get install git ②去github官网申请账号,用于生成ssh key ③生成ssh key,其中使用的mail是你注册github 阅读全文
posted @ 2016-11-29 00:02 苏羽垄 阅读(521) 评论(0) 推荐(0)
摘要:某些应用程序需要对文件或者目录进行监控,来侦测其是否发生了某些事件。Linux很贴心的为我们提供了inotify API,也是Linux的专有。 inotify API 在使用之前一定要有一个inotify实例,int inotify_init(void);返回一个inotify实例的描述符。 添加 阅读全文
posted @ 2016-11-10 15:20 苏羽垄 阅读(3648) 评论(1) 推荐(1)
摘要:我们知道有些Linux的命令涉及到一些高效率的算法,在此做出一个积累吧,不是系统的。 1、tail命令打印一个文件的最后num行 2、grep命令从文本中匹配字符串 基于正则表达式的匹配很快。 it is unadvisable to use the algorithm for non-explic 阅读全文
posted @ 2016-11-09 23:33 苏羽垄 阅读(1359) 评论(0) 推荐(0)
摘要:每个用户都有一个唯一的用户名和一个与之相对应的数值型用户标识符UID。用户可以隶属于一个或者多个组。而每个组也拥有一个唯一的名称和一个数值型组标识符GID。 为什么要费劲周折去设立用户和组呢? 用途一:确定系统资源的所有权;用途二:对赋予进程访问上述资源的权限加以控制。 那么系统是怎么为用户设置组并 阅读全文
posted @ 2016-11-08 23:00 苏羽垄 阅读(250) 评论(0) 推荐(0)
摘要:文件I/O模型 Linux的哲学思想,一切皆文件,这也是Linux文件操作的方便之处。系统调用不会分配缓冲区用以返回信息给调用者。所以必须提前分配大小合适的缓冲区并将缓冲区指针传递给系统调用。 1、open open以前没有创建功能,后来通过参数可以设置创建文件。一个进程对能够打开的文件描述符的个数 阅读全文
posted @ 2016-11-07 19:40 苏羽垄 阅读(922) 评论(0) 推荐(0)
摘要:引言 内存映射实现共享内存。通过内存映射实现共享内存的方式又有好多种。 普通文件:现在文件系统打开一个存在的文件或者创建一个不存在的文件。 设备文件("/dev/zero") 匿名内存映射:mmap的参数只要稍作修改就好,MAP_SHARED修改为MAP_SHARED|MAP_ANON,fd参数设为 阅读全文
posted @ 2016-11-06 16:14 苏羽垄 阅读(1077) 评论(0) 推荐(0)
摘要:引言 当我们谈论System V信号量的时候,所指的是计数信号量集(posix信号量就是单个的)。内核为每个信号量集维护一个数据结构。为什么说是一个信号量集呢?可以看看下面的数据结构。 数据结构示意图 阅读全文
posted @ 2016-11-05 23:58 苏羽垄 阅读(271) 评论(0) 推荐(0)
摘要:引言 信号量分为三种:posix有名信号量(使用Posix IPC名字标识,至少具有随内核的持续性)/posix基于内存的信号量(共享内存,随进程的持续性)/System V 信号量(内核) 有了互斥锁和条件变量,为何还要用信号量呢?Posix.1基本原理一文解释了这个问题:信号量的目的主要是用于进 阅读全文
posted @ 2016-11-05 16:07 苏羽垄 阅读(742) 评论(0) 推荐(0)
摘要:引言 记录上锁是对读写锁的一种扩展,他可以用于有亲缘关系和无亲缘关系进程之间共享某个文件的读写。这中锁通常是在内核中维护的(与互斥锁和读写锁做比较)。 粒度:用于标记能被锁住的对象的大小。Posix记录上锁来说,粒度就是单个字节。 Posix fcntl 记录上锁 posix fcntl 记录上锁被 阅读全文
posted @ 2016-11-05 12:03 苏羽垄 阅读(569) 评论(0) 推荐(0)
摘要:引言 不同的锁之间的语义是不一样的,没有一劳永逸的锁,只有更适合的锁。 如果是同一进程里的不同线程共享读写锁,那么读写锁变量的维护是在进程内部即可。如果是不同进程共享读写锁,那么读写锁变量的维护是在共享存储区。 读写锁的分配规则: (1)只要没有线程占用写锁,那么任意数目的线程都可以持有这个读锁。 阅读全文
posted @ 2016-11-04 16:08 苏羽垄 阅读(7822) 评论(0) 推荐(1)
摘要:本文参考——http://www.bitscn.com/os/linux/201608/725217.html 和http://blog.csdn.net/jianchaolv/article/details/7544316 引言 互斥锁大都会使用,但是要了解其原理就要花费一番功夫了。尽管我们说互斥 阅读全文
posted @ 2016-11-04 14:32 苏羽垄 阅读(15330) 评论(0) 推荐(0)
摘要:本文是对《Unix 网络编程 卷2:进程通信》第六章的笔记。 引言 System V 消息队列首部的结构,结构代码如下: 与posix消息队列的区别 其实,与posix消息队列的头部结构拿来比较一下,区别还是一目了然的。由于没有一些锁的支撑,最大的疑惑点就是System V消息队列的互斥性访问有谁来 阅读全文
posted @ 2016-11-03 21:14 苏羽垄 阅读(242) 评论(0) 推荐(0)
摘要:本文是对《Unix 网络编程 卷2:进程通信》的笔记。 引言 消息队列是进程间通信的一种方式,可是如果不理解他的实现原理,会有众多不理解之处,下面就结合本书中的例子,对posix消息队列来一个说明。 1、消息队列是进程间通信,那谁来保证他们的进程互斥共享呢,即读写不交叉? 2、消息队列异步通信机制( 阅读全文
posted @ 2016-11-03 19:34 苏羽垄 阅读(1856) 评论(0) 推荐(0)
摘要:信息共享地址空间分布 内核级的通信介质不需要显式地互斥访问机制,内部通过互斥锁已经实现了。(具体可以看《unix网络编程 卷2:进程间通信》5.8小节,给我们讲了posix消息队列实现机制,有兴趣可以看看) 但是有些消息队列、信号量不一定都是有内核维护结构的。比如Posix消息队列在内核中,Syst 阅读全文
posted @ 2016-11-02 16:37 苏羽垄 阅读(843) 评论(0) 推荐(0)
摘要:FIFO简介 FIFO就是Unix的一种复合POSIX标准的进程间通信机制。他又称为命名管道,跟管道的不同点是,每个FIFO都有一个路径名与之关联。 FIFO虽然有路径名,但是他这中文件是在内核态(管道也是在内核态),跟文件系统没有关系。 单个服务器进程,多个客户端进程与服务器进通信。客户端进程想服 阅读全文
posted @ 2016-11-02 11:41 苏羽垄 阅读(2597) 评论(0) 推荐(0)
摘要:1、工具 CentOS7:去官网下载,然后找到阿里的镜像,DVD版本就好,4个G大小https://www.centos.org/download/ vmware:去官网下载最新版本 2、要点 先装VMware,这个不用多说,然后再安装CentOS 7. 先创建裸机(默认就好):稍后安装操作系统 在 阅读全文
posted @ 2016-10-17 15:01 苏羽垄 阅读(175) 评论(0) 推荐(0)