SWI VFS

SWI(Software Interrupt),可以直译为 软中断 ,在 RISC OS中使用 SWI 来访问操作系统例程或第三方生产的模块。许多应用使用模块来给其他应用提供低层外部访问。
  ARM微处理器支持的异常指令
  有如下两条:
  — SWI 软件 中断指令
  — BKPT 断点 中断指令
  1、SWI指令
  SWI指令的格式为:
  SWI{条件} 24位的 立即数
  SWI指令用于产生软件中断,以便 用户程序 能调用操作系统的系统例程。操作系统在 SWI的 异常处理 程序中提供相应的系统服务,指令中 24位的 立即数 指定 用户程序 调用系统例程的类型,相关参数通过 通用寄存器 传递,当指令中 24位的立即数被忽略时,用户程序调用系统例程的类型由通用寄存器 R0的内容决定,同时,参数通过其他通用寄存器传递。
  指令示例:
  SWI 0x02 ;该指令调用操作系统编号位02的系统例程。
  2、BKPT指令
  BKPT指令的格式为:
  BKPT 16位的立即数
  BKPT指令产生软件断点中断,可用于程序的调试。
  SWI 的例子有:
  * 文件器 SWI,它辅助读写磁盘、设置属性等。
  * 打印机驱动器 SWI,用来辅助使用打印 并行端口
  * FreeNet/Acorn TCP/IP  协议栈  SWI,用 TCP/IP 协议在 Internet 上发送和接收数据。
  在以这种方式使用的时候,SWI 允许操作系统拥有一个模块结构,这意味着用来建立完整的操作系统的所需的代码可以被分割成许多小的部分(模块)和一个模块处理程序(handler)。

  当 SWI 处理程序得到对特定的例程编号的一个请求的时候,它找到这个例程的位置并执行它,并传递(有关的)任何数据。



VFS

VFS的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统。VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层。

 所谓VFS就是Virtual File System虚拟文件系统,也称为虚拟文件系统开关(Virtual Filesystem Switch).
  这是Linux档案系统对外的接口。任何要使用档案系统的程序都必须经由这层接口来使用它。
  VFS是一个异构文件系统之上的 软件 粘合层(注:有时也把VFS称为可堆叠的文件系统(Stackable Filesystem),因为VFS可以无缝地使用多个不同类型的文件系统,就像把多个文件系统堆叠在一起一样,故而得名)。通过VFS,可以为访问文件系统的 系统调用 提供一个统一的抽象接口。
  VFS最早由Sun公司提出以实现NFS(Network FileSystem, 网络文件系统 )。但是现在很多Unix系统都采用了VFS(包括Linux、FreeBSD、Solaris等)。
  Linux下的VFS:
  VFS的作用就是采用标准的Unix系统调用读写位于不同物理介质上的不同文件系统。VFS是一个可以让open()、read()、write()等系统调用不用关心底层的存储介质和文件系统类型就可以工作的粘合层。在古老的 DOS操作系统 中,要访问本地文件系统之外的文件系统需要使用特殊的工具才能进行。而在Linux下,通过VFS,一个抽象的通用访问接口屏蔽了底层文件系统和物理介质的差异性。
  每一种类型的文件系统代码都隐藏了实现的细节。因此,对于VFS层和 内核 的其它部分而言,每一种类型的文件系统看起来都是一样的。
  在Linux中,VFS采用的是 面向对象 的编程方法。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值