Linux系列学习
文章平均质量分 86
linux作为经典、常用的嵌入式系统,被应用于各种嵌入式硬件,本专栏从linux基础讲起,到linux应用、linux网络、linux驱动,由浅入深学习linux嵌入式开发,希望对大家的学习有所帮助,快来关注吧。
修成真
修得本心,方能成真。
为学日益,为道日损。损之又损,以至于无为,无为而无不为。
我是一个默默学习的嵌入式修行者。
展开
-
【Linux】特别篇--GNU C编译器扩展语法
本章是我参考《嵌入式C语言自我修养》的GUN C编译器扩展语法这一章,对其中的内容进行了摘录、总结与归纳,并写了一些关于自己的理解,这边还是推荐大家去购买原作的,因为里面用通俗的语言解决了很多原理上的问题,让我对C语言又有了一个新的认识。至于这里有人会问,那你直接去翻书不就得了嘛,为什么还要写到这里,我的回答是,第一,我需要对学的知识进行总结归纳,第二,书中的内容太多,需要进行一定的缩减,第三,分享给其他人学习,第四,以后忘了的知识可以直接在这里查找,比翻书方便。原创 2022-11-10 15:22:29 · 833 阅读 · 0 评论 -
【Linux】特别篇--SMBus 协议
主要介绍了SMBus协议的简介、对比与分析原创 2022-10-23 15:44:54 · 7159 阅读 · 0 评论 -
【Linux】实际项目应该如何完成?--安防监控系统项目的总结
到目前为止我也做个5、6个嵌入式项目,但以往都是从零开始自己做,也就是毫无计划,想到那里做那里,有想法就会去实现,就这样导致我碰到了很多坑,也消耗了我许多时间,当然,不是说这样不好,因为在其中我也得到了一个很好的锻炼与练习,但是这不适用于在工作中去这样做。...原创 2022-06-18 16:46:59 · 3903 阅读 · 3 评论 -
【超全面】Linux嵌入式干货学习系列教程
博主学习Linux也有几个月了,在这里为广大朋友整理出嵌入式linux的学习知识,希望对大家有所帮助,当然博主也只是个初入嵌入式领域的初学者,有问题的地方希望大家指出,在此祝大家学习顺利。............原创 2022-06-06 14:41:38 · 45817 阅读 · 31 评论 -
【Linux】内核驱动篇十二--input子系统
内核驱动篇十三--input子系统一、input子系统基本框架二、驱动开发步骤一、input子系统基本框架Linux内核为了两个目的:简化纯输入类外设(如:键盘、鼠标、游戏杆、轨迹球、触摸屏。。。等等)的驱动开发统一输入类外设产生的数据格式(struct input_event),更加方便应用层编程设计了输入子系统事件处理层:接收来自核心层上报的事件,并选择对应的handler(事件处理器 struct input_handler)去处理。内核维护着多个事件处理器对象,每个input.原创 2022-05-30 20:41:14 · 848 阅读 · 0 评论 -
【Linux】内核驱动篇十一--I2C总线式驱动开发
内核驱动篇十二--I2C总线式驱动开发一、I2C总线背景知识二、Exynos4412 I2C收发实现之裸机版2.1 发送2.2 接收三、Linux内核对I2C总线的支持四、MPU6050五、应用层直接使用I2C通道5.1 预备工作:5.2 应用层直接使用i2c总线的代码实现六、I2C总线二级外设驱动开发方法七、I2C总线二级外设驱动开发之名称匹配一、I2C总线背景知识SOC芯片平台的外设分为:一级外设:外设控制器集成在SOC芯片内部二级外设:外设控制器由另一块芯片负责,通过一些通讯总线与SOC.原创 2022-05-29 15:19:20 · 1652 阅读 · 2 评论 -
【Linux】内核驱动篇十--平台总线驱动开发
内核驱动篇十--平台总线驱动开发一、总线、设备、驱动1.1 初期解决思路:设备和驱动分离1.2 升级思路:根据设备树,在系统启动时自动产生每个节点对应的设备二、基本数据类型三、platform总线驱动3.1 核心数据类型之platform_device3.2 核心数据类型之platform_driver四、platform的三种匹配方式五、名称匹配之基础框架六、ID匹配之框架代码七、设备树匹配八、一个编写驱动用的宏一、总线、设备、驱动硬编码式的驱动开发带来的问题:垃圾代码太多结构不清晰一些统.原创 2022-05-25 21:37:53 · 1248 阅读 · 0 评论 -
【Linux】内核驱动篇九--设备模型
内核驱动篇九--设备模型一、起源二、新方案2.1 sysfs: 一种用内存模拟的文件系统,系统启动时mount到/sys目录2.2 uevent三、代码中自动mknod一、起源linux内核开发前期,仅devfs,导致开发不方便以及一些功能难以支持:热插拔不支持一些针对所有设备的统一操作(如电源管理)不能自动mknod用户查看不了设备信息设备信息硬编码,导致驱动代码通用性差,即没有分离设备和驱动二、新方案linux内核在3.0以后引入了设备树的机制与新的开发方法uevent机制.原创 2022-05-25 10:00:00 · 656 阅读 · 0 评论 -
【Linux】内核驱动篇八--中断处理
内核驱动篇八--中断处理一、什么是中断二、中断处理原理三、中断接口3.1 中断申请 3.2 中断释放3.3 中断处理函数原型四、按键驱动五、上半部与下半部六、下半部机制之tasklet ---- 基于软中断6.1 结构体6.2 定义tasklet的中断底半部处理函数6.3 初始化tasklet6.4 调度tasklet七、下半部机制之workqueue ----- 基于内核线程7.1 工作队列结构体:7.2 定义工作队列底半部处理函数7.3 初始化工作队列7.4 工作队列的调度函数八、按键驱动之work.原创 2022-05-24 13:41:09 · 1216 阅读 · 0 评论 -
【Linux】内核驱动篇七--设备树
内核驱动篇七--设备树一、起源二、基本组成三、基本语法四、特殊节点4.1 根节点4.2 /memory4.3 /chosen4.4 /cpus 多核CPU支持五、常用属性5.1 phandle5.2 地址--------------- 重要5.3 compatible --------------- 重要5.4 中断 --------------- 重要5.5 gpio --------------- 重要5.6 属性设置套路六、常用接口6.1 of_find_node_by_path6.2 of.原创 2022-05-21 21:30:00 · 1188 阅读 · 0 评论 -
【Linux】内核驱动篇六--内核定时器与内存管理
内核驱动篇六--内核定时器与内存管理一、时钟中断二、延时函数三、定时器四、内核内存管理框架五、内核中常用动态分配5.1 kmalloc5.2 vmalloc5.3 kmalloc & vmalloc 的比较六、IO访问-------访问外设控制器的寄存器七、led驱动一、时钟中断硬件有一个时钟装置,该装置每隔一定时间发出一个时钟中断(称为一次时钟嘀嗒-tick),对应的中断处理程序就将全局变量jiffies_64加1jiffies_64 : 是一个全局64位整型, jiffies全局.原创 2022-05-21 11:07:25 · 786 阅读 · 0 评论 -
【Linux】内核驱动篇五--资源共享与同步
内核驱动篇五--资源共享与同步一、上下文和并发场合二、中断屏蔽(了解)三、原子变量(掌握)四、自旋锁:基于忙等待的并发控制机制五、信号量:基于阻塞的并发控制机制六、互斥锁:基于阻塞的互斥机制七、选择并发控制机制的原则一、上下文和并发场合执行流:有开始有结束总体顺序执行的一段代码, 又称上下文应用编程:任务上下文内核编程:任务上下文:五状态 可阻塞a. 应用进程或线程运行在用户空间b. 应用进程或线程运行在内核空间(通过调用syscall来间接使用内核空间)c. 内核线程始终在内核空间.原创 2022-05-18 20:28:33 · 868 阅读 · 0 评论 -
【Linux】内核驱动篇四--IO模型
内核驱动篇四--IO模型一、五种IO模型------读写外设数据的方式二、阻塞与非阻塞三、多路复用3.1 应用层:三套接口select、poll、epoll3.2 驱动层:实现poll函数四、信号驱动4.1 应用层:信号注册+fcntl4.2 驱动层:实现fasync函数一、五种IO模型------读写外设数据的方式阻塞: 不能操作就睡觉非阻塞:不能操作就返回错误多路复用:委托中介监控信号驱动:让内核如果能操作时发信号,在信号处理函数中操作异步IO:向内核注册操作请求,内核完成操作.原创 2022-05-17 21:25:53 · 1151 阅读 · 0 评论 -
【Linux】内核驱动篇三--字符设备驱动基础
内核驱动篇三--字符设备驱动基础一、Linux内核对设备的分类二、设备号------内核中同类设备的区分三、申请和注销设备号四、注册字符设备五、字符设备驱动框架解析5.1 两个操作函数中常用的结构体说明5.2 字符设备驱动程序框架分析5.3 参考原理图5.4 常用操作函数说明六、读操作实现七、写操作实现八、ioctl操作实现九、printk十、多个次设备的支持一、Linux内核对设备的分类linux的文件种类:-:普通文件d:目录文件p:管道文件s:本地socket文件l:链接文件c:.原创 2022-05-16 13:13:43 · 1285 阅读 · 0 评论 -
【Linux】内核驱动篇二--参数与依赖
内核驱动篇二--参数与依赖一、模块传参二、模块依赖三、内核空间和用户空间四、执行流五、模块编程与应用编程的比较六、内核接口头文件查询一、模块传参module_param(name,type,perm);//将指定的全局变量设置成模块参数/*name:全局变量名type: 使用符号 实际类型 传参方式 bool bool insmod xxx.ko 变量名=0 或 1 invbool bool .原创 2022-05-12 10:57:21 · 1129 阅读 · 0 评论 -
【Linux】内核驱动篇一--编译方法
内核驱动篇一--编译方法一、向内核添加新功能1.1 静态加载法1.2 动态加载法1.2.1 文件制作方法1.2.2 文件使用二、内核模块基础代码解析三、内核模块的多源文件编程四、 内核模块信息宏注:关于驱动的编译环境,在系统移植篇已详细讲解与安装一、向内核添加新功能1.1 静态加载法即新功能源码与内核其它代码一起编译进uImage文件内,下面举例说明。新功能源码与Linux内核源码在同一目录结构下,在linux-3.14/drivers/char/目录下编写myhello.c,文件.原创 2022-05-11 16:19:34 · 4353 阅读 · 4 评论 -
【Linux】系统移植篇五--内核、设备、根文件系统移植
系统移植篇五--内核、设备、根文件系统移植一、Linux内核概述1、内核与操作系统2、内核的特点二、Linux内核源码结构1、Linux内核源码获取2、Linux内核源码结构三、Linux内核的配置与编译1、Linux内核源码配置2、图形化界面配置3、Linux内核源码编译四、设备树1、概念2、设备树语法概述3、驱动移植过程五、根文件系统移植1、概念与内容2、Busybox前言:关于linux内核、设备驱动、根文件系统的移植教程在我上传的linux内核、设备驱动、根文件系统移植资源中已有详细讲解,.原创 2022-05-10 15:24:58 · 1831 阅读 · 0 评论 -
【Linux】系统移植篇四--uboot移植
系统移植篇四--uboot移植一、uboot源码结构1、uboot源码获取2、uboot特点3、uboot源码结构二、uboot的配置与编译1、uboot配置2、uboot编译前言:本篇主要介绍uboot的一些结构与相关配置,uboot是一款免费开源的芯片启动软件,代码完全开源,由于需要支持不同的芯片,导致代码内容庞大,因此对于初学者我们只需要知道其怎么配置移植就行了,不用关心具体实现,在往后工作中也会有芯片公司直接提供配置好的uboot文件。关于华清远见的FS4412开发板uboot的配置下载.原创 2022-05-08 14:48:34 · 3134 阅读 · 1 评论 -
【Linux】系统移植篇三--内核安装加载与交叉编译工具链
系统移植篇三--内核安装加载与交叉编译工具链一、linux内核的安装与加载1、uboot内核启动命令2、uboot自启动参数环境变量二、交叉编译工具链1、编译原理2、GCC的编译过程3、交叉编译与工具获取4、ELF文件格式与BIN文件格式4.1 ELF文件格式4.2 ELF文件相关命令4.3 BIN文件格式5、交叉编译工具链常用工具一、linux内核的安装与加载安装方法与步骤在linux内核的安装与加载教程中以详细讲解,请自行下载,这里讲解安装中遇到的知识。1、uboot内核启动命令bootm.原创 2022-05-07 19:25:16 · 2137 阅读 · 2 评论 -
【Linux】系统移植篇二--uboot烧写与使用
系统移植篇二--uboot烧写与使用一、交叉环境的搭建1、tftp简介2、tftp简介二、uboot三、SD卡启动盘制作SD卡存储结构四、uboot的使用1、uboot模式2、uboot帮助命令3、uboot环境变量命令4、uboot常用环境变量5、uboot网络传输命令6、uboot存储器访问命令7、uboot自启动环境变量一、交叉环境的搭建交叉环境搭建教程免费下载:https://download.csdn.net/download/qq_51447215/853027211、tftp简介.原创 2022-05-06 20:06:54 · 3273 阅读 · 2 评论 -
【Linux】系统移植篇一--linux系统移植导学
系统移植篇一--linux系统移植导学一、系统移植课程导学二、系统移植过程三、开发板启动过程一、系统移植课程导学本个篇章讲解在基于ARM处理器的开发板上安装Linux系统如果是单纯的装个系统,或许一个小时内就搞定了,但本个篇章想通过讲解系统的移植过程来深入了解linux,为后面的嵌入式驱动课程做基础。移植的目的不同架构的处理器指令集不兼容,即便是相同的处理器架构,板卡不同驱动代码也不兼容。 Linux是一个通用的内核并不是为某一个特定的处理器架构或板卡设计的,所以从官方获取Linux源.原创 2022-05-05 18:41:07 · 4218 阅读 · 0 评论 -
【Linux】ARM篇十一--PWM实验
RAM篇11-PWM实验一、前言二、准备工作三、蜂鸣器四、PWM控制有源蜂鸣器五、电路原理图六、开发板PWM介绍1、PWM设置过程举例2、PWM外设示意图3、PWM具备的功能七、开发板PWM寄存器介绍1、TCFG0寄存器2、TCFG1寄存器3、TCON寄存器4、TCNTB0寄存器5、TCMPB0寄存器八、开发板编程1、PWM程序2、程序烧入一、前言本篇使用华清远见的FS4412开发板,进行PWM实验,本次实验使用PWM电平控制有源蜂鸣器,知识包括蜂鸣器知识、PWM知识原理、开发板PWM功能介绍与寄存.原创 2022-04-26 11:47:37 · 3175 阅读 · 1 评论 -
【Linux】ARM篇十--RTC实验
RAM篇10--RTC实验一、前言二、准备工作一、前言本篇使用华清远见的FS4412开发板,进行RTC实验,知识包括RTC知识原理、开发板RTC介绍与寄存器介绍、RTC编程,并通过开发板实验现象验证RTC实验。二、准备工作FS4412开发板,我用的是华清远见的FS4412开发板ubuntu下linux操作系统(包含交叉编译工具)serial-com8程序烧入执行工具开发板电路原理图、芯片手册开发程序模板开发板资料、交叉编译工具、程序烧入工具下载(包含教程)开发板可选择到华清远见.原创 2022-04-25 19:29:52 · 3503 阅读 · 4 评论 -
【Linux】ARM篇九--ADC实验
ARM篇9--ADC实验一、前言二、准备工作三、ADC原理ADC分辨率四、开发板ADC实验电路五、ADC配置寄存器1、ADCCON寄存器2、ADCDAT寄存器3、ADCMUX寄存器六、ADC编程七、程序烧入与实验现象1、程序烧入2、实验现象一、前言本篇使用华清远见的FS4412开发板,进行ADC实验,ADC知识原理、开发板ADC寄存器介绍、ADC编程,并通过开发板实验现象验证ADC。二、准备工作FS4412开发板,我用的是华清远见的FS4412开发板ubuntu下linux操作系统(包含交.原创 2022-04-23 14:47:50 · 2431 阅读 · 0 评论 -
【Linux】ARM篇八--中断实验
ARM篇8--中断实验一、前言二、准备工作三、CPU与硬件的交互方式四、轮询方式实现按键实验1、电路原图2、按键的实现五、RAM中断实现原理六、GPIO中断1、GPX1CON2、EXT_INT41CON寄存器3、EXT_INT41_MASK寄存器七、中断控制器1、ICDDCR寄存器2、ICDISER寄存器3、ICDIPTR寄存器八、中断的实现1、ICCIAR寄存器2、EXT_INT41_PEND寄存器3、ICCEOIR寄存器九、完整代码与烧入1、中断完整代码2、程序烧入步骤十、实验现象1、轮询按键实验现象.原创 2022-04-22 21:34:40 · 2463 阅读 · 0 评论 -
【Linux】ARM篇七--WDT看门狗实验
ARM篇7--WDT开门狗实验一、前言二、准备工作三、看门狗简介四、看门狗寄存器介绍1、看门狗结构2、看门狗寄存器3、WTCON寄存器4、WTCNT寄存器五、看门狗代码编写1、程序2、程序烧入步骤六、实验现象一、前言本篇使用华清远见的FS4412开发板,进行WDT开门狗实验,知识包含看门狗介绍,开门狗使用原理,看门狗代码编写、看门狗实验。二、准备工作FS4412开发板,我用的是华清远见的FS4412开发板ubuntu下linux操作系统(包含交叉编译工具)serial-com8程序烧入执.原创 2022-04-21 12:00:00 · 3210 阅读 · 2 评论 -
【Linux】ARM篇六--UART串口通信实验
ARM篇四--简单使用汇编点亮LED一、前言二、准备工作三、串口简介1、UART帧格式2、UART硬件四、串口寄存器介绍1、UART示意图2、UART的寄存器3、 ULCONn (n = 0 to 4)寄存器4、 UCONn (n = 0 to 4)寄存器5、 UTRSTATn (n = 0 to 4)寄存器6、 UBRDIVn与UFRACVALn (n = 0 to 4)寄存器五、串口编程1、 实验程序2、 程序下载六、实验结果一、前言本篇使用华清远见的FS4412开发板,进行串口通信实验,知识包.原创 2022-04-20 16:18:01 · 4019 阅读 · 0 评论 -
【Linux】ARM篇五--C语言寄存器封装与流水灯实验
ARM篇五--C语言寄存器封装与流水灯实验一、前言二、准备工作三、寄存器封装四、电路原理图五、实验程序六、实验效果一、前言本篇使用华清远见的FS4412开发板,首先使用C语言对寄存器进行封装,在进行流水灯实验,通过本次实验来认识ARM开发板的封装原理。阅读本篇前需要上一节的基础:ARM篇四–简单使用汇编点亮LED二、准备工作FS4412开发板,我用的是华清远见的FS4412开发板ubuntu下linux操作系统(包含交叉编译工具)serial-com8程序烧入执行工具开发板电路原理.原创 2022-04-19 19:15:20 · 2348 阅读 · 0 评论 -
【Linux】ARM篇四--简单使用汇编点亮LED灯
ARM篇四--简单使用汇编点亮LED一、前言二、准备工作三、GPIO寄存器介绍1、LED电路原理图2、GPIO寄存器介绍2.1 GPX1PUD寄存器2.2 GPX1DAT寄存器四、Makefile编写五、汇编代码编写六、程序烧入七、实验现象一、前言本篇使用华清远见的FS4412开发板,对开发板的LED进行亮灭操作,知识包含GPIO寄存器介绍、与ubuntu下linux操作系统通过进行交叉编译生成开发板可执行代码,通过本次实验来认识ARM开发板的GPIO知识。二、准备工作FS4412开发板,我.原创 2022-04-18 21:21:27 · 4134 阅读 · 2 评论 -
【Linux】ARM篇三--汇编基础
ARM篇三--汇编基础一、ARM指令集导学1 指令与指令集1.1 指令1.2 指令集2 汇编的本质3 准备工作4 ARM汇编的组成二、ARM 指令1 数据处理指令1.1 数据搬移指令1.2 数据运算指令2 跳转指令2.1 数据跳转的三种方式2.2 条件码3 Load/Srore指令3.1 读写内存3.2 寻址方式3.3 多寄存器内存访问3.4 栈的使用4 状态寄存器传送指令4.1 读CPSR4.2 写CPSR5 软中断指令6 协处理器指令三、ARM 伪指令四、ARM 伪操作五、ARM混合编程六、ATPCS.原创 2022-04-15 21:09:57 · 1467 阅读 · 0 评论 -
【Linux】ARM篇二--寄存器组织与异常处理
ARM篇二--寄存器组织与异常处理一、ARM寄存器组织1 寄存器2 ARM寄存器3 专用寄存器4 CPSR寄存器二、ARM异常处理1 异常1.1 异常处理机制1.2 ARM异常源1.3 ARM异常模式2 ARM异常响应2.1 产生异常的动作(自动)2.2 异常向量表3 异常返回4 异常优先级与速度4.1 异常优先级4.2 异常向量表三、ARM微架构1 指令流水线2 多核处理器一、ARM寄存器组织1 寄存器概念寄存器是处理器内部的存储器,没有地址作用一般用于暂时存放参与运算的数据和运算结果.原创 2022-04-13 12:00:00 · 2045 阅读 · 2 评论 -
【Linux】ARM篇一--计算机基础与RAM处理器概论
ARM篇一--计算机基础与ARM处理器概论一、计算机基础1、Linux嵌入式底层导学1.1 Linux学习过程1.2 操作系统的分层作用2、计算机基础知识2.1 计算机的进制2.2 计算机的组成2.3 总线3、储存结构与地址空间3.1 储存结构3.2 地址空间4、CPU工作原理简述二、RAM处理器概论1、ARM处理器概述1.1 ARM公司概述(了解)1.2 ARM产品系列1.3 RISC处理器1.4 SOC(片上系统)2、ARM指令集概述2.1 指令集2.2 ARM指令集2.3 编译原理3、ARM存储模型.原创 2022-04-12 15:46:59 · 3131 阅读 · 0 评论 -
【Linux】特别篇--sqlite3数据库的使用
特别篇--sqlite3数据库的使用一、数据库基本概念(了解)二、基于嵌入式的数据库(了解)三、SQLite 基础(了解)四、创建数据库1、sqlite3数据库的安装2、sqlite3数据库的使用五、数据库常用命令介绍六、SQLite编程接口一、数据库基本概念(了解)数据库基本概念数据(Data)能够输入计算机并能被计算机程序识别和处理的信息集合。数据库 (Database)数据库是在数据库管理系统管理和控制之下,存放在存储介质上的数据集合常用的数据库大型数据库Oracle公司是.原创 2022-04-06 20:45:22 · 4027 阅读 · 4 评论 -
【Linux】网络篇五--编程扩展
网络篇五--编程扩展一、网络分析1、网络分析测试工具2、网络封包格式(了解)(1)以太网头(2)IP头(3)TCP头(4)UDP头3、TCP三次握手过程二、扩展的库函数1、网络信息检索2、网络属性设置3、超时检查三、广播和组播1、广播2、组播四、UNIX域套接字一、网络分析1、网络分析测试工具常用调试测试工具:使用telnet测试TCP服务器端使用lsof使用tcpdump使用netstat使用sniffer使用wiresharkChariot…SmartBit—硬件wir.原创 2022-04-04 20:20:32 · 969 阅读 · 0 评论 -
【Linux】网络篇四--IO多路复用
网络篇四--IO多路复用一、阻塞I/O模型1、阻塞I/O 模式(1)读阻塞(2)写阻塞2、非阻塞模式I/O二、多路复用I/O1、select()函数2、epoll()函数一、阻塞I/O模型在UNIX/Linux下主要有4种 I/O 模型:阻塞I/O :最常用非阻塞I/O :可防止进程阻塞在I/O操作上,需要轮询I/O 多路复用 :允许同时对多个I/O进行控制信号驱动I/O : 一种异步通信模型1、阻塞I/O 模式阻塞I/O 模式是最普遍使用的I/O 模式,大部分程序使用的都是阻塞模.原创 2022-04-02 13:32:12 · 1654 阅读 · 3 评论 -
【Linux】网络篇三--UDP编程
网络篇三--UDP编程一、编程思路二、编程实现1、sendto/recvfrom2、程序实现三、实验结果一、编程思路由于是无连接传输,重点使用recvfrom函数与sendto函数实现编程。二、编程实现1、sendto/recvfromssize_t sendto(int socket, void *message, size_t length, int flags, struct sockaddr *dest_addr, socklen_t dest_len);ssize_t re.原创 2022-04-01 10:02:55 · 1581 阅读 · 3 评论 -
【Linux】网络篇二--TCP编程
网络篇二--TCP编程一、TCP编程实现1、编程步骤2、socket函数3、bind函数4、地址转换函数5、listen函数6、accept函数7、connect函数8、send函数9、recv函数10、read()/write()11、套接字的关闭示例二、并发编程1、多线程并发2、多进程并发一、TCP编程实现网络编程相关API网络编程常用函数 socket() 创建套接字 bind() 绑定本机地址和端口 connect() 建立连接 listen() 设置监听端口 accept() .原创 2022-03-31 15:15:22 · 4138 阅读 · 2 评论 -
【Linux】网络篇一--网络基础
网络篇一--网络基础一、网络发展历史和分层1、网络发展历史简介2、网络结构分层OSI开放系统互联模型TCP/IP协议族的体系结构二、TCP/UDP特点1、TCP/IP协议通信模型2、TCP/IP协议下的数据包3、数据的封装与传递过程4、TCP/IP结构5、TCP协议特点6、UDP协议的特点三、TCP/IP网络编程预备知识1、SocketSocket 简介Socket 类型Socket 位置2、IP地址3、端口号4、字节序字节序转换函数IP地址的转换一、网络发展历史和分层1、网络发展历史简介早期的.原创 2022-03-29 20:00:00 · 2675 阅读 · 1 评论 -
【Linux】应用篇十四--消息队列与信号灯
应用篇十四--消息队列与信号灯一、消息队列1、消息队列的概念2、消息队列的使用3、消息队列的创建4、发送消息5、消息接收6、消息队列的控制7、示例程序二、信号灯/信号量1、概念2、信号量-P/V操作3、Posix 信号量三、P/V操作函数信号灯P操作(信号获取)信号灯V操作(信号释放)四、有名信号灯五、无名信号灯六、System V 信号灯1、System V IPC - 信号灯特点2、System V信号灯使用步骤3、信号灯创建/打开 – semget4、信号灯初始化 – semctl5、信号灯P/V.原创 2022-03-28 16:58:04 · 1868 阅读 · 5 评论 -
【Linux】应用篇十三--信号机制
应用篇十三--信号机制一、信号机制二、常用信号三、信号相关命令四、信号发送无、定时器六、信号捕捉1、信号捕捉过程2、signal捕获函数3、sigaction捕获函数七、信号集和信号屏蔽1、信号集操作函数2、pause/sigsuspend函数一、信号机制概念:信号是在软件层次上对中断机制的一种模拟,是一种异步通信方式 ,所有信号的产生及处理全部都是由内核完成的信号的产生:按键产生系统调用函数产生(比如raise, kill)硬件异常命令行产生 (kill)软件条件(比如被0除,访.原创 2022-03-26 12:39:54 · 2721 阅读 · 0 评论