这几天,我的好友陆小风送了我一本他出版的新书《计算机底层的秘密》。正好利用周末看了一下。整本书看完后,觉得写的很不错,也符合不局限于用,还要把原理搞清楚的风格。
你要说它简单的话,确实一个本科大一的学生就能写出来能跑的代码。很多非计算机专业的学生自学或者找个培训机构培训一下,也能胜任很多工作岗位的开发工作。
你说它复杂,那更是,代码看上去能正常运行,可这是为什么呢?程序到底是怎么运行起来的?计算机执行代码时底层发生了什么?遇到的这个线上问题为什么会发生,该怎么解决和优化。这些问题确实复杂。
复杂性的原因我觉得是因为现代的计算机系统就想汉堡包一样被层层抽象。从CPU硬件到汇编、从汇编到编译器、从编译器再到编程语言,从内核封装到各种应用开发,左一层右一层地封装了起来。
编程语言是开发应用程序的工具,编译器又将高级编程语言转换为计算机可以理解和执行的机器代码的工具。CPU是计算机的核心,它执行指令、进行算术和逻辑运算,内存是存储数据和程序的地方,它提供了快速访问数据的能力,I/O负责处理与外部设备的交互,而操作系统提供了对硬件的抽象接口,使程序能够方便地访问和利用计算机的资源。
缺乏深入理解计算机系统的原理和机制,不仅影响自己编写的代码的结构性、可读性和可维护性,还可能导致难以有效地优化程序的性能。同时,对于代码的运行错误或系统的异常行为,也很难迅速定位和解决,总是要依赖他人的帮助。
现在的层层封装让写出能运行的代码越来越容易了。但是也给成长为技术高手带来了更多的门槛,要理解的底层来越来越多了。
这本《计算机底层的秘密》覆盖了几大块底层内容:编程语言如何变成可执行程序的、编译器是如何工作的、链接器如何构建出可执行程序、进程、线程、协程相关的原理、malloc是如何分配内存的。
另外,出版社老师也给咱们码农翻身读者提供了5本的福利。还是老规矩,点赞+抽选。截止今天晚上10:00前评论区点赞前三的读者自动获得,另外两本我从评论区中抽选。
文章引用微信公众号"码农翻身",如有侵权,请联系管理员删除!