zoukankan      html  css  js  c++  java
  • linux体系结构

    linux体系结构

    从大面上来说,linux体系结构分为:

    用户空间:C库、用户应用程序

    内核空间:系统调用接口、内核、硬件平台依赖代码

    具体来讲,linux可划分为5个部分:linux内核、GNU工具链、桌面环境、应用软件

    linux内核

    系统调用接口(SCI层):给应用用户提供一套标准的系统调用函数,上层用户可以通过这一套标准接口来访问底层

    内存管理:

    进程管理:

    文件管理:

    设备驱动管理:

    内存管理

    1.作用:管理物理内存、创建和管理虚拟内存

    为了使有限的物理内存满足应用程序对内存的需求,linux采用“虚拟内存”的内存管理方式实现,实现原理:

    交换空间:内核在硬盘上化一段存储空间来实现虚拟内存,这段存储空间称为“交换空间”

    页面:内存存储单元被分割成很多块,称为“页面”

    页面内存表:内核会维护一张表,来指明哪些页面位于物理内存,那么页面位于交换空间

    换出:物理内存---->交换空间

    换入:交换空间---->物理内存

    工作过程:

      1、内核将程序运行用到的页面就放到内存里,暂时不用就放到交换空间中(换出)。

      2、当用到交换空间的页面时,就把它们调到内存中(换入),然后把物理内存其他用不到的页面换出到交换空间。

    查看内存

    #cat /proc/meminfo

    MemTotal: 1035244 kB #物理内存1G
    MemFree: 786616 kB #空闲内存700M左右

    ...

    SwapTotal:     2096472 kB        #有2G的交换空间

    ....

    查看内存使用情况

    #free

    total used free shared buffers cached
    Mem: 502360 489964 12396 0 53852 283372
    -/+ buffers/cache: 152740 349620
    Swap: 1015800 0 1015800

    共享内存页面:

     创建一写共享内存页面,用于多个进程共享使用。

     #ipcs -m   #查看共享内存页面

    key               shmid    owner   perms   bytes      nattch status
    0x00000000       0         rich      600       52228    6      dest
    #owner:共享内存段的所有者
    #perms:权限

    进程管理

    参见进程管理

    文件管理

    linux内核文件管理采用虚拟文件系统(VFS),隐藏各种文件系统的具体细节,为文件操作提供统一的接口。Linux提供了一个大的通用模型,如下:

    常见文件系统:

    ext3:第3阔啊站文件系统,支持日志功能

    ext4 :第4扩展文件系统,支持高级日志功能

    iso9660:ISO 9660文件系统(CD-ROM)

    nfs :网络文件系统

    ntfs:支持Microsoft NT文件系统

    proc:访问系统信息

    smb:支持网络访问的Samba SMB文件系统

    vfat:Windows 95文件系统(FAT32)

    硬件设备管理:

    内核代码中必须加入设备驱动程序代码,才能与硬件进行通信,linux内核提供2种方法来插入设备驱动代码:

       1.编译进内核的设备驱动代码,缺点:添加新设备时,需要重新编译内核。

       2.可插入内核的设备驱动模块:增加新设备,驱动模板插入内核中,无需重新编译。设备不可用时,也可从内核模块中移走。

     GNU工具链

    操作系统还需要工具链来执行一些标准功能,将linux内核和GNU操作系统工具整合起来,就可以创造一个完整的、功能丰富的免费操作系统

    GNU工具链包括:

       1.核心GNU工具链:有一组核心工具,称为GNU软件包,包括:处理文件、操作文件、管理进程的工具。

       2.shell:是用户和操作系统沟通的桥梁:(用户----shell----kernel----硬件)

    linux桌面环境

    1.X-window系统

    2.KDE桌面

    3.GNOME桌面:已成为许多linux发行版,默认的桌面环境。

    111
  • 相关阅读:
    如何使用反射技术获取泛型类的真实类型?
    applicationContext.xml文件如何调用外部properties等配置文件
    applicationContext.xml中的使用${}是代表什么意思?
    net.sf.json.JSONException: There is a cycle in the hierarchy!错误解决方案
    MySql中LongText字段对应Hibernate映射文件的设置(转)
    ckeditor的详细配置(转)
    XML-学习
    WSDL-学习总结
    ONVIF-WSDL
    sourceinsight相关配置
  • 原文地址:https://www.cnblogs.com/zmdsg/p/7060627.html
Copyright © 2011-2022 走看看