- 博客(474)
- 资源 (68)
- 收藏
- 关注
原创 基于LQR算法的一阶倒立摆控制
(F为外力,x为物块位移,M,m为物块和摆杆的质量,φ为摆杆相对竖直向上方向的角度)倒立摆的受力分析网上有很多,这里就不再叙述。
2023-09-20 10:12:07
484
原创 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
54
原创 一个简单的文件系统(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
61
原创 转载:为什么国外把邮件当微信一样发?
所以,一般谁要是跟我聊天说事情,我一旦发现这次聊天是这个目的,我就会让对方想明白了,写段文字发给我。当然,对于很多人而言,对方是他的甲方或领导,他没有办法这样要求对方。但是,如果你发现对方是这样的工作作风只,那么至少你可以断定,对方自己都没有思路,或者思维能力很差。你自己思考30分钟,给我写个邮件,我花3分钟看完,两个人一共消耗33分钟。在你问我答的过程中,通过别人的思考,别人因为听不懂他而发出的追问,把自己的思路整理出来。你让他写一封邮件,或者用一个文档,或者稍微系统一些的一段文字,来表述他的想法。
2023-09-05 09:54:10
62
原创 linux内核bitmap之setbit汇编实现
linux内核mm/swap.c中bitop通过宏定义了三个位操作函数,分别是 bit() 测试位,setbit() 置位,clrbit() 清除位。
2023-08-09 18:54:44
546
原创 僵尸进程(Zombie process )及孤儿进程简介
僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,子进程退出后init会回收其占用的相关资源。在 unix/linux 系统中,一个进程结束了,但是他的父进程没有等待(调用)他, 那么他将变成一个僵尸进程。
2023-08-02 09:42:20
115
原创 libvirt 热迁移流程及参数介绍
源节点 libvirtd 通过 RPC 的方式调用目标节点 qemuMigrationFinish 方法,在目标节点停止 NBD server,并调用 qemuProcessStartCPUs 使目标节点虚拟机进入运行状态。,源节点通过 RPC 的方式调用目标节点 domainMigratePrepare3Params 函数,在目标节点启动一个带 incoming 参数的虚拟机,然后启动 NBD server。:迁移稳定性差,迁移过程中虚拟机性能下降,网络延迟高时,对业务影响大。
2023-07-14 10:57:37
1935
1
原创 一些想法:关于学习一门新的编程语言
背景介绍很多人可能长期使用一种编程语言,并感到很有成就感和舒适感,发现学习一种新的编程语言的想法令人生畏而痛苦。或者可能知道并使用多种编程语言,但有一段时间没有学习新的语言。更或者可能只是好奇别人是如何潜心学习新的编程语言并迅速取得成效的。无论学习新的编程语言有多容易或多困难,这篇文章解释了我如何学习新的编程语言及一些思考。虽然人们学习的方式不同,但发现我自己的过程很有趣,特此记录下来。背景介绍。
2023-04-26 08:13:52
463
1
原创 三种不同实现ublk的零拷贝I/O的方法
接收Fused命令的子系统必须对它有特殊的支持,具体来说,它必须能够找到slave命令的内核空间缓冲区,并在slave执行之前调用新函数 io_fused_cmd_provide_kbuf() 建立连接,这是对 io_uring 子系统的相当大的更改,并且还不完全清楚任何其他子系统是否能够利用它。不过,最大的价值可能来自于这样一个事实,即 BPF 程序可以访问内核提供的缓冲区,并可以直接将它们用于满足每个请求所需的任何 I/O,从而消除该数据的副本。块驱动程序可以移动相当多的数据,因此极大的避免复制。
2023-04-09 22:48:37
516
原创 linux进程调度-PRI及NI简介
pri值的取值范围是-20(最高优先级,通常为系统进程保留)到19(最低优先级,通常为用户进程保留)。通常情况下,系统进程比较高的pri值(靠近-20),而用户进程比较低的pri值(靠近19)。CPU的把时间进行切片,然后分配给进程,当进程无限多时,也必须保证进程被抢占之前保证 1ms的运行时间,这个1ms就是最小粒度。(1)nice值,nice值越大意味着更低的优先级,反之nice值越小意味着更低的优先级,低nice值会获得更多的处理器时间。
2023-04-01 07:49:26
314
原创 Zellij – 颜值爆表,比tmux、screen更好用的多窗口终端
如果你曾经使用过多窗口终端,如tmux、screen,那么你可能对Zellij上手会更快。下面将介绍这个惊艳出众的多窗口终端利器。
2023-03-18 19:46:19
1867
原创 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
353
原创 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
422
原创 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
825
原创 《跃迁:从技术到管理的硅谷路径》读后感
技术管理包含两层含义:一层是管理自己和团队的技术,进行技术选型,在正确的场景使用最适合的技术,保证程序简捷、强壮、可维护,最终完成产品的上线;另一层是管理技术团队,帮助团队成员成长,把事情做成。
2023-02-08 20:18:20
331
原创 dpdk无锁队列rte_ring实现分析
rte_ring的实质是FIFO的无锁环形队列,无锁队列的出队入队操作是rte_ring实现的关键。常用于多线程/多进程之间的通信。ring的特点:无锁出入队(除了cas(compare and swap)操作);多消费/生产者同时出入队。
2023-02-03 18:01:59
722
原创 Linux下大页HugePages与透明大页Transparent HugePages
Linux下的大页分为两种类型:标准大页(Huge Pages)和透明大页(Transparent Huge Pages)。 Huge Pages有时候也翻译成大页/标准大页/传统大页,它们都是Huge Pages的不同中文翻译名而已,顺带提一 下这个,免得有人被这些名词给混淆、误导了。
2022-12-21 22:00:12
1905
原创 linux驱动加载流程分析
内核是如何加载驱动的,有些是编译到内核里面,有些事编译成ko,让系统自动加载。总的说来,在Linux下可以通过两种方式加载驱动程序:静态加载和动态加载。
2022-12-10 16:38:28
3867
原创 KVM Forum 2022应该关注的话题
第15届KVM论坛于2022年9月12日至9月14日在爱尔兰都柏林会议中心举行。KVM Forum2022有哪些指的关注的技术,KVM未来发展方向如何,有哪些激动人心的想法,让我们一睹为快。
2022-11-04 22:02:39
830
原创 比Linus更牛逼的程序员,QEMU、FFmpeg的作者
Linus Torvalds是个非常厉害的程序员,因为他有两个名扬天下的作品:Linux和Git。如果单论技术能力,有一个人,也许比Linus更强。我在看他主页项目列表的时候,感觉头都炸了。他开发了著名的模拟器QEMU和音视频处理库FFmpeg,仅仅是这两项就超越绝大部分程序员了,他还写过C编译器,OpenGL实现,LTE软基站,JS引擎,让Linux在浏览器中跑起来,甚至还创造了计算圆周率的世界纪录......
2022-11-04 19:32:05
1954
原创 Virtio1.2 新功能介绍
新版本的virtio1.2规范已经发布了,在1.1版本发布后的三年里,已经积累了相当多的变化。下面列出其中的一些关键部分;关于细节,可以查看具体规范。
2022-10-29 22:07:19
876
转载 Geek新鲜事-初版的Rust支持已合并到Linux内核
初始的 Rust 基础设施代码已合并到 Linux 6.1 内核的主线 Git 代码树中[1]。Linus 在几周前的内核峰会上就已表达过这样的计划 ,人们也普遍预计这会发生,但就在本周末,仍有一些 Linux 用户对 Rust 编程语言支持 Linux 内核的想法持不同意见。不过现在它已经落地了。
2022-10-15 16:44:30
784
原创 linux虚拟内存、异步io及零拷贝简介
本文从虚拟内存、I/O 缓冲区,用户态&内核态以及 I/O 模式等等知识点全面而又详尽地剖析 Linux 系统的 I/O 底层原理,分析了 Linux 传统的 I/O 模式的弊端,进而引入 Linux Zero-copy 零拷贝技术的介绍和原理解析,将零拷贝技术和传统的 I/O 模式进行区分和对比,帮助读者理解 Linux 内核对 I/O 模块的优化改进思路。
2022-09-28 11:18:08
313
原创 linux xdp简介
XDP(eXpress Data Path)为Linux内核提供了高性能、可编程的网络数据路径。由于网络包在还未进入网络协议栈之前就处理,它给Linux网络带来了巨大的性能提升(性能比DPDK还要高)。
2022-08-30 22:26:29
897
原创 LZ4压缩算法简介
lz77编码思想:它是一种基于字典的算法,它将长字符串(也可以称为匹配项或者短语)编码成短小的标记,用小标记代替字典中的短语,也就是说,它通过用小的标记来代替数据中多次重复出现的长字符串来达到数据压缩的目的。其处理的符号不一定是文本字符,也可以是其他任意大小的符号。............
2022-08-18 22:13:05
2583
2
原创 Linux系统压力测试工具stress
iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。.........
2022-07-11 22:20:19
1069
原创 Linux网络通信优化方法
Linux 网络在性能方面有哪些优化手段可用呢?本文将给出一些开发或者运维中的 Linux 网络性能优化建议。要注意的是,每一种性能优化方法都有它适用或者不适用的应用场景,应当根据当前的项目现状灵活来选择用或者不用。...
2022-06-30 10:21:48
373
原创 io_uring异步io简介
io_uring 是facebook开发的,从 5.1 就进 Linux 内核主线了,但陆续改进到 5.11 才有了 kLoop 需要的全部功能,并且仍在持续改进中。笼统来讲,应用程序用内存映射(mmap)的方式拿到两条与内核共享的环状队列,通过其中一条队列(SQ)给内核源源不断的布置任务,然后从另外一条队列(CQ)获取结果;内核则按需进行 epoll(),并在一个线程池中执行就绪的任务。...
2022-06-29 08:45:42
794
原创 虚拟磁盘discard在qemu中的应用
对于SSD的操作人们提出了新的需求:需要在数据删除的时候通知硬盘,将数据立即清理掉,在这种需求下,trim指令[1]诞生了,trim指令允许操作系统在SSD上将不再使用的数据通知到SSD底层并在其内部将数据擦除掉。...
2022-06-24 22:52:24
1734
原创 ACPI规范概览-2
高级配置与电源接口(Advanced Configuration and Power Interface,ACPI)的应用已经广泛分布在计算机领略的各个细分市场。从手机、笔记本电脑、台式机到工作站和服务器上都可以找到它的身影。从体系架构上来看,不光X86阵营,ARM生态圈也加入进来。...
2022-06-23 11:24:04
702
原创 ACPI规范概览-1
ACPI可以被理解为一个与体系结构无关的电源管理和配置框架,作为OS的一个子系统。这个框架建立了一个硬件寄存器集来定义电源状态(睡眠、休眠、唤醒等)。硬件寄存器集可以兼容专用硬件和通用硬件。标准ACPI框架的主要目的是无需直接从OS本地调用固件进行电源管理和系统配置。ACPI作为操作系统和系统固件之间的接口层。...
2022-06-23 11:16:41
1134
原创 三款Go Playground分享
曾几何时,语言的在线运行(Playground)似乎成了标配。确实,Playground 能够让我们可以快速试验一些想法。Go 语言在发布之初就提供了一个,这就是 https://play.golang.org。然而,由于众所周知的原因,我们访问不了。为了方便国内广大 gopher,我搞了一个国内镜像:https://play.studygolang.com,尽情使用、分享吧。1.官方的 Playground不得不说,Go 官方的 Playground 真的比较原始。提供的功能比较少,主要有:格式
2022-04-25 14:10:04
1182
编译原理单元习题-华保健.rar
2021-02-24
Q-Dir文件浏览
2017-09-14
md5sum命令行计算工具
2017-09-14
C语言图像处理程序集
2015-12-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人