Deep dive into AF_PACKET socket

AF_PACKET socket is a way of capturing raw packets at link layer and then applications can handle the packets in user space. Applications like packet sniffering and soft packet processing could use it to receive and send the raw packets from and to the link layer directly.

AF_PACKET had evolved a few versions of improvement in Linux kernel since it’s introduced. In this artcile, we will discuss what options could be used to improve the efficiency for capturing and sending the packet via the AF_PACKET socket.

内存寻址(2): X86微处理器的分页单元的高级话题

前一篇文章中已经对32位的80x86微处理器的分页的基本知识进行了详细的阐述。本文将继续就分页单元展开更多高级话题的讨论,包括:扩展分页、特权保护方案、高速缓存、TLB转换后援缓冲器、以及64位系统中的分页支持。

内存寻址(1): X86微处理器的内存寻址原理

应用程序在运行过程中会频繁地访问内存中的某段地址并从中存取数据。那么内存寻址是怎么实现的呢?现代的很多高级编程语言避免了让程序员直接操纵内存单元,给编程工作带来了极大的简便。但是,了解了这些底层机制之后,对于理解编程语言与操作系统交互时的更深层次机理不无裨益,有助于写出更优秀性能的应用程序代码。这里,将通过一系列文章来揭示内存寻址的底层实现。本文是该系列文章的开篇,重点在于介绍X86微处理是如何实现内存寻址的。