
Linux
文章平均质量分 85
SegmentFault_
这个作者很懒,什么都没留下…
展开
-
Ubuntu14.04实现简单日志文件服务器
在Linux日志的配置文件中,可以将指定服务类型(auth,cron,mail,syslog等)和相应服务的信息等级(info,notice,warn,err,crit等)的日志数据发送到打印机或者远程主机(即将配置日志文件服务器的server端)。万一有人入侵你的系统,并将系统/var/log/删掉了(但我们可以使用chattr增加隐藏属性,使文件在root下都不能被删除,除非入侵者获取当前ro原创 2016-05-12 23:37:22 · 7146 阅读 · 1 评论 -
数据流重定向
对于内核而言,所有打开的文件都是通过文件描述符引用。文件描述符是一个非负整数,当进程打开或创建一个文件时,内核向进程返回一个文件描述符。当读写文件时,文件描述作为一个标志,标识该文件(如系统调用read和write函数)。 UNIX系统shell把文件描述符0与进程的标准输入相关联,把文件描述符1与进程的标准输出相关联,把文件描述符2与进程的标准错误关联。这些描述符被宏定义为符号原创 2016-05-20 00:07:51 · 511 阅读 · 0 评论 -
Linux中fork()函数
一、什么是进程进程是正在执行的程序实例。执行程序时,内核会将程序代码载入虚拟内存,为程序变量分配空间,在内核中建立相应的数据结构,以记录与进程有关的各种信息(比如,进程ID、用户ID、组ID以及终止状态等)。简单来说,就是”执行一个程序或命令“就可以出发一个事件而获取一个进程ID。也就是说,程序被触发后,执行者的权限与属性、程序代码与数据等会被加载到内存,操作系统并给予这个内存单元一个标识原创 2016-05-27 11:31:54 · 480 阅读 · 0 评论 -
Linux自旋锁
1. 自旋锁自旋锁最初是为了在多处理系统(SMP)设计,实现在多处理器情况下保护临界区。自旋锁的实现是为了保护一段短小的临界区代码,保证这个临界区的操作是原子的。在Linux内核中,自旋锁通常用于包含内核数据结构的操作(如wait_queue等),用于保证操作内核中的数据结构的原子性。如果内核控制路径发现自旋锁可用,则“锁定”被设置,而代码继续进入临界区。相反,如果内核控制路径发现锁运行在原创 2016-09-04 19:11:03 · 507 阅读 · 0 评论 -
Linux等待队列
多路IO复用select采用等待队列机制让用户程序没有资源读/写时睡眠,有资源读/写时唤醒用户程序。等待队列以双向循环链表为基础数据结构,与进程调度紧密结合,用于实现内核的异步事件通知机制,也可用于同步对系统资源的访问。1. 数据结构(1) 每个等待队列都有一个等待队列头,该结构定义如下:struct __wait_queue_head {spinlock_t lock;原创 2016-09-06 09:19:23 · 691 阅读 · 0 评论 -
Select函数实现原理分析
本文转自http://blog.youkuaiyun.com/codejoker/article/details/5404442?locationNum=1select 需要驱动程序的支持,驱动程序实现fops内的poll 函数。 select 通过每个设备文件对应的 poll 函数提供的信息判断当前是否有资源可用 ( 如可读或写 ) ,如果有的话则返回可用资源的文件描述符个数,没有的话则转载 2016-09-06 10:09:22 · 2025 阅读 · 0 评论