抱歉,您的浏览器无法访问本站

本页面需要浏览器支持(启用)JavaScript


了解详情 >

使用OCI构建一个容器镜像

使用OCI构建一个容器镜像 不同docer启动容器, 了解什么是OCI https://www.youtube.com/watch?v=hhQ6uc2bp2s 什么是OCI Container != Docker 标准, 类似所有浏览器都使用html/js/css一样, 有了标准后各种容器实现都可以使用根据标注构建的镜像 https://github.com/opencontainer...

RabinKarp(RK)算法

RK算法 O(n) go语言官方库(大部分情况) 其实朴素的字符串匹配算法(一个一个比对), 在概率上也是O(n)的。因为出现连续字符的情况是比较少的(e.g. aaaaab) RK算法的基本思路: 先用哈希做一个粗略比对。当然是存在一定误判的, 当哈希匹配时再使用朴素算法判断。如此一来每次字符串比对就变成了一个整数的比对。 但是问题的关键是, 哈希算法的开销的O(n)的, 我们要考虑如何...

rust程序冲突tips

rust程序冲突tips对这篇文章的二次加工和翻译。 问题我们想要将程序的部分功能抽象成一个”管理者”。 于是我们会构造一个结构体, 它内部有一系列”被管理元素”和一些状态元素。如: 12345678910111213141516use std::sync::mpsc::Sender;struct MyStruct { widgets: Vec<MyWidget>, ...

rust中智能指针box的简单实现

rust中智能指针box的简单实现Abstractbox是rust中最基本的一种智能指针, 所谓智能能自动解引用自动释放。这三个基本功能分别是通过实现Deref, DerefMut, Drop三个trait赋能的。 Deref和DerefMut实现了智能指针的自动解引用。简单的说是自动解引用直到类型匹配(如果一路都满足Deref trait),即如果需要的类型是&T而得到的类型是Bo...

GPGPU-sim部署 + Ubuntu切换软件版本

环境 ubuntu18.04 cuda11 gcc5.5 流程安装依赖, 安装gcc5GPGPU-sim所需的依赖如下 GPGPU-Sim dependencies: 1sudo apt-get install build-essential xutils-dev bison zlib1g-dev flex libglu1-mesa-dev GPGPU-Sim documentation...

拉片分析xv6和rcore中的trap和上下文切换机制

拉片分析xv6和rcore中的trap和上下文切换机制学trap感觉非常绕, 浅记一下。个人认为rcore的实现会比较好理解一点, 不过xv6的也值得学习一下, 所有这里把两个的实现都整理了一下。(未开虚拟内存版) 拉片分析: 进程第一次启动 -> 进程第一次返回用户态 -> 进程陷入内核态 -> 进程再返回用户态 rcore对应代码ch3, 未开启分页版, 开启分页后大...

CPP中的左值和右值概念

CPP中的左值和右值概念Overview 语法上能取地址就是左值 有名引用本身是左值, 无名右值引用(std::move()的返回)是右值 const左值引用(const T& val = 6)引用右值, 可以编译通过。 因为与右值不指代对象, 没有”存储”的语义没有冲突 性能上没差别, 引用都可以避免拷贝 左值引用可以使用const T&引用右值 右值引用可以使用std::...

LD_PRELOAD劫持

LD_PRELOAD tips很多程序都需要链接共享库才能运行, 链接共享库默认会从系统/usr/lib目录中查找, 然后链接.so文件。而且对于同名函数, 只会识别最先出现的那一个。指定LD_PRELOAD变量就能让链接器先去找LD_PRELOAD指定的路径再去找默认路径, 从而实现对函数劫持。 详见man ld.so 实验例子我们可以通过strace查看一个程序执行过程中使用到的系统调用...

给neovim配置项目信息

给neovim配置项目信息为什么要配置项目信息呢? compile_commands.json文件不行吗? 主要是为了刚开始编码时能有一些信息, 所以直接简单地手写一下.ccls文件或者.clangd文件会方便一点。 clangd clangd file 快速找头文件: find . -name "*.h" | xargs -n1 dirname | sort -u ...

Bitcask A Log-Structured Hash Table for Fast Key/Value Data

AbstractBitcask是一种基于哈希表的Log-Structured的KV存储结构。特点是简单, 且有足够好的速度和质量。 与LSM tree有点类似, 都利用了内存和外存配合, merge。 内存中的keydir哈希表使用文件和位置信息做数据索引(value = file + offset), 外存的log-structured做数据存储。 Overview每个bitcask实例都...