首页 > 其他分享 >第1章 计算机的理论知识

第1章 计算机的理论知识

时间:2022-09-23 18:56:15浏览次数:82  
标签:语言 内存 网卡 理论知识 CPU 硬盘 计算机

第1章 计算机的理论知识

第01阶段 计算机的理论知识

1.计算机的概念

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑判断,还具有存储记忆(文本、图片、音频、视频等)功能。是能够按照存储在其内部的程序对海量数据进行高速、自动化处理,然后将处理的结果输出到屏幕的一种现代化智能电子设备。

2.计算机的应用

(1)在生活中常见的计算机有手机平板笔记本电脑台式机
(2)此外,还有各种提供商业应用支持的大型服务器集群,其中商业应用指的是电商,支付,金融,物流等商业应用。服务器指的是一台高配的计算机,它一般都是放在公司的机房里面,由Linux运维工程师管理。服务器集群(Server Cluster)指的是成千上万台高配的计算机
华为服务器参数
(3)计算机软件的应用场景
软件既有PC版本(Windows,macOS),也有移动端的版本(Android,iOS,鸿蒙OS)
计算机软件的应用场景

3.计算机的硬件

CPU,内存,硬盘的好坏会直接影响计算机的硬件性能,所以CPU,内存,硬盘称为计算机的三大核心硬件

(1)CPU(Central Processing Unit)

CPU(Central Processing Unit)中央处理器,类似于人的大脑,是 计算机的核心配件,简称处理器或芯片。

CPU主要由运算器和控制器组成。运算器主要功能是对数据和信息进行运算和加工。控制器主要控制其他计算机硬件设备的协同工作。

CPU的作用是指通过执行计算机指令从而处理计算机的 数据信息,不同的CPU的指令系统也不同,就比如说PC端是基于x86架构的复杂指令集,手机则是基于ARM架构的精简指令集。

CPU三级缓存

CPU三级缓存
CPU三级缓存

现如今,主流的服务器的CPU厂商是Intel,主流服务器CPU是Intel的至强可扩展处理器。主流的PC端的CPU厂商有Intel、AMD、Apple,其中Intel用于PC端性能最好的CPU型号是12900ks,并且每一年都会发布新的产品。Apple用于PC端性能最好的CPU型号是M1 Ultra(2个M1 Max),基本上每18个月都会有新产品的发布。

CPU
CPU

(2)内存

内存也被称为内部存储器,是计算机的存储部件。

内存的主要作用是用于暂时存储CPU运算的指令和数据以及和硬盘等外部设备进行数据交换。因此CPU可以直接访问内存中的数据,并且读写的效率也很高。

程序就是由指令和数据组成的,在内存中运行。
举个简单的例子:下载到桌面的小书匠是怎么运行的?双击桌面小书匠的快捷方式以后,操作系统将快捷方式对应的程序从硬盘加载到内存中,当程序加载到内存中后操作系统会为其创建一个进程,该进程可以在任务管理器中查看,同时也可以看到该进程占用的CPU、内存、硬盘、网络等等硬件资源。最后CPU会读取程序的指令和数据并开始执行程序。

小书匠的进程信息
小书匠的进程信息

内存的特点是容量比较小16GB-512GB,不能永久存储数据,如果发生断电,数据就会丢失。所以我们要养成经常手动保存的习惯或者设置自动保存。

主流的内存厂商有三星、金士顿、威刚等等,需要注意的是笔记本电脑、台式机、服务器的内存是不通用的。
目前主流的DDR代数是DDR4、DDR5,其中DDR5的内存频率更高,性能越好,但是价格贵。
从事开发或者运维相关的工作内存容量不要低于32GB

笔记本内存条
笔记本内存条

台式机内存条
台式机内存条

(3)硬盘

硬盘也是计算机的存储部件,它的主要作用是永久的存储数据。因此如果发生断电,数据不会发生丢失的情况。需要注意的是,CPU不能直接访问硬盘中的数据,需要使用程序将硬盘中的数据加载到内存中,然后提供给CPU进行访问。

硬盘的特点是容量比较大,通常都是以TB为单位,例如1TB,2TB,4TB,8TB,16TB等等。

硬盘的分类是机械硬盘和固态硬盘。通常机械硬盘和固态硬盘混合使用,比如说系统盘使用固态硬盘,数据盘使用机械硬盘,这样的话,开机快,软件的运行速度也快,从而节省时间。最好的状态是全部使用固态硬盘。

机械硬盘容量大(TB),价格便宜,但读写的速度慢(50MB/s-200MB/s),目前机械硬盘主要的厂商有希捷、西部数据。
机械硬盘

固态硬盘容量大(TB),价格比较贵,读写速度高(1GB/s-3GB/s)。目前主要的固态硬盘厂商有三星、金士顿等。

一般情况下在选配硬盘的时候无论是个人还是企业通常都要考虑性价比,都是机械硬盘和固态硬盘混合使用的。例如系统使用固态硬盘,数据盘使用机械硬盘,这样开机快,软件运行速度也快,节省时间。不考虑性价比,可以全部使用 固态硬盘。

固态硬盘
固态硬盘

(4)网卡

网卡也是计算机非常重要的组件。它有很多的名字,在服务器的领域经常会看到NIC(Network Interface Card),中文名就是网络接口卡,除此以外还被称为以太网卡,或者网络适配器

网卡的主要作用是用于将客户端和服务器相互连接的电路板组件。例如使用台式机访问京东网站时,背后就是访问的京东的服务器。

网卡的分类,按照传播方式可以分为有线网卡和无线网卡。有线网卡就是通过网线或者光纤将设备连接到网络,无线网卡通常都是有一根小天线,利用无线电波与其他设备进行通讯。通常来说个人使用的笔记本电脑或者台式机一般都是有有线网卡和无线网卡,传输速率是千兆(1000Mbps)。

有线网卡和无线网卡
有线网卡和无线网卡

服务器使用的网卡一般都是 有线网卡,传输速率是万兆千兆(1000Mbps)或者是(10000Mbps)。

4.计算机的软件

计算机软件的出现就是为了帮助人们能够更加方便的解决在日常工作和生活中常见的需求。它的价值远远超过硬件的价值。

软件是由程序员/软件工程师/开发工程师/码农/新型农民工使用某种编程语言(C/C++ /Java/Python/Go/JavaScript/Scala/Kotlin/Rust)编写的计算机指令以及在不同的业务场景产生数据的组成。也就是说软件=指令+数据,除此以外还有用户使用手册、开发文档等等。例如微信的好友就是数据,给好友发信息,信息同样也是数据,而发信息的动作是指令。

软件分为系统软件和应用软件。

软件的分类
软件的分类

软件运行在不同的操作系统中的交互方式是不一样的。

操作系统 交互方式 适用人群
服务端 基于命令行的字符界面 开发或者运维
PC端 基于鼠标、键盘的图形化界面 普通人、开发或者运维
移动端 基于手势滑动、语音触控的图像化界面 普通人、开发

5.计算机系统组成

计算机系统由计算机硬件系统和计算机软件系统两部分组成的。

计算机硬件系统是由CPU、内存、硬盘、网卡、输入输出设备等等组成。在工作中,我们在排查错误的时候,会遇到项目本身的问题,还有就是计算机相关的硬件出现问题也会导致项目出现Bug。即CPU高负载、内存溢出、硬盘写满、网络不通。

计算机软件系统是由系统软件和应用软件组成。在工作中,重点关注操作系统。

计算机系统的组成
计算机系统的组成

6.计算机体系结构

(1)软件(Software)是在硬件(Hardware)上运行的。
(2)不管是系统软件还是应用软件都是运行在操作系统(Operating System)上的。
(3)操作系统由内核(Kernel)和外壳(Shell->Bash Shell,ZShell)两部分组成,内核主要负责计算机硬件交互,Linux内核的官网是https://kernel.org/ ,外壳主要是负责和用户(程序员、运维人员)交互。

计算机体系结构
计算机体系结构

7.计算机常用容量单位

在工作中从事前端开发、后端开发以及运维等相关技术的人们都会需要一台高配的电脑。通常都会选择比普通的家用电脑、办公电脑高一些的配置(CPU、内存、硬盘)。

笔记本电脑
笔记本电脑

计算机常用容量指的就是内存容量硬盘容量
例如内存容量是64GB,硬盘容量是4TB固态硬盘。这里的GB,TB都是属于容量单位。

通常来说在物理层面,我们要用高低电平来记录信息,其中高电平用1来表示,低电平用0来表示。所以在计算机的底层只能识别0和1这两种状态。但是使用0和1能够表示的信息太少了,就需要更大的容量的表示方法。

计算机常用容量单位
计算机常用容量单位

换算关系如下所示:

1EB = 1024PB
1PB = 1024TB
1TB = 1024GB
1GB = 1024MB
1MB = 1024KB
1KB = 1024Byte
1Byte = 8bit

当我们购买电脑的时候,常常会遇到这样一个问题:明明买的是4TB的硬盘,却只有3.63TB。
这是因为计算机容量单位是以1024进行换算,硬盘厂商则是以1000进行换算的。
计算机中4TB硬盘容量换算成字节

4TB = 4*1024*1024*1024*1024Byte

硬盘厂商4TB硬盘容量换算成字节

4TB = 4*1000*1000*1000*1000Byte

4TB硬盘的实际可用容量

4*1000*1000*1000*1000/1024/1024/1024/1024 ≈ 3.63TB

3.63TB的由来
3.63TB的由来

8.计算机常用速度单位

(1)网速单位

网速单位是Mbps(Megabits per sceond)。是一种传输速率单位,指的是每秒传输的位(比特)的数量。
1Mbps表示的是每秒传输1,000,000位(bit),即每秒传输的数量为1,000,000/8=125,000Byte/s。

如今主流运营商包括:长城宽带、电信宽带、移动宽带、联通宽带(网通)等;这些运营商声称的百兆带宽就是100Mbps,但是100M带宽的峰值下载速度也就10MB/s左右,它们的换算关系是100Mbps/8 = 12.5MB/s,但是网络传输中间有些损耗。

网络速度测试网址https://www.speedtest.cn/

网络速度测试
网络速度测试

(2)CPU速度单位

CPU的单位是Hz(赫兹),就是秒分之一,也就是每秒钟的周期性变动重复次数的计量。主频也叫时钟频率,单位是兆赫(MHz)或千兆赫(GHz),用来表示CPU的运算、处理数据的速度。通常,主频越高,CPU处理数据的速度就越快。目前主流的CPU一般都是在2GHz以上。

GHz、MHz、Hz的换算关系

1KHz = 1000Hz
1MHz = 1000KHz
1GHz = 1000MHz

假设你的计算机CPU的速度是5GHz

5GHz = 5*1000*1000*1000 = 5 000 000 000

也就是说5GHz的CPU每秒钟变化50亿次。

如图CPU的基准速度:

CPU的基准速度
CPU的基准速度

9.计算机语言发展史

(1)什么是计算机语言

人和人之间的交流需要通过语言。中国人之间用中国话,英国人用英语,俄罗斯用俄语。人(程序员、软件开发工程师、码农)和计算机交流信息也需要解决语言的问题,需要创造一种计算机和人都能识别的语言,这就是计算机语言

计算机语言也被称作是编程语言,因为我们学习计算机语言的目的就是编程(开发程序,写项目)。计算机语言有很多种,但主流的语言有二十多种,例如:C / C++ / Java/ JavaScript/ Scala/ Python/ Go/ Kotlin/ Rust等等。

(2)计算机语言发展史

计算机语言经历了机器语言、汇编语言、高级语言(高级程序设计语言、高级编程语言)三个阶段,其特点就是让程序的开发、测试、部署变得越来越高效、简单、方便。不过是以牺牲了运行效率(性能)为代价的,但是随着计算机硬件的高速发展,在绝大多数应用场景下的运行效率(性能)的损失基本上可以忽略不记。

第一代计算机语言-机器语言

计算机工作基于二进制,计算机能直接识别和接受的二进制的代码称为机器指令。机器指令的集合就是该计算机的机器语言。每种CPU都是有各自不同的指令系统(x86,ARM),这样导致在不同的机器上同一套程序需要使用不同的机器语言。

机器语言的运行效率是最高的,但是面向机器编写的程序是不能移植的,因此需要手动处理底层硬件的差异性,而且二进制的机器指令编写的程序是难以理解和维护的

第二代计算机语言-汇编语言

汇编语言, 即第二代计算机语言。汇编语言和汇编器(编译器)就是用一些容易理解和记忆的缩写单词来代替一些特定的指令,例如:用"ADD"代表加法操作指令,"SUB"代表减法操作指令,以及"INC"代表增加1,"DEC"代表减去1,"MOV"代表变量传递等等,通过这种方法,解决了机器语言需要记住非常多的机器指令,对现有程序的bug修复以及运行维护都变得更加简单方便。但是没有从根本上解决程序的移植性的问题,只是将机器指令转换成了人类更加容易理解和记忆的英文单词,然后由汇编器将英文单词编译(翻译)成机器能够识别的指令。因为计算机最终只能识别二进制的机器指令。而且汇编语言是面向机器的,不同机器的汇编指令也不一样,汇编语言编写的程序也是不能移植的。尽管如此汇编语言在工业电子编程、软件的加解密和计算机病毒分析等等场景在广泛使用。

第三代计算机语言-高级语言

高级语言的高级之处体现在程序员在编写代码的时候不需要关注底层硬件的差异性,而只需要关注实现的功能即可。

高级语言需要通过编译器编译程序再运行或者是通过解释器边解释边运行,而且相比机器语言、汇编语言而言,高级语言更加容易学,因此会有更加充足的人力资源来开发大型的商业软件,例如Windows,macOS,Linux,Android,iOS,鸿蒙OS等等操作系统都是使用C/C++ 以及少量的汇编实现的,国内的阿里巴巴在电商、支付、物流、金融后台等等领域都使用Java实现。

高级语言按照编程思想来分类:分成面向过程和面向对象两类,例如C语言就是面向过程的编程语言,而Java、Python是面向对象的编程语言。

高级语言按照运行机制分类:分成编译型和解释型两类,例如C语言就是编译型的语言,Python就是解释型的语言。

编译型的语言的运行效率一般比解释型的语言更加高效,但是编译型的语言一般不能跨平台,比如说C语言使用了一些非跨平台的库,那么C程序是不能跨平台的。

解释型的语言的运行效率比编译型的语言低一些,但是解释型的语言一般都是可以跨平台的,例如Python编写的程序既可以在Windows下运行,又可以在macOS或者Linux下运行。

10.计算机语言应用场景

TIOBE计算机语言的排行榜

TIOBE计算机语言排行榜的网址是:https://www.tiobe.com/tiobe-index/

2022年9月份前20计算机语言的排名(每个月都会更新一次)

2022年9月份前20计算机语言的排名
2022年9月份前20计算机语言的排名

目前Python是排名第一的,紧随其后的是C和Java。

TIOBE计算机语言历史走势图,C和Java基本上轮流做第一。

TIOBE计算机语言历史走势图
TIOBE计算机语言历史走势图

计算机语言应用场景

每一种计算机语言都是有自己擅长的应用场景(开发方向),大家可以根据自己的喜好(市场需求)来选择对应的计算机语言。

计算机语言应用场景
计算机语言应用场景

如果自己本身想要学习其他的语言、框架、中间件、架构,建议先深入掌握Java,因为Java语言上手比较容易,而且功能强大,无论是中间件、大数据、Android应用、大型分布式系统都是可以使用Java开发。现在招聘市场中Java的需求量还是非常大的,我们通过Boss直聘等招聘网站就可以了解到Java岗位的招聘要求。

Java微服务架构师招聘需求
Java微服务架构师招聘需求

高级Java开发工程师招聘需求
高级Java开发工程师招聘需求

腾讯Java开发工程师招聘需求
腾讯Java开发工程师招聘需求

腾讯Java后台高级工程师
腾讯Java后台高级工程师

标签:语言,内存,网卡,理论知识,CPU,硬盘,计算机
From: https://www.cnblogs.com/javafairy/p/16723896.html

相关文章