Linux基础 | 青训营笔记

59 阅读4分钟

学习Linux 的价值

  • Linux是现代化应用程序交付的首选平台,无论是部署在裸机、虚拟化还是容器化环境
  • 公司内部服务(TCE、FaaS、SCM)统一使用DebianLinux系统
  • 熟悉Linux基础指令,熟练运维前端常用服务 (Nginx,Node.js)
  • 加深对操作系统概念和实现的理解,夯实基础知识

计算机硬件

计算机五大基本单元

  • 控制器
  • 运算器
  • 存储器单元
  • 输入单元
  • 输出单元

计算机操作系统(计算机中最大的软件)

管理和控制计算机系统中的硬件和软件资源,用于在用户与系统硬件之间传递信息。

  • 承上启下:

    • 承上:在操作系统之上可以运用我们的计算机应用程序
    • 启下:可以直接与硬件做出交互

问题思考:

  • 程序启动必须有操作系统来执行,那操作系统本身也是一个程序,那是如何在开机时被执行的呢?

在计算机启动时,最先被执行的是计算机 BIOS(Basic Input/Output System)或 UEFI(Unified Extensible Firmware Interface),它们是计算机的固件,也就是硬件上的软件。BIOS 或 UEFI 将会执行 POST(Power On Self Test,自检程序)以确认硬件设备是否正常。

接着,BIOS 或 UEFI 会寻找启动盘(通常是硬盘或者 USB 设备),读取启动盘中的引导程序。引导程序是一个小程序,它被放置在启动盘的特定位置,用于启动操作系统。

当引导程序被加载后,它会加载操作系统内核和初始化程序,并将控制权转移到操作系统内核中,启动操作系统的运行。操作系统会根据用户或者系统设置,加载相应的服务和应用程序,提供计算机的各种功能

BIOS与UEFI

BIOS是英文"Basic Input Output System"的缩略词,直译过来后中文名称就是"基本输入输出系统"。UEFI全称Unified Extensible Firmware Interface,即“统一的可扩展固件接口”,是一种详细描述全新类型接口的标准,是适用于电脑的标准固件接口,旨在代替BIOS(基本输入/输出系统),UEFI旨在提高软件互操作性和解决BIOS的局限性。BIOS存储在主板上的闪存芯片中,由于其限制比较多,如容量小、功能简单、启动速度慢等,已逐渐被新一代的UEFI所取代。

Linux系统概览

Linux发展简史

  1. 1969年,Uniⅸ诞生于贝尔实验室
  2. 1984年,贝尔实验室将Unix商业化
  3. 1984年,Tanenbaum开发Minix操作系统用于教学并开放源码
  4. 1984年,Richard M.Stallman发起自由软件(FSF)与GNU项目,起草GPL(通用公共许可)协议
  5. 1991年,Linus Torvalds:受Minix影响实现初版的Linux内核
  6. 1992年,Liux内核以GPL协议发行V1.0

Linux系统应用领域

  • IT服务器(操作系统、虚拟化和云计算)
  • 嵌入式和智能设备
  • 个人办公桌面
  • 学术研究与软件研发

Linux系统结构

  • 内核
  • shell
  • 文件系统
  • 应用程序

Linux体系结构

Linux 的体系结构是一个多层次的体系结构,包括硬件层、内核层、应用程序层和用户层。

Linux系统结构 --进程管理

在Linux中,进程是指正在执行的程序实例。每个进程都拥有自己独立的虚拟地址空间、寄存器集合和打开文件的描述符等资源。进程是Linux中最为重要的概念之一

进程命令

  • 查看启动的Nginx进程:

    • 可以使用 ps 命令查看正在运行的进程,配合 grep 命令可以过滤出含有关键字的进程
ps aux | grep nginx
  • 查看某个进程:

    • 可以使用 ps 命令查看某个进程的信息
ps -p <pid>
top -p <pid> 命令查看指定进程的系统资源使用情况
  • 关闭指定的进程:

    • 可以使用 kill 命令关闭指定进程。下面命令会向进程 ID 为 的进程发送终止信号,使其退出。
kill <pid>
  • 全部进程动态实时视图:

    • 可以使用 top 命令查看所有进程的动态实时信息。会打印出一个实时更新的进程列表,包含 CPU 占用率、内存占用率等信息。可以使用快捷键 q 退出 top 命令
top

进程的状态

其中,R、S、D、T是常见的进程状态。进程的状态会随着进程运行和系统调度而不断变化。进程状态可以通过命令ps -ef或top查看

  • R(TASK_RUNNING),可执行状态

  • S(TASK_INTERRUPTIBLE),可中断的睡眠状态

  • D(TASK_UNINTERRUPTIBLE),不可中断的睡眠状态

  • T(TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态Z(TASK_DEAD-EXIT_ZOMBIE),退出状态,进程成为僵尸进程

  • X(TASK_DEAD-EXIT_DEAD),退出状态,进程即将被销毁