Linux 设备驱动开发详解

本书基于 Linux 4.0 内核编写,个人学习测试的内核版本是 5.15.167。

内核及内核编程

Linux 2.6 后的内核特点

Linux 2.6 相对于 Linux 2.4 有着相当大的改进,主要表现为以下几个方面。

新的调度器

Linux 2.6 以后版本的 Linux 内核使用了新的进程调度算法,它在高负载的情况下有极其出色的性能,并且当有很多处理器时也可以很好地扩展。在 Linux 内核 2.6 的早期采用了 O(1)算法,之后转移到 CFS(Completely Fair Scheduler,完全公平调度)算法。在 Linux 3.14 中,也增加了一个新的调度类:SCHED_DEADLINE,它实现了 EDF(Earliest Deadline First,最早截止期限优先)调度算法。

Read More

TeRM:Extending RDMA-Attached Memory with SSD

原文地址:https://www.usenix.org/conference/fast24/presentation/yang-zhe

这篇论文提出了一种名为 TeRM 的系统,旨在通过 SSD 扩展 RDMA(远程直接内存访问)附加内存,以应对数据中心内存资源有限的问题。TeRM 通过软件化处理页面错误、分层 I/O 和动态热点提升等技术,减少了 CPU 和网络开销,提升了内存扩展的效率。

Read More

UNIX 环境高级编程

第一章 UNIX基础知识

UNIX体系结构

操作系统是计算机裸机上的第一个软件,他控制计算机硬件资源,提供程序运行环境,通常我们称之为内核

以下是UNIX系统的体系结构图:

image-20230827151538210

Read More

搭建自己的 teamspeak 服务器

前言

teamspeak 是一款开源、轻量的语音软件,这是它的官网。在官网可以下载客户端 client 和服务端 server,国内客户端下载推荐地址 https://ts3.com.cn/downloads/teamspeak,后续的下载安装都是针对服务端。为了方便,后文简称 teamspeak 为 ts。

为什么要用 ts 呢?有人会说,用 yy 啊,用 qq、微信啊。qq 和微信语音的质量没法说, yy 很吃电脑配置和带宽,我的电脑比较垃圾,所以想要一个比较轻量的语音软件。这时候 ts 就是一个非常好的选择了。

其实 kook 也不错,但是 ts 更轻量,我个人感觉用起来也更舒服。

啊?你问为什么不用 discord 。你说为什么,谁打个游戏聊个天还需要翻墙才行?

Read More

编译缓存工具 CCache 介绍与基本使用

编译时间过长是影响大型项目研发效率的一大难题。就市面上被普遍使用的构建系统,其确实存在一定的编译缓存机制,使得用户在重复进行编译操作时(例如修改了一个Bug),尽可能复用之前的编译成果以节省编译时间。例如CMake使用CMakeCache.txt来对编译缓存项进行追踪。但类似的机制存在一些限制,如CMakeCache.txt只能管理它自己所在项目的构建目录,如果用户因为一些原因清空了整个构建目录,构建缓存也将被一同清理;又如果多人协作同一个代码项目,他们各自都有属于自己的用户目录和工作目录(甚至自己的工作电脑),自然不可能指望他们可以共享编译缓存,即使这些缓存实质上确实是完全相同的,毕竟是同一份源码编译出的同样的东西。

为了解决这个问题,我们可以引入专业的编译缓存管理工具:CCache

Read More
Search by:BingBaidu