全部文章

图解Linux内核调度系统

1.进程调度系统 Linux进程调度是操作系统内核中的一个重要组成部分,它负责决定哪个进程可以在CPU上运行。 进程调度的目标是合理分配CPU资源,提高系统的整体运行效率和响应能力。

2023-11-03 进程与调度 进程调度CFS

标准IO_格式化IO之printf函数

1.可变参数原理 1.1 函数参数入栈原理 图 1-1 函数参数入栈原理 函数参数采用从右至左的方式入栈,最右的参数从栈顶入栈,以此类推,每个参数都会存储在栈中,形成一个函数参数列表。

2023-11-02 Linux 基础 标准I/Oprintf

Linux内核是如何创建进程?

1.Linux如何创建进程 Linux创建进程都是通过父进程克隆的方式实现。 子进程刚创建成功时,虚拟地址空间和父进程虚拟地址空间信息一样(即代码和数据都是一样)。 通过调用exec家族函数可以替换虚拟地址空间信息为新的程序的信息。

2023-11-01 进程与调度 进程fork

一文弄懂Linux信号机制

1.什么是信号? Linux信号机制是进程间通信的一种方式,用于在不同进程之间传递信息。它通过向目标进程发送一个特定的信号,来触发目标进程执行相应的处理操作。

2023-10-31 IPC 与同步 信号进程

一文搞懂Linux线程和进程区别?

1.什么是线程? 线程其实就是轻量级进程(LWP)。 轻量级进程(Light Weight Process)是指在操作系统级别上,将一个进程划分为多个执行单元,每个执行单元拥有自己的堆栈、程序计数器和资源使用情况,但共享同一进程的地址空间和 …

2023-10-30 进程与调度 进程线程

UDP校验和(checksum)原理

1.校验和原理 1.1 校验和计算 校验数据以16bit为单位进行累加求和,校验数据需为偶数字节,奇数字节末尾填充0变为偶数字节。 如果累加和超过16bit,产生了进位,需将高16bit和低16bit累加求和。 循环步骤2,直至未产生进位为 …

2023-04-23 网络编程 UDP字节序

数据链路层原始套接字

1.什么是数据链路层原始套接字? 数据链路层原始套接字是Linux内核提供的一种套接字,该套接字可以让用户程序直接发送和接收以太网数据,用户程序发送和接收的数据包必须是完整的以太网数据,内核不会再处理该数据而只是做一些简单的接收和发送工作 …

2023-04-16 网络编程 原始套接字socket

网络层原始套接字

1.什么是原始套接字? 原始套接字(sock_raw)分为链路层原始套接字和网络层原始套接字,今天讨论的是网络层原始套接字,后续原始套接字指的是网络层原始套接字。网络层原始套接字提供了一个方法或者说工具,用户可以使用该工具完成IP层数据包 …

2023-04-14 网络编程 原始套接字socket

IO复用之epoll

知识地图 1.epoll基础简介 1.1 相关函数介绍 epoll_create函数 epoll_create函数用于创建epoll文件描述符,该文件描述符用于后续的epoll操作,参数size目前还没有实际用处,我们只要填一个大于0的数就 …

2023-04-12 网络编程 epollI/O多路复用

IO复用之poll

知识地图 1.poll介绍 1.1 poll函数 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout); 参数: fds:监听事件结构体 …

2023-04-09 网络编程 pollI/O多路复用