简介

UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图 3 所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。

linux应用分层架构设计_linux应用分层架构设计

  1. 内核层
    内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。内核指的是一个提供设备驱动、文件系统、进程管理、网络通信等功能的系统软件
  2. Shell层
    Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。
  3. 应用层
    应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。

Linux和Windows区别:
linux严格区分大小写
Windows 下的程序不能直接在 Linux 中使用
Linux 不靠扩展名区分文件类型
Linux 中所有内容(包括硬件设备)以文件形式保存
Linux中所有存储设备都必须在挂载之后才能使用

FHS 认为,Linux 系统的根目录(/)最为重要(没有之一),其原因有以下 2 点:
1.所有目录都是由根目录衍生出来的;
2.根目录与系统的开机、修复、还原密切相关;
/usr(注意不是 user),全称为 Unix Software Resource,此目录用于存储系统软件资源。FHS 建议所有开发者,应把软件产品的数据合理的放置在 /usr 目录下的各子目录中,而不是为他们的产品创建单独的目录。Linux 系统中,所有系统默认的软件都存储在 /usr 目录下,/usr 目录类似 Windows 系统中 C:\Windows\ + C:\Program files\ 两个目录的综合体。
/var 目录用于存储动态数据,例如缓存、日志文件、软件运行过程中产生的文件等。

Linux 中所有内容都是以文件的形式保存和管理的,即一切皆文件,普通文件是文件,目录(Windows 下称为文件夹)是文件,硬件设备(键盘、监视器、硬盘、打印机)是文件,就连套接字(socket)、网络通信等资源也都是文件。

  1. 普通文件
  2. 目录文件
  3. 字符设备文件和块设备文件
  4. 套接字文件(socket)
  5. 符号链接文件(symbolic link)
  6. 管道文件(pipe)

当在 Linux 系统中使用这些硬件设备时,只有将Linux本身的文件目录与硬件设备的文件目录合二为一,硬件设备才能为我们所用。合二为一的过程称为“挂载”。
挂载,指的就是将设备文件中的顶级目录连接到 Linux 根目录下的某一目录(最好是空目录),访问此目录就等同于访问设备文件。

在Linux操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构
在文件系统中,有两个特殊的目录,一个是用户所在的工作目录,即当前目录,可用一个点“.”表示;另一个是当前目录的上一层目录,也叫父目录,用两个点“…”表示。
说明目录或文件名位置的方法有两种,分别使用绝对路径和相对路径。绝对路径指的是从根目录(/)开始写起的文件或目录名称,而相对路径则指的是相对于当前路径的写法。

Linux 命令的基本格式:
[root@localhost ~]# 命令[选项][参数]
命令的选项用于调整命令功能,而命令的参数是这个命令的操作对象。
常用命令:cd pwd ls mkdir rmdir touch In cp rm mv
切换到root权限 sudo -i