- 博客(18)
- 收藏
- 关注
原创 [Linux驱动开发九] 简单虚拟网卡制作
网卡设备主要负责对网络数据包进行收发操作。接收数据和发送数据。它将上层协议传递下来的数据包传递给Linux内核,并且将Linux内核的数据发送出去。与字符设备不同,网卡设备在/dev目录下没有对应文件,但在/sys/class/net目录下可以查看网卡。接下来,我们简单介绍一下网卡的收发包流程。(1)网卡收包step1:网卡芯片获取网线上的物理帧,并检查物理帧的CRC,保证完整性;step2:网卡芯片去除物理帧头,得到MAC数据包;
2023-05-24 23:30:00
2854
原创 [Linux驱动开发八] 网络设备简介
Linux系统中的设备可以分为字符设备、块设备和网络设备三大类。网络设备又叫网络接口,与字符设备一样,网络设备也是内核的特定数据结构中注册自己(字符设备为cdev结构体, 网络设备net_device结构体)。字符设备在 /dev 目录下会有对应设备文件节点并且在注册时会有设备号。网络设备没有对应设备节点和设备号,网络设备使用套接字来实现网络数据的接收和发送。
2023-05-14 23:30:00
1886
原创 [Linux驱动开发七] pktgen模块的编译以及Linux内核版本切换
本篇文章首先对Linux下的文件目录各功能进行介绍,其次对insmod和modprobe两个命令进行了对比,然后分析了Linux内核源码(如Pktgen等模块源码)的下载与编译,最后讲解了如何进行Linux内核的切换。
2023-04-28 10:20:01
1142
原创 TCP / UDP
两台主机间通信,通常是指两台主机间的进程进行通信。在TCP/IP模型中,运输层的目的就是为应用进程之间提供端到端的逻辑通信,运输层通过端口号区分不同的应用进程,并提供一些运输层协议。其中,运输层最常见的两种协议便是TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。TCP 和UDP是传输层的两个重要协议,我们平常浏览网页,手机聊天,观看视频都是通过这两种协议进行传输的。
2022-12-24 21:18:48
654
1
原创 静态路由(Static Routing)
目录一、前言1.1 静态路由定义1.2 静态路由可能造成路由环路的原因 1)配置错误 2)聚合了不存在网络 3)网络故障二、案例说明2.1 案例1(静态路由配置)案例小结2.2 案例2(默认路由配置)案例小结三、路由环路问题的解决方案3.1 配置错误解决方案3.2 聚合了不存在网络解决方案3.3 网络故障解决方案四、总结 静态路由(static routing) 是指用户或网络管理员手动将路由添加到路由器中,静态路由配置简单,开销小,很难适应网络状态的
2022-12-10 21:14:10
7165
原创 Linux bridge table(brctl)
网桥是连接两个局域网的一种存储/转发设备,它能将一个大的 LAN 分割为多个网段,或将两个以上的 LAN 互联为一个逻辑 LAN,使 LAN 上的所有用户都可访问服务器。brctl 命令用于管理 Linux 虚拟以太网网桥 在内核中建立、维护、检查网桥配置。
2022-11-27 10:36:08
3544
1
原创 [Linux驱动开发五]实现ioctl函数
前文已经实现了对字符设备的具体读写功能,但如果我们想要驱动外设,不仅需要具备读写设备的能力,还需要具备对它的控制能力。例如,要求设备报告错误信息,改变波特率,LED灯的点亮或熄灭等,这些都需要通过ioctl()来实现。
2022-11-07 22:30:47
2767
原创 [Linux驱动开发四]设备具体读写功能的实现
之前的章节已经实现了最基本的字符设备,目前我们的字符设备拥有自动生成设备节点、基本读写等功能。本章节是对基本读写功能的扩展,使得我们的字符设备的读写功能更加具体。
2022-11-02 21:59:37
881
原创 Makefile学习笔记
linux环境下,当一个项目中源文件过多,手动逐个编译明显不切实际,使用Makefile脚本文件可以帮助我们模块化编译文件,本篇文章由浅入深,层层递进,可帮助读者逐步学会Makefile的编写。
2022-10-21 14:12:06
1261
3
Makefile自动化脚本,运行该脚本可直接自动生成Makefile文件
2022-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人