飞龙的程序员书单 - 组原、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

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

相关文章
|
18天前
|
Java 程序员
JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
在Java编程中,网络资源的获取与处理至关重要。本文介绍了如何使用URL与URLConnection高效、准确地获取网络资源。首先,通过`java.net.URL`类定位网络资源;其次,利用`URLConnection`类实现资源的读取与写入。文章还提供了最佳实践,包括异常处理、连接池、超时设置和请求头与响应头的合理配置,帮助Java程序员提升技能,应对复杂网络编程场景。
42 9
|
3月前
|
算法 安全 网络安全
探索操作系统核心:进程调度的奥秘网络安全的盾牌与剑——漏洞防御与加密技术
【8月更文挑战第30天】在数字世界的每一次点击和命令背后,都隐藏着一个不为人知的英雄——进程调度器。它默默无闻地在后台工作,确保我们的命令得以流畅执行。本文将揭开这位幕后英雄的面纱,带你了解进程调度的原理、重要性以及它是如何在操作系统中发挥作用的。无论你是编程新手还是资深开发者,理解进程调度都能帮你更好地掌握计算机的运作原理。准备好深入操作系统的核心,一探究竟了吗?让我们开始吧!
|
3月前
|
机器学习/深度学习 网络安全 TensorFlow
探索操作系统的心脏:内核与用户空间的奥秘云计算与网络安全:技术挑战与未来趋势深度学习中的卷积神经网络(CNN)及其在图像识别中的应用
【8月更文挑战第29天】在数字世界的每一次点击与滑动背后,都隐藏着一个不为人知的故事。这个故事关于操作系统——计算机的灵魂,它如何协调硬件与软件,管理资源,并确保一切运行得井井有条。本文将带你走进操作系统的核心,揭示内核与用户空间的秘密,展现它们如何共同编织出我们日常数字生活的底层结构。通过深入浅出的讲解和代码示例,我们将一同解锁操作系统的神秘面纱,理解其对现代计算的重要性。 【8月更文挑战第29天】本文将深入探讨卷积神经网络(CNN)的基本原理和结构,以及它们如何被广泛应用于图像识别任务中。我们将通过代码示例来展示如何使用Python和TensorFlow库构建一个简单的CNN模型,并训练
|
5月前
|
监控 程序员 Python
程序员必知:天兔(Lepus)监控操作系统(OS)安装配置
程序员必知:天兔(Lepus)监控操作系统(OS)安装配置
19 1
|
5月前
|
监控 程序员 Python
程序员必知:天兔(Lepus)监控操作系统(OS)安装配置
程序员必知:天兔(Lepus)监控操作系统(OS)安装配置
54 1
|
4月前
|
Python
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
智能卡系统工程是一个涉及多个方面的复杂系统,包括硬件(如读卡器、智能卡)、软件(如读卡器驱动程序、智能卡操作系统和应用软件)以及网络通信等。
|
6月前
|
存储 人工智能 物联网
探索操作系统的心脏:内核的奥秘云计算与网络安全:技术融合与挑战
【5月更文挑战第31天】本文将深入探讨操作系统的核心—内核,揭示其运作原理与对计算机性能的影响。从内核的定义和功能出发,我们将逐步剖析其结构组成,包括进程管理、内存管理、文件系统和设备驱动等关键模块。文章旨在为读者提供一扇观察操作系统内部工作机制的窗口,帮助理解现代计算环境中,为何一个高效、稳定的内核对于整个系统的重要性不可或缺。
|
5月前
|
并行计算 PyTorch 程序员
老程序员分享:Pytorch入门之Siamese网络
老程序员分享:Pytorch入门之Siamese网络
98 0
|
5月前
|
数据采集 JSON 程序员
老程序员分享:Pythonrequests网络数据采集下载视频(ku6)
老程序员分享:Pythonrequests网络数据采集下载视频(ku6)
40 0
|
5月前
|
Java 程序员 数据处理
【技能升级】JAVA程序员的进阶之路:掌握URL与URLConnection,轻松玩转网络资源!
【6月更文挑战第21天】在Java中,URL是网络资源的位置标识,如`http://www.example.com/resource.txt`,而URLConnection是与这些资源交互的接口。创建URL对象后,通过`openConnection()`获取URLConnection实例以读取或写入资源。读取时,设置请求头,获取输入流并读取数据;写入(POST)时,设置输出流并写入数据。处理网络操作时,别忘了异常处理、使用连接池以优化性能、设置超时以及恰当使用请求头和响应头。这些最佳实践能助你高效、稳定地进行网络编程。
44 0

热门文章

最新文章