![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
操作系统
文章平均质量分 82
xphh
这个作者很懒,什么都没留下…
展开
-
一致与非一致性代码段
之所以出现这个定义是因为系统要安全:内核要和用户程序分开..内核一定要安全.不能被用户程序干涉. 但是有时候用户程序也需要读取内核的某些数据,怎么办呢? 于是os将内核程序开辟一些可以供用用户程序访问的段.但是不允许用户程序写入数据. 1.内核不用知道用户程序的数据.内核不转载 2011-08-31 20:39:44 · 300 阅读 · 0 评论 -
Linux驱动编程 step-by-step (七)
并发 竞态 (信号量与自旋锁) 代码传至并发竞态控制 并发进程 导致竞态的一个例子 前面所述的字符驱动都是没有考虑并发竟态的情况,想象一下 一个进程去读一个字符设备,另一个进程在同一时间向这个设备写入(完全有这种情况) 原来设备中存有 A B C D 要想设备写入1 2 3 4 每次读写一个字节 t1 t2 t3 t4 t5 t6 t7 t8转载 2011-11-26 21:54:01 · 410 阅读 · 0 评论 -
Linux驱动编程 step-by-step (六)
说点上节没有讲完的话题 用户地址检测 简单模块调试 以及一些杂项 检测用户空间地址的有效性 上一节中提到在read write时候要检测用户空间传递的参数地址是否是有效地址,有的内核函数会自行检测,但是在调用轻量级的内核函数时候,就可能不去检测用户空间的地址是否有效,如果此时用户无传递一个无效地址,而内核函数去操作了它,这时棘手的问题出现了,轻则内核oops 关机重启就OK了,在特别严重转载 2011-11-26 21:52:21 · 373 阅读 · 0 评论 -
Linux驱动编程 step-by-step (二)
简单字符设备驱动 1、主次设备号 主设备号标识设备连接的的驱动,此设备好由内核使用,标识在相应驱动下得对应的设备 在linux中设备号是一个32位的dev_t类型 typedef __u32 __kernel_dev_t; typedef __kernel_dev_t dev_t; crw------- 1 root root 10, 1 Apr 1转载 2011-11-26 21:43:42 · 305 阅读 · 0 评论 -
Linux驱动编程 step-by-step (八)
阻塞型字符设备驱动 前面说到了 如何实现read write 等操作,但如果设备缓冲已满,现在想而用户此时又想写入设备,此请求就无法立即执行,那怎么办呢? 第一种情况是:驱动程序想用户返回请求失败的信息。 第二种情况是:使调用进程阻塞等待设备可以被操作。 而用户更希望自己选择在请求无法满足时候如何操作,所以在用户空间有了O_NONBLOCK标志 在打开设备的时候如果用户指定了此标志(转载 2011-11-26 21:55:17 · 352 阅读 · 0 评论 -
Linux驱动编程 step-by-step (五)
主要的文件操作方法实现 文件操作函数有很多的操作接口,驱动编程需要实现这些接口,在用户编程时候系统调用时候会调用到这些操作 view plaincopy to clipboardprint? struct file_operations { ... loff_t (*llseek) (struct file *, loff_t, int);转载 2011-11-26 21:50:23 · 265 阅读 · 0 评论 -
Linux驱动编程 step-by-step (四)
似乎每一章介绍的内容比较少,但学习是一个循序渐进的过程,不在于一天学多少,重要的一天能真正的学懂多少,所以我主张一步一步来,从多个渠道去学习知识,实现互补。 本节测试代码传到此处了:char_step1 大家可以下载测试一下。 字符设备的注册与设备节点的自动创建 cdev 结构 内核内部使用struct cdev来表示一个字符设备 struct cdev { struc转载 2011-11-26 21:48:33 · 307 阅读 · 0 评论 -
Linux驱动编程 step-by-step (三)
字符设备中 重要的数据结构 大部分字符驱动设计三个重要的数据结构 struct file_operations struct file struct inode 一、文件操作 在之前的一篇文章中已经有介绍了如何去生情字符设备设备号,但是没有做任何的工作,也就只能写一个不能工作的字符设备; struct file_operations 结构域用来转载 2011-11-26 21:44:44 · 286 阅读 · 0 评论 -
利用内存映射文件处理大文件(转载)(修改程序版)
----原来作者的程序有些问题,现在文章中的程序已经修改正确--- VC中用内存映射文件处理大文件 摘要:本文通过内存映射文件的使用来对大尺寸文件进行访问操作,同时也对内存映射文件的相关概念和一般编程过程作了较为详细的介绍。 关键词:内存映射文件;大文件处理;分配粒度 引言 文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理转载 2011-11-14 20:17:44 · 856 阅读 · 1 评论 -
VPC上linux(Radhat9.0)通过smb服务共享windows文件
VPC上linux(Radhat9.0)通过smb服务共享windows文件 (此文系转自 http://blog.csdn.net/jiumingmao11982/archive/2007/03/02/1519680.aspx 红色部分和图片为weiloujushi所加转载 2011-09-23 21:18:51 · 776 阅读 · 0 评论 -
vpc中redhat 9花屏解决方法
是由于VPC不支持Linux的24色,只用16色,而Linux默认的是24色 1,重启虚拟机VPC,在出现grub后,在安装的系统上面按“e”,然后出现grub的配置文件,按键盘移动光标到第二行“Ker……”,再按“e”,然后在这一行的结尾加上:空格 single,然后按“b”转载 2011-09-22 15:03:23 · 651 阅读 · 0 评论 -
BIOS中断
BIOS中断: 1、显示服务(Video Service——INT 10H) 00H —设置显示器模式0CH —写图形象素 01H —设置光标形状0DH —读图形象素 02H —设置光标位置0EH —在Teletype模式下显示字符 03H —读取光标信息0FH —读转载 2011-09-15 17:52:33 · 306 阅读 · 0 评论 -
剖析Windows消息处理机制
1.窗口 Windows程序是由一系列的窗口构成的,每个窗口都有自己的窗口过程,窗口过程就是一个拥有有固定 Signature 的 C函数,具体格式如下: LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );转载 2011-11-14 20:30:20 · 315 阅读 · 0 评论