Linux概述 - STEMHA's Blog

Linux概述

Linux设计目标

Unix被设计成为一种能够同时处理多进程和多用户的交互式系统,Linux继承了Linux的设计目标。

设计Linux的基本方针:

  • 每个程序只做一件事并且做好。

好的程序员追求的系统

  • 简单,优雅,
  • 一致性 (最小惊讶原理
  • 较强的功能性与灵活性
    • 意味着系统有较小的一组基本元素,产生多种多样的组合来满足各种应用需要。

Linux的接口

Linux系统层次结构

所有版本的Linux必须提供大量的标准程序,其中一些是POSIX标准指定的,其他的根据Linux的版本而有所不同。它们包括:

  • 命令处理器(shell)
  • 编译器
  • 编辑器
  • 文本处理程序
  • 文件操作工具等

Linux具有三种不同的接口

  1. 真正的系统调用接口
  2. 库函数接口
  3. 由标准应用程序构成的接口

shell

shell中,后台运行一个程序的语法是在原本命令后加“&”。

shell脚本:包含shell命令的文件。

  • 可以包含参数,同时使用if、for、while和case等结构。
  • 可以给变量赋值,然后过一段时间再读取这些变量。

linux应用程序

应用程序分类

Linux的命令行用户界面包含大量的标准应用程序。大致分为6类:

  1. 文件和目录操作命令
  2. 过滤器
  3. 程序设计工具,如编辑器和编译器
  4. 文档处理
  5. 系统管理
  6. 其他

过滤器

过滤器有:

  • grep、sort、head、tail
  • cut和paste(文档剪切与粘贴)
  • od:将输入(通常是二进制,也包括八,十和十六进制)转化为ASCII文档。
  • pr:打印机格式化输出
  • tr:字符大小写转换

编译器和程序设计工具

编译器和程序设计工具:

  • gcc
  • ar:将库函数收集到存档文件中
  • make:维护程序,跟踪哪些头文件依赖于哪些头文件等,然后安排所有需要进行的编译自动进行。

内核结构

Linux内核结构

内核最底层,负责中断处理程序,这是它们与设备交互的主要方式,以及底层的分派机制。分派在中断时发生。

  • 底层的代码中止正在运行的进程,将其状态存储在内核进程结构中,然后启动相应的驱动程序。
  • 进程分派,在内核完成某些操作并且需要再次启动一个用户进程时,发生。进程分派的代码是汇编代码,并且和进程调度的代码有很大不同。

内核子系统的三个主要部件

  • I/O部件
    • 包含所有负责与设备交互以及实现联网和存储的I/O功能的内核部件
  • 内存管理部件
    • 维护虚拟内存到物理内存的映射,维护最近被访问页面的缓存以及实现一个好的页面置换算法。并根据需要把需要的数据和代码页读入内存中。
  • 进程管理部件
    • 主要是进程的创建和中止。还有CPU调度和信号处理。

内核最顶层,是内核的系统调用接口。所有的调用都来自这里,其导致一个陷阱,将系统从用户态切换到受保护的内核态,继而将控制权交给上述的内核部件之一。

参考资料

现代操作系统

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×