自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (3)
  • 收藏
  • 关注

转载 linux用户管理

<br />在linux中系统中,它并不认识帐号名称。它认识的是我们的帐号ID,帐号ID保存在/etc/passwd文件中。我们在登录linux主机时,在输入完帐号和密码时,linux会先查找/etc/passwd文件中是否有这个帐号,如果没有则跳出,如果有的话,他会读取该帐号的user ID和group ID同时该帐号的根目录和shell也读了出来。然后在去核对密码表,在/etc/shadow中找出我们刚刚输入的帐号和userID,核对我们输入密码是否正确。一切正确我们可以登录到当前用户shell。那么,

2011-01-26 18:35:00 527

转载 linux线程浅析

<br />原文:http://hi.baidu.com/_kouu<br /><br />关于linux线程<br /><br /> <br />在许多经典的操作系统教科书中, 总是把进程定义为程序的执行实例, 它并不执行什么, 只是维护应用程序所需的各种资源. 而线程则是真正的执行实体. <br />为了让进程完成一定的工作, 进程必须至少包含一个线程. 如图1.<br /><br />进程所维护的是程序所包含的资源(静态资源), 如: 地址空间, 打开的文件句柄集, 文件系统状态, 信号处理handl

2011-01-26 18:27:00 816 1

原创 linux内核的用户管理

在linux 2-6-14的内核版本中task_struct{/* process credentials */uid_t uid,euid,suid,fsuid;gid_t gid,egid,sgid,fsgid;}所以驱动程序中可以调用 current->uid确定当前进程属于的组。但是在 3-6-36 中task_struct 没有以上项目,只有loginuid,如何确定 进程属于的用户组??

2011-01-26 17:59:00 1041 1

转载 异步通知

要弄明白这个问题,我们得从最基本的原理开始。我们知道,驱动程序运行在内核空间中,应用程序运行在用户空间中,两者是不能直接通信的。但在实际应用中,在设备已经准备好的时候,我们希望通知用户程序设备已经ok,用户程序可以读取了,这样应用程序就不需要一直查询该设备的状态,从而节约了资源,这就是异步通知。<br />好,那下一个问题就来了,这个过程如何实现呢?简单,两方面的工作。<br />一 驱动方面:<br />1. 在设备抽象的数据结构中增加一个struct fasync_struct的指针<br />2. 实

2011-01-24 17:01:00 531

原创 内核循环队列实现fifo

<br /><br />定义相关结构体<br /> 20 LIST_HEAD(task_queue_head);<br /> 21 struct task_queue{<br /> 22         struct task_struct *sleep_task;<br /> 23         int count;<br /> 24         struct list_head list;<br /> 25 };<br /> <br />  添加fifo节点<br /><br /> struct

2011-01-20 16:12:00 955

转载 linux 2.6内核 编译模块Makefile

<br />源文件只要一个,编译模块:<br />obj-m := mytest.o<br />KDIR := /lib/modules/$(shell uname -r)/build<br />PWD := $(shell pwd)<br />default:<br />       $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules<br /><br />就可以了,模块的名称是mytest,最后编译出来是mytest.ko,剩下的系统搞定。当然这里有一些隐含规则了

2011-01-18 18:37:00 607

原创 wait queue 笔记

1.正在运行的task从run queue上下来后,被放到wait queue上,从而进入睡眠。typedef struct __wait_queue wait_queue_t;typedef int (*wait_queue_func_t)(wait_queue_t *wait, unsigned mode, int sync, void *key);int default_wake_function(wait_queue_t *wait, unsigned mode, int sync, void *k

2011-01-17 13:36:00 973

原创 return ERESTARTSYS 作用

ERESTARTSYS is a part of the api between the driver and the signal-handling code in the kernel. It does not reach user-space (provided of course that it's used appropriately in the drivers :) When a driver needs to wait, and get awoken by a signal (as oppo

2011-01-16 14:24:00 2841 1

转载 Linux进程的睡眠和唤醒

<br />1 Linux进程的睡眠和唤醒<br />在Linux中,仅等待CPU时间的进程称为就绪进程,它们被放置在一个运行队列中,一个就绪进程的状态标志位为TASK_RUNNING。一旦一个运行中的进程时间片用完, Linux 内核的调度器会剥夺这个进程对CPU的控制权,并且从运行队列中选择一个合适的进程投入运行。<br />当然,一个进程也可以主动释放CPU的控制权。函数schedule()是一个调度函数,它可以被一个进程主动调用,从而调度其它进程占用CPU。一旦这个主动放弃CPU的进程被重新调度占用

2011-01-15 16:50:00 849

Linux网络编程+宋敬彬+孙海滨+源代码

书的原代码,配合书看或者运行下都挺好.经典,推荐推荐

2011-08-16

C++笔试题汇总,总结的很好

C++各种常见笔试题,总结的很好,这些常见的题目都会,笔试应该没问题了。

2010-10-28

基于ARM的GPRS无线数传温室测控系统

这是从优秀硕博论文数据库上下载的论文,基于2410平台

2009-09-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除