linux驱动开发 发表于 2023-06-01 更新于 2025-04-21 分类于 Program , C/C++ Valine: 本文字数: 19k 阅读时长 ≈ 17 分钟前言一、环境搭建二、开发指导1. 基本模板1.1. Makefile编写 Makefile第一个M要大写,不然也会报错 12345678910111213141516171819202122232425NAME := helloobj-m := $(NAME).oifeq ($(KERNDIR), )KDIR := /lib/modules/$(shell uname -r)/buildelseK ...阅读全文 »
linu性能观测和排查 发表于 2023-05-25 更新于 2025-04-21 分类于 Program , Shell Valine: 本文字数: 5.3k 阅读时长 ≈ 5 分钟一、性能观测工具1. pidstat 进程状态观测1.1. 选项解释筛选 -p <pid>: 进程id号,不指定就显示所有的进程 信息统计 -r: 显示内存使用情况和页错误 -u: 显示cpu使用情况 -d: 显示io使用情况 -s: 展示栈使用情况,kB为单位,保留和使用的大小 -R: 展示实时优先级和调度策略信息 -v: 展示一些内核表的值,线程数和fd分配 -w: 展示任务调度情 ...阅读全文 »
neovim相关配置 发表于 2023-03-15 更新于 2025-04-21 分类于 Program , Shell Valine: 本文字数: 7.4k 阅读时长 ≈ 7 分钟一、前言neovim是基于vim二次开发的,快捷键配置大部分可以复用vim的,这里就只列举一些插件的配置和处理 一个很不错的nvim的开源配置 https://github.com/ayamir/nvimdots 二、特殊配置1. 剪贴板 没看到neovim有clipboard特性安装上,就先用系统剪贴板共享的方式 需要安装xclip软件,然后设置set clipboard+=unnamedplu ...阅读全文 »
kvm相关学习 发表于 2023-02-06 更新于 2025-04-21 分类于 Program , Shell Valine: 本文字数: 9.2k 阅读时长 ≈ 8 分钟一、前言kvm和云计算息息相关,同时kvm也是linux上虚拟化技术的内核支持 二、qemu命令说明1. 快捷键说明1.1. SDL图形界面下 Ctrl + Alt + f: 全屏显示 Ctrl + Alt + 2: 进入qemu监视器窗口 2. qemu-img2.1. 常用选项 -f fmt: 指定img的格式,可选qcow2、vmdk、vdi、vhd、raw等 2.2. create 创建镜 ...阅读全文 »
shellcode相关笔记 发表于 2023-01-02 更新于 2023-11-13 分类于 Program , Common Valine: 本文字数: 615 阅读时长 ≈ 1 分钟一、前言参考 初探shellcode免杀 1. 简介shellcode是用于利用软件漏洞而执行的代码,一般是机器码,由于作用一般是让攻击者获得shell而得名。由于是机器码,在寄存器eip溢出后,塞入机器码来执行。 2. 基础知识2.1. eip寄存器存放cpu下次要执行的指令地址,只需要修改eip寄存器的值,即可执行shellcode。 3. 免杀3.1. 杀软原理目前的杀软手段一般由两种 基于 ...阅读全文 »
架构师相关知识 发表于 2022-12-28 更新于 2025-04-21 分类于 Program , Web Valine: 本文字数: 1.2k 阅读时长 ≈ 1 分钟见 系统架构师 二、数据库1. 数据库读写分离 读操作和写操作对应不同场景,写操作更耗费性能 将写操作写入主服务器,通过复制的方式到读数据库,加快读数据的响应速度 2. mysql2.1. 备份方案参考 9 Best MySQL Backup Tools 物理备份:二进制文件拷贝,需要重启mysql但是耗时很短,不锁表,占用空间较大,percona开源 首次物理备份后可以通过增量拉取变更数据(基于 ...阅读全文 »
缓存 发表于 2022-11-27 更新于 2023-11-13 Valine: 本文字数: 1.8k 阅读时长 ≈ 2 分钟一、前言1. 影响缓存命中率的因素 缓存键集合 键越少性能越高 可以使用内存空间大小 空间越大,缓存内容越多,命中率越高 使用寿命 2. 缓存为什么可以提升性能 缓存来自内存,比磁盘访问更快 减少数据库、磁盘和网络的压力,减少cpu的io时间 缓存最终结果,不需要再次计算 3. 各种介质数据访问延迟 操作类型 大致时间 本地内存 100ns SSD磁盘搜索 100000ns 网络数据包在同一个数据 ...阅读全文 »
分布式缓存 发表于 2022-11-27 更新于 2025-04-21 Valine: 本文字数: 735 阅读时长 ≈ 1 分钟一、前言二、缓存问题和解决1. 缓存击穿 缓存击穿是指缓存中没有但是数据库中有的数据,一般是缓存到期。由于并发用户特别多,同时读缓存没有读到数据,就到数据库进行查询而形成压力 1.1. 解决方案 设置热点数据永远不过期 互斥锁 2. 缓存雪崩 缓存雪崩是指同一时间缓存大面积失效,所有请求都会落到数据库上,造成数据库短时间处理大量请求而崩掉 2.1. 解决方案 缓存数据的过期时间要随机设置,防止同一 ...阅读全文 »
分布式存储 发表于 2022-11-27 更新于 2023-11-13 分类于 Program , Web Valine: 本文字数: 629 阅读时长 ≈ 1 分钟一、前言二、几种分布式存储的架构参考 一篇文章讲透分布式存储 1. 中间控制节点架构 HDFS 由谷歌提出 通过廉价的服务器来提供大规模,高并发场景下的web访问问题 服务器分为两种类型:namenode和datanode 可以横向扩展datanode的数量来增加承载能力,实现动态横向扩展 1.1. namenode 储存管理数据,比如文件在哪个datanode 一般使用主备集群部署 1.2. d ...阅读全文 »
vue使用笔记 发表于 2022-11-07 更新于 2026-04-29 分类于 Program , Web Valine: 本文字数: 931 阅读时长 ≈ 1 分钟一、安装和配置 先安装命令行工具 1npm install -g @vue/cli 创建vue工程,会在当前目录创建工程名对应的目录 1vue create xxx 跑起来 123cd xxxnpm run buildnpm run serve 二、开发1. 路由2. 路由事件2.1. 点击导航到下一个页面 不会触发beforeDestroy,会触发beforeRouteLeave,可以在里面做一 ...阅读全文 »