自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(495)
  • 资源 (68)
  • 收藏
  • 关注

原创 kvm-dmesg:从宿主机窥探虚拟机内核dmesg日志

kvm-dmesg是一个专门用于从KVM虚拟机中提取内核日志的工具。它提供了与传统的 dmesg 工具类似的功能,但其最大的亮点在于可以跨越虚拟化边界,直接从宿主机获取虚拟机内核的日志信息。

2024-11-19 20:48:52 793 1

原创 linux内核中如何向slab内存分配器申请内存

在 Linux 内核中,slab 内存分配器是一种高效的内存管理机制,用于管理对象的分配和释放,特别适用于频繁分配和释放固定大小的内存块的场景。slab 分配器为每个缓存创建一个内存池,每个缓存池对应一种对象类型。

2024-11-17 20:35:22 344

原创 2024 年 QEMU 峰会纪要

2024 年 QEMU 峰会已于 10 月 31 日在 KVM 论坛召开,这是一个仅对项目中最活跃的维护者和子维护者开放的邀请会议。

2024-11-02 10:20:10 864

原创 政治正确?Linux把一大堆毛子开发者移出了开发者列表

日前,Linux内核主要维护者之一Greg Kroah-Hartman (Greg K-H)提交了一项不寻常的“文档”更新,将数名具有顶级域名邮箱的维护者,和一名明确为俄罗斯身份的维护者从MAINTAINERS(维护者名录)文件除名。这一提交已于上周日被Linus Torvalds拉取并包含于6.12-rc4版本的代码中。

2024-10-25 08:18:44 1253

原创 现代C语言:C23标准重大更新

虽然没有固定标准,但一般将C99之后的C语言标准称为“现代C语言”,目前的最新标准为C23。C语言的演化包括标准C89、C90、C99、C11、C17和C23,C23是C语言标准的一次重大修订,截至2024年3月,最新版本的gcc和clang实现了C23的大部分新语言功能,但是部分功能仍然缺失,例如:存储类说明符, 和 属性等等。

2024-10-22 08:21:36 3170

原创 Linux OpenSSH爆出高危漏洞

2024 年 5 月,网络安全公司 Qualys 首次发现并报告了该漏洞,编号为 CVE-2024-6387。该漏洞存在于 OpenSSH 服务器(sshd)中,由于信号处理竞争条件存在缺陷,允许未经认证的远程攻击者以 root 用户身份执行任意代码。

2024-07-03 12:26:23 1153

原创 一个时代的结束:Centos7将在6月30日退出历史舞台

友情提醒:如果你使用的是曾经辉煌一时的CentOS Linux 7,一直拖延没有迁移,那么现在距离它正式寿终正寝还有不到一周的时间。

2024-07-01 09:14:24 613

原创 Qemu虚拟机在线迁移到VMware

在生产环境中,大多数的场景是 vmware 虚拟机迁移到 qemu 环境,一般是通过关机然后导出、导入磁盘镜像来实现。如果要将 qemu 环境虚拟机迁移到 vmware 怎么办呢?要求业务中断时间尽可能短。下面介绍一种思路,来实现类似热迁移的效果(实际并不是热迁移,内存没办法做到热迁移,只是将业务中断时间缩短到很小间隔)。

2024-06-20 22:03:38 1212

原创 Geek新鲜事15: Linus Torvalds 发话了,新调度器sched_ext将合入Linux6.11

“ext”对应的英文单词为“extensible”,意为可扩展的。开发者Tejun Heo通过整整30 个的patchs,提供了一个支持eBPF程序修改调度策略的调度类。

2024-06-18 09:14:49 1181

原创 Linux Kernel 编程-你不知道的printk(2)

上回我们介绍了:- printk()的简单使用- pintk 的实现:ring buffer- 使用 systemd 命令 journalctl 查看日志- printk 日志级别- printk 替代者 pr_宏下面我们继续介绍一些 printk 在实际工程中的一些使用细节。

2024-06-14 12:25:03 1520

原创 Linux Kernel 编程-你不知道的printk(1)

内核版本:6.1+我们都知道 linux通过 printk()这个 API 记录内核日志,printk有很多细节,并且linux内核中提供了新的API记录日志。下面将深入探讨一些细节。这些对内核/驱动开发人员来说,清楚地理解这些非常重要。

2024-06-13 12:38:57 1122

原创 LLVM language参考手册之数据布局(Data Layout)

2、如果没有找到匹配,并且这个类型查找确定是一个整数类型,那么将大于这个被使用的查找类型的位宽的最小整数类型将会被使用。如果这些标识中没有一个大于这个位宽,那么最大的整数类型将被使用,例如,给定上述的默认标识,i7类型将会使用i8(下一个最大值)的对齐属性,同样的i65和i256都将使用i64的对齐属性(可指定的最大值)。指定堆栈中的bit的自然对齐。当为一个给定的目标平台构造数据布局的时候,LLVM将会开始于一组默认标识的集合,但这组集合可以被 datalayout 关键字指明的标识重写。

2024-05-14 17:54:50 751

原创 tokio多任务绑定cpu(绑核)

程序非常简单,首先构造一个 tokio runtime 环境,然后派生多个 tokio 并发,每个并发执行一个无限循环做 overflowing_add。overflowing_add 函数返回一个加法的元组以及一个表示是否会发生算术溢出的布尔值。如果会发生溢出,那么将返回包装好的值。core_affinity_rs 是一个用于管理 CPU 亲和力的 Rust crate。通过调整 idx,将派生并发平均绑定在指定的 core 上。上面的代码只是把负载绑定到了一个 core 上,那么要绑定多个核怎么办呢?

2024-04-22 22:31:36 909

原创 一个完全用rust写的开源操作系统-Starry

Starry是2023年全国大学生计算机系统能力大赛操作系统设计赛-内核实现赛的二等奖作品。Starry是在组件化OS的arceos的基础上,进行二次开发的操作系统内核,使用宏内核架构,能够运行Linux应用的内核。原始的操作系统大赛的仓库为目前的宏内核的arceos的开发仓库https://github.com/Arceos-monolithic (推荐)(目前仅仅建议使用较为稳定的riscv64架构)

2024-04-19 10:57:56 2087 4

原创 Fast-DDS编译安装方法

Fast-DDS编译安装方法

2024-04-19 10:14:31 1369

原创 突然间我懂了软件

软件需要有人通盘理解它的运作机制,所以单个工程师有可能比一个职业开发团队造出更好的产品。因为单个工程师花时间,完整理解了他要构建的软件,而职业开发团队总是从一个项目转移到另一个项目。单枪匹马的工程师能做出比同样有能力的专业团队更好的产品。单干的工程师会花时间为自己的程序建立一套完整的理论,而专业人员则会定期在不同的项目之间流动,他们只对自己做过的项目有理论。为什么说掌握陌生项目的速度要比重建项目难得多?这也是为什么接手不熟悉的项目,比重建该项目要困难得多,以及为什么软件外包的质量总是如此糟糕。

2024-01-12 09:35:37 492

原创 让KVM支持滚动热升级:Multi-KVM

Multi-KVM 允许多个独立的 KVM 模块在同一台 Linux主机上同时加载、卸载和运行。

2023-11-28 19:06:37 1242

原创 为什么 x86 操作系统从 0x7c00 处开始

"CPU Monitor"程序提供了引导加载程序和调试器,这个"CPU Monitor"引导加载程序将 MBR 加载到"0x200",而不是"0x7C00"。如上所述,这个神奇的数字诞生于 1981 年,"IBM PC/AT Compat" PC/BIOS 供应商为了 BIOS 和操作系统的向后兼容性,从没改变过这个值。

2023-11-23 22:38:09 1521

原创 X86 bios 中断大全

x86 BIOS中断大全

2023-11-15 22:50:42 311

原创 如何学习 Linux 内核内存管理

LSF/MM 是一年一度的 Linux 存储、文件系统和内存管理峰会,这是一个仅限受邀者参加的活动,人们通常会讨论下一年的计划和项目。通常在阅读代码时,如果有不明白的地方,我会使用 “git blame”。特别是在mm 部分,开发人员习惯于写详细的提交日志(附带测试用例/程序),以便自己和其他人将来可以参考。Linux内核内存管理部分是Linux内核中第二复杂的部分,但也非常有趣。

2023-10-26 22:28:33 568

转载 存储稳定性测试与数据一致性校验工具和系统

存储稳定性测试与数据一致性校验工具和系统:https://github.com/zhangyoujia/hd_write_verify

2023-10-20 13:55:09 302

原创 一个虚拟机管理器(VMM)的实现

Little Computer-3(简称 LC-3)是用于教学的汇编语言,它有着相比于 x86 更为简洁的指令集,同时包含了主流 CPU 的经典思想。LC-3 麻雀虽小,五脏俱全。它的规范不算太多,本文实现一个LC-3 CPU的虚拟机管理程序。

2023-10-18 07:14:15 1218

原创 基于LQR算法的一阶倒立摆控制

(F为外力,x为物块位移,M,m为物块和摆杆的质量,φ为摆杆相对竖直向上方向的角度)倒立摆的受力分析网上有很多,这里就不再叙述。

2023-09-20 10:12:07 2272 1

原创 centos7配置iscsi共享存储-tgtd

iSCSI又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置。iSCSI的实现方法主要有tgtd、LIO、SCST、IET等几种方式。

2023-09-13 10:50:48 1652

原创 一个简单的文件系统(MinixFS)实现解析

Minix file system 是 Andrew S. Tanenbaum 在 1980 年代发明的文件系统, 并随着 Minix 操作系统一起于 1987 年发布。Linus 编写 Linux 内核第一个版本的时候, 使用的也是 Minix FS, Linux 至今依然提供了对 Minix FS 的支持。Minix FS 结构简单, 易于理解。

2023-09-05 22:38:33 930 1

原创 转载:为什么国外把邮件当微信一样发?

所以,一般谁要是跟我聊天说事情,我一旦发现这次聊天是这个目的,我就会让对方想明白了,写段文字发给我。当然,对于很多人而言,对方是他的甲方或领导,他没有办法这样要求对方。但是,如果你发现对方是这样的工作作风只,那么至少你可以断定,对方自己都没有思路,或者思维能力很差。你自己思考30分钟,给我写个邮件,我花3分钟看完,两个人一共消耗33分钟。在你问我答的过程中,通过别人的思考,别人因为听不懂他而发出的追问,把自己的思路整理出来。你让他写一封邮件,或者用一个文档,或者稍微系统一些的一段文字,来表述他的想法。

2023-09-05 09:54:10 190

原创 一个国产存储一致性及稳定性测试工具介绍

项目地址:https://github.com/zhangyoujia/hd_write_verify。

2023-08-29 12:06:17 800

原创 linux内核bitmap之setbit汇编实现

linux内核mm/swap.c中bitop通过宏定义了三个位操作函数,分别是 bit() 测试位,setbit() 置位,clrbit() 清除位。

2023-08-09 18:54:44 791

原创 安卓5.x安装Termux

由于Termux7.9版本之后,仅支持7.0以上的安卓系统。这里使用旧版本进行安装。版本信息:安卓 5.0.1。

2023-08-07 20:07:26 1312

原创 僵尸进程(Zombie process )及孤儿进程简介

僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。在 unix/linux 系统中,一个进程结束了,但是他的父进程没有等待(调用)他, 那么他将变成一个僵尸进程。

2023-08-02 09:42:20 645

原创 libvirt 热迁移流程及参数介绍

源节点 libvirtd 通过 RPC 的方式调用目标节点 qemuMigrationFinish 方法,在目标节点停止 NBD server,并调用 qemuProcessStartCPUs 使目标节点虚拟机进入运行状态。,源节点通过 RPC 的方式调用目标节点 domainMigratePrepare3Params 函数,在目标节点启动一个带 incoming 参数的虚拟机,然后启动 NBD server。:迁移稳定性差,迁移过程中虚拟机性能下降,网络延迟高时,对业务影响大。

2023-07-14 10:57:37 3577 2

原创 X86和X87汇编指令大全(有注释)

它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。

2023-07-01 15:09:28 4130

原创 一些想法:关于学习一门新的编程语言

背景介绍很多人可能长期使用一种编程语言,并感到很有成就感和舒适感,发现学习一种新的编程语言的想法令人生畏而痛苦。或者可能知道并使用多种编程语言,但有一段时间没有学习新的语言。更或者可能只是好奇别人是如何潜心学习新的编程语言并迅速取得成效的。无论学习新的编程语言有多容易或多困难,这篇文章解释了我如何学习新的编程语言及一些思考。虽然人们学习的方式不同,但发现我自己的过程很有趣,特此记录下来。背景介绍。

2023-04-26 08:13:52 575

原创 三种不同实现ublk的零拷贝I/O的方法

接收Fused命令的子系统必须对它有特殊的支持,具体来说,它必须能够找到slave命令的内核空间缓冲区,并在slave执行之前调用新函数 io_fused_cmd_provide_kbuf() 建立连接,这是对 io_uring 子系统的相当大的更改,并且还不完全清楚任何其他子系统是否能够利用它。不过,最大的价值可能来自于这样一个事实,即 BPF 程序可以访问内核提供的缓冲区,并可以直接将它们用于满足每个请求所需的任何 I/O,从而消除该数据的副本。块驱动程序可以移动相当多的数据,因此极大的避免复制。

2023-04-09 22:48:37 1067

原创 linux进程调度-PRI及NI简介

pri值的取值范围是-20(最高优先级,通常为系统进程保留)到19(最低优先级,通常为用户进程保留)。通常情况下,系统进程比较高的pri值(靠近-20),而用户进程比较低的pri值(靠近19)。CPU的把时间进行切片,然后分配给进程,当进程无限多时,也必须保证进程被抢占之前保证 1ms的运行时间,这个1ms就是最小粒度。(1)nice值,nice值越大意味着更低的优先级,反之nice值越小意味着更低的优先级,低nice值会获得更多的处理器时间。

2023-04-01 07:49:26 851

原创 Zellij – 颜值爆表,比tmux、screen更好用的多窗口终端

如果你曾经使用过多窗口终端,如tmux、screen,那么你可能对Zellij上手会更快。下面将介绍这个惊艳出众的多窗口终端利器。

2023-03-18 19:46:19 6134

原创 KVM2023论坛开始征集演讲稿

KVM论坛是一个交流虚拟化技术的年度盛会,为KVM和QEMU的开发者和用户提供了一个难得的机会来讨论Linux虚拟化技术的现状,并为未来的挑战做计划。KVM forum会议内容包括KVM虚拟化的最新状况,对未来的规划,以及与会者之间合作的情况。今年的活动将于2023年6月14-15日在捷克共和国布尔诺举行。只在现场举行,并在DevConf.CZ开源社区会议之前举行。6月14日将有一部分时间用于黑客马拉松或 “day of BoFs”。

2023-03-16 12:46:18 530

原创 Red Hat大佬教你如何使用vhost-user-blk对接spdk或qemu

近期Stefan发布题为“vhost-user-blk:一个快速的用户空间块I/O接口”的视频讲座。讲座涵盖了如何在用户空间通过vhost-user-blk使用块I/O以及相对于网络传输的优势,并介绍一个称为libblkio的客户端库,提供了C和Rust接口。

2023-03-02 15:27:26 1102

原创 Linux内核中的c语言:likely()、unlikely()

在Linux内核中,会发现很多likely()和unlikely()的使用。

2023-02-23 08:30:36 741

原创 Linux 6.1 正式升级为 LTS 内核,支持到2026年或更长

Linux 6.1被普遍认为是一个长期支持(LTS)的内核,通常情况下,每年的最后一个主要发布系列通常会被提升到LTS状态。Greg Kroah-Hartman作为Linux的稳定维护者,正式承认Linux 6.1为2022年的LTS内核。

2023-02-08 21:33:07 1595

linux gtags 二进制程序

适用于低版本(centos7)或者 低版本动态库(libtinfo.so.5)的gtags 二进程程序

2025-01-16

linux下gtags工具

linux下gtags工具,配合vim使用的神器

2024-12-30

用于rust自动补全 racer v2.2.2, linux 二进制程序

用于rust自动补全 racer v2.2.2, linux 二进制程序

2024-01-29

适用于 centos7安装的 bpftrace工具rpm包

适用于 centos7安装的 bpftrace工具rpm包,适用于 centos7安装的 bpftrace工具rpm包。

2023-11-10

虚拟现实技术及系统.pdf

虚拟现实技术及系统.pdf

2021-11-25

编译原理单元习题-华保健.rar

编译原理是计算机科学中历史最悠久,也是最高度发展的学科之一。编译器的设计与实现集中体现了计算机科学中的最核心的思想和技术,并且和计算机科学的其他研究领域,如形式语言与自动机、算法、数据结构、程序设计语言、计算机体系结构、软件工程等都有非常重要的联系。

2021-02-24

电脑键盘按键声音素材

电脑键盘按键声音素材,各种轴体按键音效

2021-02-17

操作系统原理与设计(中科大2020).rar

操作系统原理与设计(中科大2020).rar

2021-01-15

Xshell_7.0.0001

Xshell_7.0.0001

2020-12-24

x86_64内核kernel4.19.152编译的vmlinux

x86_64内核kernel4.19.152编译的vmlinux、vmlinx.bin及config文件

2020-10-31

中国象棋博弈原理(东北大学人工智能与机器人研究所).rar

中国象棋博弈原理,东北大学人工智能与机器人研究所ppt,中国机器博弈事业开拓者、CAAI 会士徐心和教授著

2020-02-06

jenkins-2.179 hpi离线安装包大全(史上最全,共4G)

jenkins-2.179 hpi离线安装包大全(史上最全,共4G),文件见链接

2019-05-31

虚&拟&化技术资料_整理

虚&拟&化技术资料_整理 虚&拟&化技术资料_整理 虚&拟&化技术资料_整理

2018-12-02

Q-Dir文件浏览

Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览 Q-Dir文件浏览

2017-09-14

md5sum命令行计算工具

md5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5summd5sum

2017-09-14

C语言图像处理程序集

书名:《C语言图像处理程序集》 作者:马建波 出版日期:1992 文档格式:pdf 目录 第 1 章 二值化 第 2 章 灰度变换 第 3 章 噪声消除 第 4 章 微分运算 第 5 章 投影量计算 第 6 章 黑区域处理 第 7 章 特征提取 第 8 章 图像间的运算 第 9 章 几何变换 第 10 章 线图形处理 第 11 章 数学变换 第 12 章 纹理分析 第 13 章 图像的编码压缩 第 14 章 图像显示

2015-12-29

安防天下智能网络视频监控技术详解与实践part3

安防天下智能网络视频监控技术详解与实践part3,免费

2015-12-28

安防天下智能网络视频监控技术详解与实践part2

安防天下智能网络视频监控技术详解与实践part2,免费

2015-12-28

安防天下智能网络视频监控技术详解与实践part1

安防天下智能网络视频监控技术详解与实践part1,免费

2015-12-28

linux按键驱动(input子系统)

linux按键驱动(input子系统)

2014-09-12

IIC通信协议

IIC通信协议

2014-08-24

exynos4412裸机按键程序x-key-with-led-beep

exynos4412裸机按键程序x-key-with-led-beep

2014-08-21

串口调试助手V1.5-原子版本

串口调试助手V1.5-原子版本

2014-05-22

LwIP无操作系统下的实验(内附LwIP中文应用指南)

LwIP无操作系统下的实验(内附LwIP中文应用指南)

2014-03-21

TCPIP网络组件Lwip之最简单的webserver

TCPIP网络组件Lwip之最简单的webserver tcp lwip stm32 红龙

2014-03-20

TCPIP网络组件Lwip之TCP Server

TCPIP网络组件Lwip之TCP Server

2014-02-27

红龙板_TFT绘图API(3.2寸)

红龙板_TFT绘图API(3.2寸)

2014-02-26

uCOSII2.912Blwip-1.3.2+28DM900029

uCOSII2.912Blwip-1.3.2+28DM900029

2014-02-21

STM32_F107_lwIP_uCOS_v1.0.0

STM32_F107_lwIP_uCOS_v1.0.0

2014-02-21

stm32 dm9000a uip程序

stm32 dm9000a uip程序

2013-09-04

Modbus调试精灵

Modbus调试精灵

2013-08-27

modbus-master-slave模拟软件

modbus-master-slave模拟软件

2013-08-27

STM32学习笔记

STM32学习笔记

2013-07-31

Qt编写串口通信程序

Qt编写串口通信程序

2012-09-25

buntu12.04菜鸟使用教程

buntu12.04菜鸟使用教程

2012-09-19

Ubuntu安装教程

Ubuntu_12.04安装教程(非wubi安装)

2012-09-19

Ubuntu标准教程

Ubuntu标准教程

2012-09-19

Ubuntu12.04菜鸟使用教程

Ubuntu12.04菜鸟使用教程

2012-09-19

单片微型机原理、应用与实验(第五版)-张友德-答案

单片微型机原理、应用与实验(第五版)-张友德-答案

2012-09-17

51单片机延时子程序详解

51单片机延时子程序详解

2012-07-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除