linux鸟哥私房菜——总结笔记

本文从计算机硬件架构开始,详细介绍了CPU、内存、显卡和硬盘的工作原理,接着探讨了软件运行和操作系统的角色。重点讨论了操作系统的内核、系统调用接口、程序管理和内存管理。此外,还提到了Linux操作系统与POSIX规范的关系及其模块化设计。最后,预告了主机规划和磁盘分区的内容。

第零章 计算机概论

1、个人电脑架构与相关设备元件、相关概念

主板

北桥:负责连接CPU、内存、显卡接口等组件

南桥:负责连接速度较慢的设备接口,如硬盘、USB、网卡等等。

1.1 CPU

CPU:

  1. 外频:CPU与外部元件进行数据传输的速度。
  2. 倍频:CPU内部用来加速工作性能的一个参数。
  3. 两者相乘才是CPU的频率速度。
  4. 超频:通常倍频不能改动,因此改动外频,则能够使CPU的频率高于出厂设置。
  5. intel的turbo技术可以帮助自动超频。

总线宽度:每次频率能够传输的数据量。

字组:CPU每次能够处理的数据量。

超线程:让单核CPU像拥有两个核心一样:在每个CPU内部将重要地寄存器分为两个集群,让程序分别使用这两群寄存器。这样子的话,有两个程序可以同时竞争CPU的运算单元,而不是通过操作系统的任务切换。

1.2 内存

内存主要原件:动态随机存取内存 DRAM (挥发性内存)

多通道设计:传统的总线宽度一般是64位。为了加大这个宽度,则可以使用两个内存,就是128位了。启动双通道内存功能时,数据是同步写入两个内存的。

第二层高速缓存:L2必须要与CPU频率相同,因此DRAM不行,要使用静态随机存取内存 SRAM

CMOS芯片:记录了主板上各元件的参数,通过额外的电源来发挥记录功能。可以通过 BIOS 读取和更新。

BIOS:是一个程序,被写死到主板上一个内存芯片,使用只读存储器 ROM 存储。开机时首先读取。现在BIOS可以更改了,所以现在的BIOS通常时写入闪存之类的。

固件:绑在硬件上的控制软件。(比如磁盘阵列卡,网卡、交换器设备等都有)

1.3 显卡(VGA)

显存:显卡上会有一个内存的容量,这个显存会影响屏幕分辨率和颜色深度。

GPU:早期一些3D的运算是CPU运行的,现在直接在显卡上加了3D加速芯片。

显卡也是一个高速运算的一个元件,因此数据的传输也是越快越好。

HDMI:既可以传送图像,还可以传送声音。

1.4 硬盘和存储设备

扇区:

  1. 小区块就是扇区,一个同心圆的扇区组成的圆就是磁道,所有盘片的同一个磁道组成柱面。
  2. 外围的圈会有更多的扇区。
  3. 通常读写数据从外圈开始往内写,因为都是转一圈,外圈能读写的数量更多。
  4. 一个扇区512Byte,但是随着容量越来越大,已经有4KB的扇区了。

传统硬盘需要马达去转动盘片,会造成严重的读写延迟。

固态磁盘不需要转动,直接读写,但是有写入次数的限制。

通常很多小文件的读写会很耗硬盘,因为要转很多圈。SSD没有这个问题。

IOPS:每秒读写操作次数。

2、软件程序运行

当我们需要CPU帮忙工作时,就要参考微指令集。

为了克服硬件方面总要重复编写控制码的问题,于是有了操作系统

2.1 操作系统

早期要让电脑运行,要会机器语言,并且参考各种硬件功能函数。每次写程序都要改写,因为硬件与软件不一定一样。

操作系统是程序,它的重点在于管理计算机的所有活动和驱动系统中的所有硬件。

操作系统核心:

比如让CPU可以开始判断逻辑,让内存开始载入数据与程序码、让网卡可以开始传输数据等等。这就是操作系统的核心Kernel。

kernel:主要在于管控计算机的硬件资源和提供相关的功能(如存取硬盘,网络功能,获取CPU资源)

核心程序放在内存中的区块是收到保护的,并且开机后常驻内存。

系统调用:

既然硬件是由核心管理,那么想要编写软件就要参考核心了,从原本的参考硬件函数变成了参考核心,还是很麻烦。于是操作系统提供了统一的系统调用接口。

核心只进行电脑系统的资源分配,要有应用程序,使用者才能使用。

总结:

  1. 操作系统的核心层直接参考硬件规格写成,所以同一个操作系统不能再不同的硬件架构下运行。
  2. 操作系统只是在管理硬件资源,包括CPU,内存,输入输出设备以及文件系统文件。只是让主机Ready,并不能运行其他功能。
  3. 应用程序的开发是参考的操作系统提供的系统调用接口,所以不同的操作系统上的应用程序也是要重新编写的。

Kernel的核心功能:

  1. 系统调用接口:方便程序开发者。
  2. 程序管理:CPU资源分配,调度机制。
  3. 内存管理:内存控制机制,虚拟内存,内存交互。
  4. 文件系统管理:数据输入输出工作,文件格式支持。
  5. 设备的驱动:管理硬件。(当然驱动程序实际上由硬件厂商提供,他们参考操作系统驱动程序的开发接口进行开发)

第一章 Linux是什么

要达到多工的环境,硬件(主要是CPU)以及操作系统都要具有多任务的特性。

为了让所有的软件(主要是Unix上的软件)都能在Linux上运行,Torvalds 开始参考 POSIX 规范来对linux核心进行编写。

POSIX:可携式操作系统接口,重点在规范核心与应用程序之间的接口。

模块化:将某些功能独立出核心外,在需要的时候才载入核心。免得每次加入新的功能都要重新编译核心,重新装系统。

第二章 主机规划与磁盘分区

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值