Linux(1):开始

news2024/11/27 10:21:54

计算机组成概述

计算机:接受用户输入指令与数据,经由中央处理器的数学与逻辑单元处理后,以产生或存储有用的信息。
主要可以分为3个部分:输入单元、主机单元、输出单元。

中央处理器(Central Processing Unit, CPU) 为一个具有特定功能的芯片,内部含有微指令集。
因为CPU的主要工作在于管理和运算,因此,CPU 内又可以分为两个主要单元:
1.算数逻辑单元:负责程序运算与逻辑判断;
2.控制单元:协调各周边组件与各单元间的工作。

CPU 读取的数据都是从主存储器来的。主存储器内的数据则是从输入单元所传输进来。CPU 处理完毕的数据也必须要先写回主存储器中,最后数据才从主存储器传输到输出单元。
基本上数据都是流经过主存储器再转出去的

CPU 架构

CPU目前有两种主要的架构: 精简指令集(RISC)复杂指令集(CISC) 系统。
精简指令集(RISC) :微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳: 但是若要做复杂的事情,就要由多个指令来完成。
复杂指令集(CISC) :CISC 在微指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂, 每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长, 但每条个别指令可以处理的工作较为丰富。常见的 CISC 微指令集 CPU 主要有 AMD、Intel、VIA 等的 x86 架构的 CPU。

CPU 所谓的位指的是 CPU 一次数据读取的最大量。32(64)位 CPU 则是 CPU 一次只能读取 32(64)位的意思。

CPU 的工作频率:外频与倍频

频率就是CPU每秒钟可以进行的工作次数。

不同的 CPU 之间不能单纯的以频率来判断运算效能
因为不同 CPU 的微指令集不相同,架构也不见得一样,可使用的第二层快取及其计算器制可能也不同, 加上每次频率能够进行的工作指令数也不同。所以,频率目前仅能用来比较同款 CPU 的速度。

外频 指的是 CPU 与外部组件进行数据传输时的速度,
倍频 则是 CPU 内部用来加速工作效能的一个倍数,两者相乘才是 CPU 的频率速度。
CPU 的频率速度 = 外频 × 内频

超频 指的是: 将 CPU 的倍频或者是外Tips频透过主板的设定功能更改成较高频率的一种方式。但因为 CPU 的倍频通常在出厂时已经被锁定而无法修改,因此较常被超频的为外频

32 位与 64 位的 CPU 与总线

CPU 每次能够处理的数据量称为 字组大小(word size),字组大小依据 CPU 的设计而有 32 位与 64 位。
现在所称的计算机是 32 或 64 位主要是依据这个 CPU 解析的字组大小而来的。

超线程(Hyper-Threading,HT)

在每一个 CPU内部将重要的缓存器 (register) 分成两群, 而让程序分别使用这两群缓存器。也就是说,可以有两个程序同时竞争 CPU 的运算单元,而非透过操作系统的多任务切换! 这一过程就会像同时拥有两个核心一样。

计算机上常用的计算单位

容量单位
0/1 这个二进制的的单位称为 bit。但 bit 实在太小了,所以在储存数据时每份简单的数据都会使用到 8bits 的大小来记录,因此定义出 byte 这个单位,他们的关系为:1 Byte = 8 bitsK 代表 1024 byte,M 代表 1024K

速度单位
CPU 的指令周期常使用 MHZ 或者是 GH 之类的单位,这个 H 其实就是秒分之一
在网络传输方面,由于网络使用的是 bit 为单位,因此网络常使用的单位为 MbpsMbits per second,亦即是每秒多少 Mbit

内存

个人计算机的主存储器主要组件为动态随机存取内存(DynamicRandom Access Memory,DRAM), 随机存取内存只有在通电时才能记录与使用,断电后数据就消失了。因此也称这种 RAM 为挥发性内存

SDRAM 与DDR SDRAM 两种DRAM:差别除了在于脚位与工作电压上的不同之外,DDR 是所谓的双倍数据传送速度(DoubleData Rate), 他可以在一次工作周期中进行两次数据的传送,感觉上就好像是 CPU 的倍频,所以传输频率方面比 SDRAM 还要好。
现在的 PC 机,DDR内存用的多。

主存储器除了频率/带宽与型号需要考虑之外,内存的容量也很重要。
因为所有的数据都得要加载内存当中才能够被 CPU 判读,如果内存容量不够大的话将会导致某些大容量数据无法被完整的加载,此时已存在内存当中但暂时没有被使用到的数据必须要先被释放,使得可用内存容量大于该数据,那份新数据才能够被加载。所以,通常越大的内存代表越快速的系统,这是因为系统不用常常释放一些内存内部的数据。
以服务器来说,主存储器的容量有时比 CPU 的速度还要来的重要的。

多通道设计

主存储器的数据宽度当然是越大越好,但传统的总线宽度一般大约仅仅有 64 位,为了加大这个宽度,因此将两个主存储器汇整在一起,如果一支内存有 64 位,那么两支内存就可以有 128 位。这就是双通道的设计理念。

要启用双信道的功能必须要安插两支(或四支)主存储器,这两支内存最好连型号都一模一样比较好, 这是因为启动双信道内存功能时,数据是同步写入/读出这一对主存储器中,如此才能够提升整体的带宽。除了容量大小要一致之外,型号也最好相同。

DRAM 与 SRAM

某些很常用的程序或数据可以放置到 CPU 内部,CPU 数据的读取就不需要跑到主存储器重新读取了,效能大大提升。<第二层快取高速缓存>
静态随机存取内存(Static Random Access Memory,SRAM)的引入:因为第二层快取(L2 cache)整合到 CPU 内部,因此这个 L2 内存的速度必须要 CPU 频率相同。

只读存储器(ROM)

BIOS(Basic Input Output System) 对计算机系统来讲是非常重要的一套程序,因为他掌握了系统硬件的详细信息与开机设备的选择等等。这套程序是写死到只读存储器(Read OnlyMemory,ROM)。ROM 是一种非挥发性的内存。另外,BIOS 对于个人计算机来说是非常重要的,因为他是系统在开机的时候首先会去读取的一个小程序。

其他计算机设备组件

显示适配器

显示适配器又称为 VGA(Video Graphics Array),对于图形影像的显示重点在于分辨率与颜色深度,因为每个图像显示的颜色会占用掉内存, 因此显示适配器上面会有一个内存的容量,这个显示适配器内存容量将会影响到屏幕分辨率与颜色深度。

硬盘与储存设备

在硬盘盒里面由许许多多的圆形磁盘盘、机械手臂、 磁盘读取头与主轴马达所组成的,整个内部如同下图所示:
在这里插入图片描述
由于单一磁盘盘的容量有限,因此有的硬盘内部会有两个以上的磁盘盘。
磁盘盘上头的数据写入:
在这里插入图片描述
由于磁盘盘是圆的,并且透过机器手臂去读写数据,磁盘盘要转动才能够让机器手臂读写。因此,通常数据写入当然就是以圆圈转圈的方式读写。 所以,当初设计就是在类似磁盘盘同心圆上面切出个一个的小区块,这些小区块整合成一个圆形,让机器手臂上的读写头去存取。 这个小区块就是磁盘的最小物理储存单位,称之为 扇区 (sector),那同一个同心圆的扇区组合成的圆就是所谓的 磁道(track)。 由于磁盘里面可能会有多个磁盘盘,因此在所有磁盘盘上面的同一个磁道可以组合成所谓的 磁柱(cylinder)

固态硬盘 最大的好处是,它没有马达不需要转动,而是透过内存直接读写的特性,因此除了没数据延迟且快速之外,还很省电。

主板

I/O 地址 有点类似每个装置的门牌号码,每个装置都有他自己的地址,一般来说,不能有两个装置使用同一个 I/O 地址, 否则系统就会不晓得该如何运作这两个装置了。而除了 I/O 地址之外,还有个IRQ 中断(Interrupt)

CMOS 主要的功能为记录主板上面的重要参数, 包括系统时间、CPU 电压与频率、各项设备的 I/O 地址与 IRO 等,由于这些数据的记录要花费电力,因此主板上面才有电池。
BIOS 为写入到主板上某一块 flashEEPROM 的程序,他可以在开机的时候执行,以加载 CMOS 当中的参数, 并尝试呼叫储存装置中的开机程序,进一步进入操作系统当中。
BIOS 程序也可以修改 CMOS 中的数据,每种主板呼叫 BIOS设定程序的按键都不同,一般桌面计算机常见的是使用[del]按键进入 BIOS 设定画面。

数据表示方式

常用的英文编码表为 ASCII 系统,这个编码系统中, 每个符号(英文、数字或符号等)都会占用 1 bytes的记录,因此总共会有 2^8 = 256 种变化。
至于中文字当中的编码系统早期最常用的就是 big5 这个编码表了。每个中文字会占用 2 bytes,理论上最多可以有 2^16 = 65536,亦即最多可达 6 万多个中文字

Unicode 编码系统, 我们常常称呼的UTF8 或万国码的编码,打破了所有国家的不同编码。

软件程序运作

操作系统

操作系统(Operating System,OS) 其实也是一组程序, 这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件
操作系统核心主要在管控硬件与提供相关的能力(例如存取硬盘、网络功能、CPU 资源取得等)。
这些管理的动作是非常的重要的,如果使用者能够直接使用到核心的话,万一用户不小心将核心程序停止或破坏, 将会导致整个系统的崩溃!因此核心程序所放置到内存当中的区块是受保护的,并且开机后就一直常驻在内存当中。

系统呼叫(System Call)

计算机系统主要由硬件构成,然后核心程序主要在管理硬件,提供合理的计算机系统资源分配(包括CPU 资源、内存使用资源等等), 因此只要硬件不同(如 x86 架构与 RISC 架构的 CPU),核心就得要进行修改才行 。而由于核心只会进行计算机系统的资源分配,所以在上头还需要有应用程序的提供用户才能够操作系统的。
为了保护核心,并且让程序设计师比较容易开发软件,因此操作系统除了核心程序之外,通常还会提供一整组开发接口,那就是系统呼叫层

核心功能

系统呼叫接口(System call interface)
为了方便程序开发者可以轻易的透过与核心的沟通,将硬件的资源进一步的利用,于是需要有这个简易的接口来方便程序开发者。

程序管理(Process control)
总有听过所谓的[多任务环境]吧? 一部计算机可能同时间有很多的工作跑到 CPU 等待运算处理, 核心这个时候必须要能够控制这些工作,让 CPU 的资源作有效的分配才行!另外, 良好的 CPU 排程机制(就是CPU 先运作那个工作的排列顺序)将会有效的加快整体系统效能。

内存管理(Memory management)
控制整个系统的内存管理,这个内存控制是非常重要的,因为系统所有的程序代码与数据都必须要先存放在内存当中。 通常核心会提供虚拟内存的功能,当内存不足时可以提供内存置换(swap)的功能。

文件系统管理(Filesystem management)
文件系统的管理,例如数据的输入输出(IO)等等的工作,还有不同文件格式的支持等等,如果你的核心不认识某个文件系统,那么您、将无法使用该文件格式的文件。例如: Windows 98 就不认识 NTFS 文件格式的硬盘;

装置的驱动(Device drivers)
就如同上面提到的,硬件的管理是核心的主要工作之一,当然,装置的驱动程序就是核心需要做的事情,好在目前都有所谓的[可加载模块] 功能,可以将驱动程序编辑成模块,就不需要重新的编译核心了。

《鸟哥的Linux私房菜-基础篇》学习笔记

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1216604.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

unity shaderGraph实例-扫描效果

文章目录 效果展示整体结构各区域内容区域1区域2区域3区域4区域5区域6GraphSetttings注意事项使用方法 效果展示 整体结构 各区域内容 区域1 用场景深度减去顶点的View空间的视野深度&#xff08;Z值&#xff09;&#xff0c;这里Z值需要乘-1是因为从相机看到的物体顶点的视野…

UI设计是什么意思?一文给你讲清楚

随着互联网的快速发展&#xff0c;用户界面UI设计在中国也逐渐发展&#xff0c;用户界面UI设计的目的不仅是让用户&#xff0c;有视觉享受&#xff0c;而且解决用户如何与互联网设备交互&#xff0c;因此&#xff0c;用户界面UI设计是通过用户使用习惯、操作逻辑、界面交互和视…

【数据结构高阶】二叉搜索树

接下来我们来开始使用C来详细讲解数据结构的一些高阶的知识点 本期讲解的是二叉搜索树&#xff0c;对于初阶二叉树有所遗忘的同学可以看到这里&#xff1a; 【精选】【数据结构初阶】链式二叉树的解析及一些基本操作 讲解二叉搜索树主要是为了后面的map和set做铺垫&#xff…

安装pycharm选择路径时,点击next无反应

安装的时候断网就可以解决该问题。

空调能量表

数字化应用场景&#xff1a;空调能量监测 定义 空调能量表产品又被称为冷量积算仪、冷量积分仪、能量积分仪、能量积算仪、空调冷热量表、冷量表、能量表等&#xff0c;现阶段行业内没有统一的名称。 作用 用于计量中央空调能耗的仪表&#xff0c;它通过和空调管道流量计和温…

《增长黑客》思维导图

增长黑客这个词源于硅谷&#xff0c;简单说&#xff0c;这是一群以数据驱动营销、以迭代验证策略&#xff0c;通过技术手段实现爆发式增长的新型人才。 近年来&#xff0c;互联网公司意识到这一角色可以发挥四两拨千斤的作用&#xff0c;因此对该职位的需求也如井喷式增长。本…

基于C#实现五家共井

古代数学巨著《九章算数》中有这么一道题叫“五家共井&#xff0c;甲二绠&#xff08;汲水用的井绳&#xff09;不足&#xff0c;如&#xff08;接上&#xff09;乙一绠&#xff1b;乙三绠不足&#xff0c;如丙一绠&#xff1b;丙四绠不足&#xff0c;如丁一绠&#xff1b;丁五…

SQL存储过程和函数

SQL存储过程和函数 变量系统变量用户定义变量局部变量 存储过程存储函数 变量 在MySQL中变量分为三种类型: 系统变量、用户定义变量、局部变量。 系统变量 系统变量 是MySQL服务器提供&#xff0c;不是用户定义的&#xff0c;属于服务器层面。分为全局变量&#xff08;GLOBA…

软件开发和软件测试,到底学哪个好呢?

写在前面&#xff1a;买车没有最好&#xff0c;只有最适合。 类似这类“很难选择”的问题&#xff0c;在知乎上其实有很多。 比如&#xff1a;“该去年薪10w的国家电网&#xff0c;还是去年薪40w的互联网大厂”&#xff1b; 比如&#xff1a;“城里有房&#xff0c;剩下的100…

营业执照识别

目录 1、制作文本检测数据集 2、导出文本检测推理模型 3、制作语义实体识别数据集 4、训练模型 5、模型预测 6、模型导出 7、模型推理 1、制作文本检测数据集 文本检测数据集格式如下&#xff1a; dataset_dir # 数据集根目录&#xff0c;目录名称可以改变 ├── im…

一招告别百度广告烦恼,同时效率提高100倍的几个常用搜索技巧!

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐--…

软件测试面试-如何定位线上出现bug

其实无论是线上还是在测试出现bug&#xff0c;我们核心的还是要定位出bug出现的原因。 定位出bug的步骤&#xff1a; 1&#xff0c;如果是必现的bug&#xff0c;尽可能的复现出问题&#xff0c;找出引发问题的操作步骤。很多时候&#xff0c;一个bug的产生&#xff0c;很多时…

可以写进简历的软件测试项目实战经验(包含电商、银行、app等)

前言&#xff1a; 今天给大家带来几个软件测试项目的实战总结及经验&#xff0c;适合想自学、转行或者面试的朋友&#xff0c;可以写进简历里的那种哦。 1、项目名称: 家电购 项目描述&#xff1a; “家电购”商城系统是基于 web 浏览器的电子商务系统&#xff0c;通过互联网…

GBase8a-GDCA-第二次阶段测试

文章目录 主要内容在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/1d552b9d6d204f4fb4280ccc52807ed5.png)在这里插入图片描述 总结 主要内容 GBase8a-GDCA-第二次阶段测试及答案 总结 以上是今天要讲的内容&#xff0c;GBase8a-GDCA-第二次阶段测试…

clion qt导出dll给别的项目用

clion 导出dll给别的项目用&#xff0c;并且引入matplotcpp dll生成一个mydll的dll文件 1.先做一个简单dll的测试下 cmake_minimum_required(VERSION 3.26) project(untitled) set(CMAKE_CXX_STANDARD 11) add_library(untitled SHARED main.cpp)main.h void hello();main.cp…

在windows下vs c++运行g2o的BA优化程序示例

目录 1、前言2、准备工作安装git安装vcpkg&#xff08;1&#xff09;下载&#xff08;2&#xff09;安装&#xff08;3&#xff09;集成至vs 安装cmake 3、安装g2o4、安装opencv&#xff08;1&#xff09;下载&#xff08;2&#xff09;双击安装&#xff08;3&#xff09;环境变…

Redis应用场景及常见的数据类型

目录 一、Redis应用场景 1.1 Redis作为缓存 1.2 Redis作为消息队列 1.3 实现计数器和排行榜 1.4 实现分布式锁及分布式会话管理 二、Redis常见的数据类型 2.1 String&#xff08;字符串&#xff09;类型 2.2 list类型 2.3 Hash类型 2.4 Set类型 2.5 Sorted Set 一、Redis应用场…

前端开发学习 (一) 搭建Vue基础环境

一、环境搭建 1、安装nodejs #下载地址 https://nodejs.org/dist/v20.9.0/node-v20.9.0-x64.msi 2、配置环境变量 上面下载完安装包后自行安装&#xff0c;安装完成后安装下图操作添加环境变量 #查看版本 node --version v20.9.0# npm --version 10.1.03、配置npm加速源 np…

机器学习的逻辑回归

Sigmoid函数 逻辑回归的预测函数 梯度下降法-逻辑回归 import matplotlib.pyplot as plt import numpy as np # 生成一个关于分类器性能的详细报告。 # 这个报告包含了每个类别的精度、召回率、F1分数&#xff0c;以及所有类别的平均精度、召回率和F1分数 from sklearn.metri…