IP地址
IP地址1.IP地址:IP地址就是给每个连接在Internet上的主机分配的一个32bit地址。通常用点分十进制表示法。 2.子网掩码:子网掩码就是判断两个IP地址,是不是在同一个网段(或称子网),在同一网段的两个地址,可以直接通信。 它指明一个IP地址的哪些位标识的是主机所在的子网以及哪些位标识的是主机的位掩码。 子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。 3.网关网关(Gateway)又称网间连接器、协议转换器。网关就是一个网络连接到另一个网络的“关口”。也就是网络关卡。所有网络都有一个边界,限制与直接连接到它的设备的通信。因此,如果网络想要与该边界之外的设备,节点或网络通信,则它们需要网关的功能。网关通常被表征为路由器和调制解调器的组合。 路由:是指分组从源到目的地时,决定端到端路径的网络范围的进程 ...
多进程编程
多进程编程1.程序和进程1.1程序如何被调用 通常我们的一个程序都由main()函数开始,那么main()函数又是如何被调用的呢? 操作系统内核中实现了一个叫加载器的程序,该程序在我们准备运行某个程序时,负责将我们要运行的程序加载到内存中去执行。 int main(int argc, char *argv[]) 中的那些参数是如何传入的? 在运行一个程序的main()函数之前,需要运行该程序的引导代码,引导代码是在编译后被链接器加到可执行文件中的,不需要人为去编写。当我们在终端中运行一个程序并传入参数arg1 arg2...时,shell会解析这些参数并传给加载器,加载器在加载程序时会把这些参数再传给引导代码,由引导代码传入这些参数到main()中。 1.2程序如何被终止一个进程的终止可以分为:正常终止和异常终止 正常终止: 在main()中return...
文件系统
文件系统基本概念 文件系统是负责管理和存储文件信息的软件,它是在存储介质中建立的一种组织结构,这些结构包含操作系统引导区,目录,文件(STM32上的Fatfs是包括这几个,别的文件系统就不一定了) 这样看这个概念可能比较晦涩难懂,说了跟没说一样,下面举个例子: 之前在使用W25Q64这个Flash芯片的时候,由于没有使用文件系统,它有一下这些缺点: 往里写数据、读数据的时候都得指定Flash上的具体的地址 有效数据的位置不方便记录,如果想使用存进去的数据,还得额外手记什么数据存到哪个地址里了 并且数据都是以page(256...
01 编译与调试
编译与调试编译的流程将一个.c程序编译成一个可执行文件通常包含4步: 预处理:将各种宏定义翻译成C/C++语言 编译:将C/C++代码编译成汇编语言 汇编:对汇编代码进行处理,翻译成机器指令 链接:将用到的库文件和自己的机器指令汇总到一起(合并不同文件的同类内容,如.text节区) 从上图可以知道,只要加了-g其实就可以调试代码了,不一定非要使用debug模式编译才行 动态/静态链接内部/外部链接ELF文件定义:ELF(Excutable Linkable Format)是一种Unix-Like系统上二进制文件的标准,符合ELF标准的ELF文件可以分为4类: 不是所有Linux下的二进制文件都是ELF文件,必须符合一定的格式才行! ELF文件都遵循以下的格式: ELF 文件的作用有两个,一是用于程序链接(为了生成程序);二是用于程序执行。 针对这两种情况,可以从不同的视角来看待同一个目标文件。当它分别被用于链接和用于执行的时候,其特性必然是不一样的,我们所关注的内容也不一样。从链接和运行的角度,可以将...
03 计算机组成原理
计算机组成原理参考链接 计算机组成原理 - 知乎 1.计算机的组成计算机通常包括以下几部分: 输入设备 输出设备 CPU:运算器 + 控制器 + 寄存器 + Cache + MMU + TLB… 总线:数据总线 + 地址总线 +...
02 计算机体系结构
计算机体系结构1.体系结构和组成原理的区别 体系结构:能被程序员看到的计算机系统的属性,即概念性的结构和功能特性(主要是被汇编程序员所看到的属性,包括指令集、数据类型、存储器寻址技术、IO机理等…) 组成原理:指如何实现计算机体系结构所体现的属性,它包含了很多对程序员来说是透明的硬件细节。比如规定一台计算机有哪些属性属于体系结构的问题,但如何通过电路实现这些指令,属于组成原理的问题 123456789计算机系统├── 计算机体系结构(抽象规范)│ ├── CPU 子系统 → ISA(指令集)│ ├── 内存子系统 → 一致性协议│ └── I/O 子系统 → 中断/DMA 机制└── 计算机组成原理(具体实现) ├── CPU 实现 → 微架构(如流水线) ├── 内存实现 → DRAM 控制器电路 └── I/O 实现 → USB 控制器芯片 参考链接: 计算机组成与计算机体系结构有什么区别? - 知乎 2.基本概念体系结构 定义:通常指硬件系统级的抽象设计,涵盖 CPU、内存、I/O...
04 总线协议
总线协议对比UART总线面试题1.串行通信和并行通信的区别? 特性 串行通信 并行通信 数据传输方式 数据按位依次传输(单条线路) 数据多位同时传输(多条线路) 线路复杂度 简单(线路少,成本低) 复杂(线路多,成本高) 抗干扰能力 较强(时序控制严格) 较弱(多线路同步难,易受干扰) 传输距离 较远(如USB、以太网) 较短(如打印机电缆) 速度 现代高速串行(如PCIe)可超越并行 传统并行更快,但高频时同步困难 典型应用 USB、RS-232、SATA、网络通信 旧式打印机、IDE硬盘接口、PCI总线 2.串行通信如何保证数据同步? (1)同步串行通信 时钟信号同步: 发送方和接收方共享同一时钟(如SPI、I2C),或通过编码将时钟嵌入数据(如曼彻斯特编码)。 例如:SPI协议通过SCLK信号同步每一位数据。 数据帧结构: 使用起始位、停止位、同步字符(如UART的0x55)标识数据边界。 例如:I2C协议以起始条件(Start Condition)和停止条件(Stop...
05 计算机网络
计算机网络网络体系结构对于网络体系结构的划分,主要有2种形式: OSI七层网络模型 看赛博二哈的八股(第115条) OSI(Open Systems Interconnection)模型由ISO提出,是一个理论分层框架,用于标准化网络通信过程。虽然实际网络并未完全采用OSI,但它对理解网络协议分层至关重要。 层数 名称 功能 协议/设备示例 关键词 7 应用层 提供用户接口,实现具体应用功能(如文件传输、邮件收发) HTTP、FTP、SMTP、DNS 6 表示层 数据格式转换(加密、压缩、编码) SSL/TLS、JPEG、ASCII 5 会话层 建立、管理、终止应用程序间的会话 NetBIOS、RPC 4 传输层 提供端到端的可靠/不可靠传输(流量控制、错误恢复) TCP、UDP 端口号、TCP、 UDP 3 网络层 路由选择、IP寻址,实现主机间通信 IP、ICMP、路由器 IP地址、路由 器、ping通 2 数据链路层 将比特流封装成数据帧(使用MAC地址在网卡间通信) ARP、网卡、交换机、...
06 操作系统
操作系统内存管理面试问题1.超过一页的内存要怎么分配 2.内存碎片怎么处理 3.linux内存管理是怎么实现的,有了解吗 4.Linux是几级页表 5.怎么通过虚拟地址查找物理地址 6.零拷贝技术是什么 进程管理面试问题1.进程和线程的区别是什么 进程调度面试问题1.进程调度有哪些方法 2.中断会引起线程的调度吗 3.什么时候会引起线程的调度 4.抢占式进程调度要怎么实现 进程通信面试问题1.线程的同步和互斥是怎么实现的 2.PV操作是什么 3.无锁编程的方法 4.线程的同步和互斥怎么实现的 驱动开发面试问题1.file operations结构体有哪些操作函数? 2.设备树的作用是什么 中断及异常管理面试问题1.外部中断的实现原理 2.中断的概念? 3.用什么函数注册中断? 4.在中断中要注意什么? 文件系统面试问题1.用户进程调用read()来读一个块设备中的文件内容到用户空间中,具体发生了什么? 杂项面试问题
00 README
看了涛神和仲一的八股文文档,我觉得复习八股可以从以下几个方面开展: C/C++语法 计算机网络 TCP/IP协议栈 TCP协议 UDP协议 MQTT协议 HTTP协议 编译/调试 GNU工具链的组成 ELF文件格式 交叉编译器 命名 命令行(-O -nostdlib…) 编译的全流程 内存分区及决定因素 gdb的使用 Core...