微软在你机器里的秘密 计算机里有很多微软试图隐藏的文件目录.在这些目录中你会(主要)发现有这样两种东西:Microsoft Internet Explorer记录了你所访问过的所有站点--即使你已经清空了你的缓存, Microsoft Outlook和Microsoft Outlook Express记录了你所有的E-MAIL信息--即使你已经从垃圾箱中把他们清除(其中也包括来往信件中的附件).请相信我,我所说的还不
论坛聊天日常用语 论坛日常用语: 1、BBS:①Bulletin Board System的缩写,指电子公告板系统,国内统称论坛。②波霸,Big-Breasted Sister的缩写。 2、斑竹:版主,也可写作板猪。由于拼音输入造成的美妙谐音。副版主叫“板斧”。 3、马甲:注册会员又注册了其他的名字,这些名字统称为马甲,与马甲相对的是主ID。 例句:青眉建议斑竹进行版务管理时,不可以用马甲发言。 4、菜鸟:原指电
学习使用PuTTY 简介 PuTTY 的官方网站:http://www.chiark.greenend.org.uk/~sgtatham/putty/,截止到 2006年11月,发布的最高稳定版本是 0.58 2007年6月,发布的最高稳定版本是 0.6。PuTTY 是一个跨平台的远程登录工具,包含了一组程序,包括:PuTTY (Telnet 和 SSH 客户端) PSCP (SCP 客户端, 命令行
简单的嵌入式linux根文件系统制作 1. 准备工作 下载busybox工具 说明:用于制作可执行命令工具集 2. 开发环境 1)主机:RedHat 9 2) 交叉编译工具路径:/usr/local/arm/3.3.2/ (用于编译busybox1.2.0) 把/usr/local/arm/3.3.2/bin路径添加到/etc/profile文件中 3)开发板:友
Linux内核裁剪的通用步骤 在menuconfig中配置:详细介绍内核配置选项及删改情况第一部分:全部删除Code maturity level options ---> 代码成熟等级选项[]Prompt for development and/or incomplete code/drivers 默认情况下是选择的,这将会在设置界面中显示还在开发或者还没有完成的代码与驱动.不选。第二部分 :除以下选项,其它全部删除Ge
使用Putty自动登陆远程Linux主机 由于工作需要,经常要从Windows 主机访问远程的Ubuntu服务器,每次输入账号和老长的密码,感觉很麻烦,于是参考网上的教程简单的设置了一下就能使用Putty自动登陆远程Linux主机了,非常的方便。 虽然Putty也提供了 puttygen.exe 生成公/密钥,但是和 Linux 主机生成的 KEY 格式不同,需要手工修改格式,所以我采用Linux 主机自己生成 KEY
31个用来测试你网站各项性能的免费在线工具? 网站代码验证没人可以细致到保证自己的网站代码都是正确的,你可以通过以下测试来验证网站代码是否正确。1 . WDG HTML Validator 一个很好的工具,能找出网站语法错误的地方,并标注出来,也可选择对网站上单独的每一页进行单页分析。( 强烈推荐 )2 . W3C Markup Validation Service 对 HTML 和 XHTML 都能进行代码测试,自称是互联网络上第一
Linux设备驱动程序学习(15) 热插拔有 2 个不同角度来看待热插拔: 从内核角度看,热插拔是在硬件、内核和内核驱动之间的交互。 从用户角度看,热插拔是内核和用户空间之间,通过调用用户空间程序(如hotplug、udev 和 mdev)的交互。 当需要通知用户内核发生了某种热插拔事件时,内核才调用这个用户空间程序。现在的计算机系统,要求 Linux 内核能够在硬件从系统中增删时,可靠稳定地运行。这就对设备驱动作者增加了压
Linux设备驱动程序学习(14) 通过一个设备在内核中生命周期的各个阶段,可以更好地理解Linux设备模型。我将通过分析lddbus和sculld的源码来了解Linux设备模型中各环节的整合。《LDD3》中的(PCI总线)各环节的整合这部分内容作为参考资料,因为嵌入式Linux比较少用到PCI总线。看这部分内容一定要先熟悉一下 lddbus 和 sculld 的源码。 一、lddbus模块:添加总线、导出总线设备和设备驱
Linux设备驱动程序学习(13) 总线总线是处理器和一个或多个设备之间的通道,在设备模型中, 所有的设备都通过总线相连, 甚至是内部的虚拟"platform"总线。总线可以相互插入。设备模型展示了总线和它们所控制的设备之间的实际连接。在 Linux 设备模型中, 总线由 bus_type 结构表示, 定义在 : struct bus_t
Linux设备驱动程序学习(12) -Linux设备模型(底层原理简介) 以《LDD3》的说法:Linux设备模型这部分内容可以认为是高级教材,对于多数程序作者来说是不必要的。但是我个人认为:对于一个嵌入式Linux的底层程序员来说,这部分内容是很重要的。以我学习的ARM9为例,有很多总线(如SPI、IIC、IIS等等)在Linux下已经被编写成了子系统,无需自己写驱动;而这些总线又不像PCI、USB等在《LD
Linux设备驱动程序学习(3-补) 在学习到第十章 中断处理 时,其中的中断驱动的I/O需要使用缓冲区,我觉得与其自己实现一个缓冲区,不如利用内核已经写好的fifo。内核里有一个通用的循环缓冲区的实现在 。使用的数据结构如下: struct kfifo { unsigned char *buffer; /* 使用的缓冲区头指针
Linux设备驱动程序学习(10) 度量时间差 时钟中断由系统定时硬件以周期性的间隔产生,这个间隔由内核根据 HZ 值来设定,HZ 是一个体系依赖的值,在 中定义或该文件包含的某个子平台相关文件中。作为通用的规则,即便如果知道 HZ 的值,在编程时应当不依赖这个特定值,而始终使用HZ。对于当前版本,我们应完全信任内核开发者,他们已经选择了最适合的HZ值,最好保持 HZ 的默认值。 对用户空间,内核HZ几乎完全隐藏,用户
Linux设备驱动程序学习(9)-与硬件通信 在学习有关I/O总线的内容时,最好先看看相关的知识:从PC总线到ARM的内部总线 I/O 端口和 I/O 内存每种外设都是通过读写寄存器来进行控制。 I/O 寄存器和常规内存在进入这部分学习的时候,首先要理解一个概念:side effect,书中译为边际效应,第二版译为副作用。我觉得不管它是怎么被翻译的,都不可能精准表达原作者的意思,所以我个人认为记住side effect就
Linux设备驱动程序学习(8)-分配内存 内核为设备驱动提供了一个统一的内存管理接口,所以模块无需涉及分段和分页等问题。 我已经在第一个scull模块中使用了 kmalloc 和 kfree 来分配和释放内存空间。 kmalloc 函数内幕kmalloc 是一个功能强大且高速(除非被阻塞)的工具,所分配到的内存在物理内存中连续且保持原有的数据(不清零)。原型:
Linux设备驱动程序学习(7)-内核的数据类型 由于前面的学习中有用到 第十一章 内核数据结构类型 的知识,所以我先看了。要点如下: 将linux 移植到新的体系结构时,开发者遇到的若干问题都与不正确的数据类型有关。坚持使用严格的数据类型和使用 -Wall -Wstrict-prototypes 进行编译可能避免大部分的 bug。内核数据使用的数据类型主要分为 3 个类型: 标准 C 语言类型、确定大小的类型和特定内核对象的类型。
Linux设备驱动程序学习(6) 提供访问控制对于一个设备节点来的可靠性来说有时是至关重要的。这部分的内容只是在open和release方法上做些修改,增加一些检查机制既可。 独享设备最生硬的访问控制方式是只允许一个设备一次被一个进程打开(独享),这是一个设备驱动最简单的访问控制。实现十分简单,具体的代码看实验源码吧!模块程序链接:scullsingle.tar.gz模块测试程序链接:scullsingle-test.
Linux设备驱动程序学习(5) 这一部分主要讨论:如果驱动程序无法立即满足请求,该如何响应?(65865346) 一、休眠进程被置为休眠,意味着它被标识为处于一个特殊的状态并且从调度器的运行队列中移走。这个进程将不被在任何 CPU 上调度,即将不会运行。 直到发生某些事情改变了那个状态。安全地进入休眠的两条规则:(1) 永远不要在原子上下文中进入休眠,即当驱动在持有一个自旋锁、seqlock或者 RCU
Linux设备驱动程序学习(4) 一、ioctl大部分设备除了读写能力,还可进行超出简单的数据传输之外的操作,所以设备驱动也必须具备进行各种硬件控制操作的能力. 这些操作常常通过 ioctl 方法来支持,它有和用户空间版本不同的原型: int (*ioctl) (struct inode *inode, struct file *filp