自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 C语言基础编程

分享日常编程记录

2022-10-23 15:25:32 317

原创 [Linux驱动开发九] 简单虚拟网卡制作

网卡设备主要负责对网络数据包进行收发操作。接收数据和发送数据。它将上层协议传递下来的数据包传递给Linux内核,并且将Linux内核的数据发送出去。与字符设备不同,网卡设备在/dev目录下没有对应文件,但在/sys/class/net目录下可以查看网卡。接下来,我们简单介绍一下网卡的收发包流程。(1)网卡收包step1:网卡芯片获取网线上的物理帧,并检查物理帧的CRC,保证完整性;step2:网卡芯片去除物理帧头,得到MAC数据包;

2023-05-24 23:30:00 2243

原创 [Linux驱动开发八] 网络设备简介

Linux系统中的设备可以分为字符设备、块设备和网络设备三大类。网络设备又叫网络接口,与字符设备一样,网络设备也是内核的特定数据结构中注册自己(字符设备为cdev结构体, 网络设备net_device结构体)。字符设备在 /dev 目录下会有对应设备文件节点并且在注册时会有设备号。网络设备没有对应设备节点和设备号,网络设备使用套接字来实现网络数据的接收和发送。

2023-05-14 23:30:00 1182

原创 [Linux驱动开发七] pktgen模块的编译以及Linux内核版本切换

本篇文章首先对Linux下的文件目录各功能进行介绍,其次对insmod和modprobe两个命令进行了对比,然后分析了Linux内核源码(如Pktgen等模块源码)的下载与编译,最后讲解了如何进行Linux内核的切换。

2023-04-28 10:20:01 621

原创 TCP / UDP

两台主机间通信,通常是指两台主机间的进程进行通信。在TCP/IP模型中,运输层的目的就是为应用进程之间提供端到端的逻辑通信,运输层通过端口号区分不同的应用进程,并提供一些运输层协议。其中,运输层最常见的两种协议便是TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)。TCP 和UDP是传输层的两个重要协议,我们平常浏览网页,手机聊天,观看视频都是通过这两种协议进行传输的。

2022-12-24 21:18:48 307 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 6468

原创 [Linux驱动开发六] pkegen最基本的使用

Linux pktgen的基本使用

2022-12-03 22:01:01 2418 2

原创 NAT / NAPT

本章节旨在向大家说明家庭网络和因特网之间的转换关系。

2022-11-29 21:50:12 696

原创 Linux bridge table(brctl)

网桥是连接两个局域网的一种存储/转发设备,它能将一个大的 LAN 分割为多个网段,或将两个以上的 LAN 互联为一个逻辑 LAN,使 LAN 上的所有用户都可访问服务器。brctl 命令用于管理 Linux 虚拟以太网网桥 在内核中建立、维护、检查网桥配置。

2022-11-27 10:36:08 2998 1

原创 [网络基本概念] Bridge / Router

本文描述了集线器/交换机/路由器等基本工作原理

2022-11-14 21:57:58 1429 4

原创 [网络基本概念] Router / Bridge

光猫的路由和桥接

2022-11-10 14:54:51 2883 1

原创 [Linux驱动开发五]实现ioctl函数

前文已经实现了对字符设备的具体读写功能,但如果我们想要驱动外设,不仅需要具备读写设备的能力,还需要具备对它的控制能力。例如,要求设备报告错误信息,改变波特率,LED灯的点亮或熄灭等,这些都需要通过ioctl()来实现。

2022-11-07 22:30:47 2194

原创 [Linux驱动开发四]设备具体读写功能的实现

之前的章节已经实现了最基本的字符设备,目前我们的字符设备拥有自动生成设备节点、基本读写等功能。本章节是对基本读写功能的扩展,使得我们的字符设备的读写功能更加具体。

2022-11-02 21:59:37 584

原创 [Linux驱动开发三]实现自动生成设备节点

解决linux字符设备无法自动生成设备节点的问题。

2022-10-31 10:51:03 1456

原创 [Linux驱动开发二]最简单的字符设备

一个最简单的字符设备

2022-10-28 22:31:08 1550

原创 [Linux驱动开发一]最简单的内核模块

[Linux驱动开发一]最简单的内核模块

2022-10-27 21:17:53 2278 2

原创 Makefile自动化脚本封装

Makefile自动生成

2022-10-23 20:43:40 1097 1

原创 Makefile学习笔记

linux环境下,当一个项目中源文件过多,手动逐个编译明显不切实际,使用Makefile脚本文件可以帮助我们模块化编译文件,本篇文章由浅入深,层层递进,可帮助读者逐步学会Makefile的编写。

2022-10-21 14:12:06 954 3

[Linux驱动开发二]最简单的字符设备

最简单的字符设备

2022-10-29

[Linux驱动开发一]最简单的内核模块

[Linux驱动开发一]最简单的内核模块

2022-10-28

Makefile自动化脚本,运行该脚本可直接自动生成Makefile文件

若主函数为main.c,想生成Makefile文件,则先运行”./AutoMake.sh main.c“命令,再运行"make"命令即可。

2022-10-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除