通过实战理解CPU上下文切换
Linux作为一个多任务操作系统,能够支持远远超过CPU数量的任务同时运行,但实际上这只是一种错觉。事实上,系统会在非常短的时间内将CPU轮流分配给各个进程,给用户造成多任务同时运行的错觉。这就引发了一个问题:每次运行进程之前,CPU都需要知道进程的加载位置和运行位置,也就是说,系统需要提前设置好CPU寄存器和程序计数器。
「干货」分段机制解决了什么实质性问题?
要了解分段机制,我们需要回溯到Intel的微处理器8086的时代。在那个时候,计算机的内存空间相对较小,内存寻址采用的是直接访问物理地址的方式。随着技术的进步,计算机的功能越来越丰富,程序也变得越来越庞大。
浅谈汇编器、编译器和解释器
在计算机发展的早期阶段,硬件昂贵而程序员相对廉价。这些程序员通常没有专门的“程序员”头衔,而是由数学家或电气工程师兼任。早期的计算机主要用于解决复杂的数学问题,因此数学家天生适合从事“编程”工作。
linux服务器开发—手写内存泄漏检测组件
内存泄漏是在不带有垃圾回收(Garbage Collection)机制的语言中,如C/C++,经常出现的问题。由于缺乏垃圾回收,程序员需要自行管理分配的内存并进行释放。内存泄漏的根本原因在于程序未能释放申请的内存。
USB的传输,编码,数据格式,掌握usb的必备知识
端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点
perf性能分析工具使用分享
在之前的分享中,我曾经提及了我在工作中手动编写的一些CPU监控脚本,但那些脚本仅仅是我个人的一些粗浅尝试。随后,我开始直接利用perf工具编译到驱动程序中,并在设备上直接使用perf,这使得效率有了直线式的提升。
Git 合并到底使用Merge还是Rebase
Git rebase这一神奇的指令常常被誉为Git江湖中的一种魔法般的存在,这也让一些新手望而却步。然而,实际上,若团队能够娴熟地掌握其技巧,它将为工作带来事半功倍的效果。本文旨在对比git rebase与常见的git merge指令,探讨它们在真实Git工作流程中的不同应用场景。