0

    Linux发行版主要有Debian与Redhat两大系列

    2024.01.25 | admin | 59次围观

      文章目录 Linux发行版简介学习Linux的必备硬件知识 关键硬件器件——CPU关键硬件器件——存储关键硬件器件——内存其他一些查看硬件信息的命令 Linux开机过程(以Ubuntu16.04为例) 阶段1:BIOS阶段2:boot Loader阶段3:kernel阶段4:systemd阶段5:应用软件 Linux常用命令 基本命令 文件管理文本操作磁盘管理系统管理网络通信压缩解压查询硬件信息的命令多命令协作 git操作命令 Reference

      严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核的操作系统。

      Linux 的发行版简单说就是将 Linux 内核与应用软件做一个打包。知名的发行版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux

      Linux发行版主要有Debian与Redhat两大系列

      Debian

      Redhat

      发行版代表

      Debian,Ubuntu,Linux Mint

      Redhat,CentOS,Fedora

      软件包管理方式

      dpkg(管理本地的软件包,无法处理依赖关系)、 apt(联网下载软件包,自动处理依赖关系)

      rpm(管理本地的软件包,无法处理依赖关系)、 yum(联网下载软件包,自动处理依赖关系)

      安装包格式

      deb

      rpm 关键硬件器件——CPU

      CPU是计算机的运算核心和控制核心,部分CPU内置核芯显卡 x86架构:Intel、AMD、海光、兆芯等芯片ARM架构:飞腾、鲲鹏等

      查看CPU的信息 在这里插入图片描述在这里插入图片描述 关键硬件器件——存储

      类型 固态硬盘(SSD):读写速度快,价格较高机械硬盘(HDD):读写速度慢,价格便宜,容量大EMMC:多用于低端嵌入式设备,容量较小,云终端的EMMC有4GB、8GB、32GB几种规格

      查看存储设备信息的命令 在这里插入图片描述在这里插入图片描述在这里插入图片描述 关键硬件器件——内存

      目前最新是DDR4技术,速率可达3.2GHz

      分为板载和插槽两种接口

      云桌面的瘦终端采用1-2GB内存,胖终端标配4G或8GB内存,服务器一般是16GB*N的内存

      查看内存的命令 其他一些查看硬件信息的命令

      查看PCI设备信息:

      查看USB设备信息:

      查看网卡信息:、、 命令行中输入,用浏览器查看在这里插入图片描述从上图可看出开机过程包含了BIOS(firmware)、boot loader、kernel、systemd这4个阶段,再加上启动应用软件,共5个阶段在这里插入图片描述虚拟中运行的Ubuntu则没有BIOS(firmware)和boot loader这两个阶段。 阶段1:BIOS

      BIOS是(Basic Input Output System),是一组固化到计算机内主板上一个ROM芯片上的程序。它保存着计算机最重要的基本输入输出的程序、系统设置信息、开机后自检程序和系统自启动程序。 其主要功能是为计算机提供最底层的、最直接的硬件设置和控制。X86架构才有BIOS,ARM架构没有BIOS

      DMI

      DMI (Desktop Management Interface)是帮助收集电脑系统信息的管理系统。通过DMI可以在Linux中查询到包括CPU、内存、扩展槽等在内的系统配置信息。DMI通常将上述信息存储在BIOS中一个大小的DMI数据区中

      云终端的产品ID、产品型号、硬件版本、SN都存储在DMI中,可通过命令查看。

      BIOS与boot loader MBR与GPT

      MBR:Master Boot Record,主引导扇区,它在硬盘上的三维地址为**(柱面,磁头,扇区)=(0,0,1)**。MBR中存放着boot loader(446字节)、分区表(64字节)和硬盘有效标志(55AA) 。MBR最多只能支持4个主分区,无法支持超过2T的硬盘。

      GPT: GUID Partition Table ,是一个实体硬盘的分区结构。最多支持 128 个分区,允许大于 2 TB 的卷容量

      Legacy BIOS 与UEFI BIOS

      Legacy BIOS:传统BIOS。Legecy BIOS从MBR中寻找boot loader。目前云桌面的服务器大多还是用Legacy BIOS。

      UEFI BIOS:只支持64位系统且磁盘分区必须为GPT模式,可引导大于2T的硬盘,更快的启动速度。 UEFI BIOS会自动搜索硬盘根目录的EFI目录,而boot loader就在EFI文件夹中。目前云终端都采用UEFI BIOS。

      **总结:**BIOS从硬盘的特定位置寻找boot loader 阶段2:boot Loader

      主要功能 提供选择菜单,让使用者选择不同的开机项加载内核,启动操作系统将开机管理功能转交其他boot loader负责

      常见的boot loader有、、,云桌面的终端和服务器都使用GRUB

      为什么平时一般见不到BootLoader的界面?因为超时时间被设为0了,直接从默认的启动项启动

      修改终端的grub超时时间:vim.tiny /boot/grub/custom.cfg,将第一行的set timeout=0改为set timeout=3

      查看grub.cfg:vi /boot/grub/grub.cfg

      修改grub配置以及grub配置文件的各种设置选项:

      https://help.ubuntu.com/community/Grub2/Setup

      https://www.jianshu.com/p/a24d51276a82

      https://blog.csdn.net/mr_zing/article/details/41055617

      https://blog.csdn.net/dc_show/article/details/47396649

      https://blog.csdn.net/shana_8/article/details/81455657

      gurb.cfg

      中,会用到和两个文件

      是可引导的、压缩的内核。“vm”代表 “Virtual Memory”,z代表用gzip压缩

      是个RAM Disk(通过软件将一部分RAM模拟为硬盘的技术)的映像文件,里面包含了linux启动时需要的目录、可执行文件、内核驱动模块等。 阶段3:kernel

      在这里插入图片描述

      当前流行的Linux版本一般都采用模块化的内核,这种方式可以在不重新编译构建内核的情形下增加功能模块(ko)。但考虑一种场景,如果磁盘是EMMC的,但相应驱动没有编译进kernel,kernel就无法访问磁盘了,更谈不上加载ko了。这时候就需要用到RAM Disk技术了。

      载入和到内存中

      kernel启动后自解压,将的内容挂载为根文件系统

      kernel从init根文件系统中加载所需功能模块

      kernel会根据中“root=XXX”部分所指定的内容创建一个根设备,然后将根文件系统以只读的方式挂载,并切换到真正的根文件系统上

      调用systemd程序,进入系统初始化阶段。

      详细流程可以参考

      Bootloader引导内核后,进入第三个阶段:内核。这边并不打算介绍内核的函数调用流程,因为目前我自己在工作中还没遇到需要解决的问题。今天想要介绍的是内核阶段可能存在两个根文件系统。 阶段4:systemd

      是 系统中最新的初始化系统,它主要的设计目标是克服 固有的缺点,提高系统的启动速度。

      在硬件驱动成功后,kernel 会主动呼叫 systemd 。从右图可以看出,、、、存在依次依赖的关系,按照依赖关系并发启动包含的服务后,完成图形界面的启动

      会执行,自研脚本可以从中进行启动

      在这里插入图片描述 阶段5:应用软件

      使用可以查看进程树。可以看到的PID为1,所有应用软件都是从派生出来的

      学习完linux开机的5个阶段,请大家思考下,我们学习这部分知识的目的是什么,能解决什么问题?

      1 开机速度的优化

      2 定位BUG在哪个阶段发生

      3 调试,例如grub选择内核,编辑启动参数

      4 功能开发,例如自研脚本的加入,systemd服务的编写

      在这里插入图片描述 基本命令 文件管理

      ls, mv, cp, rm, chown, chmod, mkdir, find, touch, ln

      ls

      mv

      mv参数设置与运行结果

      命令格式

      运行结果

      mv 文件名 文件名

      将源文件名改为目标文件名

      mv 文件名 目录名

      将文件移动到目标目录

      mv 目录名 目录名

      目标目录已存在,将源目录 移动到目标目录;目标 目录不存在则改名

      mv 目录名 文件名

      出错

      cp

      rm

      chown

      chmod

      mkdir

      find

      touch

      ln

      文本操作

      grep, cat, wc, cut, awk, sed, tr

      grep

      cat

      wc

      cut

      awk

      https://www.runoob.com/linux/linux-comm-awk.html

      sed

      tr

      磁盘管理

      cd, pwd, df, du, dd, fdisk, mount/umount, mkfs

      cd

      pwd

      df

      du

      dd

      fdisk

      mount/umount

      mkfs

      系统管理

      top, ps, pstree, date, shutdown, reboot, passwd

      top

      ps

      pstree

      date

      shutdown

      reboot

      passwd

      网络通信

      ping, ssh, scp, ifconfig

      ping

      ssh

      scp

      ifconfig

      压缩解压

      tar, gzip/gunzip, zip/unzip

      tar

      gzip/gunzip

      zip/unzip

      查询硬件信息的命令

      lscpu

      free

      lspci

      lsusb 多命令协作

      管道:

      http://c.biancheng.net/view/3131.html

      https://www.jianshu.com/p/9c0c2b57cb73

      输入输出重定向:,,

      git操作命令

      git是一个开源的分布式版本控制系统,Linux的开源代码一般都采用git管理

      git常用命令

      在这里插入图片描述

      菜鸟教程 https://www.runoob.com/linux/linux-tutorial.html

      鸟哥的私房菜 http://linux.vbird.org/

      Linux就该这么学 https://www.linuxprobe.com/

      Pro Git https://git-scm.com/book/zh/v2

    Linux发行版主要有Debian与Redhat两大系列
    版权声明

    本文仅代表作者观点,不代表xx立场。
    本文系作者授权xxx发表,未经许可,不得转载。

    发表评论