大话操作系统之存储管理

假如计算机的存储系统比喻为一个图书馆的借书还书部的话,里面如牛毛多的在等待借出和还来的书就是内存中一个个的文件了,这些书都有ISBN号码的,同理,内存中的地址空间就是内存中这些文件的ISBN,假如这个图书馆很大,借书还书部又比较小,这就造成了每次学生借书高峰期,借还书部门前就排成了S行的曲线,在字...

2011-12-31 11:39:02

阅读数 1592

评论数 0

The golden age of the developer

There’s never been a better time to be a developer, says The Kernel’s technical editor. But in exchange for all the resources laid out in front of yo...

2011-12-26 18:01:10

阅读数 691

评论数 0

高级字符驱动程序操作之异步通知IO(实践篇)基于内核2.6.35-30

1. async.c 主要展示异步通知机制在驱动程序中的实现 #include #include #include /* everything... */ #include /* size_t */ #include #include #include ...

2011-12-26 15:11:38

阅读数 758

评论数 0

Scull在2.6.35-30内核中的编译解决方案

LDD3作为从事驱动开发工作人员的必要参考资料,认真研究书中的附带源码具有很高的参考价值,但由于代码基于2.6.10内核,部分内核API较老,导致在2.6.35-30等较新内核上编译不能通过,由于工作需要,特花了一段时间进行整理,本篇文章对示例源码中的第一个驱动程序SCULL进行整理,供各位同仁参...

2011-12-26 14:03:35

阅读数 875

评论数 0

linux驱动程序开发上面例子pipe.c不能在内核2.6.35加载的原因

caoyin-Lenovo:~/LDD/6$make 出现下列错误 > drivers/char/rtc.c:271: error: 'TASK_INTERRUPTIBLE' undeclared (first use in this function) > driv...

2011-12-26 12:13:17

阅读数 1292

评论数 0

并发和竞态(实践篇)

1. complete.c 只是一个简单的字符驱动,但是我加进去了completion来同步读写操作 #include #include #include /* everything... */ #include /* size_t */ #include #include...

2011-12-26 08:44:45

阅读数 361

评论数 0

并发和竞态(理论篇)

1. 信号量 信号量是为了解决共享资源问题而生的,通过著名的P/V操作可以获取和释放信号量,只有获得信号量的线程才可以访问共享资源,从而防止竞态的发生。 其中P操作有三种情况: void down(struct semaphore *sem); // 如果信号量可以获得,信号量减一; 如果信...

2011-12-26 07:49:39

阅读数 345

评论数 0

QtCreater 怎么打开以前建的projcect的问题

用qtcreator打开一个*.pro文件,即可将项目导入进来。

2011-12-22 20:29:37

阅读数 781

评论数 0

linux下运行程序后出现段错误的原因和解决案例

查了不少资料,好多都说是:地址错误,即你使用了没有声明的地址。 一 一个经典的例子: #include copyString(char *p1,char *p2) {   while(*p1!='\0') {   *p2=*p1;   p1++;   p2++;   }   *p...

2011-12-22 09:16:59

阅读数 5020

评论数 4

Linux下Qt Designer 程序设计步骤详解

1、新建文件夹 gotocell。      2、打开qt designer。点击“应用程序”-“编程”-“Qt Designer”;或者在终端里输入命令:designer。      3、选择“File”--“New”,选择“Widget”,然后“Create”。      4、拖入“Pu...

2011-12-21 17:29:12

阅读数 5382

评论数 1

字符设备驱动程序(理论篇)

1. 设备编号   "主设备号标识设备对应的驱动程序" 而 "次设备号用于正确确定设备文件所指的设备"(LDD3 p48) 也就是说:主设备号对应驱动程序;次设备号对应使用同个驱动程序的设备;一般一个驱动程序可以被多个设备共享   一个主设备号和一...

2011-12-21 14:29:35

阅读数 650

评论数 0

字符驱动程序(实践)

1. scull.h #ifndef _SCULL_H_ #define _SCULL_H_ #ifndef SCULL_MAJOR #define SCULL_MAJOR 0 /* dynamic major by default */ #endif #ifndef SCULL_NR_...

2011-12-21 14:26:59

阅读数 549

评论数 0

QT的信号与槽机制介绍

从QObject或其子类(例如Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要 做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对 象成员...

2011-12-20 14:27:21

阅读数 800

评论数 0

Qt4书中第一个例子,找不到QApplication头文件的问题解决

在做《C++ GUI Programming with Qt 4》书中的第一个例子时就被卡到了。Qt版本为4.2.0。 程序源码: 复制代码 #include #include int main(int argc, char *argv[]) { QApp...

2011-12-20 09:18:17

阅读数 9637

评论数 2

Linux设备驱动程序学习笔记之信号量和互斥体

一个信号量(semaphore: 旗语,信号灯)本质上是一个整数值,它和一对函数联合使用,这一对函数通常称为P和V。希望进入临届区的进程将在相关信号量上调用P;如果信号量的值大于零,则该值会减小一,而进程可以继续。相反,如果信号量的值为零(或更小),进程必须等待知道其他人释放该信号。对信号量的解锁...

2011-12-19 14:22:45

阅读数 1929

评论数 0

linux驱动程序开发的简单休眠

linux最简单的休眠方式是wait_event(queue,condition)及其变种,在实现休眠的同时,它也检查进程等待的条件。四种wait_event形式如下: wait_event(queue,condition);/*不可中断休眠,不推荐*/ wait_event_interrup...

2011-12-19 14:14:51

阅读数 944

评论数 0

spinlock,mutex,semaphore,vitical section的作用与区别

Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。 Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况...

2011-12-19 11:37:55

阅读数 1458

评论数 1

C语言中Static的作用详述

在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。   (1)先来介绍它的第一条也是最重要的一条:隐藏。   当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个...

2011-12-17 09:05:00

阅读数 631

评论数 0

linux下tree、命令的用法及实现代码

Linux下有这样一个命令,可以把当前目录下的所有文件和子文件以tree的方式显示出来,看下效果 [www.linuxidc.com@localhost test]$ tree  .  |-- A  |-- B  |-- C  `-- test2      |-- D      |-- ...

2011-12-16 08:05:16

阅读数 2047

评论数 0

华为开放式变局:竞争对手瞄准思科和谷歌

11月29日,华为公司面向全球发布了云计算战略及端到端的解决方案。伴随着这一新战略的出台,华为公司将一改过去只做运营商市场的历史,将企业市场和个人用户视为新的增长点。此后,华为公司将不再单纯地出售电信设备,也将面向企业用户出售云计算解决方案,并将使个体网民通过网上支付的方式成为华为的新客户。同时,...

2011-12-14 23:52:52

阅读数 923

评论数 0

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