0%

漏洞天天听说,为什么溢出了就可以进行攻击呢?虽然做完这次实验并不能赋予自己给 iOS 越狱的能力,但是至少能实现简单的代码攻击了。

阅读全文 »

想体验拆弹部队的千钧一发吗?想当一回柯南来一次『真相只有一个』吗?那么这个实验绝对能给你非同寻常的感受:原来作业可以这么有趣!

阅读全文 »

万事开头难,尤其是和 0 与 1 打交道,和后面的实验相比,这次只能算个热身。但是喜欢运动的都知道,热身很重要!

阅读全文 »

进程和线程有什么差别?超线程又是什么意思?为什么多线程能够提高程序执行的速度?是所有情况都适用吗?并行程序有没有什么限制?这一讲我们来聊聊并行与同步这两个『继往开来』的概念。在今后的学习中,大家一定会不止一次发现,很多问题说来说去,其实就是并行与同步的问题。

阅读全文 »

如果说《深入理解计算机系统》的课本是九十分的话,那么配套的实验少说得有一百五十分。完成实验的过程,也就是深入理解计算机系统的过程,真正动手去做,一是会发现『纸上得来终觉浅』,二是会意识到『知行合一』的重要性。

阅读全文 »

在这个网络成为『必需品』的时代,让我们从最原始的 Socket(套接字)开始,来看看程序是如何通过网络进行『沟通』的。更有意思的是,这一讲我们会介绍如何通过 C 语言从零开始实现自己的服务器程序。

阅读全文 »

进程是操作系统中最重要的抽象,虚拟内存令这一切成为可能,为什么进程可以使用完整且连续的虚拟地址空间,而不需要关注物理内存呢?另外,计算机又是如何管理我们 new 的对象的?这一讲我们就来看看关于内存的这两个重要话题。

阅读全文 »

Linux 系统中 IO 的概念是非常有趣的,结合『所有东西都是文件』这个抽象,无论是输入输出重定向,还是挂载不同的设备,甚至是网络编程,都可以由系统输入输出这个统一的模型来进行描述。这一讲我们就来了解一下以 stdin, stdout 等为代表的系统输入输出。

阅读全文 »

异常控制流可能是很多人知道却说不清楚具体发生了什么的『著名』概念,什么是异常?系统又是怎么处理这个看起来『不一样』的机制的呢?信号在这里扮演了什么角色?这一讲我们就来讲讲异常与信号到底是怎么回事儿。

阅读全文 »

不同的代码是如何被拼到一起协同工作的呢?所谓的静态库,动态库又是什么?编译和链接的不同在哪里?这一讲我们结合一丁点编译原理的内容,来说说链接那点事儿。

阅读全文 »