加入收藏 | 设为首页 | 会员中心 | 我要投稿 温州站长网 (https://www.0577zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

Linux系统的架构浅析

发布时间:2019-09-25 17:52:48 所属栏目:Windows 来源:jackycao
导读:副标题#e# 历史 1991年,还在芬兰赫尔辛基大学上学的Linus Torvalds在自己的Intel 386计算机上开发了属于他自己的第一个程序,并利用Internet发布了他开发的源代码,将其命名为Linux,从而创建了Linux操作系统,并在同年公开了Linux的代码,从而开启了一个

inode是文件从抽象--->具体的关键。inode存储了一些指针,这些指针指向存储设备的一些数据块,文件的内容就存储在这些数据块中。Linux想打开一个文件时,只需要找到文件对应的inode,然后沿着指针,将所有的数据块攒起来,就可以在内存中组成一个文件的数据了。

Linux系统的架构浅析

inode 结构

inode并不是组织文件的唯一方式,最简单的组织文件的方式,是把文件依次顺序的放入存储设备,但如果有删除操作的话,删除造成的空余空间夹杂在正常文件之间,很难利用和管理;复杂方式可以用来链表来做,每个数据块有个指针,指向属于同一文件的下一个数据块,这样的好处是可以利用零散的空余空间,坏处是对文件的操作必须按照线性方式进行,如果随机读取就必须要遍历链表,直到目标位置。由于这一遍历不是在内存进行,所以速度很慢。

inode既可以充分利用空间,在内存占据空间不与存储设备相关,解决了上面的问题。但inode也有自己的问题。每个inode能够存储的数据块指针总数是固定的。如果一个文件需要的数据块超过这一总数,inode需要额外的空间来存储多出来的指针。

dentry

代表一个目录项,是路径的一部分,比如一个路径/home/jackycao/hello.txt,那么目录项就有home、jackycao、hello.txt。

block

代表具体的数据,一个文件由分散的多个block组成,组织的方式由inode来指向。

设备驱动

与外设的交互,说白了就是输入(input)、操作(operate)、输出(ouput)的操作。

内核需要完成三件事情:

1. 针对不同的设备类型实现不同的方法来寻址硬件。

2. 必须为用户空间提供操作不同硬件设备的方法,且需要一个统一的机制来确保尽量有限的编程工作。

3. 让用户空间知道在内核中有哪些设备。

Linux系统的架构浅析

设备通信图

内核访问外设主要有两种方式:I/O端口和I/O内存映射。具体不展开介绍了。

内核动态接收外设发来的请求(数据)主要通过两种方式:轮询和中断。

轮询:周期性的访问查询设备是否有数据,如果有,便获取数据。这种方法比较浪费CPU资源。

中断:核心思想是外设有请求时主动通知CPU,中断的优先级最高,会中断CPU的当前进程运行,每个CPU都提供了中断线,每个中断由唯一的中断号识别,内核为每个应用的中断提供一个中断处理方法。当有数据已准备好可以给内核或者间接被一个应用程序使用的时候,外设出发一个中断。使用中断确保系统只有在外设需要处理器介入的时候才会通知CPU,提高了效率。

PS:块和扇区的概念:块是一个指定大小的字节序列,用于保存在内核和设备间传输的数据,块的大小可以被设置,默认是4096 bytes,扇区是存储设备操作的最小单元,默认是512 Bytes,块是一段连续的扇区。

网络

Linux的网络子系统的模型基于ISO的OSI模型,Linux内核中会简化相应层级。下图为Linux使用的TCP/IP参考模型。

Linux系统的架构浅析

网络模型

Host-to-Host层:相当于OSI模型的物理层和数据链路层,负责将数据从一个计算机传输到另一个计算机。在Linux内核的角度来看,这一层是通过网卡的设备驱动程序实现的。

Internet层:相当于OSI模型的网络层,负责让网络中的计算机可以交换数据(这些计算机并不一定是直连的)。该层同时负责传输的包分成指定的大小,因为包在传输路径上每个计算机支持的最大网络包的大小不一样,在传输时数据被分割成不同的包,在接收端再组合。该层为网络中的计算机分配唯一的网络地址。

Transport层:相当于OSI模型的传输层,负责让两个连接的计算机上运行的应用程序之间的数据传输。比如,两台计算机上的客户端和服务端程序,通过端口号来识别通信的应用程序。

App层:相当于OSI模型的会话层、表示层、应用层,网络中不同计算机的两个应用程序建立连接后,这一层负责实际内容的传输。

Linux内核子系统的实现通过C代码实现,每个层只能和它上下层通信。

Linux系统的架构浅析

Linux网络分层图

【编辑推荐】

  1. Oracle Autonomous Linux:用于云计算的自我更新、自我修补的Linux发行版
  2. 斑马郝飞:终结苹果、安卓操作时代,中国智能网联汽车要研发自主的操作系统
  3. 在Linux中怎样移除(删除)符号链接
  4. 在Linux中如何移动文件
  5. Linux 内核的五大创新
【责任编辑:武晓燕 TEL:(010)68476606】
点赞 0

(编辑:温州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读