当前位置:  建站>运营/SEO
本页文章导读:
    ▪【Linux操作系统分析】设备驱动处理流程      1 驱动程序,操作系统,文件系统和应用程序之间的关系 字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备。 Linux把设备视为文件,称.........
    ▪Cent0S6.4 安装virtual box 增强功能失败的解决方案             今天在virtual box新装了一个CentOS6.4系统。但是在安装增强功能的时候。总是提示失败。 在安装脚本执行到“building the main Guest Additions module FAILED”,以前没有遇见过这个问.........
    ▪利用VM虚拟机的NAT形式组建Linux虚拟局域网       一、前言 由有需要在本人机子搭建一个Linuxr网络环境,准备三个虚拟机,一个master,一个slave,所以就准备用VM搞三个Linux虚拟机,Linux采用CentOS 6.3系统,利用这三个虚拟机组建一个小型的虚.........

[1]【Linux操作系统分析】设备驱动处理流程
    来源: 互联网  发布时间: 2013-10-31
1 驱动程序,操作系统,文件系统和应用程序之间的关系

字符设备和块设备映射到操作系统中的文件系统,由文件系统向上提供给应用程序统一的接口用以访问设备。

Linux把设备视为文件,称为设备文件,通过对设备文件的读写操作实现对真实外设的操作。


从驱动程序的角度来从下到上看层次结构,包含了硬件设备,设备驱动程序(中断处理程序,设备服务程序),文件系统和用户进程四个层次:


需要知道的两个概念:

设备号:

  • 主设备号:标识同一类设备,对应一个驱动程序
  • 从设备号:标识一个设备实例,从设备号使得不同的物理设备使用同一个驱动程序。

设备文件:存在硬盘上的实际存在的文件,包括设备的名字,类型,设备号


需要知道的三个关于驱动操作的数据结构:

  • file_operations:文件操作,每个进程对设备的访问都会转换为对file_operations的访问,调用里面的操作函数指针;
  • file:打开的文件
  • inode:由内核在文件系统中表示文件

2 字符设备的注册


至此,设备驱动注册完成,有相应的设备驱动程序和设备号与之对应。


3 设备的打开

设备注册完成后,可以打开一个设备,这时候调用系统调用open()函数,经过一系列的调用,最后会调用chrdev_open()函数进行实际的打开操作,其主要流程为:



设备注册打开完成后,需要对其进行各种操作,外部设备的操作有一个特点就是操作时间较长,且操作时间不确定。

处理外部设备运作时,主要有两种方式:轮询和中断。

下面主要用介绍用中断的模式等待外设完成操作,其主要流程为:



4 小结

这里简单总结了一下Linux处理外部设备的主要流程,主要包括了外部设备的注册,打开和通常的操作。

需要注意的知识点就是驱动设备模型的概念,在字符设备中位cdev。所有对设备的操作,都是在cdev的ops字段寻找处理程序,之前将cdev映射道inode的i_cedv中,cdev的ops字段映射到设备文件file的f_op字段,这样对设备文件的操作就等同于对设备的操作,这正是本文开头所说明的设备文件映射到文件系统的实质。

在外部设备的操作流程中,涉及到中断处理流程,主要指的是软中断,会在中断一章详细讨论。


参考:

Linux操作系统分析PPT:驱动程序编写基础

作者:zs634134578 发表于2013-6-17 16:46:51 原文链接
阅读:32 评论:0 查看评论

    
[2]Cent0S6.4 安装virtual box 增强功能失败的解决方案
    来源: 互联网  发布时间: 2013-10-31

       今天在virtual box新装了一个CentOS6.4系统。但是在安装增强功能的时候。总是提示失败。

在安装脚本执行到“building the main Guest Additions module FAILED”,以前没有遇见过这个问题,

想想发现今天安装的是最小桌面的,可能是因为这个问题,用“rpm –qa|grep gcc” 一下发现gcc没有安装,这样怎么可以呀。

然后我就一次执行如下命令

yum install kernel

yum install kernel-devel

yum install gcc

yum install make

最后安装成功。












blog:http://blog.csdn.net/rentiansheng/article/details/9115873

作者:rentiansheng 发表于2013-6-17 22:11:06 原文链接
阅读:68 评论:0 查看评论

    
[3]利用VM虚拟机的NAT形式组建Linux虚拟局域网
    来源: 互联网  发布时间: 2013-10-31


一、前言

由有需要在本人机子搭建一个Linuxr网络环境,准备三个虚拟机,一个master,一个slave,所以就准备用VM搞三个Linux虚拟机,Linux采用CentOS 6.3系统,利用这三个虚拟机组建一个小型的虚拟局域网,安装完虚拟机之后,在网络连接里面会多出两张网卡(如下图1)



图 1

一个是VMNet1(桥接),VMNet8(NAT),具体详情可查阅相关资料,我组建的小型局域网是采用NAT的方式连接。

二、配置VMNet8及宿主机的网络

我是用本子办公,所以使用无线网上网,如图1中的最后一个,无线网络连接3,在其上在右键——属性(如图2)


图 2

选择“共享”的选项卡,打开网络共享,“允许其它网络用户通过…“,在“家庭网络连接”中选择“VMNet8(VMware NetWork Adpter…)”,然后确定,如图3


图 3

宿主机的网络配置结束。

三、配置VM的网络

在图1中的VMware Network Adapter VMNet 8上右键,属性,如图4


图 4

双击(TCP/IPv4),如图5


图 5

此处要手动配置,非自动获取。

打开VM工作,编辑——虚拟网络编辑器,如图6


图 6

点击“NAT设置”,如图7


图 7

记住网关IP,此网关就是虚拟机里的网关

四、配置虚拟机的网络

在第二步中,我们已经配置了VMNet的网络及网关,现在我们配置虚拟机里面的网络,虚拟机的网络要与VMNet8在一个网段。

我选用NAT的网络适配器,如图8


图 8

进入虚拟机,打开终端,输入命令:setup,选择网络配置,选择设备,我的是eth0,进入设备,输入IP、网关等,如图9

图9

网关及DNS都是图7中红色区域的配置,点确定,返回再配置一个DNS,根据网上查阅的资料,到这一步,理应该是可以上网的,但是我的不可以,所以我还需要对防火墙做一下配置,同样是输入命令:setup,进入防火墙配置,关闭防火墙即可。如图10

图 10

五、小结

至此,我可以上网了,因为我采用的是桌面的,可以用火狐浏览器上百度了

附录

1、如果更改了网络配置,一定要重启网络服务,命令是:service network restart

2、如果无图开界面,可利用命令进入目录/etc/sysconfig/network-scripts,使用命令打开编辑ifcfg-eth0这个文件,输入以下的内容


作者:wangdongsong1229 发表于2013-6-18 8:04:12 原文链接
阅读:1 评论:0 查看评论

    
最新技术文章:
▪SQVI和SAP查询QUERY的区别和使用注意事项    ▪彻底理解Cisco/Linux/Windows的IP路由    ▪Exchange 2010 处于禁止发送用户自动收到来自IT...
▪MB_CHANGE_DOCUMENT使用方法    ▪ALV的html表头    ▪【译】如何精确判断最终用户响应时间过长的...
▪apache2.4.4启用deflate压缩    ▪使用vmware 配置centos 6.0+ 网络出现的各种问题...    ▪十句话教你学会Linux数据流重定向
▪centos6.x已经安装的系统添加图形界面    ▪Linux查看CPU和内存使用情况    ▪win7问题解决,凭据管理器和无法访问,不允...
▪Dynamics CRM 2013 初体验(4):不再被支持的功...    ▪win7下制作ubuntu系统安装启动盘和U盘安装ubuntu...    ▪Linux cp -a用法
▪Windows Server时间服务器配置方法    ▪Tomcat+memcached实现Session共享    ▪Linux修改系统环境变量PATH路径的方法
▪Citrix 服务器虚拟化之二十七 XenApp6.5发布服务...    ▪搭建本地Ubuntu 镜像服务器    ▪Create local metadata resource of yum
▪tsm ANS0326E问题处理    ▪Windows SVN变化邮件通知(Python2.7实现)    ▪linux下的内核测试工具——perf使用简介
▪Nginx TCP Proxy模块的编译安装    ▪OSX: SSH密钥使用日记(2)    ▪OSX: SSH密钥使用日记(1)
▪Manually start and stop Oracle XE in Ubuntu    ▪Disable autostart of Oracle-xe in Ubuntu    ▪tar命令-linux
▪xtrabackup-2.1.2-611安装    ▪无废话ubuntu 13.4文件共享配置    ▪Unix文本处理工具之sed
▪hpux 操作系统 磁带备份与恢复    ▪HP DL360 G7通过iLO部署系统    ▪Redhat 6.0中VNC Server的配置方法
▪hpux 操作系统磁带备份与恢复    ▪用C++编程调用libvirt的API来创建KVM虚拟机    ▪hpux- hp小型机日常硬件故障处理case(一)
▪web集群时session同步的几种方法(统计)    ▪inux常用命令大全    ▪BAT 批处理实现循环备份N天文件夹
▪BIND9私有DNS服务器小环境搭建实验    ▪Exchange2013增量备份    ▪OSSEC Monitor your App log file
▪《深入理解Nginx》阅读与实践(三):使用upstre...    ▪如何给Fedora 15创建磁盘分区    ▪Packet Sniffer Code in C using sockets
▪Error, some other host already uses address    ▪修改uCOS_II以实现“优先级+时间片”联合调度    ▪weblogic开发模式与生产模式介绍
▪Wireshark 高级特性    ▪ubuntu13.04版本下安装RabbitVCS,类似windows的Tortoi...    ▪Apache 一台主机绑定多个域名及虚拟主机
▪linux安全设置    ▪RHEL双网卡绑定    ▪Linux shell if参数
▪Windows配置路由时可以指定源地址啦    ▪centos安装vim7.4    ▪S3C2410 实验三——块拷贝、字拷贝(寄存器的...
▪系统运维——日志处理    ▪ip_conntrack缓存neighbour    ▪关键在封装并发出了帧-IP冲突也无所谓
▪weblogic11g 安装——linux 无图形界面    ▪《数据通信与网络》笔记--SCTP    ▪《数据通信与网络》笔记--TCP中的拥塞控制
▪weblogic11g 安装集群 —— win2003 系统、单台主...    ▪weblogic11g 节点管理器 nodemanager    ▪Citrix 服务器虚拟化之二十六 应用程序虚拟化...
▪如何将windows下的文件夹挂载到linux虚拟机下    ▪在64位AIX6.1下安装SAP JCo    ▪Outlook启动时提示“找不到文件Outlook.pst文件”...
▪weblogic8.1 登陆5 ip 限制    ▪weblogic 内存 及 内存溢出    ▪手把手教你在Windows端搭建Redmine项目管理软件
▪启动及重新启动nginx,重启nginx后丢失nginx.pid问...    ▪Win7实现快速启动栏并实现靠左边的终极操作...    ▪《深入理解Nginx》阅读与实践(二):配置项...
▪显示grub引导菜单    ▪nagios监控主机    ▪linux各种数据流重定向
▪centOS安装chrome浏览器    ▪Slackware 14 安装完全指南    ▪SharePoint 2013的100个新功能之内容管理(三)
▪Citrix 服务器虚拟化之二十一 桌面虚拟化之部...    ▪[问,ask]ubuntu13.04安装vncserver后只显示桌面,不显...    ▪Win7中IIS出现“HTTP 错误 404.17 - Not Found 请求的...
▪CentOS快速安装最新版本的SaltStack    ▪CentOS 6.4 快速安装Nginx笔记    ▪磁盘管理——RAID 0
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3