- 博客(20)
- 资源 (5)
- 收藏
- 关注
转载 在用户空间编程使用linux内核链表list,hlist宏定义和操作
<br /> ChinaUnix.net首页 | 论坛 | 博客 | Linux | 人才 | 培训 | 精华 | Wiki | 读书 | 资料 | 手册 | 下载 | 搜索 ChinaUnix首页 > 精华文章 > C/C++ > 正文 <br />[保留] 在用户空间编程使用linux内核链表list,hlist宏定义和操作http://www.chinaunix.net 作者:思一克 发表于:2008-09-17 09:56:44【发表评论】 【查看原文】 【C/C++讨论区】【关闭】<br
2011-03-31 09:19:00 588
转载 读写信号量(2.6.23内核,i386)
<br /><br />一、定义:<br />/linux/include/asm-i386/rwsem.h<br /><br />55struct rw_semaphore {<br />56 signed long count;<br />57#define RWSEM_UNLOCKED_VALUE 0x00000000<br />58#define RWSEM_ACTIVE_BIAS 0x00000001<br />59#define RWSEM_ACTIVE_MASK 0x0000ffff<br /
2011-03-22 17:05:00 482
转载 读写信号量(2.6.23内核,i386)
<br /><br />一、定义:<br />/linux/include/asm-i386/rwsem.h<br /><br />55struct rw_semaphore {<br />56 signed long count;<br />57#define RWSEM_UNLOCKED_VALUE 0x00000000<br />58#define RWSEM_ACTIVE_BIAS 0x00000001<br />59#define RWSEM_ACTIVE_MASK 0x0000ffff<br /
2011-03-22 16:37:00 516
转载 完成量同步机制学习(2.6.23)
<br /><br />一、定义:<br />linux/include/linux/completion.h13struct completion {14 unsigned int done;15wait_queue_head_twait;16};<br /> <br />二、作用:<br />虽然信号量可以用于实现同步,但往往可能会出现一些不好的结果。例如:当进程A分配了一个临时信号量变量,把它初始化为关闭的MUTEX,并把其地址传递给进程B,然后在A之上调用down(),进程A打算一旦被
2011-03-22 16:34:00 549
原创 linux daemon
<br />◆restorecond<br /> <br /> 这个程序的目的是要还原某些文件的SELinux权限,需要还原的清单列在/etc/selinux/ 目录中的restorecond.conf文件里。在2.6 kernel中,SELinux是一个新加入的机制,但它非常重要,因为SELinux所控管的是每一个文件的执行权限,与之前的PAM、Kerberos、TCP Wrapper各机制相比各有所长,在相互配合管控之下,这几种机制将Linux的安全性大幅提高。<br /><br /><br />
2011-03-22 10:54:00 520
转载 Linux内核互斥锁(2.6.23)
<br /><br />一、定义:<br />/linux/include/linux/mutex.h47struct mutex {48 /* 1: unlocked, 0: locked, negative: locked, possible waiters */49atomic_tcount;50spinlock_twait_lock;51 struct list_headwait_list;52#ifdef CONFIG_DEBUG_MUTEXES53 st
2011-03-21 10:02:00 428
转载 linux内核信号量学习(2.6.23(i386))
一、定义:/linux/include/asm-i386/semaphore.h44struct semaphore {45atomic_tcount;46 int sleepers;47wait_queue_head_twait;48};二、作用:Linux中的信号量是一种睡眠锁。如果有一个任务试图获得一个已被持有的信号量时,信号量会将其推入等待队列,然后让其睡眠。这时处理器获得自由去执行其它代码。当持有信号量的进程将信号量释放后,在等待队列中的一个任务将被唤醒,从而便可以获得这个信号量。主
2011-03-21 09:53:00 686
原创 linux系统中进程的状态
<br /><br />一、进程的状态表述:<br />#define TASK_RUNNING 0<br />#define TASK_INTERRUPTIBLE 1<br />#define TASK_UNINTERRUPTIBLE 2<br />#define TASK_STOPPED 4<br />#define TASK_TRACED 8<br />/* in tsk->exit_state */<br />#define EXIT_ZOMBIE 16<br />#define EXIT_DEAD
2011-03-21 09:52:00 727
转载 等待队列学习笔记
<br /><br />一、定义:<br />/include/linux/wait.h<br /><br />struct __wait_queue_head {<br />spinlock_t lock;<br />struct list_head task_list;<br />};<br />typedef struct __wait_queue_head wait_queue_head_t;<br />二、作用:<br />在内核里面,等待队列是有很多用处的,尤其是在中断处理、进程同步、定时等场合
2011-03-21 09:49:00 445
转载 内核定时器(2.6.23)
<br /><br />一、定义:<br />/include/linux/timer.h<br /><br />struct timer_list {<br />struct list_head entry;<br />unsigned long expires;<br />void (*function)(unsigned long);<br />unsigned long data;<br />struct tvec_t_base_s *base;<br />#ifdef CONFIG_TIMER_S
2011-03-21 09:47:00 408
转载 ELF可执行文件解读
<br /><br />打开一个 ELF 文件解读时,我们首先遇到的是一个 ELF 文件头。ELF 文件头 <br />给出解读整个 ELF 文件的路径图,它是一个固定的结构。文件头的结构在系统 <br />头文件 elf.h 中定义,如果是 32 位的二进制文件,它是一个 Elf32_Ehdr <br />结构,如果是 64 位的二进制文件,则是一个 Elf64_Ehdr 结构。无论是何种 <br />结构,结构的第一个成员是一个 16 字节的 e_ident,它给出了整个 ELF 文 <br />件的解
2011-03-18 10:35:00 547
原创 semaphone
<br /><br />9.3.1 信号量 IPC 原理 <br />信号量通信机制主要用来实现进程间同步,信号量值用来标识系统可用资源的个数,例<br />如,可以使用信号量来标识一个缓冲区可用空间大小(假定缓冲区大小为 256 个字节), 在 使<br />用 之前,该缓冲区没有任何内容,可用资源为 256,即可以初始化信号量为 256,每向缓冲区<br />写入一个字符就将信号量的值自动减 1,当信号量的值为 0 时即表示缓冲区满,资源暂不可<br />用;每从缓冲区中读出一个字符,将信号量的值自动加
2011-03-18 10:34:00 839
转载 9.3.1 信号量 IPC 原理_Linux程序设计
<br /><br />9.3.1 信号量 IPC 原理 <br />信号量通信机制主要用来实现进程间同步,信号量值用来标识系统可用资源的个数,例<br />如,可以使用信号量来标识一个缓冲区可用空间大小(假定缓冲区大小为 256 个字节), 在 使<br />用 之前,该缓冲区没有任何内容,可用资源为 256,即可以初始化信号量为 256,每向缓冲区<br />写入一个字符就将信号量的值自动减 1,当信号量的值为 0 时即表示缓冲区满,资源暂不可<br />用;每从缓冲区中读出一个字符,将信号量的值自动加
2011-03-18 10:03:00 869
原创 linux进程通信-信号量使用
<br /> <br />标题:Linux进程通信-使用信号量<br />一、相关知识<br /> 信号量:一个整数;<br /> 大于或等于0时代表可供并发进程使用的资源实体数;<br /> 小于0时代表正在等待使用临界区的进程数;<br /> 用于互斥的信号量初始值应大于0;<br /> 只能通过P、V原语操作而改变;<br /> 信号量元素组成:<br /> 1、表示信号量元素的值;<br /> 2、最后操作信号量元素的进程ID<br /> 3、等待信号量元素值+1的进程数;<br />
2011-03-18 09:59:00 566
转载 信号量使用实例
<br /><br />#include<linux/init.h><br />#include<linux/module.h><br />#include<linux/sched.h><br />//#include<linux/sem.h><br />#include<linux/semaphore.h> //2.6.28<br />MODULE_LICENSE("Dual BSD/GPL");<br />int num[2][5]={<br /> {0,2,4,6,8},<br /> {1
2011-03-18 09:34:00 531
转载 非阻塞式socket编程(select() ) - [linux开发]
<br />Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方式non-block,就是进程或线程执行此函数时不必非要等待事件的发生,一旦执行肯定返回,以返回值的不
2011-03-17 14:08:00 565
转载 Linux下时间和定时器
<br />Linux下时间和定时器2009年08月11日 星期二 19:31<br />【摘要】<br />本文主要介绍了linux的时间和定时器。<br />【关键词】<br />Linux 定时器 时间<br />一、问题的提出<br />我们开发程序时,经常会遇到时间和定时器的问题,为了更好的使用时间和定时器,现在列举一个一些时间结构体、函数和定时器。<br />二、解决思路<br />1.时间类型<br />1) time_t是一个长整型,一般用来表示用1970年以来的秒数。<br />2)str
2011-03-16 15:05:00 692
原创 Linux环境进程间通信(二): 信号(下)
<br /><br />简介: 在信号(上)中,讨论了linux信号种类、来源、如何安装一个信号以及对信号集的操作。本部分则首先讨论从信号的生命周期上认识信号,或者宏观上看似简单的信号机制(进程收到信号后,作相应的处理,看上去再简单不过了),在微观上究竟是如何实现的,也是在更深层次上理解信号。接下来还讨论了信号编程的一些注意事项,最后给出了信号编程的一些实例。<br />本文的标签: linux环境进程间通信, sigemptyset, 代码库, 信号, 信号,sigaction, 内核, 编码<br /
2011-03-16 09:53:00 540
转载 Linux环境进程间通信(二): 信号(上)
一、信号及信号来源信号本质信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的。信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实上,进程也不知道信号到底什么时候到达。信号是进程间通信机制中唯一的异步通信机制,可以看作是异步通知,通知接收信号的进程有哪些事情发生了。信号机制经过POSIX实时扩展后,功能更加强大,除了基本通知功能外,还可以传递附加信息。信号来源信号事件的发生有两个来源:硬件来源(比如我们按下了键盘或者其它硬件故障);软件来源,
2011-03-16 09:37:00 442
转载 Linux文件系统剖析
在文件系统方面,Linux® 可以算得上操作系统中的 “瑞士军刀”。Linux 支持许多种文件系统,从日志型文件系统到集群文件系统和加密文件系统。对于使用标准的和比较奇特的文件系统以及开发文件系统来说,Linux 是极好的平台。本文讨论 Linux 内核中的虚拟文件系统(VFS,有时候称为虚拟文件系统交换器),然后介绍将文件系统连接在一起的主要结构。基本的文件系统体系结构Linux 文件系统体系结构是一个对复杂系统进行抽象化的有趣例子。通过使用一组通用的 API 函数,Linux 可以在许多种存储设备上支持
2011-03-09 11:49:00 409
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人