- 博客(67)
- 资源 (4)
- 收藏
- 关注
原创 大话操作系统之存储管理
假如计算机的存储系统比喻为一个图书馆的借书还书部的话,里面如牛毛多的在等待借出和还来的书就是内存中一个个的文件了,这些书都有ISBN号码的,同理,内存中的地址空间就是内存中这些文件的ISBN,假如这个图书馆很大,借书还书部又比较小,这就造成了每次学生借书高峰期,借还书部门前就排成了S行的曲线,在字母B即将完工时,借还书部的那帮小M们受不了了。俺也要休息啊!这就是传说中的内存超载。最简单的策略就是交
2011-12-31 11:39:02 1758
转载 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 you, what are you doing to give back?There’s never
2011-12-26 18:01:10 904
原创 高级字符驱动程序操作之异步通知IO(实践篇)基于内核2.6.35-30
1. async.c 主要展示异步通知机制在驱动程序中的实现#include #include #include /* everything... */#include /* size_t */#include #include #include /* copy user */#include /* POLL_IN */#inclu
2011-12-26 15:11:38 899
原创 Scull在2.6.35-30内核中的编译解决方案
LDD3作为从事驱动开发工作人员的必要参考资料,认真研究书中的附带源码具有很高的参考价值,但由于代码基于2.6.10内核,部分内核API较老,导致在2.6.35-30等较新内核上编译不能通过,由于工作需要,特花了一段时间进行整理,本篇文章对示例源码中的第一个驱动程序SCULL进行整理,供各位同仁参考:1、修改Makefile的第24行: 如果是基于PC,则KER
2011-12-26 14:03:35 1007
原创 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)> drivers/char/rtc.c:271: error: (Each undeclared identifie
2011-12-26 12:13:17 1527
转载 并发和竞态(实践篇)
1. complete.c 只是一个简单的字符驱动,但是我加进去了completion来同步读写操作#include #include #include /* everything... */#include /* size_t */#include #include MODULE_AUTHOR("victorsummer");MODULE_LICENSE("D
2011-12-26 08:44:45 449
转载 并发和竞态(理论篇)
1. 信号量信号量是为了解决共享资源问题而生的,通过著名的P/V操作可以获取和释放信号量,只有获得信号量的线程才可以访问共享资源,从而防止竞态的发生。其中P操作有三种情况:void down(struct semaphore *sem); // 如果信号量可以获得,信号量减一; 如果信号量不可以获得则阻塞进程并不可中断int down_interruptible(struct se
2011-12-26 07:49:39 440
原创 linux下运行程序后出现段错误的原因和解决案例
查了不少资料,好多都说是:地址错误,即你使用了没有声明的地址。一 一个经典的例子:#includecopyString(char *p1,char *p2) { while(*p1!='\0') { *p2=*p1; p1++; p2++; } *p2='\0';}int main() { char *a="I am a teacher
2011-12-22 09:16:59 8839 4
原创 Linux下Qt Designer 程序设计步骤详解
1、新建文件夹 gotocell。 2、打开qt designer。点击“应用程序”-“编程”-“Qt Designer”;或者在终端里输入命令:designer。 3、选择“File”--“New”,选择“Widget”,然后“Create”。 4、拖入“PushButton” 和“Label”。 5、保存为gotocell.ui ,然后关闭 qt
2011-12-21 17:29:12 7436 1
转载 字符设备驱动程序(理论篇)
1. 设备编号 "主设备号标识设备对应的驱动程序" 而 "次设备号用于正确确定设备文件所指的设备"(LDD3 p48)也就是说:主设备号对应驱动程序;次设备号对应使用同个驱动程序的设备;一般一个驱动程序可以被多个设备共享 一个主设备号和一个次设备号 合在一起 可以唯一确定一个设备文件,Linux内核使用一个叫做dev_t的类型来保存主设备号和次设备号,我们称dev_t类型的数据
2011-12-21 14:29:35 766
原创 字符驱动程序(实践)
1. scull.h#ifndef _SCULL_H_#define _SCULL_H_#ifndef SCULL_MAJOR#define SCULL_MAJOR 0 /* dynamic major by default */#endif#ifndef SCULL_NR_DEVS#define SCULL_NR_DEVS 4 /* scull0 through s
2011-12-21 14:26:59 642
原创 QT的信号与槽机制介绍
从QObject或其子类(例如Qwidget)派生的类都能够包含信号和槽。当对象改变其状态时,信号就由该对象发射(emit)出去,这就是对象所要 做的全部事情,它不知道另一端是谁在接收这个信号。这就是真正的信息封装,它确保对象被当作一个真正的软件组件来使用。槽用于接收信号,但它们是普通的对 象成员函数。一个槽并不知道是否有任何信号与自己相连接。而且,对象并不了解具体的通信机制。你可以将很多信号与单
2011-12-20 14:27:21 904
原创 Qt4书中第一个例子,找不到QApplication头文件的问题解决
在做《C++ GUI Programming with Qt 4》书中的第一个例子时就被卡到了。Qt版本为4.2.0。程序源码:复制代码#include #include int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel *label = new QLa
2011-12-20 09:18:17 12000 2
原创 Linux设备驱动程序学习笔记之信号量和互斥体
一个信号量(semaphore: 旗语,信号灯)本质上是一个整数值,它和一对函数联合使用,这一对函数通常称为P和V。希望进入临届区的进程将在相关信号量上调用P;如果信号量的值大于零,则该值会减小一,而进程可以继续。相反,如果信号量的值为零(或更小),进程必须等待知道其他人释放该信号。对信号量的解锁通过调用V完成;该函数增加信号量的值,并在必要时唤醒等待的进程。当信号量用于互斥时(即避免多个进程
2011-12-19 14:22:45 2175
原创 linux驱动程序开发的简单休眠
linux最简单的休眠方式是wait_event(queue,condition)及其变种,在实现休眠的同时,它也检查进程等待的条件。四种wait_event形式如下:wait_event(queue,condition);/*不可中断休眠,不推荐*/wait_event_interruptible(queue,condition);/*推荐,返回非零值意味着休眠被中断,且驱动应返回-ER
2011-12-19 14:14:51 1087
原创 spinlock,mutex,semaphore,vitical section的作用与区别
Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于某一资源的同时访问。Binary
2011-12-19 11:37:55 1612 1
原创 C语言中Static的作用详述
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。 (1)先来介绍它的第一条也是最重要的一条:隐藏。 当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。 下面是a.c的内容: char a = 'A'; // global v
2011-12-17 09:05:00 840
原创 linux下tree、命令的用法及实现代码
Linux下有这样一个命令,可以把当前目录下的所有文件和子文件以tree的方式显示出来,看下效果[www.linuxidc.com@localhost test]$ tree . |-- A |-- B |-- C `-- test2 |-- D |-- E `-- F 3 directories, 4 files [crazybaby@
2011-12-16 08:05:16 3311
转载 华为开放式变局:竞争对手瞄准思科和谷歌
11月29日,华为公司面向全球发布了云计算战略及端到端的解决方案。伴随着这一新战略的出台,华为公司将一改过去只做运营商市场的历史,将企业市场和个人用户视为新的增长点。此后,华为公司将不再单纯地出售电信设备,也将面向企业用户出售云计算解决方案,并将使个体网民通过网上支付的方式成为华为的新客户。同时,华为将打破多年的封闭式系统格局,向开发者提供标准化接口,构建开放式生态链。这是华为公司成立22
2011-12-14 23:52:52 1152
转载 半导体产业:2011年开启新一轮起跑
包括半导体、平板显示、光伏、印制电路等在内的我国大半导体产业在过去十年取得了令世人瞩目的巨大成就,被誉为产业发展的“黄金十年”。而2011年则被业界看做是开启新一轮增长的起跑年,在产业创新升级引领下,我国大半导体产业将在“十二五”时期获得飞速发展。 2010年我国大半导体产业继续强劲复苏,增长速度领跑全球。“从2006年起中国的印制电路和电子电路行业的销售额始终保持世界第一。2010年我国
2011-12-14 23:27:12 1410
转载 中国半导体封装产业长期看好
球半导体产业增速放缓 2009年由于全球金融危机,半导体产业滑入低谷,全球销售额2263亿美元。2010年半导体市场状况非常良好,呈现非常强劲的成长。根据SIA的最新报告,2010年全球半导体产业销售增长31.8%,市场达到2983亿美元。SIA预测全球半导体产业将由10年的快速暴发恢复到平稳成长,销售额在2011年增长6.0%,市场达到3187亿美元,2012年增长3.4%,市场达到3
2011-12-14 23:21:06 1930
转载 今年全球半导体销售额将增1.3% 首破3000亿美元
据华尔街日报中文版报道,半导体产业协会(Semiconductor Industry Association)说,2011年全球半体导销售额将达到3,020亿美元,较2010年增长1.3%,同时也是第一次达到3,000亿美元这个关口。半导体产业协会会长图希(Brian Toohey)说,虽然今年全球经济环境充满挑战,亚洲的生产也受到了自然灾害的影响,但半导体产业还是展示了惊人的抗打击能力;
2011-12-14 23:19:59 442
转载 国内手机应用开发者6成亏损 广告或是突破口
导语:移动互联网喧嚣背后掩盖不住不赚钱的尴尬,在众多的盈利途径中广告无疑是可以最快见效的一种方式,并在产业发展早期扮演重要角色。在产业乱象和资本趋紧的背后,如何赚取广告或许是移动互联网的利益相关者广告联盟、渠道、开发者最需要思考的问题。腾讯科技讯(雷建平)12月14日消息,国内某Androidn渠道商小王拥有巨大用户,不过,让小王苦恼的不光是自身盈利的问题,也包括整个行业现状,如果移动互联
2011-12-14 21:56:34 1571
原创 Linux 下垃圾清理工具 BleachBit
很多刚刚接触Linux的人都听过这样的一种说法:Linux的文件系统比Windows的要优秀,不会产生碎片,对于长时间运行的服务器来说尤为重要,而且Linux系统本身也不会像Windows一样产生大量的垃圾文件。且不说这个观点是否正确,我们先看看所谓的一些垃圾文件包括什么:cache,history,logs,cookies,temporary files等等。谁都无法保证Linux下面没有这些东
2011-12-14 14:24:26 11965
原创 抢占式内核与非抢占式内核的区别
内核抢占(可抢占式内核):即当进程位于内核空间时,有一个更高优先级的任务出现时,如果当前内核允许抢占,则可以将当前任务挂起,执行优先级更高的进程。非抢占式内核:高优先级的进程不能中止正在内核中运行的低优先级的进程而抢占CPU运行。进程一旦处于核心态(例如用户进程执行系统调用),则除非进程自愿放弃CPU,否则该进程将一直运行下去,直至完成或退出内核。抢占式内核的意义:首先,这是将
2011-12-13 21:26:33 14154
原创 linux下DNS详解及应用之三
DNS:domain name system递归查询:进行一次查询就能得到最终结果迭代查询:需要进行多次查询,才能得到最终结果互联网上的应用方式一般是:本地递归,互联网部分迭代。所有DNS都不知道其他DNS在哪里,但都知道根在哪里,本地主机向本地DNS递归,本地DNS出去迭代查询后向本地返回最终结果。DNS常见的记录类型: A记录: 由主机名解析IP地址 PTR记
2011-12-13 12:18:44 3576
原创 linux下DNS详解及应用二
一、Linux 下主要DNS配置文件Linux 下主要DNS配置文件见表一、二、三:表-1 DNS主要配置文件文件名称中文名称作用/etc/hosts主机的一个列表文件包含(本地网络中)已知主机的一个列表。如果系统的 IP 不是动态生成,就可以使用它。对于简单的主机名解析(点分表示法),在请求 DNS 或 NIS网络名称服务器之前,/
2011-12-13 12:14:44 3009 2
原创 linux下DNS详解及应用一
一 DNS的应用范围 使用主机名标识一台主机,也可以使用IP地址标识。人们更愿意使用便于记忆的主机名标识符,而路由器则只愿使用长度固定民有层次结构的IP地址。为调解这两种不同的偏好,我们需要一个把主机名转换成IP地址的目录服务。这就是因特网的域名系统(Domain Name System,DNS)的主要任务。DNS既是一个在由名称服务器主机构成的层次结构中实现的分布式数据库,又是一个允许
2011-12-13 09:08:24 1722
原创 linux不能上网的网络配置
<!--@page {margin:2cm}pre.western {font-family:"DejaVu Sans"}pre.cjk {font-family:"DejaVu Sans"}p {margin-bottom:0.21cm}-->sudogedit /etc/resolv.conf# Generated by NetworkMa
2011-12-12 19:58:43 1222
原创 关于 fatal error C1001: INTERNAL COMPILER ERROR
1、运算符重载时遇到以上错误代码解决方法:将#include 改成 #include然后去掉 using namespace std;编译即可通过!或者你要前向声明类,然后声明友元函数(注意不要加friend),也可以顺利通过编译!或者你打上vc6.0的sp6补丁就可以了!2、如果你在用 VC6 编一个规模较大的工程,如果你在用 VC6 编译一个用到了模板的工程
2011-12-12 16:40:03 5652 1
原创 电脑经常自动关机解决方案二
一般引起系统不定期重启和关机的故障主要有下面几个原因:一.首先我们要处理掉一个可能性到"我的电脑按"右鍵-->属性-->高级-->按下"启动及修复"-->把下面"系统失败"那框框的三个选项取消勾选.当把这三个选择取消后.能解决大部分人的问题哦.二.如果自动关机.并出现对话框的话.极有可能是病毒.解决办法:杀毒.三.WINDOWS启动程序出错,果WINDOWS在默认状态下启动时有某个程序运行出现错误
2011-12-12 13:43:57 1840
原创 电脑经常自动关机的系统解决方案
原因:(1)一般有操作系统过载,软件设定自动重启以达到优化的目的,但一般家庭用户很少出现类似情况。 (2)电源API管理模块出现故障,或电源本身出现故障,当系统载荷过大致使虚拟内存剧增,硬盘和CPU载荷加速和过重的时候,电源因故障无法承受电压增大的状况,导致自行断电停机。解决办法:首先建议增大内存,其次在电脑关机后,看看电源是否出现过热,异味情况出现如有请更换大功率高质量
2011-12-12 13:29:23 1774
转载 成功并不像你想象的那么难
成功并不像你想象的那么难 如果我们象重视生命一样重视成功,那我们就一定能成功。 成功并不像你想象的那么难 人没有失败就不会成功。 如果你怕失败,你就是个失败者。 什么样的选择决定什么样的生活。今天的生活是由三年前我们的选择决定的,而今天我们的抉择将决定我们三年后的生活。我们要选择接触最新的信息,了解最新的趋势,从而更好的创造自己的将来。 在成功者眼中,只会看到成
2011-12-12 10:46:32 1500
原创 在对话框上加载图标或者位图
加载图标 CPaintDC dc(this); // device context for painting HICON hIcon=AfxGetApp()->LoadIcon(IDI_ICON1); if (hIcon && hIcon!=(HICON)-1) dc.DrawIcon(10,10,hIcon);加载位图 CPaintDC dc(this);/
2011-12-12 10:37:22 904
转载 Linux液晶屏驱动开发
(转自 http://imhongyu.com/development/development_linux/developmentdoc_linux/linuxdocID52.asp) 随着高性能嵌入式处理器的普及和硬件成本的不断降低,尤其是arm 系列处理器的推出,嵌入式系统的功能越来越强。单色LCD也因为色彩单调,存储信息小,处理速度慢而不能符合人们的需求。
2011-12-10 07:57:27 988
转载 SDK,API和DLL的概念
SDK,Software Development Kit 的缩写,中文即“软件开发工具包”。广义上指辅助开发某一类软件的相关文档、范例和工具的集合。 SDK是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合,一般而言SDK即开发 Windows 平台下的应用程序所使用的SDK。它可以简单的为某个程序设计语言提供应用程序接口API 的一些
2011-12-09 10:11:45 1106 1
转载 BMP位图格式详解
位图格式 BMP是bitmap的缩写形式,bitmap顾名思义,就是位图也即Windows位图。它一般由4部分组成:文件头信息块、图像描述信息块、颜色表(在真彩色模式无颜色表)和图像数据区组成。在系统中以BMP为扩展名保存。 打开Windows的画图程序,在保存图像时,可以看到三个选项:2色位图(黑白)、16色位图、256色位图和24位位图。 现在讲解BMP的4个组成部分:1.文件头
2011-12-08 21:40:28 1501
原创 GlobalAlloc、GlobalLock和GlobalUnLock详解
调用GlobalAlloc函数分配一块内存,该函数会返回分配的内存句柄。 GlobalAlloc申请的内存分两种,一种是GMEM_FIXED,另一种是GMEM_MOVEABLE。两者的差别只要在于GMEM_MOVEABLE类型的内存操作系统是可以移动的,比如堆中有好几块小内存,当再申请一大块内存时,操作系统会移动GMEM_MOVEABLE类型的内存来合并出一大块。正因为GMEM_MOVEABLE
2011-12-08 21:28:26 9658
原版英文教材《Beginning SQL》作者Paul Wilton and John W. Colby
2010-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人