一直想不明白,一些硬体是怎么在软体的操控下运行起来的。例如显示器是通了电,所以亮起来。可是文件是怎么写入磁碟的呢?诸如此类的问题,希望大家能解释一下!


看到有很多人推荐看书了。我不再推新的,也推荐他们推荐过的,不过只推荐这一本。

《编码:隐匿在软硬体背后的语言》,这本书简单,还有意思,希望对你有帮助。

下面的就别看了,你能问这个问题,那么下面的看了也白看,纯粹耽误时间。

《计算机体系结构》《汇编语言》《编译原理》《深入理解计算机系统》

真不知道这四本跟你问的有什么关系。又不是要了解计算机原理。硬体难道就只有计算机么??

真是理解有误啊!!


所有电子设备里的文件,实质上是一串串01二进位代码组成的。

这里简单讲讲数据是如何存入存储设备的。

就拿文本文件来说,例如一个文本文件x.txt 内包含这样一段字元串「abc」,其中字元串中的a在asc码中应该是97这个值,当然这个值是由十进位表示的,以下我们将其转成十六进位和二进位表示是这样的:96(D) -&> 0x61(H) -&> 0110 0001(B)。

重点看二进位码 「0110 0001」,由于二进位码的每个bit只有两种状态,所以二进位数据就很容易由CMOS或TTL电路的高低电平状态所表示,即高电平表示1,低电平表示0,当我们需要将文本写入存储设备时,通常主机与被写入设备之间会通过某种协议连接起来,它们之间比较常见的通信协议如iic协议,而这些比较接近底层的通信方式就是通过有序的电平变化来传输信息的。

这里举个单片机(mcu)与AT24c02(存储设备)之间的数据操作的例子:当要向存储器写入一个字元a时,单片机与存储设备之间连接的数据线会根据时钟线的变化改变电平状态(这里就是属于软体控制了,软体操作单片机的GPIO口的电平状态),存储设备作为iic从机,读取来自数据线的电平状态。如:传输「0110 0001」,软体根据二进位数据依次变化GPIO的电平,即「低高高低 低低低高」这8个「状态」(例如:第一个毫秒是低,第二个毫秒是高……)。而存储设备读取8个bit(电平状态)后,再接收一个停止位,就可得知从mcu传输过来的数据是97(D)了。(至于如何区分数据各个位是依靠时钟线的边沿跳变区别,具体看iic通信协议)

纯手机手打,无图,请谅解~


只是一名学生,刚学了点相关知识,哪里说错了请批评指正。

先抛几本书吧:《编码:隐匿在软硬体背后的语言》《计算机体系结构》

《汇编语言》

《编译原理》《深入理解计算机系统》估计题主学过c语言,想要知计算机究竟是怎么跑起来的。

强烈推荐《编码:隐匿在软硬体背后的语言》,不要被书名骗到了,这其实是介绍计算机硬体的的书,而且讲得通俗易懂,关键是很底层。

简单来说,处理器能够提供一组指令集,机器指令是处理器能够处理任务的最小单位,虽然计算机能够做很多事情,但说到底它只是执行这些指令,换句话说,计算机执行的再复杂的任务,都只是这些指令的排列组合,运行软体就是是处理器要执行的任务;机器指令的实现,则依赖底层电路,这需要相关的电路知识,(其实是我水平有限,说不清楚)建议题主还是自己去看看相关书籍吧。

强行回答,似乎没有正面回答到问题?(ˉ﹃ˉ?)

这个涉及到很深层次的操作系统、计算机组成原理以及数字电路的知识,如果没有相关知识储备,不建议了解。直观来说软体反映到硬体上就是各种电路开关,通过开关来控制硬体


谢邀,可以先看看计算机组成原理,后期跟进学习操作系统与嵌入式开发
计算机组成原理,操作系统学一学。
推荐阅读:
相关文章