2025年06月05日
本文将从上层介绍Linux上的TCP/IP栈是如何工作的,特别是socket系统调用和内核数据结构的交互、内核和实际网络的交互。写这篇文章的部分原因是解释监听队列溢出(listen queue overflow)是如何工作的,因为它与我工作中一直在研究的一个问题相关。
先从建好的连接开始介绍,稍后将解释新建连接是如何工作的。
内核管理的每一个TCP文件描述符都是一个struct, 它记录TCP相关的信息(如序列号、当前窗口大小等等),以及一个接收缓冲区(receive buffer,或者叫receive queue)和一个写缓冲区(write buffer,或者叫write queue),后面我会交替使用术语buffer和queue。如果你对更多细节感兴趣,可以在Linux内核的net/sock.h中看到socket结构的实现。
2025年06月05日
嵌入式RTOS就业级项目入门与实战(基于FreeRTOS)|果fx
获课》789it.top/14667/
2025年06月05日
前言 当你第一次接触 C 语言指针,可能会感慨:“这玩意儿也太抽象了!”尤其是要在函数里给指针分配内存时,明明写了
2025年06月05日
找嵌入式软件工作,FreeRTOS 得掌握到啥程度呢?咱先说基础功能这块,创建任务、任务调度、任务状态管理这些操作必须得门儿清。就说创建任务吧,xTaskCreate 函数得用得熟,每个参数啥含义都得拎得清 —— 任务函数怎么写才规范,堆栈大小咋根据任务需求合理设置,这些细节要是搞不明白,写出来的任务说不定跑着跑着就出岔子。任务调度这块,抢占式调度和协程调度的区别得吃透,优先级咋配置、高优先级任务咋抢占低优先级任务,这些都是面试必考点,要是答得含含糊糊,面试官直接就觉得你底子不牢。还有任务状态查询,vTaskList 咋用才能拿到准确的任务列表信息,通过这些信息咋分析任务是不是在正常跑,这都是基本功,必须得练扎实了。
2025年06月05日
在微控制器(MCU)开发领域,开发者常面临架构选择:采用裸机系统(Bare-metal)还是实时操作系统(RTOS)。下面将通过C语言代码示例和系统流程图,分析两种方案的适用场景。