当前位置: 首页 > news >正文

计算机是如何工作的(上篇)

javaEE初阶的学习内容0213

计算机发展史

世界上很多的高科技发明,来自于军事领域
计算机最初是用来计算弹道导弹轨迹的

弹道导弹 ~~国之重器,非常重要
两弹一星
原子弹,氢弹,卫星(背后的火箭发射技术)

计算弹道导弹轨迹的计算过程非常复杂,计算量也很大 ~~ 但是可以手动计算出来的(当年我国研究两弹一星,就是全靠算盘算出来的) ~~ 1.算的慢 2. 算得可能不准 => 因此,就迫切的需要一台机器来帮助我们计算=> 计算机(专用计算机)就出现了
第一台计算机, 埃尼阿克,诞生于1946年,美国普林斯顿大学,主要用来计算弹道导弹轨迹,运算速度(CPU主频)每秒5000hz(每秒5000次),重达几十吨,占地面积为好几个房间 ~~ 虽然非常low,但还是远远超过人工手动计算
博主破笔记本的处理器处理器 12th Gen Intel® Core™ i5-12500H2.50 GHz ~~ 1GHz即十亿赫兹(10^9 Hz),每秒计算25亿次

珠脑心算(珠心算) ~~ 打算盘,或者心算
看着一长串需要运算的数字,在极短的时间内就能得出正确的结果的珠心算人才,
是属于国家战略储备人才!!!这种人才在极端情况下(即所有电子设备都失效了),仍然
可以把弹道导弹的轨迹算出来对敌人进行反制

随着时代的发展,通用型计算机开始出现
通用型计算机的愿景是图灵(祖师爷)提出来的,冯洛伊曼(祖师爷)实现的

图灵和冯洛伊曼这两位祖师爷是属于同一个时代的人,都是那个时代的天才,诺依曼只比图灵大8岁
~~ 但是冯洛伊曼在美国,图灵在英国
冯洛伊曼曾经对图灵抛出橄榄枝,邀请他一起来研究通用计算机,但可惜被图灵给拒绝了,因此两位祖师爷就没有一起共事过

图灵的介绍

图灵,本来只是一个数学家,但是随着二战爆发,
在欧洲战场,作为世界老大,号称日不落帝国的英国,被后起之秀的德国打的很惨
英国为了寻求反击,对德国进行有效的进攻,就需要获取到德国的军事部署
当时各国的通讯都是通过无线电报进行的,只要你有电台,就能收到数据.
但是由于德国的无线电报都是加密的,就需要进行解密
~~ 对于无线电报的解密,很多国家都是有专门的人才储备,英国也有.
但是由于德国的著名密码系统Enigma的出现,通过机器的方式来进行加密,
导致使用人力破解这种方式就没了作用,束手无策了,根本算不过来,就算破解了,
也会发现加密方式早就变了

由于图灵本来就一直在研究计算机相关的内容,于是,图灵就站了出来
~~提出用魔法打败魔法!!! => 通过仔细研究Engima的构造,造出来一个反Engima机,
用机器来破解机器加密的数据!!!
因此,通过这样的一种手段,让英国解析出了很多来自德国的重要军事情报,
这些情报在当时就直接推动了著名战役诺曼底登陆(欧洲战场重要的转折点)的发生,
最后,帮助盟军取得了二战的胜利.

不过,遗憾的是,图灵祖师爷,在战后遭到了政府的迫害 =>
1952年,英国政府对图灵的同性恋取向定罪,随后图灵接受化学阉割,
1954年6月7日,图灵吃下含有氰化物的苹果中毒身亡,享年42岁。
2013年12月24日,在英国司法大臣克里斯·格雷灵的要求下,
英国女王伊丽莎白二世向图灵颁发了皇家赦免,进行了平反

图灵奖,名称就取自艾伦·麦席森·图灵,计算机领域的国际最高奖项,被誉为“计算机界的诺贝尔奖”。



独显跟集显有什么区别

集显是集成在CPU内部的.
独显是独立出来的.
同时代的产品相比,最好的集显,也打不过最差的独显

CPU 工作流程

~~ (工作不用&面试不考)

逻辑门

电子开关 —— 机械继电器(Mechanical Relay)

image-20230916112935398

~~ 它可以实现 1 位(bit) 的基本逻辑运算

门电路(Gate Circuit)
  • 与门

    image-20230916105910183

  • 或门

    image-20230916110834307

  • 非门

    image-20230916110956200

与门,或门,非门的实现,借助于二极管等设备特殊物理特性
输入的信号是1,0这样的比特位,通过这个门电路,来计算出与或非的值

异或门 ~~ 相同为0,相异为1

image-20230916112504463

算术单元(Arithmetic Unit)

~~ 算数单元,负责计算机里的所有数字操作,比如四则运算

  • 半加器
    ~~ 两个比特位相加

image-20230916114129049

  • 全加器
    ~~ 三个比特位相加

image-20230916114729936

  • 加法器 ~~ 由半加器和全加器构成
    ~~ 针对两个二进制的数字进行相加
    不仅仅是针对一个比特运算,而是多位的运算
    ~~ 加法器,不仅可以算加法,
    还可以算减法 => 本质上是加上减数的补码
    乘法 => 连续相加
    除法 => 连续相减
    有了加法器,加减乘除都搞定了!!!

image-20230916120441773

CPU的设计理念与道家老祖宗提出的道生—,一生二,二生三,三生万物不谋而和!!!
推荐阅读一下科幻小说<<三体>>中有关人列计算机的描述,有助于加深你的理解!!!
博主在这为你们简单介绍一下
<<三体>>的人列计算机的诞生背景:
三体星人(外星人),他们的生存的星球上方有三个太阳,三个太阳做着三体运动,导致其运动轨迹是
相当混乱的,这就导致他们无法进行正常的农业生产,社会发展举步维艰,文明发展甚至出现倒退的情况!!!
这时,他们的领袖“秦始皇”广招天下能人,来制作“万年历”,对农业生产进行指导,促进帝国发展.无数的大佬
就站了出来,贡献出自己制作的“万年历”,不过都前赴后继的都失败了.直到两位大佬的出现,牛顿和冯洛伊曼

牛顿 : 万有引力定律 + 牛顿三定律 => 列方程 ~~ 有关恒星与行星之间运动的轨迹方程
微积分 => 解方程 ~~ 就可以得到“万年历”

冯洛伊曼 : 陛下,给我三千万个训练有素的士兵!!!我来解方程
用三个士兵来为陛下进行演示
三个士兵站成品字形,上面两个代表输入,下面一个代表输出.
每个士兵拿着两个小旗,一个旗子是黑旗(图中用红旗代替),一个是白旗(图中用绿旗代替)
红旗表示0,绿旗表示1
image-20230916141224973

士兵挥旗规则
如果两个为输入的士兵都挥动红旗 ~~ 输入了2个0 => 输出的士兵挥动红旗 ~~ 输出了1个0
如果两个为输入的士兵都挥动绿旗 ~~ 输入了2个1 => 输出的士兵挥动绿旗 ~~ 输出了1个1

如果两个为输入的士兵一个挥动红旗,一个挥动绿旗 ~~ 输入了1个1和1个0
=> 为输出的那个士兵挥动红旗 ~~ 输出了1个0 ~~=> 就构成了一个与门
如果两个为输入的士兵一个挥动红旗,一个挥动绿旗 ~~ 输入了1个1和1个0
=> 为输出的那个士兵挥动绿旗 ~~ 输出了1个1 ~~=> 就构成了一个或门

类似的,如果用两个士兵,一个代表输入,一个代表输出
为输入的那个士兵挥动红旗 ~~ 输入了1个0
=> 为输出的那个士兵挥动绿旗 ~~ 输出了1个1
相反的是:
为输入的那个士兵挥动绿旗 ~~ 输入了1个1
=> 为输出的那个士兵挥动红旗 ~~ 输出了1个0
~~=> 这两个士兵就构成了一个非门

有了基本的与门,或门,非门,用更多的士兵组合,就可以构成异或门
更多的异或门 => 就可以构成半加器和全加器
更多的半加器和全加器 => 就可以构成加法器

通过更多的士兵,构造出更多的门电路,也就有了CPU ,
进一步的也就有了存储器,输入设备,输出设备…

这时,一个人列计算机就出现了,冯洛伊曼还为这个计算机编写了一套操作系统,
基于这个操作系统,来进一步的去进行解方程操作

结果如何???
最终棋差一招.牛顿力学体系,不够精确,
没有考虑相对论造成的影响,计算出现误差,功亏一篑,
这黑锅得牛顿来背,最可气的是牛顿最后还跑路了!!!

这本书,对于我们找工作也是有一定帮助的
因为面试中有一些非技术的问题.
最近在看啥书?"(常见经典问题)
你回答说你看的书必须是有意义,
另一方面家喻户晓.三体就是很好的选择.(很多程序猿都看过)
和面试官聊三体,你就很容易和面试官有共同语言,刷得好感,提高印象分
比如一些三体中值得讨论,具有争议的话题,”“章北海的做法是否正确?”
让面试官对你有更多的了解!!!

编程语言(Program Language )

~~ 被视为是程序猿和计算机之间沟通桥梁
编程语言和日常使用自然语言,是有很大的区别的.编程语言必须要严谨,无歧义.
世界上的编程语言种类繁多.大体可以分成三个大类


注意:高级语言的一条语句(Statement)往往对应很多条指令(Instruction)才能完成

  1. 机器语言

    二进制(0,1)构成的指令 ~~ CPU能够识别
    厂商在设计CPU的时候就会设计好"指令集”CPU都支持哪些指令,以及这些指令要怎么工作.(这就类似于CPU提供的API)
    ~~ 但是人对机器语言很难理解,于是发明了汇编语言

  2. 汇编语言

    通过简单的单词作为"助记符",代替二进制的指令.
    汇编语言与机器语言是一 一对应的,
    每一个机器指令,就对应到一条汇编语句

    不同的CPU有不同的体系架构支持的指令集也是不一样的.
    即使是同类架构,不同的版本,指令集也是不一样的,导致了汇编语言会不一样.

    你在学习汇编的时候,一定要明确你学的是针对哪个系列的 CPU的…
    CPU有x86, arm, mips…很多不同种架构的

    学校学汇编大概率是8086CPU体系下的汇编语言
    => 16位汇编,支持的指令有限寄存器个数也比较少,
    现在是64位CPU,支持的指令更多寄存器个数也更多.

    8086CPU ~~ Intel早期的一个经典CPU,是一个16位CPU.
    后面又有了286,386,486….而这些后面诞生的以86结尾的CPU型号
    ~~ 被统称为x86(非常重要的CPU的体系结构.当下主流的PC和服务器都是x86结构)
    手机,路由器,主要是arm架构.

  3. 高级语言

    C,C++,C#(读作C sharp)
    ~~ C++ 相比于C做出改进,多2个加号++
    ~~ C# 相对于C++做出改进,又多2个加号++.
    ~~ 一个 # 相当于4个+(一个井字可以由4个+构成)

    Java,Python,PHP
    Ruby,JS(JavaScript),GO

相关文章:

计算机是如何工作的(上篇)

计算机发展史 世界上很多的高科技发明,来自于军事领域 计算机最初是用来计算弹道导弹轨迹的 弹道导弹 ~~国之重器,非常重要 两弹一星 原子弹,氢弹,卫星(背后的火箭发射技术) 计算弹道导弹轨迹的计算过程非常复杂,计算量也很大 ~~ 但是可以手动计算出来的(当年我国研究两弹一…...

数学建模| 优化入门+多目标规划

优化入门多目标规划 优化入门知识什么是优化问题如何判断是不是优化问题优化模型建模求解器优化问题的分类 多目标规划 优化入门知识 什么是优化问题 优化问题&#xff1a;求最优&#xff0c;例如获利最大、最少损失、最短路径、最小化风险等等。 例如&#xff1a;之前文章提…...

SSM整合Thymeleaf时,抽取公共页面并向其传递参数

第一步 创建一个名为 header.html 的公共头部页面模板&#xff0c;放在 WEB-INF 目录下的 common 文件夹中。在 header.html 中可以编写头部页面的HTML代码&#xff0c;并通过Thymeleaf的语法来接收参数&#xff0c;如下所示&#xff1a; <!DOCTYPE html> <html xml…...

接口测试 —— requests 的基本了解

● requests介绍及安装 ● requests原理及源码介绍 ● 使用requests发送请求 ● 使用requests处理响应 ● get请求参数 ● 发送post请求参数 ● 请求header设置 ● cookie的处理 ● https证书的处理 ● 文件上传、下载 requests介绍 ● requests是python第三方的HTT…...

2023年华为杯数学建模研赛D题思路解析+代码+论文

下文包含&#xff1a;2023华为杯研究生数学建模竞赛&#xff08;研赛&#xff09;D题思路解析代码参考论文等及如何准备数学建模竞赛&#xff08;22号比赛开始后逐步更新&#xff09; C君将会第一时间发布选题建议、所有题目的思路解析、相关代码、参考文献、参考论文等多项资…...

AB试验(三)一次试验的规范流程

AB试验&#xff08;三&#xff09;一次试验的规范流程 一次完整且规范的A/B试验可参考下图&#xff1a; 确定目标和假设 核心&#xff1a;A/B测试是因果推断&#xff0c;所以我们首先要确定原因和结果。目标决定了结果&#xff0c;而假设又决定了原因。 如何确定 分析问题&am…...

ROI tracking by using OpenCV

目录 source code: source code: import cv2tracker cv2.TrackerKCF_create() video cv2.VideoCapture(1)while True:ret,frame video.read()cv2.imshow("source frame",frame)k cv2.waitKey(30)if k q:break bbox cv2.selectROI(frame, False) ok tracker.i…...

(leetcode)二叉树最大深度

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 目录 题目&#xff1a; 思路&#xff1a; 代码&#xff1a; 图解&#xff1a; 题目&#xff1a; 给定一个二叉树 root &#xff0c;返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数…...

【golang】调度系列之P

调度系列 调度系列之goroutine 调度系列之m 在前面两篇中&#xff0c;分别介绍了G和M&#xff0c;当然介绍的不够全面&#xff08;在写后面的文章时我也在不断地完善前面的文章&#xff0c;后面可能也会有更加汇总的文章来统筹介绍GMP&#xff09;。但是&#xff0c;抛开技术细…...

Vue3中watch用法

在 Vue3 中的组合式 API 中&#xff0c;watch 的作用和 Vue2 中的 watch 作用是一样的&#xff0c;他们都是用来监听响应式状态发生变化的&#xff0c;当响应式状态发生变化时&#xff0c;都会触发一个回调函数。 当需要在数据变化时执行异步或开销较大的操作时&#xff0c;com…...

组里来了一个实习生,一行代码引发了一个惨案

大家好&#xff0c;我是静幽水&#xff0c;一名大厂全栈程序员&#xff0c;今天给大家分享一个案例&#xff0c;看似简单。却容易引发惨案。 事情是这样的&#xff0c;最近组里来了一个实习生&#xff0c;因为项目工作量大&#xff0c;人力比较紧张&#xff0c;所以就分配了一…...

随手笔记(四十五)——idea git冲突

图片为引用&#xff0c;在一次导入项目至gitee的过程中&#xff0c;不知道为什么报了403&#xff0c;很奇怪的一个错误&#xff0c;网上很多的答案大概分成两种。 第一种是最多的&#xff0c;直接找到windows凭据删掉 很抱歉的告诉各位&#xff0c;你们很多人到这里就已经解…...

chacha20 算法流程

chacha20算法请参看 RFC:7539。下面是我的理解&#xff0c;欢迎指正。 chacha20算法的基本思想&#xff1a;加密时&#xff0c;将明文数据与用户之间约定的某些数据进行异或操作&#xff0c;得到密文数据&#xff1b;由异或操作的特点可知&#xff0c;在解密时&#xff0c;只需…...

准备篇(三)Python 爬虫第三方库

第三方库无法将 "pip" 识别ModuleNotFoundError: No module named pip install 安装路径相关问题requests 库和 BeautifulSoup 库requests 库BeautifulSoup 库第三方库 Python 的 标准库 中提供了许多有用的模块和功能,如字符串处理、网络通信、多线程等,但它们并…...

从零开始的PICO开发教程(4)-- VR世界 射线传送、旋转和移动

从零开始的PICO开发教程&#xff08;4&#xff09;-- VR世界 射线传送、旋转和移动 文章目录 从零开始的PICO开发教程&#xff08;4&#xff09;-- VR世界 射线传送、旋转和移动一、前言1、大纲 二、VR射线移动功能实现与解析1、区域传送&#xff08;1&#xff09;新建 XR Orig…...

防止攥改之水印功能组件

防止攥改之水印功能组件 效果图逻辑代码 效果图 逻辑代码 <template><div class"containerBox" ref"parentRef" style"height: 300px;background-color: red;"><slot></slot></div> </template><script…...

iOS 17 适配 Xcode 15 问题

在适配 iOS 17 xcode 15时遇到的问题&#xff0c;记录一下。 1、 Could not build module ‘WebKit’ type argument nw_proxy_config_t (aka struct nw_proxy_config *) is neither an Objective-C object nor a block type解决方案&#xff1a; 选中不能编译的库的xcodep…...

Element Plus 快速开始

1.完整引入&#xff08;全局引入&#xff09; // main.ts import { createApp } from vue import ElementPlus from element-plus import element-plus/dist/index.css import App from ./App.vueconst app createApp(App)app.use(ElementPlus) app.mount(#app) npm install e…...

华为云云耀云服务器L实例评测|StackEdit中文版在线Markdown笔记工具

华为云云耀云服务器L实例评测&#xff5c;StackEdit中文版在线Markdown笔记工具 一、云耀云服务器L实例介绍1.1 云服务器介绍1.2 应用场景1.3 支持镜像 二、云耀云服务器L实例配置2.1 重置密码2.2 服务器连接2.3 安全组配置 三、部署 StackEdit 中文版3.1 StackEdit 介绍3.2 环…...

MyEclipse报错javax/persistence/EntityManagerFactory

MyEclipse报错&#xff1a; Build path is incomplete. Cannot find class file for javax/persistence/EntityManagerFactory 解决方案&#xff1a; 引入依赖 <dependency><groupId>javax.persistence</groupId> <artifactId>persistence-api</a…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

【解密LSTM、GRU如何解决传统RNN梯度消失问题】

解密LSTM与GRU&#xff1a;如何让RNN变得更聪明&#xff1f; 在深度学习的世界里&#xff0c;循环神经网络&#xff08;RNN&#xff09;以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而&#xff0c;传统RNN存在的一个严重问题——梯度消失&#…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

免费数学几何作图web平台

光锐软件免费数学工具&#xff0c;maths,数学制图&#xff0c;数学作图&#xff0c;几何作图&#xff0c;几何&#xff0c;AR开发,AR教育,增强现实,软件公司,XR,MR,VR,虚拟仿真,虚拟现实,混合现实,教育科技产品,职业模拟培训,高保真VR场景,结构互动课件,元宇宙http://xaglare.c…...

在树莓派上添加音频输入设备的几种方法

在树莓派上添加音频输入设备可以通过以下步骤完成&#xff0c;具体方法取决于设备类型&#xff08;如USB麦克风、3.5mm接口麦克风或HDMI音频输入&#xff09;。以下是详细指南&#xff1a; 1. 连接音频输入设备 USB麦克风/声卡&#xff1a;直接插入树莓派的USB接口。3.5mm麦克…...

Qwen系列之Qwen3解读:最强开源模型的细节拆解

文章目录 1.1分钟快览2.模型架构2.1.Dense模型2.2.MoE模型 3.预训练阶段3.1.数据3.2.训练3.3.评估 4.后训练阶段S1: 长链思维冷启动S2: 推理强化学习S3: 思考模式融合S4: 通用强化学习 5.全家桶中的小模型训练评估评估数据集评估细节评估效果弱智评估和民间Arena 分析展望 如果…...

【工具教程】多个条形码识别用条码内容对图片重命名,批量PDF条形码识别后用条码内容批量改名,使用教程及注意事项

一、条形码识别改名使用教程 打开软件并选择处理模式&#xff1a;打开软件后&#xff0c;根据要处理的文件类型&#xff0c;选择 “图片识别模式” 或 “PDF 识别模式”。如果是处理包含条形码的 PDF 文件&#xff0c;就选择 “PDF 识别模式”&#xff1b;若是处理图片文件&…...

day51 python CBAM注意力

目录 一、CBAM 模块简介 二、CBAM 模块的实现 &#xff08;一&#xff09;通道注意力模块 &#xff08;二&#xff09;空间注意力模块 &#xff08;三&#xff09;CBAM 模块的组合 三、CBAM 模块的特性 四、CBAM 模块在 CNN 中的应用 一、CBAM 模块简介 在之前的探索中…...

在ubuntu等linux系统上申请https证书

使用 Certbot 自动申请 安装 Certbot Certbot 是 Let’s Encrypt 官方推荐的自动化工具&#xff0c;支持多种操作系统和服务器环境。 在 Ubuntu/Debian 上&#xff1a; sudo apt update sudo apt install certbot申请证书 纯手动方式&#xff08;不自动配置&#xff09;&…...