飞龙的程序员书单 - 组原、OS、网络

简介: 组原深入理解计算机系统简单介绍一下,这本书包括组成原理和操作系统两大部分知识。第二、三章学完之后,逆向就算是入门了。国内的教材很少有拿汇编和C语言对比教学的书籍,这样的教学方法很实用。

组原

深入理解计算机系统

简单介绍一下,这本书包括组成原理和操作系统两大部分知识。第二、三章学完之后,逆向就算是入门了。国内的教材很少有拿汇编和C语言对比教学的书籍,这样的教学方法很实用。因为现在汇编很少用于写程序了,主要大量用于反编译;而C语言主要用于嵌入式开发,为了性能原因开发者要经常查看对应的汇编代码。然而这些知识只是个导论,要想真正踏入逆向的大门,还是要看看雪出的那几本书。

之后的第四、五章涉及了指令集和体系结构,讲的很浅显易懂,完全不需要数电的基础就能看懂。美中不足的一点是它拿y86作为教学工具。y86虽然比起x86简化了很多,但还是属于CISC,基本的指令类型有12种,很是令人头疼。此外,这一部分的lab涉及到了HDL,然而相关语法需要自己去看,也是略有不足。

操作系统部分没什么可挑剔的,进程、并发、IO与网络为了不那么抽象,特地采用posix api来做演示,是相当深入浅出的。当然,一本导论性质的书不可能讲的那么详细,需要的话还是要看《apue》。

另外,这本书好像遗漏了两个很重要的话题,组原部分少了总线,操作系统部分少了文件系统,所以还是应该看别的书把它补上。

计算机组成与设计

斯坦福校长写的书。如果你受不了csapp中y86的繁琐,来看这本吧。其中有一个简单的用于教学的mips,只需要记住和实现5种指令,简单吧。

OS

深入理解计算机系统

现代操作系统

一本中规中矩的OS教科书,主要涉及到了进程、并发与锁、IO、虚存、文件系统几个方面。

30天自制操作系统

和上面那本不同,这本书不涉及到一些操作系统设计上的基本概念,而是涉及到boot和内核的一些知识,教你从头开始实现一个操作系统,这是非常难能可贵的。

网络

计算机网络

计算机网络:自顶向下方法

这两本书前者是自底向上,后者是自顶向下。可以互相补充着看。另外不要再看谢希仁那本书了,那本书都是他让手下的研究生一章一章凑的,没有多大价值。

TCP/IP详解 卷1:协议

TCP/IP详解 卷2:实现

TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议

作为TCP/IP的权威指南,这三本还是挺晦涩难懂的。

HTTP权威指南

作为一名开发者,我们其实只需要关注传输层和应用层的东西。了解HTTP,对于一个web开发者来说,是极其有利的。至少能理清请求的来龙去脉,避免写出来那种跳来跳去的实现。

图解HTTP

图解TCP/IP

如果上面那些大部头看不下去了,看看下面这两本,图解有时候真的有奇效。

相关文章
|
28天前
|
安全 算法 网络安全
深入理解操作系统之进程调度策略网络安全与信息安全:防御前线的关键技术与策略
【2月更文挑战第29天】在多任务操作系统中,进程调度策略是核心机制之一,它决定了CPU资源的分配。本文将探讨三种经典的进程调度算法:先来先服务(FCFS)、短作业优先(SJF)和轮转调度(RR)。通过比较它们的优缺点,我们可以理解不同场景下的性能考量,以及如何根据实际需求选择合适的调度策略。 【2月更文挑战第29天】在数字化时代,网络安全和信息安全已成为维护信息完整性、确保数据隐私以及保障网络服务连续性的重要组成部分。本文将深入探讨网络安全漏洞的概念、加密技术的应用以及提升个人和企业安全意识的重要性。通过分析当前网络威胁的类型和特点,文章旨在为读者提供一系列针对网络攻击的预防措施和应对策略,
|
4月前
|
数据采集 机器学习/深度学习 网络协议
Linux|操作系统|应该知道的网络抓包知识(主要是wireshark,tcpdump)
Linux|操作系统|应该知道的网络抓包知识(主要是wireshark,tcpdump)
72 0
|
9月前
|
存储 NoSQL 网络协议
关于操作系统、计算机组成原理、编译系统、数据库原理、计算机网络原理总结
关于操作系统、计算机组成原理、编译系统、数据库原理、计算机网络原理总结
98 0
|
5月前
|
网络协议 前端开发 程序员
GitHub超百万星的「操作系统和计算机网络」PDF,竟是阿里独家
首先我们都知道,操作系统是所有软件的基础,所有上层软件都要依赖于操作系统提供的各种机制,才能运行。 而我在工作中也认识了很多技术大牛,根据我的观察,他们的基本功往往十分扎实,这对他们的架构视野、技术成长都十分有帮助。
|
9月前
|
SQL 数据库
计算机基础书的学习 计算机网络原理 操作系统 编译原理 数据库原理 计算机网络原理 五本基础书学习
计算机基础书的学习 计算机网络原理 操作系统 编译原理 数据库原理 计算机网络原理 五本基础书学习
|
9月前
|
网络协议 Ubuntu Linux
重学操作系统----09 | Linux 中的网络指令:如何查看一个域名有哪些 NS 记录?
远程操作指令用的最多的是ssh,ssh指令允许远程登录到目标计算机并进行远程操作和管理。还有一个比较常用的远程指令是scp,scp帮助我们远程传送文件。
114 0
|
9月前
|
SQL 网络协议 大数据
Linux操作系统选择题之网络配置及服务
Linux操作系统选择题之网络配置及服务
118 0
|
9月前
|
安全 Linux 开发工具
Linux操作系统实验十 Linux网络及服务配置(四)
Linux操作系统实验十 Linux网络及服务配置(四)
121 0
|
9月前
|
Ubuntu 网络协议 Linux
Linux操作系统实验十 Linux网络及服务配置(三)
Linux操作系统实验十 Linux网络及服务配置(三)
130 0
|
9月前
|
Ubuntu 网络协议 Unix
Linux操作系统实验十 Linux网络及服务配置(二)
Linux操作系统实验十 Linux网络及服务配置(二)
292 0