
矢泽久雄
日文版重印41次,“计算机组成原理”图解趣味版,蹲马桶就能看懂的编程基础知识!本书适合:菜鸟程序员入门进阶;中级程序员查漏补缺;高手程序员向家人(女友、老妈等)普及计算机知识。如何向小学生讲解CPU和二进制?如何向中学生讲解内存和磁盘?如何向女高中生讲解操作系统的原理?如何向老奶奶说明显示器和电视的不同?如果你完全没有思路,就应该读一读这本书。以图配文,深入讲解编程基础知识;语言通俗,即使是文科生也能看得懂。
一本计算机原理入门书籍,主要是给门外汉进行科普吧,初学者也可以稍作参考。简单翻了翻,主要是用来怀旧了,计算机专业浸yin七载,可惜终究是错付了。
自己吓唬自己是最可怕的事情,谨以此话与未看本书前就对程序犯迷糊的你共勉。
大学生读物,大学三年级的时候读过同作者写的《计算机是怎样跑起来的》,当时惊为天人,许多观点对我理解计算机都有很大的帮助。最近在找计算机学习材料时,多次看到这两本《程序/计算机是怎样跑起来的》被提及,因为自己是一个中级开发工程师了,对计算机的理解更加深刻,这本书对我的帮助已经很少了。如果你不从事程序相关的工作,这本书有点难;如果从事程序相关工作,而且是一名初级开发,可以看一看。
作为一个非专业人士,囫囵吞枣地把这本科普读物看完了,作者把原理和概念描述的很清楚,通俗易懂,弄明白了之前有些没搞明白的,还是有收获的。谈一下体会: 1.这本书把看似复杂的程序运行原理说得通俗易懂,这种站在读者认知习惯角度的写作方式值得太多的中国作者去学习,特别是教育方面的。写书的目的是让读者看明白的,如果看不明白就有很大畏难情绪,不利于知识的传播。基督教传播那样广泛,是因为圣经都是在叙述故事,通俗易懂,而佛经太难了,普通人很难读懂,不利于佛教的传播。 2.电脑和人脑有很多相似之处,处理信息的过程,内存和硬盘之间的关系。按照目前的发展趋势AI肯定会在某一时间点上全面超过人类。但是他没有感情和情绪,是个纯粹理性的经济型大脑,在某些方面可以很好地辅助人类决策。 3.人类对于电脑科学的开发,其他科学技术开发也一样,都是朝着符合人类认知和使用习惯的方向发展,即使走了弯路也都要转回来。任何产品的设计都要懂一点人机工程学,因为这是人类的习惯。比如windows操作系统的成功就是人机界面友好。
这本书对专业人士来说可能太初级了对我来说还是有些深。但确实让我学习到很多计算机知识!
程序是怎么跑起来的 总结 一、CPU Cpu是寄存器的集合体,包括累加、标志、程序计数器(决定程序流程)、基址、变址、通用、指令和栈寄存器。 二、数据 数据用二进制表示是因为IC(集成电路)只有2个状态。计算机处理数据基本单位是一个字节,即8位,处理的数据都是8的倍数;反码补码都是为了方便计算机处理的数据形式;算数右移和逻辑右移是不同的右移方法,逻辑计算是计算机的基础; 三、小数运算 和十进制10除于3除不尽一样,二进制按照人类现有的设计表示方法也有无法表示的小数。为了得到正确的运算结果,可以采用*倍数后化作整数去运算的方法。 四、内存 内存的逻辑模型就是楼房,占有的楼层数就是占用的内存的大小,例如声明变量是整型就是4个字节。利用内存有几种形式,数组、栈、队列、链表、二叉树。 五、磁盘 程序需要读入内存才能运行,磁盘是存储的一种便宜介质,还可以当作虚拟内存,在一定程度上协助程序运行。 六、压缩数据 压缩算法就是数据的另一种表示方式,通过各种压缩算法简单存储后,可以再次运算还原的方法。其中哈夫曼算法是通过统计频率来设计的算法,能比较大的压缩。因为图片损失一点质量没有太大的影响,所以除了有bmp无损格式,还有jpeg,tiff,gif等格式或多或少采用一定技法去压缩过的图片格式。 七、运行环境 程序的运行环境=操作系统+硬件。windows克服了除了cpu以外的硬件差异,是把大部分程序都要做的和硬件交互的事情都处理好了,提供了api接口给所有其他的应用程序调用。因为不同操作系统提供的api不同,jvm会自己带一套虚拟系统来兼容不同操作系统。操作系统通过bios中的引导程序开启,bios包含键盘、磁盘、显卡等基本控制程序。 八、可执行文件 计算机只能运行本地代码,本地代码是数值的罗列。可以通过编译器吧高级语言的源代码转化成本地代码,编译以后还要进行链接生出可执行文件,如.exe文件才能运行。将一些大家都会调用的函数等写成通用的即dll文件,可以方便大家统一调用。 九、外围设备 外围设备如键盘、鼠标、打印机等采用中断请求的方式来实现实时处理。图片显示是往主存的一部分空间写入数据来显示,现在是有独立显卡来处理。 总结:从沙子到纯硅到晶圆到光蚀到芯片到cpu,把一堆ic堆在一起形成可以计算的硬件;再想出方法把现实世界的数据和这些硬件联系起来表示出来,找到最简单的方法就是二进制数,然后需要通过各种编码和规范把字母、文字、小数都能表示出来。这时候除了快速运算的cpu还需要东西存储,就分为了速度快的内存和速度慢的磁盘。因为很多时候数据的表示有很多事重复的东西,在传输或者保存等情况下需要体积小,所以可以通过算法算出另一种表示方法去记录。这种算法分成可逆和不可逆的算法,不可逆如jpeg等图片格式。有了这一切以后,大家都可以写程序去计算数据了。但因为有很多非常底层的东西既非常深奥又经常被大家重复使用,于是就把这部分抽象化做出了操作系统。有了系统以后还有很多.dll文件事后面丰富的一些通用的处理函数。但因为操作系统也可以写出很多,也有些高级编程语言为了兼容不同操作系统,自己再抽象一层,对每个操作系统又封装了自己的一套方式,例如jvm,只要各系统都装上它,程序就可以开发一次,到处使用。这些都完善之后,计算机的运算基本完善,但是还缺少控制输入和输出的方式,于是对于外围设备采用了中断请求的方式去做交互,只要你来找我,我才去理你,而不是时刻都在关心你在干什么。然后外围设备有很多,类型也有很多,于是给每个厂家都给了一套统一的操作系统要求的规范。不过你自己怎么设计和运行你的硬件,反正同样的硬件和功能要按照我的规范可以使用,或者你给我一个翻译包,我就知道使用你,这就是驱动程序。完。
【 程序是怎样跑起来的·总结】 本书最推荐的part:简介明了的配图 比较基础,系统的捋了一遍计算机系统的基础知识,但是对于完全小白有难度。特别是进制的part。补充的part有小数的表示,压缩文件,内存磁盘 “程序”核心: 程序地址 程序流程 数据地址 数据值 cpu(一堆寄存器组成)<—内存(缓存程序和数据)<—磁盘 cpu(一堆寄存器➕控制器(读 写 存)➕运算器➕标志器) 运行环境=操作系统 + 硬件(AT兼容机) 源代码(哪都能运行)—编译—>本地代码(对应os)—链接—>exe文件,CPU解释运行 程序(源代码)—API—>OS—PORT“移植”根据环境编译源代码,CPU解释运行—>硬件(机器语言,本地代码,目标文件) 应用程序向操作系统传递指令的途径称为API(Application Programming Interface) 操作系统是多个程序的集合体 这里,我希望制作应用的程序员们意识到一点,那就是你们制作的不是硬件,而是利用操作系统功能的应用。虽然对程序员来说,掌握硬件的基本知识是必需的,不过,在操作系统诞生以后,就没有必要再编写直接控制硬件的程序了。这样一来,制作应用的程序员就逐渐同硬件隔离开来了。也就是说,程序员是很少关注现实世界(硬件)的。 文件是操作系统对磁盘媒介空间的抽象化。 程序是操作系统、中间件、应用等所有软件的统称。 复习时,看书签即可,每章开头热身问答
本书最推荐的part:简介明了的配图 比较基础,系统的捋了一遍计算机系统的基础知识,但是对于完全小白有难度。特别是进制的part。补充的part有小数的表示,压缩文件,内存磁盘 “程序”核心: 程序地址 程序流程 数据地址 数据值 cpu(一堆寄存器组成)<—内存(缓存程序和数据)<—磁盘 cpu(一堆寄存器➕控制器(读 写 存)➕运算器➕标志器) 运行环境=操作系统 + 硬件(AT兼容机) 源代码(哪都能运行)—编译—>本地代码(对应os)—链接—>exe文件,CPU解释运行 程序(源代码)—API—>OS—PORT“移植”根据环境编译源代码,CPU解释运行—>硬件(机器语言,本地代码,目标文件) 应用程序向操作系统传递指令的途径称为API(Application Programming Interface) 操作系统是多个程序的集合体 这里,我希望制作应用的程序员们意识到一点,那就是你们制作的不是硬件,而是利用操作系统功能的应用。虽然对程序员来说,掌握硬件的基本知识是必需的,不过,在操作系统诞生以后,就没有必要再编写直接控制硬件的程序了。这样一来,制作应用的程序员就逐渐同硬件隔离开来了。也就是说,程序员是很少关注现实世界(硬件)的。 文件是操作系统对磁盘媒介空间的抽象化。 程序是操作系统、中间件、应用等所有软件的统称。 复习时,看书签即可,每章开头热身问答
给四年级的小学生讲完这本书了,但章节重新安排过,把程序运行相关的章节安排到一起。程序和汇编的对应以及指令的执行是本书的亮点、重点和难点,有趣有料,值得一看;二进制转换不太好理解,涉及的数学超过了孩子的理解能力。 总体来看,本书还算是通俗易懂,但因为涉及编译原理,操作系统,汇编,组成原理等内容,细节不够的时候始终有隔靴搔痒的感觉,同时又缺乏实验来促进理解,最后可能只留下一个概念或者印象。要是能有类似于《我的第一本算法书》那样搭配的APP就完美了。 不管怎么样,本书可以作为《深入理解计算机系统》的入门版和科普版。
程序是怎样跑起来的 矢泽久雄 3个想法 ◆ 第5章 内存和磁盘的亲密关系 >> 1.存储程序方式指的是什么?2.通过使用内存来提高磁盘访问速度的机制称为什么?3.把磁盘的一部分作为假想内存来使用的机制称为什么?4.Windows中,在程序运行时,存储着可以动态加载调用的函数和数据的文件称为什么?5.在EXE程序文件中,静态加载函数的方式称为什么?6.在Windows计算机中,一般磁盘的1个扇区是多少字节? >> 1.在存储装置中保存程序,并逐一运行的方式2. Disk Cache (磁盘缓存)3.虚拟内存(virtual memory)4. DLL (DLL文件)5.静态链接6. 512字节 >> 函数的加载方式有静态链接和动态链接两种。 才開始看這本理性唉,看了書評也容易理解也感謝,以上想法是沒學過的,以後多看