利用 JavaScript 代码挖矿

利用 JavaScript 代码挖矿

挖矿 我们都知道,现在的比特币特别的火,但是错过了最好时代的我们,已经玩不起那个动不动就几万的矿机以及还需要翻山越岭迁移到深山发电站的决心。何况,目前比特币已经不再是如同神话一般的不断开创历史新高,该来的矿难总是要来的。不过,这些都不重要,今天要介绍的一个可以利用 JavaScript 来挖矿的程序,你只需要使用浏览器浏览这样一个挂载了 JavaScript 脚本的网站,那么你的电脑就会被站点当做免费的…

ARM64 的 memcpy 优化与实现

ARM64 的 memcpy 优化与实现

ARM64 如何优化 memcpy 函数 Linux 内核用到了许多方式来加强性能以及稳定性,本文探讨的 memcpy 的汇编实现方式就是其中的一种,memcpy 的性能是否强大,拷贝延迟是否足够低都直接影响着整个系统性能。通过对拷贝函数的理解可以加深对整个系统设计的一个理解,同时提升自身技术实力。 罗马不是一天建设而成的,Linux 内核的拷贝函数也不是一开始就是那么优秀,在 3.14 之前(具体多少版本忘…

Linux 内核 Buddy 系统

Linux 内核 Buddy 系统

Linux Linux 的内存管理部分很复杂,涉及到了方方面面的原理,众所周知 Linux 内核由全世界各个地区的优秀工程师集智而成,所以这里面包含了许许多多的令人赞叹的设计,今天我们要来学习的伙伴系统就是这其中的臻品之一。在内核初始化完成之后,所有的内存申请与释放都交给了伙伴系统来完成,他就像是一个厨师,总是很勤劳的买菜、洗菜做饭等等,而且不论客人如何对待他,他也总是笑脸相迎,默默付出不求回报,等待着客人用…

ARM64 芯片的 Jiffies 更新流程

ARM64 芯片的 Jiffies 更新流程

ARM64 最近在调试 arm64 机器时遇到了一个比较蛋疼的时钟问题,这个时钟问题会导致在部分机器类型上导致无法启动,为了深入了解并解决掉这个问题,特定决定研究一下整个 jiffies 的更新逻辑过程,本篇文章写于 site 上传之前的半年前,所以可能存在某些纰漏,检查也不够细致但是希望能够为后来者多少提供 jiffies 的一个基本的逻辑架构描述,让大家少走弯路,针对于别的平台,jiffies 的更新也相…

DMA 与 scatterlist 技术简介

DMA 与 scatterlist 技术简介

DMA DMA 是一项很古老的技术,在 Wiki 中是这样定义的:直接内存访问(Direct Memory Access,DMA)是计算机科学中一种内存访问技术,它允许某些计算机内存的硬件子系统(外设)可以独立且直接的访问系统内存,不需要 CPU 的参与。在同等程度的处理器负担情况下,DMA 是一种快速的数据传递方式,所以很多的硬件都会使用到 DMA,以及操作系统也会对 DMA 进行足够的支持,比如我们常…

NVMe 设计逻辑与原理解析

NVMe 设计逻辑与原理解析

NVMe 需要深入的研究 NVMe 整个协议以及他的驱动实现逻辑,特此做一定的记录于此,一方面方便自己记忆,另一方面可以给后来者一个参考。 NVMe 命令 NVMe 有两种命令,一种叫做 Admin Command, 用来对 Host 进行管理以及控制 SSD;另外就是 I/O Command,用来处理 Host 和 SSD 之间的数据传输,下面表格列举当前的 NVMe 1.2 版本手册协议中定义支持的命令…

Linux 内存布局

Linux 内存布局

Linux 关于内存分配,一般的 C 语言开发者使用的更多的是 glibc 库提供的 malloc 和 calloc 等函数,这些函数执行成功,这会返回一个进程所需要的内存起始地址,当然,他们是针对 CPU 端的虚拟地址。Linux 内核负责与硬件打交道,针对 CPU 端的虚拟地址很多场景下都不满足需要,固这些函数在内核状态下无法运行,所以内核提供了自己的一套专门的内存申请释放函数1。 进程在执行过程中,Li…

Linux 内核的缓存简介

Linux 内核的缓存简介

Linux 提笔之前,对于 Linux 的缓存与预读这个机制尚且没有一个完整的概念,只能边看边学习然后记录,这篇文章仅仅只能作为一个参考学习资料,并不能作为技术文档载入各位的知识体系,当然,作为课外阅读来讲,还是足够的,毕竟干货还是不在少数,我会一步步的深入缓存与预读的各个体系以及在某一次调试过程中与缓存以及内存碎片相关的 BUG 进入一个探讨,方便读者以及自己能够有个清晰的记忆,也是为了能够对整个知识体系有…

Linux 内核的 RCU 实现逻辑

Linux 内核的 RCU 实现逻辑

Linux 一直都对 Linux 的锁机制很感兴趣,也花过一段时间对各种类型的锁进行研究。本文对类似自旋锁、互斥锁、信号量的基本锁不进行深入介绍也默认读者能够通过查找迅速获得这些锁的一个基本使用场景和原理。很多时候,我们需要更为细粒度的锁,譬如对于读多写少的情况,我们希望读者与读者之前不需要锁,让他们能够尽快的 Pass,这个时候我们就需要用到一种更为快速的锁那就是读写锁,读写锁的设计逻辑就是读者与读者之间不…

加载更多