无操作系统与有操作系统时硬件、驱动和应用软件的关系

1、无操作系统时硬件、驱动和应用软件的关系

在没有操作系统的情况下,设备驱动的接口直接交给应用软件工程师,应用软件没有跨越任何层次

就直接访问了设备驱动的接口。

2、有操作系统时,硬件、驱动、操作系统和应用软件的关系

当系统中包含操作系统后,我们需要把驱动程序融合到内核中,为了实现这种融合,必须在所有设备的驱动中

设计面向操作系统内核的接口,这样的接口是由操作系统规定的,对一类设备而言结构一致,独立于具体的设备。

由此,当系统中存在操作系统时,驱动变成了连接硬件和内核的桥梁。

为什么要使用操作系统?

1)一个复杂的软件系统需要处理多个并发的任务,没有操作系统,想完成多任务并发是很困难的。

2)操作系统给我们提供内存管理机制,一个典型的例子是,对于多数含MMU的处理器而言,linux等操作系统可以让每个

进程都可以独立地访问4GB内存空间。

3)当驱动程序都按照操作系统给出的独立于设备的接口而设计,那么,应用程序将可使用统一的系统调用接口来访问

各种设备。对于linux来说,应用程序通过read, write 就可以完成对字符设备及块设备的访问。方便了应用工程师的开发。

时间: 2024-10-14 15:20:38

无操作系统与有操作系统时硬件、驱动和应用软件的关系的相关文章

操作系统Operating Systems操作系统历史与硬件概况History of OS & Summaries!

培根:读史使人明智 操作系统的简史 (1955-1965) 计算机非常昂贵,上古神机IBM7094 ,造价在250万美元以上 计算机使用原则:只专注于计算 批处理操作系统(Batch system) 典型代表:IBSYS 从IBSYS 到OS/360(1965-1980) 计算机开始进入多个行业:科学计算(IBM 7094) ,银行(IBM 1401) 需要让一台计算机干多种事 多道程序(multiprogramming) 作业之间的 切换和调度 成为核心:因为既有IO 任务,又有计算任务,需要

S5PV210-uboot源码分析-uboot的硬件驱动部分

1.裸机中本身是没有驱动概念的. 狭义上的驱动的概念是操作系统中用来具体操控硬件的那部分代码叫驱动. 广义上讲,只要是操控硬件的都算是驱动. 2.裸机程序中是直接操控硬件的,但是在操作系统中我们必须通过驱动操控硬件. (1)这两个有什么区别呢?本质区别就是分层的问题 3.uboot的虚拟地址对硬件操作的影响 (1)操作系统(linux)下,MMU肯定是开启的.也就是说Linux驱动中肯定使用的都是虚拟地址,而裸机程序中肯定不会开MMU. (2)在操作系统下只有虚拟地址可以用,物理地址是不可以用的

Linux下的硬件驱动——USB设备(转载)

usb_bulk_msg函数 当对usb设备进行一次读或者写时,usb_bulk_msg 函数是非常有用的; 然而, 当你需要连续地对设备进行读/写时,建议你建立一个自己的urbs,同时将urbs 提交给usb子系统. 转载于此http://os.chinaunix.net/a2003/0630/1056/000001056933.shtml Linux下的硬件驱动——USB设备(上)(驱动配置部分) USB设备越来越多,而Linux在硬件配置上仍然没有做到完全即插即用,对于Linux怎样配置和

你了解Linux操作系统吗?Linux操作系统有哪些优点?

今天小编要跟大家分析的文章是关于你了解Linux操作系统吗?Linux操作系统有哪些优点?使用计算机必然会接触操作系统,现代操作系统已经发展的十分成熟,一般用户都可以很轻松的使用计算机.然而,对于要利用计算机进行专业开发和应用的用户来说,需要更加深入地理解操作系统的原理和运行机制,这样才能更加有效地利用计算机为自己的专业服务.那么对于想要学习Linux的小伙伴,一定要好好了解下啦! Linux是一个优秀的操作系统,它支持多用户.多进程,具有强大的功能.出色的性能以及良好的兼容性和可移植性,应用前

Android 从硬件到应用:一步一步向上爬 4 -- 使用 JNI 方法调硬件驱动

Android下,java应用程序通过JNI方法调用硬件抽象层模块,在Android 从硬件到应用:一步一步向上爬 3 -- 硬件抽象层访问硬件驱动 中我们已经编译好了硬件抽象层模块,下面就要开始为HAL层编写JNI方法,为上层提供服务. cd到frameworks/base/services/jni目录中,新建一个com_android_server_GpioService.cpp文件: #include "jni.h" #include "JNIHelp.h"

Android 从硬件到应用:一步一步向上爬 3 -- 硬件抽象层访问硬件驱动

Android 标准的硬件驱动分为两个部分,一个是运行在linux内核里的硬件驱动,而另外一部分是运行在用户空间的硬件抽象层.采用这种方法,就可以使系统具有硬件无关性,也保护了部分厂商的利益.在Android 从硬件到应用:一步一步向上爬 1 -- 从零编写底层硬件驱动程序中已经有了编写硬件驱动到linux内核里的步骤,下面就要接着这个工程去看看怎么在硬件抽象层增加硬件模块和我们的内核驱动程序进行交互,完成硬件控制. 进入hardware/libhardware/include/hardware

Android 从硬件到应用:一步一步向上爬 2 -- 运行 C 程序测试硬件驱动

编写C程序快速测试硬件驱动: 在Android 源码根目录下的external文件夹创建driver_test文件夹: cd external mkdir driver_test cd driver_test 创建Android.mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := optional LOCAL_MODULE := driver_test LOCAL_SRC_FILES := dri

Ajax 无刷新在注册用户名时的应用的代码

var xmlHttp; uName() //用户名失去焦点时 { if(all.uname.=="") { all.l1.innerHTML="不能为空!"; setTimeout("close(1)",1500); return; } else { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); xmlHttp.onreadystatechange=deal; //回调函数

双机位摄像机视频直播与单机位摄像机直播时硬件连接示意图

双机位摄像机视频直播与单机位摄像机直播时硬件连接示意图 2017-6-24,长沙,下了场好大的雨,空气真好. 下图是一个双机位直播的接线示意图(同样适应于多机位),图上是以保利威视采集卡为例的接线示意,当然采集卡也可以换成其他牌子,接线方式是一样的. 值得提一下的是:摄像机一般都有SDI和HDMI两种信号接口,采集卡就要接到这接口中,来获取信号:如果是用编码器,也是类似的. A:双机位摄像机视频直播场景 主要是那种带画中画直播效果的,一个主画面(例如会场全景.PPT演示屏取景等等),另一个小画面