代码和环境
- 代码
- CMake
Ubuntu 系统
安装 CMake, make, gcc/g++.
如果是 CentOS 或 Red Hat,需要执行 yum install 命令:
sudo yum install gcc g++ make cmake
使用 CMake 编译程序
- 生成配置文件: Makefile
$ cd build && cmake -f ../
- 在 build 目录运行 make: 编译等步骤. 可执行程序生成在 build/bin 目录下
$ make
MacOS
CLion
有些情况下,启动程序时需要输入一些参数,这个时候需要使用“Edit Configurations”为可执行程序配置参数。下面是一个例子:
Windows
学习路径
语言
C 语言是可以和系统直接交互的语言,无论是系统调用,还是内核实现,都和 C 语言有非常直接的联系.
C 语言精髓:
- 数组
- 指针
- 结构体
- 函数
书籍推荐
疑难解答
一段数据流从应用程序发送端,一直到应用程序接收端,总共经过了多少次拷贝?
TX ring 在网络驱动和网卡之间,也是一个传输请求的队列。
网卡作为物理设备工作在物理层,主要工作是把要发送的报文保存到内部的缓存中,并发送出去。
网络驱动和上层之间没有缓存,因为网络驱动使用 Napi 进行数据传输。因此,可以认为上层直接从 RX ring 中读取报文。
**