Loopback回环网卡设备实现
重要参考smoltcp LoopBack网卡介绍 Linux LoopBack网卡是一个虚拟的网络接口,主要用于网络软件的测试和调试。它允许主机发送网络流量到自己,而不需要任何物理设备。当数据发送到LoopBack接口时,操作系统网络栈会立即接收这些数据,就像它们从网络上接收的一样。这使得开发人员可以测试和调试网络应用程序,而无需物理网络连接。 lo网卡注册在设备中,了解一个net de...
重要参考smoltcp LoopBack网卡介绍 Linux LoopBack网卡是一个虚拟的网络接口,主要用于网络软件的测试和调试。它允许主机发送网络流量到自己,而不需要任何物理设备。当数据发送到LoopBack接口时,操作系统网络栈会立即接收这些数据,就像它们从网络上接收的一样。这使得开发人员可以测试和调试网络应用程序,而无需物理网络连接。 lo网卡注册在设备中,了解一个net de...
#![cfg_attr(not(feature = "std"), no_std)] #![allow(unused_mut)] #![allow(clippy::collapsible_if)] #[cfg(feature = "std")] #[allow(dead_code)] mod utils; use core::str; use log::{debug, error, in...
问题描述: 向kernel注册lo网卡驱动后,启动kernel后系统卡滞。 Debug过程: 初步发现系统停滞在用户层,怀疑是内核切换成用户态时出现问题 输出用户态的init程序发现proc_name输出为空,开始怀疑是free before use free before use的原因通常为不能正确使用unsafe代码块操控内存导致内存错误。 开始检查lo网卡实现代码中有...
为什么要使用虚拟内存的技术 abstract memory? 允许系统允许多道程序并且不会相互影响 Static Relocation 优点: 不需要硬件支持 缺点: 加载慢 一旦加载,程序的代码或数据就不能移动到内存中,除非进行进一步的重新定位。 加载程序需要一些方法来判断什么是地址,什么是常量。 Addres...
1 File 挑选难理解的概念进行讲解。 三种文件种类:byte sequence 、 record sequence 、 tree 文件类型: Regular files:普通文件,分为文本文件和二进制文件 Directories:目录 Character special file:特殊字符文件,模拟io设备比如终端、打印机和网络 Block special file...
1 Principle of IO Software 1.1 Goals of IO Software 设备独立性 程序可以访问任何的IO设备 不会提前对设备进行特殊处理 Uniform naming 通用命名 文件和设备的名字是字符串或者数字 不会依赖某个机器 Error ha...
1 进程Process 如何定义process:(process的几个定义特点) Sequence Execution 程序的顺序执行:一个有独立功能的程序独占处理器直至最终结束的过程 Concurrency Execution:并发执行,进程具有并发性,多个进程互不干扰,同时运行。 The Process Model Multiprogramming of four...
unix Sock unixSock是在一台主机的不同进程之间进行通信的socket。虽然本机的通信可以通过lo网卡进行,但是涉及的结构还是比较复杂,因为没有必要经过网络协议栈,只是本机通信的话。因此unix sock就此诞生。 unix Stream Sock unix Stream Sock类似与网络sock中的tcp sock。unix Stream Sock是全双工的,通信流程和t...
Mysql Mysql select 语句执行流程图 mysql 有几种存储引擎? 常见的存储引擎好像有:InnoBD,MyISAM,Memory等。 innoDB 是怎么存储一个行数据的? 在讲这个问题之前,我们先来了解下MySQL的数据是保存在哪个文件的。当我们创建一个database后,会在var/lib/mysql目录下创建一个以数据库为名的目录。保存表结构和表数据的文件都...
前言 由于笔者在准备实习面试、本篇将记录我在准备操作系统八股文所学知识。我会将有关操作系统的八股文划分为几个部分:内存管理、进程调度、文件系统、网络系统,常规。 内存管理相关 q1:为什么需要虚拟内存? 虚拟内存的设计可以提供很多的功能,比如用户地址空间的隔离,逻辑内存的扩大。首先我们来讲讲虚拟内存是如何能够使得不同进程的内存地址不会相互干扰。在Linux中,所有被新创建的进程都会维护一张...