Linux操作系统简介

   日期:2024-12-26    作者:cairui2007 移动:http://mip.riyuangf.com/mobile/quote/31668.html

文章目录

    • 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发行版主要有DebianRedhat两大系列

Debian

Redhat

发行版代表

Debian,Ubuntu,Linux Mint

Redhat,CentOS,Fedora

软件包管理方式

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

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

安装包格式

deb

rpm

关键硬件器件——CPU

CPU是计算机的运算核心和控制核心,部分CPU内置核芯显卡

  • x86架构:Intel、AMD、海光、兆芯等芯片
  • ARM架构:飞腾、鲲鹏等
  • 固态硬盘(SSD:读写速度快,价格较高
  • 机械硬盘(HDD:读写速度慢,价格便宜,容量大
  • EMMC:多用于低端嵌入式设备,容量较小,云终端的EMMC有4GB、8GB、32GB几种规格

分为板载和插槽两种接口

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

查看内存的命令

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

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

  1. 载入和到内存中

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

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

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

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

详细流程可以参考

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

阶段4:systemd

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

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

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

阶段5:应用软件

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

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

1 开机速度的优化

2 定位BUG在哪个阶段发生

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

基本命令

文件管理

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常用命令

     

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号