logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

Linux netfilter 学习笔记 之十一 ip层netfilter的NAT模块初始化以及NAT原理

1.NAT的原理NAT会修改数据包的ip层的源或者目的ip地址。在实际应用中,NAT 主要用于实现私有网络访问公共网络的功能。1.1 SNAT源目的地址转换,即对ip数据包的源ip地址进行转换操作,典型的应用即是网关,网关的lan侧会下挂至少两台设备,而这两台设备的ip地址都是lan侧地址,而lan侧设备又要访问公网,这就需要SNAT大展身手了,通过将lan侧发送的ip数据包的源ip地

嵌入式linux下u盘自动挂载的实现

我实现的方法很简单,主要是周期读取文件/proc/partitions文件,当有u盘插入时,该文件中就会有u盘的信息:“sdb1、sdb2”等,当系统检测到这些信息时,就执行命令mount,将u盘挂载到文件系统中。可以在应用程序中开一个线程来周期读取文件/proc/partitions文件,实习文件的自动挂载。这只是简单的u盘自动挂载,还可以使用hotplug实现U盘的自动挂载

#linux#嵌入式
crc32校验的c语言实现

最近在做软件升级,需要对升级文件进行crc校验,就学习了crc的实现原理crc就是一个数值,该数值用于检验数据的正确性,crc校验的原理就是将需要作校验的数据与一个数据模2相除,得到的余数即为校验值。      模2相除就是在除的过程中用模2加,模2加实际上就是异或运算,就是不进行进位操作,即相同为假,不相同为真。下面是几种CRC校验的生成多项式:CRC8 = X8+X

Linux led子系统分析之二 led子系统软件架构及数据结构

上一章对led子系统进行了概述,本章我们主要分析led子系统软件架构及数据结构。led子系统涉及的数据结构不多,软件架构也相对简单,下面我们就简要说明一下。本章的主要内容如下:一、led子系统数据结构及关联二、led子系统相关数据结构说明一、led子系统实现说明针对led子系统,其实现主要分为三部分:led-trigger部分主要提供led触发器(或者led控制方法)的注册接口、led blink

Linux input子系统分析之三 input device/handler注册与注销分析

上一章我们分析了input子系统主要的数据结构,本章我们主要分析input hander、input device、input handle的注册与注销。本章的主要内容如下:一、input device的注册与注销说明二、input handler的注册与注销说明三、input handle的注册与注销说明四、input事件分发说明在分析input device、input handler、inp

Linux input子系统分析之五 从一个虚拟input device驱动掌握input device驱动开发

在前面几章,我们分析了input子系统的框架,以及input handler的注册与实现,本章我们通过一个虚拟的input device驱动,说明如何开发一个input device驱动。本章涉及的内容如下:Platform device、driver的使用Input device的注册与注销;sysfs下属性文件的注册与注销。一、input device驱动开发流程针对input device的

Linux input子系统分析之四 input handler驱动实例evdev分析

在前面几章我们介绍了input子系统的实现,针对input子系统而言,主要就包括input handler、input handle、input device这三种逻辑抽象,而在input子系统中input handler与input device是多对多的联系(而在设备驱动模型中,一般设备与驱动时1对多的关联)。本章我们将通过一个input handler实例,理解input handler驱动

LINUX SPI设备驱动模型分析之四 SPI 通信接口(spi_sync、spi_async)分析

上两篇文章完成了spi总线、设备、驱动、master的分析,下面我们分析下spi模块提供的通信方法,通过该通信方法,即可完成cpu与具体spi设备之间的通信(借助spi controller)。其实,spi_sync、spi_async的实现也不是太复杂,但是由于在新版内核中,针对spi_sync,spi核心提供了基于worker线程的处理方式,基于该方式则所有spi ...

strcpy、sprintf、memcpy的区别

最近在做远程升级的内容,通过实践才真正体会到不同拷贝函数的作用char*strcpy(char *dest, const char *src);其对字符串进行操作,完成从源字符串到目的字符串的拷贝,当源字符串的大小大于目的字符串的最大存储空间后,执行该操作会出现段错误。int sprintf(char*str, const char *format, ...)函数操作的源对象不限于

#网络
linux中断底半部之 softirq 原理与代码分析

Linux softirq一、 软中断产生的原因软中断:用于有效的实现内核的延期操作,也是底半部机制tasklet的基础二、 数据结构1)softirq_action该结构是软中断的核心数据结构,代表软中断处理函数。struct softirq_action{void (*action)(struct softirq_action *);};2)下面

    共 34 条
  • 1
  • 2
  • 3
  • 4
  • 请选择