• 驱动之路——1.0


    一、linux设备驱动的分类及特点

    计算机系统的硬件由CPU、存储器和外设组成。驱动针对的对象都是存储器和外设。

    linux将存储器和外设分为3个基础大类:

    字符设备:字符设备指那些必须以串行顺序依次进行訪问的设备。字符设备不经过系统的高速缓冲。

    块设备:块设备能够用随意顺序进行訪问,以块为单位进行操作,。块设备经过系统的高速缓冲。

    网络设备:网络设备面向数据包的接收和发送而设计,它并不正确应于文件系统的节点。

            除网络设备外,字符设备和块设备都被映射到linux文件系统的文件和文件夹,通过文件系统的系统调用接口open()、write()、read()、close()等就可以訪问字符设备和块设备。

    二、linux系统的组成:

       

    现代cpu内部往往实现了不同的操作模式。不同的模式有不同的功能,高级程序往往不能訪问低级功能,而必须以某种方式切换到低级模式。

            ARM处理器分7种工作模式:用户模式、高速中断模式、外部中断模式、管理模式、数据訪问终止模式、系统模式、没有定义指令终止模式。

    ARM Linux的系统调用实现原理是採用swi软中断从用户态usr模式陷入内核态svc模式。内核空间和用户空间被用来区分程序运行的两个不同状态。它们使用不同的地址空间。

    linux仅仅能通过系统调用和硬件中断的方式来完毕从用户空间到内核空间的控制转移。



    三、linux内核架构:

                        

     linux内核主要由进程调度、内存管理、虚拟文件系统、网络接口和进程间通信5个子系统组成。

            进程调度控制系统中的多个进程对cpu的訪问。使得多个进程能在cpu中“微观串行,宏观并行”地运行。进程调度处于系统的中心位置。内核中的其它子系统都依赖它。由于每一个子系统都须要挂起和恢复进程。

            内存管理的主要作用是控制多个进程安全地共享主内存区域。当cpu提供内存管理单元(MMU)时。linux内存管理完毕为每一个进程进行虚拟内存到物理内存的转换。

            linux虚拟文件系统隐藏着各种硬件的详细细节,为全部的设备提供统一的接口,它独立于各个详细的文件系统,是对文件系统的一个抽象,它使用超级块super block存放文件系统的相关信息,使用索引节点inode存放文件的物理信息。使用文件夹项dentry存放文件的逻辑信息。

            网络接口提供了对各种网络标准的存取和各种网络硬件的支持。在linux中网络接口分为网络协议和网络驱动程序,网络协议部分负责实现每一种可能的网络传输协议,网络设备驱动程序负责与硬件设备通信。

            进程通信支持提供进程之间的通信,linux支持进程间的多种通信机制,包括信号量、共享内存、管道等。这些机制能够协助多个进程、多资源的相互排斥訪问、进程间的同步和消息传递。

    linux内核的5个组成部分之间的依赖关系:

            进程调度与内存管理之间的关系:这两个子系统相互依赖。

    在多道程序环境下。程序要执行必须为之创建进程,而创建进程的第一件事就是将程序和数据装入内存。

            进程间通信和内存管理之间的关系:进程间通信子系统要依赖内存管理支持共享内存通信机制,这样的机制同意两个进程除了拥有自己的私有空间,还能够存取共同的内存区域。

            虚拟文件系统与网络接口之间的关系:虚拟文件系统利用网络接口支持网络文件系统,也利用内存管理支持RAMDISK设备。

            内存管理和虚拟文件系统之间的关系:内存管理利用虚拟文件系统支持交换,交换进程定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。

     

    參考文献:http://blog.csdn.net/czh52911/article/details/7262021




  • 相关阅读:
    使用slf4j取代Apache Commons Logging
    IntelliJ远程调试教程
    java日志,(commons-loging 、log4j 、slf4j 、LogBack介绍)
    oracle 时间函数
    在Windows操作系统中,如何终止占有的8080端口的tomcat进程
    解决dwr报错【 Error: java.lang.SecurityException: No class by name: service】
    eclipse下使用tomcat启动maven项目
    Eclipse Java注释模板设置详解
    weblogic启动时日志重定向(nohup.out)
    信息化的基本概念
  • 原文地址:https://www.cnblogs.com/wgwyanfs/p/7107366.html
Copyright © 2020-2023  润新知