自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

keke_Memory的博客

我很笨,但不影响

  • 博客(137)
  • 收藏
  • 关注

原创 C++ 中使用 std::map 的一个示例

这段代码主要是为了演示 std::map 的基本用法,包括插入键值对、通过键访问值、检查特定键是否存在以及遍历整个映射并打印其内容。是一个容器,可以用来存储键值对,其中键是唯一的,每个键都映射到一个值。

2023-12-26 23:04:58 494

原创 一文看明白代码中关于常量引用作为函数的传入参数

当在函数参数中使用常量引用时,这表示函数接受的参数是一个常量引用,即对传入的变量进行只读访问,不会修改该变量。这有助于防止意外修改传递的数据,同时可以提高性能,因为不会复制整个对象。

2023-12-26 22:39:10 459

原创 使用C++ 标准库map关联式容器根绝键值查找文件是否存在

下面这段代码创建了一个简单的示例,演示了如何使用std::map存储和检索,代码中的注释已经对每一步进行了说明。

2023-12-23 00:06:42 430

原创 在set容器中利用find()和end()查找元素的简单使用

在找到元素时返回指向该元素的迭代器,而在未找到时返回集合的。函数来打印元素并查找元素的简单代码示例。指向元素 3 的迭代器,而。指向集合的末尾迭代器。以下是利用容器set的。

2023-12-22 13:48:43 620

原创 在vector向量中利用find 函数查找特定元素

当使用 std::find 函数在容器中查找特定元素时,如果找到该元素,将返回该元素的迭代器;如果找不到,将返回容器的 end 迭代器。

2023-12-21 10:00:11 1547

原创 如何两个不同的脚本文件之间传递参数

两个不同的Shell脚本之间如何访问传递的参数取决于它们是如何调用的。选择哪种方法取决于您的需求。通常情况下,通过位置参数传递参数是更常见的方法,因为它更直接并且不需要额外的环境变量设置。但在某些情况下,使用环境变量可以更方便地共享数据。另一种方法是使用环境变量来传递参数。在这种方法中,一个脚本可以设置环境变量,另一个脚本可以读取这些环境变量。这是一种常见的方法,其中一个脚本将参数作为位置参数传递给另一个脚本。等特殊变量来表示,它们分别对应于第一个、第二个、第三个传递的参数,以此类推。

2023-09-25 17:30:56 820

原创 使用NVMe的用户库libzbd编写和ZNS设备通讯的小程序

是一个用户态库,用于与支持Zoned Namespace(ZNS)技术的SSD进行交互。以下是一个使用libzbd库编写向ZNS SSD写入数据并读取打印的简单程序。请注意,该示例仅用于演示目的,并且省略了错误处理和其他细节。

2023-07-21 21:30:39 459 1

原创 内核开发需要用到的高频复制指令

以上工具和命令可用于在内核开发过程中实现本地到远程服务器的文件或目录复制。根据您的具体需求和环境,请选择适合的工具和命令进行远程复制操作。是一个强大的文件同步和复制工具,可通过SSH协议实现远程文件复制。它可以高效地同步本地和远程文件,并仅复制已更改的部分。这些命令是内核开发过程中常用的文件复制命令,可以根据具体的需求和场景选择使用。它可以在本地计算机和远程服务器之间复制文件和目录。命令用于在本地和远程系统之间同步和复制文件。命令,通过将文件传输管道重定向到远程服务器上的命令来实现远程复制。

2023-07-14 17:50:59 233

原创 关于多线程互斥,条件变量,上锁与解锁这篇就够了

【代码】关于多线程互斥,条件变量,上锁与解锁这篇就够了。

2023-03-30 05:08:46 363 1

转载 LevelDB 数据结构: 跳表(Skip List)

转载一篇关于跳表解释非常全面清楚的笔记。

2022-07-14 20:37:33 160

翻译 Zoned-Storage - 对ZNS块设备进行基准测试

Zoned-Storage - 对ZNS块设备进行基准测试fio zoned块设备支持命令行选项限制*zonemode=zbd* 示例顺序写入工作负载顺序读取工作负载随机读写工作负载直接访问 sg I/O 引擎区域写入流Flexible I/O Tester (fio) 最初是作为内核块 I/O 堆栈的测试工具编写的。 然而,多年来,fio 获得了许多功能和详细的性能统计输出,从而将该工具变成了存储设备的标准基准测试应用程序。fio 源代码可在 GitHub 上获得。fio zoned块设备支持fi

2022-05-27 20:49:53 709

翻译 Zoned Storage-Tools and Librarues

Zoned Storage-Tools and LibraruesLinux 系统实用程序lsbllkblkzoneSCSI 通用实用程序lsscsilibzbc 用户库概述库函数实用程序获取磁盘信息区域信息写入和重置区域libnvme 用户库概述库函数库类型libzbd 用户库概述库函数实用程序tcmu-runner ZBC 磁盘仿真QEMUZNS 的 Linux 工具nvme-cli识别 ZNS 控制器识别 ZNS 命名空间报告zones信息重置区域打开一个区域关闭一个区域Offlining a Zon

2022-05-24 17:13:37 250

原创 安装了内核重启后内核版本没有更新 调处grub引导界面 (已解决)

最近用虚拟机,安装了内核重启后没有更新,因为虚拟机默认设置了开机自动进入默认内核版本与其修改启动内核顺序,还是把启动高级选择menu调出来方便一些首先, 检查已安装的内核版本$ dpkg -l|grep linux-image修改grub引导界面参数$ vim /etc/default/grub# 显示grub菜单GRUB_TIMEOUT_STYLE=menu# 0代表立即进系统,不会显示menu,这里设置成menu即可# -1代表一直显示menu,直到用户做出选择GRUB_T

2022-05-24 15:31:30 1930

翻译 Zoned Storage-应用

Zoned Storage-应用RocksDB with ZenFSZenFS介绍ZenFS 内部结构Getting StartedPrerequisites构建和安装 ZenFSZenFS 命令Benchmarking 基准测试RocksDB with ZenFSZenFS介绍RocksDB 是用于快速存储设备的持久KV存储。 它是使用 Log-Structured Merge-Tree (LSM-tree) 数据结构实现的。 它类似于基于 LSM-tree 的键值引擎实现:值存储在按键递增顺序排序

2022-05-20 19:57:17 316

翻译 Zoned Storage-Linux Kernel Support 之 文件系统

Zoned Storage-Linux Kernel Support之文件系统文件系统zonefs磁盘元数据区域类型子目录区域文件格式选项IO错误处理挂载选项Zonefs 用户空间工具例子f2fs分区块设备支持区域容量支持限制主机管理的 SMR HDD 的使用示例NVMe ZNS SSD 的使用示例BtrfsZoned Block Device SupportBlock Allocation ChangesI/O Management区域容量支持限制系统要求主机管理 SMR HDD 的使用示例XFSext4

2022-05-20 00:25:42 446

翻译 Zoned Storage - 介绍

Zoned Storage - 介绍分区存储设备原理Linux 生态系统支持为分区存储而开发NVMe Zoned Namespaces (ZNS) SSDs概述ZNS 分区存储模型Zone 类型Zone容量和Zone大小Active区域Zone Append分区存储设备分区存储设备是一类存储设备,其地址空间被划分为具有不同于常规存储设备的写入约束的区域 zones。原理分区存储设备的区域 必须按顺序写入。 设备地址空间的每个zone 都有一个写入指针wp,用于跟踪下一次写入的位置。 区域中的数据不能

2022-05-19 21:48:38 616

翻译 Zoned Storage-Linux Kernel Support 之 设备映射器

Zoned Storage-Linux Kernel Support 之 设备映射器设备映射器Device Mapperdm-linearZoned Block Device Restrictions 分区块设备限制示例:创建一个小型Host Managed Disk示例:常规区域作为常规磁盘dm-flakeyError modes 错误模式Zoned Block Device 限制dm-zoned设计概述磁盘格式读写处理随机区回收用户空间工具设备映射器Device Mapper首先需要明确的是设备映射

2022-05-19 20:19:39 247

翻译 Zoned Storage-Linux Kernel Support 之 Write Ordering Control

Zoned Storage-Linux Kernel Support 之 Write Ordering ControlWrite Ordering ControlZone Write Locking 区域写锁定Initial ImplementationImproved Implementation: Block I/O SchedulerBlock I/O Scheduler Configuration手动配置自动持久配置Write Ordering Control从历史上看,Linux® 内核块 I

2022-05-19 00:59:56 110

翻译 Zoned Storage-Linux Kernel Support 之 用户接口

Zoned Storage-Linux Kernel Support 之 用户接口分区块设备用户接口Sysfs Interfaceioctl() Application Programming Interface分区块设备用户接口用户应用程序可以使用两种类型的接口来访问分区块设备的区域信息和管理分区块设备的区域。 这两种类型的接口是:sysfs 属性文件,可以直接从应用程序作为常规文件访问,也可以从脚本语言(shell 脚本、python 等)访问。ioctl() 系统调用,适用于 C 程序或其他

2022-05-18 23:09:01 135

翻译 Zoned Storage-Linux Kernel Support之总览

Zoned Storage-Linux 内核支持Zoned Storage - Linux Kernel Support前言概述内核版本前言Linux 内核通过具有不同访问特性的各种 I/O 路径支持分区存储设备,例如原始设备访问、文件系统和设备映射器目标。从4.10 的 Linux® 内核中就开始支持分区块设备。 后续版本改进了这种支持,并在原始块设备访问接口之外添加了新功能。 现在可以使用更高级的功能,例如设备映射器支持和 ZBD 感知的文件系统。概述应用程序的开发人员可以通过各种不同的 I/

2022-05-12 16:57:02 170

原创 Automount a disk in /home

check the new media disksudo fdisk -lformatsudo mkfs -t ext4 /dev/sdcGet the Name, UUID and File System Typesudo blkidyou can get /dev/sdc: UUID="......." TYPE="ext4"Make a Mount Point For Your Drivesudo mkdir /home/diskMount the disks.

2022-01-20 18:12:42 86

原创 Install Python 3 on Ubuntu 18.04 or 20.04

Install Python 3 on Ubuntu 18.04 or 20.04Step1 : Check your version of PythonStep 2: Install Supporting SoftwareStep 3: Download the Latest Version of Python Source CodeStep 4: Extract Compressed FilesStep 5: Test System and Optimize PythonStep 6: Install

2022-01-19 21:48:38 969

原创 Linux 系统根目录文件结构

Linux 系统根目录文件结构前言一级目录Linux /usr目录前言使用 ls -l / 可以查看到在 Linux 根目录(/)下包含的很多子目录,分为一级目录和二级目录根目录十分重要。一级目录/bin/ :bin 是 Binaries (二进制文件) 的缩写, 这里是可执行二进制文件的目录,这个目录存放着最经常使用的。命令,普通用户和 root 都可以执行,如常用的命令ls、tar、mv、cat等。/boot/ :系统启动目录,保存与系统启动时使用的核心文件,如内核文件和启动引

2022-01-17 13:51:03 613

原创 Linux文本文件编辑命令

Linux文本文件编辑命令为每行增加行号使用sed和awk命令删除第一列提取文件的前N行为每行增加行号awk '$0=NR":"$0' original_filename->new_filename使用sed和awk命令删除第一列awk '{$1="";print $0}' original_filename->new_filename或sed -e 's/[^ ]* //' original_filename->new_filename提取文件的前N行head

2022-01-03 17:24:39 431

原创 数据结构P4.4 二叉树的线索化

数据结构P4.4 二叉树的线索化线索二叉树二叉树的线索化中序线索化普通二叉树遍历存在的缺点1.每一次必须要从根节点出发进行遍历,而线性表的遍历可以从任何一个结点进行后续遍历。2.以中序遍历为例:给定树中一个结点的指针,在树中找到前驱和后继结点很不方便线索二叉树基于普通二叉树存在的不便之处,利用线索二叉树解决寻找树中某一结点的前驱和后继结点线索:指向前驱、后继的指针成为“线索”前驱线索:由左孩子指针充当后继线索:由右孩子指针充当中序线索二叉树:线索指向中序前驱、中序后继先序线索二叉树

2021-12-10 22:33:22 515

原创 数据结构P4.3:二叉树的遍历

数据结构P4.3:二叉树的遍历二叉树的先序遍历二叉树的中序遍历二叉树的后序遍历二叉树的层序遍历什么是遍历按照某种次序把所有结点都访问一边线性结构中:对于链表、队列都有从前往后或者从后往前的依次遍历树的结构中:基于树的层次特性确定的次序规则可以是层次遍历树的先序遍历:按照 根节点->左节点->右节点 顺序依次遍历树的中序遍历:按照 左节点->根节点->右节点 顺序依次遍历树的后序遍历:按照 左节点->右节点->根节点 顺序依次遍历二叉树的先序遍历遍历

2021-12-09 13:47:26 707

原创 数据结构P4.2:二叉树的基本概念和存储结构

数据结构P4.2:二叉树的基本概念二叉树的定义和基本术语特殊的二叉树斜树满二叉树完全二叉树二叉排序树平衡二叉树二叉树的性质二叉树的存储结构二叉树的顺序存储二叉树的链式存储二叉树的定义和基本术语定义:二叉树是n(n>=0)个结点的有限集合;当n=0时,为空二叉树;由一个根节点和两个互不相交的称为根的左子树和右子树组成。左子树和右子树又分别是一颗二叉树特点:1.每个结点至多只有两棵子树2.左右子树不能颠倒(二叉树是有序树)3.即使树中某个结点只有一棵树,也要区分它是左子树还是右子树。

2021-12-02 22:19:36 1259

原创 数据结构P4.1:树的基本概念

数据结构P4.1:树的基本概念树的定义和基本术语树的定义树形逻辑结构的应用结点之间的关系描述结点、树的属性描述有序树 和 无序树树的定义和基本术语树的定义定义:树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。组成:根节点root:树的结点包含一个数据元素和若干指向其子树的分支。叶子结点(Leaf)/终端结点:无后继结点。分支结点/非终端结点:有后继结点。边:连接分支结点子树(SubTree):当n>1时,其余结点可分为m(m>0)个互不交互的有限

2021-11-26 15:04:22 470

原创 数据结构P3:字符串

数据结构P3:字符串字符串的定义和基本操作字符串的定义和相关术语字符串的基本操作字符串的实现(顺序存储结构)顺序串的定义字符串的基本操作字符串的特殊操作字符串的实现(链式存储结构)字符串的模式匹配算法字符串的朴素模式匹配算法朴素模式匹配算法的实现字符串的定义和基本操作字符串的定义和相关术语串:即字符串(String),由零个或多个字符组成的有限序列子串:串中任意个连续的字符组成的子序列主串:包含子串的串字符在主串中的位置:字符在串中第一次出现的序号子串在主串中的位置:子串的第一个字符在主串中

2021-11-25 22:01:43 483

原创 数据结构P2.3:栈和队列的应用

数据结构P2.3:栈和队列的应用栈的应用栈在括号匹配中的应用栈在表达式求值中的应用栈在递归中的应用队列的应用栈的应用栈在括号匹配中的应用问题描述:左右括号匹配算法设计:遇到左括号就进行入栈操作,遇到右括号,就消耗掉左括号进行弹出栈顶元素操作匹配失败情况: 1.左括号无匹配 2.右括号无匹配 3.左右括号不匹配栈在表达式求值中的应用中缀、前缀、后缀表达式中缀:a+b前缀:+ab后缀:ab+用栈实现后缀表达式思路:后进先出1.从左往右扫描下一个元素,直到处理完所有元

2021-11-22 17:35:29 79

原创 数据结构P2.2:队列

数据结构P2.2:队列队列的基本概念顺序队列的实现(顺序存储结构)顺序队列的初始化顺序队列的入队操作顺序队列的出队操作顺序队列的读取队头元素链式队列的实现(链式存储结构)链式队列的初始化链式队列的入队操作链式队列的出队操作双端队列队列的基本概念定义:队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。顺序队列特点:会存在队满的情况,容量是不可扩展的线性表:具有相同数据类型的有限个数据元素序列栈:只允许在一端进行插入和删除的线性表(后进后出)队列:只允许在一端进行插入

2021-11-20 00:56:29 577

原创 数据结构P2.1:栈

数据结构P2.1:栈栈的基本概念顺序栈的实现(顺序存储结构)顺序栈的初始化进栈操作出栈操作读取栈顶元素链栈的实现(链式存储结构)链栈的初始化链栈的插入链栈的删除栈的基本概念栈(stack)的定义:只允许在一端进行插入或者删除操作的线性表栈的特点:后进先出栈顶(top):允许插入和删除的一端栈底(bottom):不允许插入和删除的一端空栈:不含任何数据元素的栈称为空栈逻辑结构:和普通线性表一样,元素之间是有位序的,插入和删除不同栈的基本操作–创销、增删改查:初始化栈:构建一个空栈S

2021-11-16 18:33:26 374

原创 数据结构P1.3: 顺序表和链表的比较

数据结构P1.3: 顺序表和链表的比较逻辑结构对比基本操作对比顺序表点击这里链表点击这里逻辑结构对比相同点:都属于线性表,都是线性结构的存储方式:顺序表:顺序存储特点:随机存取(数组索引)结点:只存储数据元素,存储密度高缺点:容量固定,大片连续空间分配不方便链表:链式存储特点:离散小空间分配方便,容量更改方便结点:数据元素和指向下一个结点的指针,存储密度低缺点:不支持随机存储,需要从表头依次遍历基本操作对比创建:顺序表:顺序存储初始化:预分配大片连续空间缺点:

2021-11-12 19:55:16 315

原创 数据结构P1.2: 线性表-链表

数据结构P2.2: 线性表-链表线性表:概念和基本操作线性表:单链表单链表的实现线性表:概念和基本操作线性表的逻辑结构:线性表是具有相同数据类型(每个数据元素所占的空间一样大)的n(n >=0)个数据元素的有限序列。直白理解:一条线串起了一个序列,上面的数据元素类型是相同的。各个数据元素之间有前后顺序。可以通过位序表示数据元素下图是一个长度为5的线性表 - 线性表的基本操作–创销、增删改查:初始化:构建一个空的线性表,分配内存空间销毁操作:销毁线性表并释放线性表所占的内存空间插入

2021-11-12 19:25:43 774

原创 数据结构P1.1: 线性表-顺序表

数据结构P2: 线性表线性表概念和基本操作线性表概念和基本操作线性表是具有相同数据类型(每个数据元素所占的空间一样大)的n(n >=0)个数据元素的有限序列。比如表格线性表的基本操作:初始化表:构建一个空的线性表,分配内存空间销毁操作:销毁线性表并释放线性表所占的内存空间插入操作:在表中的第 i 个位置上插入指定的元素a删除操作:删除表中的第 i 个位置上元素,并用e返回删除元素的值按值查找:在表中寻找给定关键值的元素按位查找:获取表中第 i 个位置上元素的值...

2021-10-28 17:09:34 372

原创 数据结构前言:概念与算法

数据结构1:概念与算法数据结构数据元素数据结构三要素数据逻辑结构分类数据的运算物理结构(存储结构)数据结构数据是信息的载体,信息化的社会离不开数据数据结构是为了管理数据而存在的。数据元素数据结构三要素逻辑结构、数据运算、物理结构数据逻辑结构分类堆:穷人与富人、疫情高风险与低风险地区线性结构(1v1):排名树状结构(1v多):公司组织图、文件夹与文件网状结构(多v多):好友圈数据的运算结合逻辑结构、实际需求来定义基本运算运算的定义是针对逻辑结构的,而实现是针对存储结构的线性结构:

2021-09-25 10:34:55 111

原创 One-Day Study Shell: Part 3 Shell test command

One-Day Study Shell: Part 3 Shell test commandValue TestString TestFile TestValue Testparameterdescription-eqif "=" ; true-neif "!=" ;true-gtif ">" ; true-geif ">=" ; true-ltif "<" ; true-le"if "<=" ; true#!/

2021-09-15 18:33:01 69

原创 One-Day Study Shell:Part 2 Shell Path Parameter

One-Day Study Shel:Part 2Shell path parameterShell path parameterGet parameter from shell $nn is a numbern=1 (The first parameter to execute shell )n=2 (The second parameter to execute shell )#!/bin/bash# author:kekeecho "Shell pass parameter~

2021-09-15 18:31:56 92

原创 One-Day Study Shell: Part 1 The first Shell & Shell Variable & String & Array & Comment

One-Day Study Shell : Part 1The first ShellShell VariableShell stringShell arrayShell commentThe first ShellCreate a new file “hello.sh”, write codes :#!/bin/bashecho "Hello Shell !"Run Shell: cd to the directory of the file "hello.sh"chmod +x

2021-09-15 18:31:15 97

原创 Docker 使用教程

文章目录关于DockerDocker容器使用Docker 镜像使用1、管理和使用本地 Docker 主机镜像2、创建镜像Docker 命令大全关于DockerDocker 是一个开源的应用容器引擎,Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker容器使用查看Docker 客户端的所有命

2021-09-07 17:59:12 93

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除