25 期 | 死锁(1)准备工作 死锁检查线程,检查并解决死锁,分为三步走,这期先聊聊准备工作:构造锁等待图、初始化事务权重。 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。 1. 模拟死锁 创建测试表: CREATE TA 数据运维 2024-07-20 贤蛋大眼萌
Linux有问必答:怎么用CheckInstall从源码创建一个RPM或DEB包 问题:我想要从源码创建安装的软件包。有没有一种方式从源码来创建和安装软件包,而不是运行“make install”?这样的话,以后如果我想,我可以容易的卸载程序。 如果你已经从它的源码运行“make install”安装了linux程序。想完整移除它将变得真的很麻烦,除非程序的开发者在Makefile里提供了uninstall的目标设置。否则你必须在安装前后比较你系统里文件的完整列表,然后手工移除 linux中国 2024-07-20 Escape
如何在源码包编译安装的 LEMP 环境下开启 OpenSSL 功能 Hello,大家好!我是——邪恶君子! 今天,给大家分享一下解决源码包编译安装 LEMP 环境下开启 OpenSSL 功能问题的过程。前几天,在访问页面时,突然报错,要求开启 openssl 功能。那怎么办呢,首先想到的是 yum 安装,但是,安装后还是没解决,因为 LEMP 的环境是源码包编译安装的,所以,还需要编译安装 openssl。 经过邪恶不懈的努力,终于找到了解决办法,而且真的成功了, linux中国 2024-07-20 捡田螺的小男孩
Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核。那么在Debian或Ubuntu上有什么可行的方法来下载完整的内核源码呢? 在给你的Linux安装完整内核源码之前,先问问自己是否真的需要这样做。如果你仅仅是尝试去编译一个内核模块或是为内核定制驱动,你并不需要完整的内核源码树。你只需要安装一些与内核对应的头文件,这样就足够了。 只有在你需要生成一个定 linux中国 2024-07-20 大树
并行文件系统 BeeGFS 现已开源 2月23日 ThinkParQ 宣布完整的 BeeGFS 并行文件系统 的源码现已开源。由于 BeeGFS 是专为要求性能的环境开发的,所以它在开发时十分注重安装的简易性以及高度灵活性,包括融合了在存储服务器同时做计算任务时需要的设置。随着系统中的服务器以及存储设备的增加,文件系统的容量以及性能将是需求的拓展点,无论是小型集群还是多达上千个节点的企业级系统。 官方第一次声明开放 BeeGFS 的源 linux中国 2024-07-19 张二河
开发一个 Linux 调试器(四):Elves 和 dwarves 到目前为止,你已经偶尔听到了关于 dwarves、调试信息、一种无需解析就可以理解源码方式。今天我们会详细介绍源码级的调试信息,作为本指南后面部分使用它的准备。 系列文章索引 随着后面文章的发布,这些链接会逐渐生效。 准备环境 断点 寄存器和内存 Elves 和 dwarves 源码和信号 源码级逐步执行 源码级断点 调用栈展开 读取变量 下一步 ELF 和 DWARF 简介 ELF 和 DWAR linux中国 2024-07-19 剑圣无痕
开发一个 Linux 调试器(六):源码级逐步执行 在前几篇博文中我们学习了 DWARF 信息以及它如何使我们将机器码和上层源码联系起来。这一次我们通过为我们的调试器添加源码级逐步调试将该知识应用于实际。 系列文章索引 随着后面文章的发布,这些链接会逐渐生效。 准备环境 断点 寄存器和内存 Elves 和 dwarves 源码和信号 源码级逐步执行 源码级断点 调用栈展开 读取变量 下一步 揭秘指令级逐步执行 我们正在超越了自我。首先让我们通过用户 linux中国 2024-07-19 法医
开发一个 Linux 调试器(五):源码和信号 在上一部分我们学习了关于 DWARF 的信息,以及它如何被用于读取变量和将被执行的机器码与我们的高级语言的源码联系起来。在这一部分,我们将进入实践,实现一些我们调试器后面会使用的 DWARF 原语。我们也会利用这个机会,使我们的调试器可以在命中一个断点时打印出当前的源码上下文。 系列文章索引 随着后面文章的发布,这些链接会逐渐生效。 准备环境 断点 寄存器和内存 Elves 和 dwarves 源 linux中国 2024-07-19 穿过生命散发芬芳
开发一个 Linux 调试器(七):源码级断点 在内存地址上设置断点虽然不错,但它并没有提供最方便用户的工具。我们希望能够在源代码行和函数入口地址上设置断点,以便我们可以在与代码相同的抽象级别中进行调试。 这篇文章将会添加源码级断点到我们的调试器中。通过所有我们已经支持的功能,这要比起最初听起来容易得多。我们还将添加一个命令来获取符号的类型和地址,这对于定位代码或数据以及理解链接概念非常有用。 系列索引 随着后面文章的发布,这些链接会逐渐生效。 linux中国 2024-07-19 贤蛋大眼萌
6 个可以帮你理解互联网工作原理的 RFC 以及 3 个有趣的 RFC。 阅读源码是开源软件的重要组成部分。这意味着用户可以查看代码并了解做了什么。 但“阅读源码”并不仅适用于代码。理解代码实现的标准同样重要。这些标准编写在由 互联网工程任务组 Internet Engineering Task Force (IETF)发布的称为“ 意见征集 Requests for Comment ”(RFC)的文档中。多年来已经发布了数以千计的 RFC linux中国 2024-07-18 三掌柜
在 Fedora 中使用私人助理 Mycroft 想要找个开源的私人助理么?Mycroft 可以让你运行一个开源的服务,从而更好地控制你的数据。 在 Fedora 上安装 Mycroft Mycroft 目前不存在于官方软件包集合中,但它可以轻松地从源码安装。第一步是从 Mycroft 的 GitHub 仓库下载源码。 $ git clone https://github.com/MycroftAI/mycroft-core.git Mycrof linux中国 2024-07-18 大猫
我在源码控制中维护点文件的技巧 当你把环境保持在源码控制中,开发虚拟机和容器就成了一个解决方案,而不是一个问题。 你是否曾经开始使用一台新的电脑,不管是出于自愿还是因为旧的电脑让你的魔法烟消云散,并且对花了多长时间才把所有东西都 弄好 而感到沮丧?更糟糕的是,有没有花了一些时间重新配置你的 shell 提示符,然后意识到你更喜欢以前的样子? 对我来说,当我决定要在 容器 中进行开发时,这个问题就变得很严重了。容器是非持久的。开发 linux中国 2024-07-17 泡泡
编译代码时动态地链接库 编译软件在你如何运行你的系统方面给你很大的灵活性。LD_LIBRARY_PATH 变量,以及 GCC 的 -L 和 -l 选项,是这种灵活性的组成部分。 编译软件是开发者经常做的事情,在开源世界中,一些用户甚至选择自己动手。Linux 播客 Dann Washko 称源码为“通用包格式”,因为它包含了使一个应用在任何平台上运行所需的所有组件。当然,并不是所有的源码都是为所有的系统编写的,所以它只是 linux中国 2024-07-16 剑圣无痕
如何从源码编译 GNOME Shell 和应用 这是一篇如何从源码编译 GNOME 的快速指南,包括 Shell、mutter 和一些原生应用。 在编译之前,你需要确保一些事情,因为以下编译直接来自 Gitlab 的主分支,其中包含一些开发包。 通常,你可以选择在任何 Linux 发行版中编译。但是我建议使用 Fedora Rawhide(Fedora 的开发分支,用于将来的发布)。 另外,请勿在稳定系统中尝试此操作。因为操作可能出错,所以你可 linux中国 2024-07-16 竹子爱熊猫
【MySQL】InnoDB 事务锁源码分析 宋昭 https://kernelmaker.github.io/MySQL_Lock 【MySQL】InnoDB 事务锁源码分析 好久没写笔记了… InnoDB 事务锁这里的代码陆陆续续看过好几次,但一直没整理过。事务锁这玩意儿思想说起来其实就那么几句话,实现起来的代码却是又臭又硬的好大一坨,各种细节,不把这里啃明白的话在解决具体问题的时候有点虚,和别人讨论也感觉隔靴搔痒说不太透。刚好趁着假期下 数据运维 2024-05-28 共饮一杯
TiUP 源码初探 想必tidber都使用过tiup,tiup给部署带来很大的便利性,在日常开发中也会涉及到分布式的部署,自己难免也会写一些工具,本文抛砖引玉,分享一下自己看tiup源码的一些步骤,希望您在看源码或写工具时多一个思考方向。环境部署可参考:启航TiDB:调试环境搭建(vscode+wsl+pd) Cobra Cobra 是一个 Go 语言开发的命令行(CLI)框架,是由 Go 团队成员 spf13 为 数据运维 2024-05-28 三掌柜
17 期 | InnoDB 有哪几种行锁? InnoDB 有哪几种行锁,其中比较特殊的插入意向锁为什么而存在? 作者:操盛春,爱可生技术专家,公众号『一树一溪』作者,专注于研究 MySQL 和 OceanBase 源码。 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文基于 MySQL 8.0.32 源码,存储引擎为 InnoDB。 1. 准备工作 确认事务隔离级别为可重复读: show variables 数据运维 2024-05-27 三掌柜
TiDB源码学习:启动TiDB 最近因为一些任务,开始入门学习TiDB源码,作为一名刚刚接触数据库底层的孩子来说,这个过程并不容易,好在TiDB的官方文档提供了源码阅读系列文章,能够让我们比较快速的入门,但是内容比较简单,即使依靠着官方文档去学习源码,对于我这种完全新入门的还是有那么亿点点的难度,所以为了帮助那些和我一样,看源码看的眼花撩换的孩子,就将自己的学习过程记录下来,希望对大家入门TiDB源码有一定的帮助。 TiDB的核 Uncategorized 2024-05-23 贤蛋大眼萌
项目纪实 | MySQL核心源码分析 & 定位解决 万里数据库凭实力征服客户 基于在MySQL核心代码的多年技术积淀和源码掌控能力,万里数据库研发工程师先分析现场业务的网络抓包,再根据抓包中的SQL逻辑编写复现程序,果然准确地复现了问题场景,然后结合源码分析复现场景中m_prebuilt->m_end_range变量的变化,最后分析出造成查询结果集提前返回的原因和条件。 通过一套完整的方法论和专业缜密的源码分析、测试,最终梳理出触发条件需满足的几点关键规律: 1. SQL 数据运维 2024-05-20 三掌柜