自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (9)
  • 收藏
  • 关注

原创 数据结构之查找的总结

①、顺序查找之二分查找。

2024-04-10 09:49:34 170

原创 树的总结学习

引入一个笔试题:将vector中的一个完全二叉树按照层序构建为一个新的树。

2024-04-09 22:42:11 243

原创 一文读懂Linux内核中的Device mapper映射机制

Linux内核中的Device mapper映射机制

2024-02-23 20:05:36 323

原创 gdb命令总结

前置条件:编译生成执行码时带上 -g,如果使用Makefile,通过给CFLAGS指定-g选项,否则调试时没有符号信息。导入环境变量和显示环境变量:set environment和show environment。

2024-01-20 15:27:57 386

原创 脏页刷新机制总结

一句话解释:Page Cache用于缓存文件的页数据,Buffer Cache用于缓存块设备(磁盘)的块数据。但由于磁盘都是由文件系统管理的,所以会导致数据会被缓存两次,因此现在Linux已经不再使用Buffer Cache。

2023-11-24 14:16:12 1032

原创 关于链表常用的笔试题总结

【代码】关于链表常用的笔试题总结。

2023-11-05 20:51:18 84

原创 Linux的内存回收理解

swapd回收shrink的流程是针对与inode还是zone的?回收内存时的调用栈怎么区分page和slab的?

2023-08-21 21:34:52 131

原创 linux 的swap、swappiness及kswapd原理【转+自己理解】

我们一般所说的swap,指的是一个交换分区或文件。从功能上讲,交换分区主要是在内存不够用的时候,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致oom或者更致命的情况出现。所以,当内存使用存在压力,开始触发内存回收的行为时,就可能会使用swap空间。内核对swap的使用实际上是跟内存回收行为紧密结合的。为什么要进行内存回收?哪些内存可能会被回收呢?回收的过程中什么时候会进行交换呢?具体怎么交换?下面我们就从这些问题出发,一个一个进行分析。为什么要进行内存回收?

2023-08-17 21:00:11 385

转载 hung task机制

其实进程长期处于D状态肯定是不正常的,内核中设计D状态的目的是为了让进程等待IO完成,正常情况下IO应该会顺利完成,然后唤醒相应的D状态进程,即使在异常情况下(比如磁盘离或损坏、磁阵链路断开等),IO处理也是有超时机制的,原理上不会存在永久处于D状态的进程。长期以来,处于D状态(TASK_UNINTERRUPTIBLE状态)的进程都是让人比较烦恼的问题,处于D状态的进程不能接收信号,kill不掉。在一些场景下,常见到进程长期处于D状态,用户对此无能为力,也不知道原因,只能重启恢复。

2023-08-15 16:07:19 98

原创 linux 内核启动Initramfs与initrd 及其挂载

linux 内核启动Initramfs与initrd 及其挂载

2023-02-21 22:48:52 2146

原创 Linux内存管理:memblock

Linux内存管理:memblock

2022-11-03 11:50:08 657

原创 CPU Cache汇总

CPU Cache汇总

2022-10-31 19:17:24 1648

原创 利用mmap实现用户空间与内存空间的共享内存通信

利用mmap实现用户空间与内存空间的共享内存通信

2022-10-18 14:48:03 1135

原创 笔记本外接2K显示器问题记录(集显Intel HD Graphic 3000)

笔记本外接2K显示器问题记录(集显Intel HD Graphic 3000)

2022-10-12 17:25:41 5838 3

原创 内核态常见的异常

内核常见异常

2022-09-15 23:41:03 149

原创 LED驱动程序设计

LED驱动程序设计

2022-09-13 10:31:48 451

原创 Linux驱动开发前奏

Linux驱动开发前奏

2022-09-09 19:43:22 116

原创 字符设备驱动总结

01、入学测验①、在linux上安装一个软件常用的方式有(A、B、C、D)A、make install B、通过rpm和deb文件 C、通过yum和apt-get D、下载压缩包

2022-09-07 17:09:10 358

转载 c++ pair源码

c++ pair

2022-06-29 20:32:54 238

原创 趣谈Linux操作系统

开篇:分为六个阶段:熟练使用Linux命令行、学会Linux程序设计、了解Linux内核机制(目前自己处于这个阶段)、阅读Linux内核代码、实验定制Linux组件、实践没有终点。入学测验题:①、在linux上安装一个软件常用的方式有(ABCD).A、make install B、通过rpm和deb文件 C、通过yum和apt-get D、下载压缩包设置PATH②、下列过程在实模式下运行有(不知道).A、BIOS加载启动扇区 B、启动扇区加载Grub的...

2022-04-09 22:40:00 1699

原创 内存脏页参数介绍

1、参数介绍:[root@ecs-262232 ~]# sysctl -a| grep dirtyvm.dirty_background_bytes = 0vm.dirty_background_ratio = 10vm.dirty_bytes = 0vm.dirty_ratio = 30vm.dirty_expire_centisecs = 3000vm.dirty_writeback_centisecs = 500vm.dirty_background_ratio...

2022-04-02 17:33:35 660

原创 深入理解计算机操作系统第五章优化章节总结

深入理解计算机操作系统优化:循环展开和提高并行性

2022-03-30 18:58:42 282

原创 MySQL学习总结

一、常用命令1、进入MySQL mysql -u username -p密码 修改密码 mysqladmin -u username -p旧密码 password 新密码2、SHOW DATABASES; --显示所有的数据库3、USE Databasename; --进入数据库4、CREATE DATABASE Databasename; --创建数据库 DROP DATABASE Databasename;--直接删除数据库,不需要提示 mysqladmin DROP

2022-03-28 20:15:18 695

原创 Effective C++改善程序与设计的55个具体做法笔记

让自己习惯C++Item1:将C++视为federation of languagesItem2:用consts、enums和inlines取代#define 限定作用于,会放在常量区,但枚举不占用对象的存储空间,除非是枚举变量。Item3:尽可能的使用const const成员函数,相当于const this对象,可以操作const对象和不改变对象,两个成员函数如果只是常量性不同可以重载。 const写在类型之前或者类型之后都是可以的,.........

2021-12-07 11:31:57 624

原创 C++四种强制转换总结介绍

C++语言中新增了四个关键字static_cast、const_cast、reinterpret_cast和dynamic_cast,下面介绍对应四种转换的特点。1)static_cast静态类型转换,是良性的,一般不会有风险。用法:static_cast <类型说明符> (变量或表达式)int b = 2;double a = static_cast<double>(b);主要有以下几种用法: ①、用于基...

2021-11-30 23:33:37 1828

原创 Docker基本介绍

一简介。 Docker本身并不是容器,它是创建容器的工具,是应用容器引擎。二Docker与OS。 内核支持:Docker需要内核支持,3.10+。 Docker进程:'/usr/bin/docker'既是server端也是clientdocker进程:/usr/bin/docker daemon --storage-driver=overlay -H fd://docker不制定dameon参数时作为客户端dock...

2021-11-16 15:27:19 5368 1

原创 C++ Primer第五版 第十五章习题答案

C++ Primer第五版 第十五章习题答案3、4、5、3、#include<iostream>#include<string>class Quote{public: Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){ } std::string isbn() const { return bookNo; } virtual doub

2021-10-17 10:14:49 192

原创 数据结构分类总结

文章目录树树的构建树树的构建树类型的定义:typedef struct node{ int value; struct node * lchild; struct node * rchild;}BSTNodebool InsertBST( BSTNode *& tree, int value ){ if ( tree == NULL ){ tree = new BSTNode(); tree->value = value; tree->lchild

2021-09-14 13:49:42 82

原创 Go语言圣经

第一章入门

2021-08-23 19:27:50 2124

原创 网络知识总结

目录一、MTU和MSS二、MTU和MSS三、MTU和MSS一、MTU和MSSMTU (Maximum Transmission Unit)二、MTU和MSSMTU (Maximum Transmission Unit)三、MTU和MSSMTU (Maximum Transmission Unit)

2021-08-19 20:25:52 73

原创 C++Primer第五版 十六章课后习题答案

C++ Primer第五版 第十6章习题答案16.116.1template <typename T> int campare(const T&v1,const T&v2){//T表示一个类型,而T的实际类型在编译时根据实际情况决定 if (v1>v2) { return 1; } else { return -1; } return 0;}...

2021-01-27 14:02:02 210

原创 new和::new

#include<iostream>#include<cstdlib>#include<new>using namespace std;class T{ public: T(){ cout << "构造函数。" << endl; } ~T(){ cout << "析构函数。" << endl; } void * operator new(size_t sz){ .

2020-11-05 21:44:11 630

原创 Git的使用学习

一、创建自己的repository。二、安装git1、从https://git-scm.com/download/win下载下来和你电脑对应的git软件,然后点击默认选项到自己制定的目录,在制定目录下就可以打开git_bash了。2、①由于本地Git仓库和GitHub仓库之间的传输是通过SSH加密,所以必须要让GitHub仓库认证你的SSH key,因此需要先生存SSH key。在git控制台输入如下命令:ssh-keygen –t rsa –C [email protected]如果有询问输

2020-10-21 23:35:57 509

原创 STL源码剖析-1.9 可能领你困惑的C++语法。

STL源码剖析-1.9 可能领你困惑的C++语法组态3: __STL_STATIC_TEMPLATE_MEMBER_BUG组态3: __STL_STATIC_TEMPLATE_MEMBER_BUG#include <iostream>using namespace std;

2020-10-14 20:26:01 86

原创 C++Primer第五版 第十五章习题答案

C++ Primer第五版 第十五章习题答案3、3、#include<iostream>#include<string>class Quote{public: Quote(const std::string &book,double sales_price):bookNo(book),price(sales_price){ } std::string isbn() const { return bookNo;

2020-10-12 19:26:26 263

原创 清华大学计算机系统课程笔记-第十一讲和第十二讲

文章目录第十一讲 进程和线程11.1 进程的概念第十一讲 进程和线程11.1 进程的概念以下统称为PCB

2020-09-27 23:56:27 472

原创 C++ Primer第五版 第十一章习题答案(21-40)

C++ Primer第五版 第十一章习题答案(21-30)27、28、29、30、27、P388页:1:如果我们关心的只是谋个元素是否在容器中,可以使用find 。2:对于允许重复关键字的容器,count可以做到更多。3:是否需要计数是个关键28、map<string,vector<int>> ::iterator29、知识点1:lower_bound和upper_bound找不到关键词的话,会指向一个不影响排序的关键词插入位置知识点2:equal_range()函数

2020-09-27 20:23:57 209

原创 summary

文章目录一、关于二维数组的学习。1、测试过程2、汇编代码分析二、关于函数栈的学习。一、关于二维数组的学习。1、测试过程关于二维数组自己其实学的差不多了,但发现二维数组作为形参时自己理解的还不是很到位,特此写下来测试demo分析。​​编译过程发现:运行结果:总体来分析:总体结果符合预期,就是用二重指针这个地方为什么会段错误?2、汇编代码分析分析如下:二维数组名本身还是一个指针,只不过是一个特殊类型的指针(数组指针),代表这个数组的首地址,我们定义参数为int array[3][5]或者i

2020-09-24 00:02:13 137

原创 sheel命令学习和工作总结

文章目录greptailgrep实际grep命令中,有or和not操作符的等价选项,但是并没有grep and这种操作符。不过,可以使用patterns来模拟and操作符的。①、grep or1、 grep 'pattern1\|pattern2' filename2、使用选项 -E可以用来扩展选项为正则表达式,如果使用了grep命令的选项-E,则应该使用|分隔多个pattern,以此实现OR操作。 grep -E 'pattern1|pattern2' filename3、egrep命令

2020-09-21 20:37:54 1545

原创 清华大学计算机系统课程笔记-第九讲和第十讲

文章目录第九讲 页面置换算法9.1 页面置换算法的概念第九讲 页面置换算法9.1 页面置换算法的概念http://os.cs.tsinghua.edu.cn/oscourse/OS2019spring/lecture09

2020-09-20 21:37:27 225 2

指令划分,包括mips arm和risc-v

指令划分,包括mips arm和risc-v

2023-11-24

ftp.zip 文件传输系统

基于套接字的tcp和udp文件传输系统,实现多线程并发,多任务处理,而且有菜单选项,是非常好的参考例子。

2020-06-27

FreeNFS.rar

有时候出差或者设备调试,需要windows上搭建一个NFS服务器,freenfs提供了一种非常简单的nfs使用

2019-12-18

linux shell编程从入门到精通

张昊主编的从入门到精通,非常适合初学者,是你脚步编程的首选。

2018-09-17

unix环境高级编程,中文

这本书的作用就不用多讲了,人手必备的工具书。这个pdf是扫描版的,非常清晰。

2018-09-17

arm中文汇编指令说明

你还在为ARM汇编指令学习发愁吗?这个资料可以让你在嵌入式之路稍微容易点,可以当做工具参考

2018-09-16

基于C/S的一个文件传输

资源支持文件传输,选用的tcp通信,基于套接字实现的,如果想要同时支持tcp和udp通信,可以同时创立连个进程,这部分也实现了,但代码在公司电脑,可以交流。

2018-09-16

空空如也

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

TA关注的人

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