首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
后台
订阅
taroboy
更多收藏集
微信扫码分享
微信
新浪微博
QQ
73篇文章 · 0订阅
内联汇编很可怕吗?看完这篇文章,终结它!
在 Linux 代码中,经常可以看到在 C 代码中,嵌入部分汇编代码,这些代码要么是与硬件体系相关,这篇文章,从简单到复杂,详细描述内联汇编中的语法规则。
x86内联汇编
通过使用asm关键字,允许在C代码中嵌入汇编指令。 另一个是扩展内联汇编,可以包含一到多个操作数。 使用扩展内联汇编,可以在代码中混合使用C代码和汇编语句。 GCC的内联汇编,采用了AT&T的汇编语法。 格式说明:先是关键词asm,然后是一对括号,括号内是用双引号括起…
Linux系统中编译、链接的基石-ELF文件:扒开它的层层外衣,从字节码的粒度来探索
大家好,我是 ELF 文件,大名叫 Executable and Linkable Format。 经常在 Linux 系统中开发的小伙伴们,对于我肯定是再熟悉不过了,特别是那些需要了解编译、链接的家
Libuv 之 - 只看这篇是不够的
对 Node.js 的学习,无论如何都绕不开 Libuv。本文选择沿着 Libuv 的 Linux 实现的脉络对其内部一探究竟 Node.js 作为前端同学探索服务端业务的利器,自身是立志可以构建一个具有伸缩性的网络应用程序。目前的服务端环境主要还是 Linux,对于另一个主要…
MySQL索引的本质,MySQL索引的实现,MySQL索引的数据结构
索引是帮助MySQL高效获取数据的排好序的数据结构。就会从头比较到尾,然后找到对应的,一共需要查找7次,索引很慢。索引的作用就在这了,可以快速的帮你找到某列上要找的元素。并假设我们的索引是一颗二叉排序树(真实的数据库底层并不是使用二叉排序树的,这里只是做一个简单的演示例子)。可以...
数据库索引,终于懂了
不少朋友留言问MySQL索引底层的实现,让我讲讲B+树。知其然,知其所以然,讲懂B+树其实不难,今天更多聊聊“数据库索引,为什么设计成这样”。问题1. 以便快速找到一本书。于是,要有索引,用于提升数据库的查找速度。问题2. 画外音:80%的同学,面试都答不出来。索引设计成树形,和...
关于 io_uring 与 Rust 的思考
io_uring 是 Linux 5.x 时代加入的一套全新的异步机制,被钦定为 Linux 异步的未来。 本文将探讨在 Rust 中安全封装 io_uring 的一系列设计问题,并提出一些可能的解决方案。 io_uring 分为两个队列,提交队列 SQ (Submission…
Linux 文件 I/O 进化史(一):Buffered I/O
想找时间复习和总结一下 Linux 的文件 I/O 方式。大概想了,主要内容可以分成 4 个部分: Buffered I/O:传统的基于 page cache 的文件读写。 mmap:可以让应用像访问内存一样访问文件。 Direct I/O 和 AIO:绕过 page cach…
Linux 文件 I/O 进化史(二):mmap
mmap 可以将文件或设备映射到内存中,使应用程序可以像读写内存一样读写文件。 具体参数说明可以参考 Linux Programmer's Manual: mmap(2)。 使用 mmap 之后,如果访问的数据刚好在内存(page cache)中,读写文件和读写内存没什么差别(…
Linux 文件 I/O 进化史(三):Direct I/O 和 Linux AIO
前面介绍的 buffered I/O 和 mmap,访问文件都是需要经过内核的 page cache。这对于数据库这种 self-caching 的应用可能不是特别友好: 用户层的 cache 和内核的 page cache 其实是重复的,导致内存浪费。 数据的传输:disk …