计算机概论--计算机基础知识快速入门

article/2025/9/7 10:45:18

      • 0.前言
      • 1.计算机:辅助人脑的好工具
        • 1.1计算机硬件的五大单元
        • 1.2CPU的种类
        • 1.3接口设备
        • 1.4运作流程
      • 2.个人计算机架构与接口设备
        • 2.1CPU
        • 2.2内存
        • 2.3显卡
        • 2.4硬盘与存储设备
        • 2.5主板
      • 3.软件程序执行
        • 3.1机器程序与编译程序
        • 3.2操作系统
          • 3.2.1操作系统内核
          • 3.2.2系统调用
        • 3.3小结
      • 4.参考

0.前言

​ 楼主半路出家做起了软件开发的工作,做了一年半以后,觉得有必要补充一下计算机相关的基础知识框架,于是有了这篇博文,这篇博文主要是泛泛的概述计算机硬件的知识,主要是对于非科班的从业人员的一个大致地了解,比较枯燥,但都是干货,4000字左右,认真读的话,大约1h应该可以看完。

1.计算机:辅助人脑的好工具

计算机其实就是:接收用户输入指令与数据,经过中央处理器的数据与逻辑单元运算处理后,以产生或存储有用的信息。那么商店用的简易型加减乘除计算机、手机、开车的GPS、ATM、笔记本电脑等等都是计算机。

1.1计算机硬件的五大单元

计算机主要分为三部分:

  • 输入单元:包括键盘、鼠标、卡片阅读机、触摸屏幕等等
  • 中央处理器(CPU,Central Processing Unit):含有算术逻辑、控制、记忆等单元
  • 输出单元:例如屏幕、打印机等

CPU作为一个具有特定功能的芯片,里面还有微指令集,由于CPU主要工作在于管理与运算,因此CPU又分为两个主要的单元,分别是:算术逻辑单元与控制单元。 其中算术逻辑单元主要负责程序运算与逻辑判断,控制单元主要协调各组件与各单元间的工作。

CPU中读取的数据是从内存中读取出来的,内存内的数据则是从输入单元传输进来的,而CPU处理完的数据也必须要先写会内存中,最后数据才从内存传输到输出单元。

计算机硬件的五大单元:输入单元,输出单元,CPU内部的控制单元、算术逻辑单元与内存五大部分。

1.2CPU的种类

CPU内部有一些小指令集,两种CPU种类:分别是精简指令集与复杂指令集。

精简指令集(Reduced Instruction Set Computing,RISC)

  • 微指令集较为精简,每个指令使用的时间较短,完成的操作也很单纯,指令的执行性能较佳;常见的如ARM

复杂指令集(Complex Instrution Set Computer,CISC)

  • 微指令集中,指令数目多而且复杂,每条指令的长度不相同,花费的时间长,但是每条指令可以处理的工作较为丰富。常见的主要是AMD\Intel\等X86架构的CPU,主要用于个人计算机。64位的个人计算机CPU又被称为X86_64的架构。

1.3接口设备

除了输入\输出设备以及CPU与内存之外,最重要的接口设备是主板,主板负责将所有的设备连接在一起,让所有的设备能够进行协调与通信。而主板上最重要的组件就是主板芯片组,这个芯片组可以将所有的设备汇集在一起,其他重要的设备还有:

  • 存储设备:硬盘、软盘、磁带、光盘
  • 显示设备:显卡
  • 网络设备

1.4运作流程

  • CPU=大脑:每个人会做的事情都不一样(微指令集的差异), 但主要都是透过脑袋来进行判断控制身体各部分的活动。
  • 内存=大脑中的记录区块:在实际活劢过程中,我们的大脑能够将外界的互动暂时记录起来, 提供CPU来进行判断。
  • 硬盘=大脑中的记忆区块,将重要的数据记录下来,以便CPU读取\写入
  • 主板=神经系统:所有组件连接起来
  • 显卡=脑袋中的影像:将各种影像输出的装备,也是由CPU将影像传出来
  • 各项接口设备=人体与外界通信的手脚皮肤眼睛等

2.个人计算机架构与接口设备

两大主流的x86开发商(Intel,AMD)

  • Intel

主板上最重要的就是芯片组,而芯片组通常又分为两个桥接器来控制各组件的通信:

1)北桥负责连接速度较快的CPU、内存与显卡等组件

2)南桥负责连接较慢的周边接口,包括硬盘、USB、网卡等

  • AMD

内存直接与CPU通信而不通过北桥,因为CPU的数据主要都来自于内存,因此AMD为了加速这两者的通信,将内存控制组件集成到CPU中,理论上这样可以加速CPU与内存的传输速度,这是两种CPU在架构上的最主要的区别

2.1CPU

  • 目前主流的CPU都是双核以上的架构了,原本的单核CPU仅有一个运算单元,所谓的多核则是在一个CPU封装中嵌入了两个以上的运算内核,简单来说,就是一个实际的CPU外壳中含有两个以上的CPU单元。
  • 不同型号的CPU大多具有不同的脚位。
  • CPU的性能除了微指令集还有频率:CPU每秒可以进行的工作次数。
  • CPU的外频与倍频
    • 外频:指的是CPU与外部组件进行数据传输/运算时的速度,倍频:CPU内部用来加速工作性能的一个倍数,两者相乘才是CPU的频率。如某CPU的频率是3.0GHz,而外频是333MHz,因此倍频就是9倍(3.0G=333x9,其中1G=1000M)
  • 32位与64位
    • CPU运算的数据是由内存提供的,内存与CPU的通信速度靠的是外部频率,而每次工作可以传送的数据量由总线决定,一般的主板芯片组分为北桥与南桥,北桥的总线称为系统总线,以为是内存传输的主要通道,所以速度较快南桥就是所谓的输入输出(I/O)总线,主要用于联系硬盘、USB等接口设备
    • 北桥所支持的频率我们称为前线总线速度(Front Side Bus,FSB),而每次传送的位数就是总线宽度 。所谓的总线频宽就是“FSBx总线宽度”,即每秒可传送的最大数据量。目前常见的总线宽度有32/64位(bit).
    • 与总线宽度相似,CPU每次能够处理的数据量称为字组大小(word size), 字组大小依据CPU的设计而有32位和64位,,我们现在所称的计算机是32位或者64位主要是依据CPU解析的字组大小而来的

2.2内存

  • CPU所使用的数据都来自于内存,不论是软件程序还是数据,都必须要读入内存后CPU才能利用。
  • 个人计算机的内存主要组件是动态随机访问内存(Dynamic Random Access Memory,DRAM),随机访问内存只有在通电的时候才能记录与使用,断电后就消失了,这种RAM也称为挥发性内存。
  • 通常内存越大表示系统越快,对服务器而言,内存的容量有时比CPU的速度还重要。
  • 双通道设计
    • 由于所有的数据都必须在内存中,所以内存的数据宽度当然越大越好,但传统的总线宽度一般大约64位,为了加大这个宽度,因此芯片组厂商就将两个内存汇整在一起,如果一条内存可达64位,那么两条内存可以达到128位了,这就是双通道的设计理念。

2.3显卡

显卡又称为VGA(Video Graphics Array),它对于图形影像的显示扮演相当关键的角色,一般对于图形影像的显示重点在于分辨率和图形深度,因为每个图像显示的颜色会占内存,因此显卡上面会有一个内存的容量,这个显卡的内存容量将会影响最终的屏幕分辨率和色彩深度。

除了显卡内存之外,由于3D游戏的流行,显卡的“运算能力”越来越重要,现在显卡厂商直接在显卡上面嵌入一个3D加速的芯片,这就是GPU称为的由来。

2.4硬盘与存储设备

储存数据最常见的就是硬盘。

硬盘的物理组成

  • 硬盘是由许多的盘片、机械手臂、磁头与主轴马达组成。
  • 实际的数据都是写在具有磁性物质的盘片上,而读写主要是通过机械手臂上的读取头(Head)来完成的,实际运行时,主轴马达让盘片转动,然后机械手臂可伸展让读取头在盘片上面进行读写操作。

2.5主板

主板是整台主机相当重要的一个部分,所有的组件都是安插在主板上面的,而主板上面负责通信各个组件的就是芯片组,芯片组一般分为南桥与北桥,南桥负责CPU/RAM/VGA等的连接,南桥则负责速度较慢的I/O设备

  • 设备I/O地址与IRQ中断信道

    • I/O地址类似于每个设备的门牌号码,每个设备都有自己独立的地址
    • I/O地址看做各设备的门牌号码的话,那么IRQ就可以想成是各个门牌连接到邮件中心(CPU)的专门路径,各设备可以通过IRQ中断信道来告知CPU该设备的工作情况,以方便CPU进行工作分配的任务。
  • CMOS与BIOS

    • CMOS主要是为记录主板上面的重要参数,包括系统时间、CPU电压与频率、各设备的I/O地址与IRQ,由于这些记录需要花费电力,因此主板上才有电池。
    • BIOS为写入到主板上某一块闪存的程序,它可以在开机的时候执行,已加载COMS当中的参数,并尝试调用存储设备中的开机设备,进一步进入到操作系统中
  • 连接接口与设备

3.软件程序执行

软件主要分为两大类:一个是系统软件,一个是应用程序

3.1机器程序与编译程序

由于计算机只认识0与1,而且计算机最重要的运算与逻辑判断是在CPU内部,而CPU具有微指令集,因此我们需要CPU帮忙时,就得要参考微指令集的内容,然后编写让CPU读的懂的指令码给CPU执行,这样就能让CPU运行了。

上述流程有几个麻烦的地方:

  • 需要了解机器语言
  • 需要了解所有硬件的相关功能函数
  • 程序不具有可移植性
  • 程序具有专一性

3.2操作系统

操作系统:在早期想要让计算机执行程序就得要参考一堆硬件功能函数,并且要学习机器语言才能够编写程序。同时每次写程序都需要重新改写,因为硬件与软件功能不见得都一致,那如果能够将所有的硬件都驱动,并且提供一个开发软件的参考接口来给工程师开发软件,那么就大大降低难度。

3.2.1操作系统内核

操作系统其实也是一组程序,这组程序的重点在于管理计算机的所有活动以及驱动系统中的所有硬件,硬件的所有操作都必须通过这个操作来完成

只有内核提供了相关功能,计算机系统才能帮我们完成,比如,内核不支持TCP/IP协议,那么无论购买了什么网卡,这个内核都提供不了网络功能。

内核主要在于管控硬件与提供相关能力,这些管理的操作是非常重要的,如果用户能直接使用到内核的话,万一用户不小心将内核程序停止或者破坏,将会导致整个系统的奔溃,因此内核程序所放置到内存当中的区块是受保护的,并且开机后一直常驻在内存中。

3.2.2系统调用
  • 硬件由内核来管理,如果想要开发软件的话,自然就要去参考这个内核的相关功能,如此一来就是从原来的参考硬件函数变成参考内核功能。
  • 操作系统会提供一整组的开发接口给工程师开发软件,工程师只要遵守该开发接口那就很容易开发软件了。
  • 8yl9q.png
  • 计算机系统主要由硬件构成,然后内核程序主要用于管理硬件,提供合理的计算机系统资源分配(包括CPU资源、内存使用资源等),因此只要硬件不同,内核就需要进行修改。而内核只会进行计算机系统的资源分配,所以在上面还需要应用程序的提供,用户才能操作系统。
  • 为了保护内核,并且让程序员比较容易开发,因此操作系统除了内核程序之外还会提供一整套开发接口,那就是系统调用层。

3.3小结

  • 操作系统的内核层直接参考硬件规格写成,所以同一个操作系统程序不能够在不一样的硬件架构下执行。
  • 操作系统只是在管理整个硬件资源,包括CPU、内存、输入输出设备及系统文件,如果没有其他应用软件,操作系统只能让计算机准备妥当而已。
  • 应用程序的开发都是参考操作系统提供的开发接口,所以该应用程序只能在该操作系统上面运行而已,不可以在其他操作系统上面运行。
  • 内核功能
    • 内核主要负责整个计算机系统相关的资源分配和管理,那我们知道其实整部计算机系统最重要的就是CPU与内存,因为,内核应该具有以下功能
    • 系统调用功能
    • 程序管理
    • 内存管理
    • 文件系统管理
    • 设备驱动
    • 操作系统与驱动程序
      • 驱动程序是操作系统中重要的一环,那么操作系统如何驱动这块新的硬件呢?操作系统通常会提供一个开发接口给硬件开发商,让他们可以根据这个接口设计可以驱动他们硬件的驱动程序。
      • 操作系统必须能够驱动硬件,如此应用程序才能使用该硬件功能。
      • 操作系统会提供开发接口,让开发商制作他们的驱动程序
      • 要使用新的硬件功能,必须要安装厂商提供的驱动程序
      • 驱动程序由厂商提供,与操作系统开发者无关
  • 不过,目前,操作系统处理上述功能外,通常已经包含了日常工作所需要的应用软件在内了。

4.参考

​ 以上知识点主要是参考 : 鸟哥的Linux私房菜 ,感兴趣的同学可以购买。


http://chatgpt.dhexx.cn/article/qnPELbcb.shtml

相关文章

0基础如何开始学习计算机知识?

一、计算机的基本操作 计算机中只有文件和文件夹 计算机中,只有两样东西,文件和文件夹。 文件夹:本身不存储数据内容。文件夹是用来组织和管理文件的。 文件: 所有的txt文本文档,音乐,视频,图…

【电脑讲解】电脑知识入门大全,超详细电脑基础知识讲解

这是一个新坑,希望大家喜欢 电脑的基础知识大全,你确定都知道? 一、软件系统 软件系统包括:操作系统、应用软件等。应用软件中电脑行业的管理软件,IT电脑行业的发展必备利器,电脑行业的erp软件。 二、硬件系统 硬件系…

计算机知识01:计算机基础知识入门

1. 计算机运行流程 如果不是很了解电脑运行流程的话,我们可以类比一下,假设电脑是一个人体,那么每个元件对应到哪个地方呢?可以这样思考: CPU脑袋:每个人会做的事情都不一样(微指令集的差异&a…

IP地址(IP Address)

IP Address在网络中,通信节点都需要一个IP地址 以点分十进制表示,有32位二进制构成(大约43亿) 分为两个部分:网络位和主机位 网络位:代表IP地址所属的网段 主机位:代表网点上的某个节点 由子…

IP地址构成 ,以及如何求“网络地址“以及“广播地址“

IP地址(英语:IP Address, 全称:Internet Protocol Address)又称互联网协议地址。当设备连接网络,设备将被分配一个IP地址,用作标识。通过IP地址,设备间可以互相通讯,如果没有IP地址&…

电话号码对应的英语单词

问题: 电话的号码盘一般可以用于输入字母,如用2可以输入a,b,c,用3可以输入d,e,f等。 对于号码5869872,可以依次输出其代表的所有字母组合。如:jtmwtpa,jtmwtpb......... 1、您能否可以根据这样的对应关系设计一个程序&#xff…

地址的概念

前言:地址的概念 1. 地址概念及各个单位换算1.1 地址的概念1.2 单位换算1.3 举例说明,加深理解1.4 关于地址的宽度 1. 地址概念及各个单位换算 1.1 地址的概念 计算机内的数据是存储在地址里面的,地址又是以字节(Byte&#xff09…

地址的地址?

在visual studio 2019中 #include <stdio.h> #include <stdlib.h> typedef struct student { int value; struct student* next_stu; }Student; Student * creatlist(); void insertlist(Student * list,int value); int main() { Student *my_list…

GoldenDict 上的那些精美版权词典(附下载地址)(英语、俄语、梵语、印地语)

转载▼ 标签&#xff1a; 杂谈 国内的有道词典和金山词典由于使用方便、宣传到位得到了许多同学的喜爱。在开源软件的领域&#xff0c;也有一款非常好用的词典GoldenDict&#xff0c;它的强项在于可以直接使用众多词典厂商的词库。那些正规的词典厂商通常购买了词典的版权…

【GO】map转json

咔咔博客之map转json 跟结构体转json一样都使用的是json.Marshal()方法 最后需要就是把字节转为字符串使用string即可 案例 func main() {// 定义了interface 后边就可以跟任意类型了mMap : make(map[string]interface{})mMap["博客地址"] "blog.fangkang.to…

Json4s的一些用法 JSon转对象实体 Json转Map Map转Json

Json4s 全称就是Json For Scala&#xff0c;为Scala而生 首先上Maven依赖配置&#xff0c;其实Spark中自带了Json4s如果是编写Spark代码,并不需要单独引用Json4s的依赖了 <dependency><groupId>org.json4s</groupId><artifactId>json4s-jackson_2.11&…

map转json字符串字段排序

需求&#xff1a;map转成json字符串&#xff0c;要求字段按字母升序排列 package com.data.test;import java.util.HashMap; import java.util.Map; import java.util.TreeMap; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.serializer.SerializerFe…

Map与JSON数据之间的互相转化

Map与JSON mapmap转JSON字符串JSON字符串转JSON对象Map转JSON对象JSON字符串转MapJSON对象转MapJSON对象转JSON字符串IDEA功能快捷键 map 此内容是方便博主自己记忆内容&#xff0c;不用于公开学习资料&#xff0c;若发现语法错误&#xff0c;自行更正&#xff0c;勿喷 map转…

Map和JSON之间的转化

Map和JSON之间的转化 1 添加依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.47</version></dependency>2 测试 2.1 Map转JSON //1.map转jsonTestpublic void testJson01()…

js中三个等号

&#xff1a;三个等号我们称为等同符&#xff0c;当等号两边的值为相同类型的时候&#xff0c;直接比较等号两边的值&#xff0c;值相同则返回true&#xff0c;若等号两边的值类型不同时直接返回false。

两个等号(==)和三个等号(===)的区别

2019独角兽企业重金招聘Python工程师标准>>> 两个等号()和三个等号()的区别&#xff1a; 1. ""表示&#xff1a;equality -> 等同 的意思&#xff0c;""使用两个等号时&#xff0c;如果两边值的类型不同的时候&#xff0c;是要先先进行类型转…

【javaScript】JavaScript中一个等号、二个等号、 三个等号 的区别(详细例子)

一、单等于号 1.单等于号具有赋值作用 我们在定义变量时&#xff0c;会对变量进行赋值&#xff0c;例如a1&#xff0c;就是把1赋值给a。 这就是在初始化对象的时候进行赋值。 2.单等于号具有引用对象作用 比如我们写了 var a 1;var b a ,表示变量a指向的内存地址与b相同&…

JavaScript 中 的等号(==)/不等号(!=) 和全等号(===)/非全等号(!==)

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/u/1579702/blog/220269

有等号“=“的情况

.有等号""的情况 比如a这个字母&#xff0c;ASCII码是65&#xff0c;转换成二进制是01000001&#xff0c;转换成六个一组010000 | 01&#xff0c;就会发现后面不足以组成六位数&#xff0c;就可以在后面添零&#xff0c;就变成了&#x1f449;010000 | 010000&#…

LaTeX:公式等号对齐

LaTeX \LaTeX LATE​X 公式等号对齐 目录 LaTeX \LaTeX LATE​X 公式等号对齐0. 导包1. 对齐 0. 导包 使用公式对齐的功能&#xff0c;需要导入包 \usepackage{amsmath} 1. 对齐 使用如下的格式&#xff1a; \begin{align*}* & * \\& * \\& * \end{align*}或者 …