穿越计算机迷雾

article/2025/9/25 6:34:03
首先,这是一本书,大概20-30块钱,还算便宜,口碑也不错
其实我也不喜欢就是看书,看书完全是因为有些知识确实看不懂了,难以理解,我看这本书的时候,就是因为看不懂
java的一个框架的运行原理,其实不需要看这么深入的,但是不知不觉的就看了。促使立即看这本书的原因是:我在今日头条上看见一个问题,JAVA面试官,问int占多少个字节。
然后下面好多程序员都在讨论了有说这个问题都不知道不配做程序员有说java里是4个字节还有说2个字节的。千奇百怪~~~ 其实这个问题是没有任何意义的,因为不管哪个公司的JAVA程序员其实都用不到这个知识,就好比问农民伯伯汽车的方向
盘有什么用一样,虽然是扩展知识,但却是不搭嘎---我就是因为看不懂java的一个框架的运行原理,就去看了java生成的原理,深入理解jvm虚拟机,结果还是有看不懂的,
想着jvm是C写的,我去学了C语言,发现了内存管理,最终发现计算机的数据是由0和1的二进制组成,虽然总是听说
计算机都是由0-1组成,但是还是不知道为什么,最终发现了电的开关就是二进制0和1的表现方式,然后看到了电是
如何产生的,发现了自由电子,然后推导出了热能生电,只是这么想着,结果百度了一下,热还真能直接生电,说过了
,我今天想说的不是能量由波传播,也不是利用太空的波,因为我也只是逻辑上的猜想,我今天只想说一些,计算机的事。计算机发展,离不开200多年前发现电的富兰克林。计算机的运行完全是由电支撑,所以一切都要从电开始,电的开关就可以表示二进制的1-0两个数(先不说如何用电来这
么快速的表示1-0,并计算),我们再来说说电报(电生磁,磁生电的原理,让另一头机械跳动,相同的跳动形式表示同一个意思)
、无线电通信[ 电磁波,电的传播其实是自由电子的运动,如果让一端电压特别高(电子多),一端电压很低(电子少),
然后两端接近,能量要平衡,则能量由波的形式传输出去,则形成了电磁波 ]----从上面看,目前所有的一切都离不开电。如果仅仅用电是否流动表示二进制1-0,那么计算机什么都做不了,最多可以运用电器元件和数学知识模拟加法运算,
再或者仅仅传播1-0的二进制数据。我们再想想,电的是否连通表示1-0的数据模拟,我们想让计算机做加法,是不是要自己控制开关呢 ?那么自己控制开关,
我觉得是不可能实现的,所以出现了二极管但是没太大用,最终出现了我们电脑需要的三极管
(三极管的运行+数学知识 让三级管仿佛有了计算能力),以及发展到现在的晶体管(计算机的主要组成部分CPU)。说到这里差不多了, 计算机的组成 = CPU + 声卡 + 显卡 + I/O + 存储他们其实都是独立的!!!!!
他们共同配合,所以才有了现在功能如此全面的计算机。CPU:目前先进的CPU是由数十亿个晶体管组成,晶体管主要是用于计算,其实三极管也是用于计算的,就是因为
电器元件的限制,所以计算机只能做加法,这是总所周知的。8位的CPU,做个不恰当的水管流水的比喻(实在不好解释),
8位代表有8个进水口,16位代表有16个进水口,32位代表有32个进水口,计算速度更快。
而目前市面大多,32位系统、64位系统,这个其实是指软件上的,比如用C语言写好程序,用64位编译,最终就会导致,
这个程序某个地方做加法,需要64个水管同时运行,但如果CPU其实只有32根水管,这样下来,程序是不能运行的。所以现在的程序员
为了兼容,其实都是用32位系统进行代码编译的。这也是32位CPU不能装64位系统的原因,但目前市面上几乎全部都是64位的CPU了。所以,不管多少位CPU其实都是用来计算的,int所占内存大小也是人为规定的。
16位的操作系统int占2个字节,int不管是在64、32位操作系统都是4个字节,但是这个指的是C语言写的程序,C语言是其它语言的母语。
但是,严谨的来说,int所占内存大小分为两种情况: 
一、只看操作系统(操作系统也是C语言写的,不要问我C语言是怎么写出来的),目前的电脑 int 都只占4个字节。
二、与编译器有关 (C 语言标准中没有明确规定整型数据的长度,但是上层高级语言,如JAVA的int类型,创始人依然可以自定义)
假如:我重新编写一个F语言,也是用C语言编写的,我还是可以定义F语言的int类型为8个字节。大不了对应成C语言的long类型
(当然没那个语言设计师这么无聊,但是这种情况又不得不承认存在)所以该这么回答:以java、C语言为例,整型数据在内存中占的字节数与所选择的操作系统有关,int在32位和64位操作系统中,
都是占4个字节。声卡:I/O声卡的作用就是将声波转为的电信号转换为二进制/或者将二进制转换为电信号。振荡器让声卡频率越高,
就代表一瞬间能处理到更多的电信号,声音就更加保真。显卡:I/O显卡,专门用来处理图像,一张超大的图片,需要快速的更加细腻的展示出来,就需要显卡,将图片二进制快速的临时
保存起来,再将二进制与图片的色彩位数一一对应。I/O: 其实就是数据的读写,I/O越好,读写数据越快。存储: 就是数据的保存,保存数据的速度也有快慢与大小。另外,还有键盘、显示器、温度计等。。。。这些都是通过驱动器将数据转换为专门的二进制,或者将二进制转换为的我们看的懂得数据。

 

作为程序员最重要的是了解计算机的内存,知道内存条、内存、堆内存、栈内存、寄存器、常量区等他们的关系及运行原理。

我们主要的目的,是搞懂这个问题,可惜的是,这个本书关于内存,只是讲了硬件上是如何实现存储,并没有讲我想知道的知识。

  1. 寄存器是CPU内部最基本的存储单元
  2. CPU对外是通过总线(地址、控制、数据)来和外部设备交互的,总线的宽度是8位,同时CPU的寄存器也是8位,那么这个CPU就叫8位CPU
  3. 如果总线是32位,寄存器也是32位的,那么这个CPU就是32位CPU
  4. 有一种CPU内部的寄存器是32位的,但总线是16位,准32为CPU
  5. 所有的64位CPU兼容32位的指令,32位要兼容16位的指令,所以在64位的CPU上是可以识别32位的指令
  6. 在64位的CPU构架上运行了64位的软件操作系统,那么这个系统是64位
  7. 在64位的CPU构架上,运行了32位的软件操作系统,那么这个系统就是32位
  8. 64位的软件不能运行在32位的CPU之上

寄存器、缓存、内存三者关系:

1. 按与CPU远近来分,离得最近的是寄存器,然后缓存(CPU缓存),最后内存。

2. CPU计算时,先预先把要用的数据从硬盘读到内存,然后再把即将要用的数据读到寄存器。于是 CPU<--->寄存器<--->内存,这就是它们之间的信息交换。

3. 那为什么有缓存呢?因为如果经常操作内存中的同一址地的数据,就会影响速度。于是就在寄存器与内存之间设置一个缓存。

4. 因为从缓存提取的速度远高于内存。当然缓存的价格肯定远远高于内存,不然的话,机器里就没有内存的存在。

5.由此可以看出,从远近来看:CPU〈---〉寄存器〈---> 缓存 <---> 内存。

后面探索~~~


 


http://chatgpt.dhexx.cn/article/4MFtHNUZ.shtml

相关文章

白话计算机入门书籍--《穿越计算机的迷雾》有感

一本好书&#xff0c;是能够促使你不断地思考书中的话语&#xff0c;并且和自己学过的知识作对比&#xff0c;李忠的《穿越计算机的迷雾》成功地做到了这两点。这本计算机入门级书籍&#xff0c;深入浅出的讲解了二进制、继电器、与或非门还有触发器等计算机方面的基本概念&…

穿越计算机的迷雾--读书笔记四

第八章&#xff1a;学生时代的走马灯&#xff08;如何同时触发一整个电路&#xff09; 1. 能保存一个比特的触发器&#xff1a; 解决触发器如何保存数据问题&#xff1a;运用D触发器 &#xff08;图片摘自于本书中&#xff09; &#xff08;图片摘自于本书中&#xff09; 2. …

GTP与MBR硬盘分区区别(UEFI介绍)

在重装win7或win8系统时&#xff0c;经常会提示磁盘具有MBR分区表和GPT分区表&#xff0c;从而无法安装Windows&#xff0c;那么磁盘MBR分区表和GPT分区表是什么意思呢&#xff1f;MBR和GPT分区表有什么不同&#xff1f;下面跟小编一起来学习下吧&#xff01; 一、MBR分区表 …

MBR分区和GPT、NTFS和FAT32、UEFI引导

date&#xff1a; 2019/1/11 14:24:56 最近重装系统的时候遇到了问题&#xff0c;也让我产生了一些疑惑 如图使用Rufus工具进行系统安装&#xff0c;产生的问题 1、标准windows安装和Windows To Go? Windows To GO可以理解为存放在移动盘中的windows系统&#xff0c;可以让w…

磁盘分区MBR和GPT格式详解(Linux)

一、磁盘结构 机械硬盘主要由磁盘盘片、磁头、主轴与传动轴等组成&#xff0c;数据存放在具有磁性物质的磁盘盘片中。 实际运行时&#xff0c;主轴马达让碟片转动&#xff0c;然后磁头臂让磁头在碟片上面进行读写操作。 读取数据时以磁头转圈的方式进行&#xff0c;在磁片同心…

硬盘MBR格式转换GPT,简单方法,你会吗?

今天和大家分享一个如何无损将MBR分区表转换为GPT分区表&#xff0c;免去重装系统的繁琐过程的好方法。 现在我们的硬盘越来越大&#xff0c;相信大家也知道MBR格式不支持大于2T的硬盘。所以这里教大家如何进行转换&#xff01; 首先介绍下什么是MBR和GPT MBR&#xff1a;MB…

UEFI与BIOS、GPT与MBR的区别

版权声明&#xff1a;未经作者允许&#xff0c;严禁用于商业出版&#xff0c;否则追究法律责任。网络转载请注明出处&#xff0c;这是对原创者的起码的尊重&#xff01;&#xff01;&#xff01; 1 磁盘分区格式 一般来说&#xff0c;磁盘分区表有两种格式&#xff1a;MBR和GPT…

磁盘分区形式MBR与GPT介绍

磁盘分区形式MBR与GPT介绍 磁盘分区形式有两种&#xff1a; 1、MBR&#xff08;主启动记录&#xff09;形式&#xff0c;它是存在于磁盘驱动器开始部分的一个特殊的启动扇区&#xff1b; 2、GPT&#xff08;GUID分区表&#xff09;形式&#xff0c;它是一种使用UEFI启动的磁盘…

Legacy和UEFI,MBR和GPT的区别

Legacy和UEFI指的是系统引导方式(Legacy为传统BIOS&#xff0c;UEFI为新式BIOS)&#xff0c;MBR和GPT指的是磁盘分区表类型。 一般情况下都是LegacyMBR&#xff0c; UEFIGPT这两种组合。但LegacyGPT&#xff0c;UEFIMBR也可以实现。 Legacy用的是8086汇编&#xff0c;UEFI 99…

BIOS修改mbr为gpt的步骤

之前传统的硬盘分区模式都是mbr&#xff0c;但是现在的win10系统硬件不断扩容&#xff0c;传统分区模式已经不能满足了&#xff0c;所以我们就可以将硬盘mbr改成gpt&#xff0c;那么要如何操作呢&#xff1f;其实方法也不难&#xff0c;针对这个问题&#xff0c;下文小编给大家…

MBR和GPT分区区别

MBR分区和GPT分区区别 总结&#xff1a;UEFI是新式的BIOS&#xff0c;legacy是传统BIOS。你在UEFI模式下安装的系统&#xff0c;只能用UEFI模式引导&#xff1b;同理&#xff0c;如果你是在Legacy模式下安装的系统&#xff0c;也只能在legacy模式下进系统。UEFI只支持64为系统…

详解MBR与GPT分区

1 MBR分区 MBR是Master Boot Record的缩写&#xff0c;是一种旧的分区表格式&#xff0c;用于在硬盘上标识和管理分区。MBR分区表可以标识最多4个主分区或3个主分区和1个扩展分区。 2TB的限制是指&#xff0c;使用MBR分区表格式的硬盘最大只能分区到2TB&#xff0c;因为MBR使…

不支持打开非业务域名htts:....请重新配置

最近做小程序加载html 出现的提示 自己的处理方法是点击右上角的详情 勾选即可

fiddler 抓取 htts 失败

1.清除C:\Users\Administrator\AppData\Roaming\Microsoft\Crypto\RSA 目录下所有文件&#xff08;首次安装fiddler请忽略&#xff09; 2.清除电脑上的根证书&#xff0c;WINR快捷键&#xff0c;输入&#xff1a;certmgr.msc&#xff0c; 然后回车&#xff0c;查找所有fiddler证…

Spring cloud Gateway HTTS配置

在Web服务应用中&#xff0c;为了数据的传输安全&#xff0c;使用安全证书&#xff0c;使用TLS/SSL加密。这里就介绍一下Spring Cloud Gateway的HTTPS配置。 7.1 TLS/ SSL配置 TLS&#xff1a;安全传输层协议&#xff08;TLS&#xff09;用于在两个通信应用程序之间提供保密性…

漫画:htts是如何保证一台主机把数据安全发给另一台主机

通过漫画的形式由浅入深带你读懂htts是如何保证一台主机把数据安全发给另一台主机的 对称加密 一禅&#xff1a;在每次发送真实数据之前&#xff0c;服务器先生成一把密钥&#xff0c;然后先把密钥传输给客户端。之后服务器给客户端发送真实数据的时候&#xff0c;会用这把密钥…

给网站配置免费的HTTS证书

最近看到网上说 https 的网站 Google 会优先收录&#xff0c;所以就抽时间记录下配置博客的过程。 ACME 使用 LetEncrypt 证书作为博客的 https 实现方式。 acme.sh 实现了 acme 协议, 可以从 letsencrypt 生成免费的证书. github https://github.com/Neilpang/acme.sh 主要步骤…

htts ca 制作

https://www.cnblogs.com/gsls200808/p/4502044.html rm -rf /etc/pki/CA/*.old touch /etc/pki/CA/index.txt echo 01 > /etc/pki/CA/serial echo 02 > /etc/pki/CA/serial rm -rf keys mkdir keys 生成根CA并自签(Common Name填RootCA) openssl genrsa -des3 -out ke…

阿里云服务器nginx配置ssl步骤htts

阿里云服务器中要配置ssl 1.先在服务器安装nginx,安装步骤自行搜索&#xff0c;很多。 2.获取ssl证书&#xff0c;可以参考https://mp.csdn.net/console/editor/html/87912845这篇文章&#xff0c;里面有阿里云的免费证书获取方式。 3.安装好以后打开nginx配置文件。 在里面…

Spring Boot 配置 Https 自己生成htts证书

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 by-sa 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a; https://blog.csdn.net/u012702547/article/details/99405309 https 现在已经越来越普及了&#xff0c;特别是做一些小程…