Linux基本概念

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于UNIX的多用户、多任务、支持多线程和多CPU的操作系统

诞生于1991 年 10 月 5 日(第一次正式向外公布时间)

Linux的基本思想有两点:

  • 一切都是文件
  • 每个软件都有确定的用途

Linux系统组成一般分为四个主要部分:内核Shell文件系统实用工具

Linux内核

Linux内核是整个Linux系统的灵魂,Linux系统的能力完全受内核能力的制约

Linux内核负责整个系统的内存管理进程调度文件管理

Linux内核的功能:进程管理 、内存管理 、文件管理 、设备控制 、网络功能

Linux Shell

Shell 是 Linux 系统下的命令解释器,也是使用 Linux 系统的主要环境,它提供了用户与内核进行交互操作的一种接口
它接收用户输入的命令并把它送入内核去执行,类似于 Windows 中的 Command 命令窗口

Linux文件系统

Linux 的文件系统只有一个文件树
整个文件系统是以一个树根 “/” 为起点的,所有的文件和外部设备都以文件的形式挂接在这个文件树上
包括硬盘、软盘、光驱等所有设备等,这和以“驱动器盘符”为基础的Microsoft Windows系统有很大区别

特性 Linux Windows
存储表示 单一树状结构 多根树(C:, D:\)
设备接入 挂载到目录 分配新盘符
路径格式 /path/to/file C:\path\to\file
系统目录 固定名称(/etc等) 较灵活

【解释】
Windows 有 C 盘、D 盘这样的分区,每个分区都有自己的目录结构,而 Linux 的不同之处在于,不管有多少硬盘或分区,都会被挂载到根目录下的某个路径,比如 /home 或者 /usr,没有盘符的概念,而是所有的东西都看起来在一个大的目录树里
挂载的概念:比如插入 U 盘,在 Windows 下会显示为新的盘符,而在 Linux 下需要挂载到 /mnt/usb 这样的目录
根目录是整个文件系统的起点,所有目录和文件都从这里衍生出来。比如 /bin/home 这些标准目录都是根目录的子目录。另外,不同的存储设备或分区通过挂载到这些目录来扩展文件树,而不会破坏原有的结构。用户通过访问这些目录时实际上是在访问不同的存储设备

Linux文件系统的目录结构

在这里插入图片描述

目录
/ 根目录,从这里出发
/bin 用户和系统通用的基本命令
/sbin 只有管理员用的系统维护命令
/dev 设备文件
/usr 用户级应用程序及其相关文件
/etc 配置文件
/lib 动态链接库

/bin
  • 存放常用的基本命令执行文件,如 ls, cp, mv, rm, cat, echo 等。
  • 所有用户都可以使用这些命令

作用: 即使系统处于“单用户维护模式”,/bin 中的命令仍然可用,是系统启动初期最基础的命令集合

/sbin
  • 存放的是系统管理命令,如 reboot, fsck, mount, ifconfig
  • 只有 root 用户(管理员) 有权限执行 /sbin 中的大多数命令

/bin vs. /sbin: sbin 中的命令更偏向于“系统级维护”,而 /bin 是所有用户常用的

/dev
  • 设备文件目录,Linux 把各种硬件(硬盘、串口、键盘等)抽象成文件放在这里
    • /dev/sda 是第一个硬盘
    • /dev/ttyS0 是串口

作用: 方便以“文件”的形式对硬件进行读写操作

/usr
  • 存放用户应用程序及文件(与“系统级别”相对)
  • 类似于 Windows 中的 Program Files
  • 子目录结构复杂,常见有:
    • /usr/bin:用户安装的软件可执行文件,非基本命令的执行文件(如 gcc, python, make 等)
    • /usr/local:管理员本地安装的软件(避免被系统更新覆盖)
    • /usr/src:统源代码目录(如内核源码)

usr 是 “Unix System Resources” 的缩写。

/etc
  • 系统的配置文件存放地
  • 几乎所有服务、程序的配置文件都在这里,如:
    • /etc/fstab:系统分区挂载信息
    • /etc/passwd:用户信息
    • /etc/network/interfaces:网络配置

类似于 Windows 的注册表,系统级设置集中在此

/lib
  • 存放系统启动和运行所需的共享库文件(.so)
  • 就像 Windows 的 DLL 文件
  • /bin/sbin 中的命令执行时需要依赖 /lib 中的库文件

有些系统中还有 /lib64,用于64位系统的库


嵌入式Linux文件系统

嵌入式 Linux 支持多种文件系统,包括 ext2、ext3、vfat、ntfs、YAFFS、JFFS、Ramfs 和 NFS 等,为了对各类文件系统进行统一管理,嵌入式 Linux 引入了虚拟文件系统 VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口

Linux启动时,第一个必须挂载的是根文件系统;若系统不能从指定设备上挂载根文件系统,则系统会出错而退出启动。之后可以自动或手动挂载其他的文件系统。因此,一个系统中可以同时存在不同的文件系统

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐