自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(78)
  • 收藏
  • 关注

原创 vmware 部署笔记

标题栏 -> 操作 -> 安装 Parralles Tools;此时弹出文件夹,将其中内容复制到 ~/1 文件夹下,设置 - 软盘 - 物理驱动 - 自动检测。在登录界面选择使用 Mate 桌面环境;配置终端、文件件、浏览器快捷方式;Noto Mono 13 号字体。CPU 8核。

2023-12-31 16:12:27 443

原创 bash笔记

【代码】bash笔记。

2023-08-29 17:17:16 183

原创 Linux文件管理

【代码】Linux文件管理。

2023-07-25 09:56:42 124

原创 Linux进程间通信

共享内存不使用数据传输,而是提供一块允许被其他进程访问的内存空间,用于本机内进程间高效的传输大量数据。使用共享内存时,由于是多个进程访问同一块区域,会发生竞态,所以需要信号量来保证同步。如果只是通知状态变更,则使用信号比较简单。共享内存的用法和消息队列类似。管道是队列型字符传输方式。消息队列是消息型传输方式。

2023-07-25 09:56:34 106

原创 Linux服与和定时任务

目录是存放systemV风格的启动脚本。

2023-07-25 09:56:24 79

原创 Linux动态库

在开始讨论动态库之前,首先对静态库做一个简短的介绍。在静态库产生之前,编译需要链接各种.o文件,随着.o文件数量的增多,管理和引用.o文件也变得困难,于是unix决定把常用的.o文件组成一个单元,这样每次只引用一个归档单元就可以了,这种方式就是静态库。

2023-07-25 09:56:15 151

原创 Linux的运行原理

more。

2023-07-25 09:53:34 166

原创 launchpad笔记

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mmVmhaDZ-1689486943572)(http://43.138.79.14/static/img/eb6f2c5a3bd246f770bc90686f909bbb.image.png)]

2023-07-25 09:53:26 170

原创 git笔记

git 基本概念:工作区、暂存区、本地仓库、远程仓库、上游仓库。工作区是现在操作的版本(add前);暂存区是添加了一些修改的版本(add 后);本地仓库是提交了暂存区的版本(commit后);远程仓库是本地仓库推送到远程仓库的版本(push后);上游仓库是原始仓库,远程仓库是fork后的自己的仓库。

2023-07-25 09:53:17 74

原创 gdb调试笔记

除了以上几种情况外,还有可能是硬件故障或操作系统错误等原因导致的段错误。因此,对于遇到段错误的情况,需要具体分析具体情况,并根据错误提示信息进行调试和排查。段错误(Segmentation fault)通常是由程序访问了未分配的内存或者已经释放的内存、越界访问数组或指针等导致的。如果父进程进入了等待状态或死锁,不归还终端,可以使用。时会添加符号信息和调试信息;会去除符号信息和调试信息;命令中断进程,并查看状态。

2023-07-25 09:53:09 236

原创 gcc笔记

在使用gcc命令时,一般先列举源文件,然后再列举动态库。这是因为链接器是按照输入文件的顺序来处理的,因此应该先列举需要链接的源文件,再列举需要链接的库文件。库文件中有未定义的符号,链接器可以在后面的库文件中查找,直到找到为止。因此,如果先列举库文件,链接器可能会找不到所需的符号,从而导致链接错误。其余的动态库都需要手动链接。

2023-07-23 09:00:39 107

原创 Docker笔记

xhost +x如果网络错误,参考下一章节的“解决docker无法联网的问题“临时解决方案,追加xclock。

2023-07-23 09:00:30 196 1

原创 Debian打包教程

脚本文件没有使用 makefile 来维护,因此安装路径需要手动在install中写一下,同时注意,如果在 makefile 中写了安装路径,那么此处也会覆盖掉 makefile 的行为。此时在 ~/hello/hello-1.0/ 下生成 debian 文件夹,这个 debian 文件夹是一个模版,需要我们更改其中的内容才能制作 deb 包。这里需要注意的是,源码包文件夹名称必须包含版本号,例如 hello-1.0 ,hello是源码包名,1.0是版本号。如果是空,就是没有,需要新建一个gpg密钥。

2023-07-23 09:00:22 543

原创 C++ String类

【代码】C++ String类。

2023-07-23 09:00:12 92

原创 C++ Stream类

输入输出语义是将程序与文件和设备进行关联,并使用缓存区(一款共享的内存)在程序与文件/设备之间传输数据。标准输入关联的是键盘设备,标准输出关联的是显示器设备。标准的意思是规定了0、1、2这三个文件描述符用来关联基本输入输出设备。more。

2023-07-23 09:00:01 703

原创 cmake笔记

编译格式和编译工具有很多,比如GNU make,qmake,nmake等,cmake是这些make的高层,作用是使用通用格式生成不同平台的make格式。more。

2023-07-23 08:59:51 104

原创 chroot笔记

chroot容器使用的是宿主机的Linux内核,因此chroot可以拉取各个版本的Linux发行版,只要其能运行在X86芯片上。morechroot 命令可以改变根目录的挂载位置。根目录改变了,根目录下的库文件、配置文件等也都改变了,所以能实现切换到另一套系统环境中的效果。debootstrap 能够拉取一套最小根目录系统,配合chroot,就能创建一套全新的系统环境。schroot 用于强化chroot,chroot只能使用root用户,而schroot可以使用普通用户。

2023-07-23 08:59:42 435

原创 C++ 正则表达式

正则表达式使用符号表示一类字符串,以实现批量处理字符串的效果。C++ string没有提供正则表达式,而是以C++正则表达式库形式提供的。C++正则表达式分为Match(匹配)、Search(搜索)、Tokenize(分词)、Replace(替换)四部分。more。

2023-07-23 08:59:31 653

原创 c语言输入输出及缓冲

printf和scanf的作用是程序和外设进行交互的接口,printf可以将程序输出到屏幕上或打印机上;scanf可以将键盘的字符输入到程序中;但是printf和scanf并不是让程序和外设直接交互的,因为直接交互的话,一是外设读写速度慢,而是频繁读写外设易造成损伤,因此在程序和外设之间,c语言在内存中增加了输入缓冲区和输出缓冲区,用于提高程序和外设读写的响应速度,详情见下文。

2023-07-23 08:59:21 458

原创 C++ 算法库

【代码】C++ 算法库。

2023-07-23 08:59:03 154

原创 C++术语

GPU(Graphics Processing Unit,图形处理器)是一种专门用于图形处理和加速的处理器,主要用于3D图形渲染、视频编解码、深度学习等领域。GPU的主要功能包括:图形渲染:GPU可以通过对图形进行数学运算和图形数据处理来实现3D图形的渲染,从而在屏幕上显示出高质量的图像。并行计算:GPU具有大量的计算单元和并行计算能力,可以加速大规模的并行计算任务,如机器学习、计算流体力学等。视频编解码:GPU可以用于视频的编码和解码,可以加速视频的压缩、解码和处理,提高视频的播放流畅度和质量。

2023-07-22 19:30:25 101

原创 C++ 并发编程

线程共享进程的内存地址,因此可以并发访问进程中的变量、堆和引用等。线程有自己的栈。

2023-07-22 19:30:09 137

原创 C++ 标准容器库

STL(标准模板库)以模板为基石,将容器和操作容器数据的方法分离开,形成了容器、迭代器、算法三部分,其中迭代器充当容器和算法的粘合剂。moreC++的总体思路是:高效,不检查错误;复用,使用多态;最小修改,使用适配器。

2023-07-22 19:29:54 127

原创 apt及dpkg包管理笔记

Debian系软件包管理笔记,包括安装、查看、卸载等。more1个软件包可能会包含n个二进制(命令),所以软件包名和二进制名并不一定一样,如:net-tools 是软件包名,其中包含了可执行文件 ifconfig。起初只有dpkg工具,用于管理软件包,但是dpkg不能自动解决软件的依赖问题,所以后来有了apt命令。apt在dpkg的基础上,引入了在线软件仓库,可以通过配置软件源选择不同的软件仓库,并且apt可以自动解析依赖和安装依赖。因此在安装deb包时,请使用apt命令而不是dpkg命令。

2023-07-22 19:29:41 194

原创 字符集和编码

在计算机中,协议通常代表数字和概念的映射关系,对于字符集就是使用数字映射到字符,查看看到,数字97映射为字符a,所以这个数字也叫ASCII字符集的字符码。一种映射方案就是一个字符集,包括:ASCII,UTF8,GB2312,GBK,UTF16,UTF32,UNICODE,Latin 等等。Windows默认的中文字符集是GBK。

2023-07-22 19:29:30 217

原创 指针、数组和字符串

数组:一块连续的内存空间,属于容器,数组名即是首地址,数组大小即是内存空间长度。int型指针:一块内存空间,包含内存地址(指针)和长度(int)。变量:符号,映射到内存值或者内存地址,且映射内容可被更改;注意:代码段和数据段都是只读的,堆栈段是读写的。这种情况下,可以编译过,但运行会段错误。字符数组:结尾没有’\0’的字符数组;指针:变量的一种,映射的是内存地址;字符串:以’\0’结尾的字符数组;声明:建立符号,不分配内存;是存储在栈上的变量内容,而。是存储在数据段的只读内容。定义:绑定符号和内存地址;

2023-07-22 19:29:13 61

原创 指令集转换方案

是一款开源的指令集转换器,可以在非X86平台上运行X86程序,因为使用了大量的运行平台本地库,而非完全翻译,所以性能很不错。

2023-07-22 19:29:03 159

原创 运筹学笔记

线性方程组:线形方程组是由多个变量组成的方程组。如果有n个变量,且能找出n个变量组成的方程组,那么由方程组系数构成的矩阵,就成为了系数矩阵。我们的目标是求解线形方程组。行列式的计算公式是由日本数学家江澤潔(Seki Takakazu)在17世纪中期发现的。江澤潔在研究代数方程时,发现了行列式的计算方法。他将行列式看作一个数值函数,能够将矩阵转化为一个数值。江澤潔在他的著作《大原算法》中描述了这种方法,并通过实例展示了如何用这种方法求解代数方程。

2023-07-22 19:28:45 151

原创 源码分析工具

使用tree或者vscode查看。tree。

2023-07-22 19:28:25 114

原创 网络调试笔记

它显示经过的中间路由器和每个路由器的延迟。它可以捕获和分析网络流量,提供直观的图形界面以查看和分析数据包的详细信息。它显示正在通过指定网络接口的流量信息,包括源IP、目标IP、端口和流量统计。它可以显示通过指定网络接口的数据包,并提供详细的协议和数据信息。netstat: 用于显示网络连接、路由表和网络接口统计信息。ss: 与netstat类似,用于显示当前的网络连接和套接字统计信息。它可以扫描目标主机上开放的端口,提供有关主机的详细信息。ping: 用于检测目标主机的可达性和延迟。

2023-07-22 19:28:11 123

原创 通用调试方法

书籍、论坛、专利、知网、互联网。同行对比,相似对比。

2023-07-20 09:34:36 79

原创 常用算法笔记

算法与数据结构密不可分,数据结构是对数据的组织和存储形式,算法是对数据结构的增删查改。数据结构部分参考。

2023-07-20 09:34:28 76

原创 数据结构概论

数据结构的划分主要是从时间顺序和空间顺序进行划分。线性结构(1-1):数组,链表,队列,栈树状结构(1-2):二叉树树状结构(1-m):多叉树图(m-n):有向图,无向图散列表(?):哈希表基本的数据结构无非以上几种结构,其余的数据结构都是从以上数据结构中衍生或者组合出来的。数据和链表是1-1类型的,即只有一个前驱元素和一个后续元素;二叉树是1-2类型的,包含一个前驱元素和两个后驱元素;m叉树是1-m类型的,包含一个前驱元素和m个后驱元素;

2023-07-20 09:34:05 61

原创 设计模式笔记

单一职责原则(SRP)、开闭原则(OCP)、闭包原则(CCP)、依赖反转原则(DIP)。模块划分:单一职责、闭包原则;相同目标,相同改动原因的内容,作为一个模块单元。模块解耦:依赖反转,开闭原则;增加抽象层,解耦合上层和依赖层,使依赖的修改不会影响其他模块。设计模式的总体思想是团队合作,怎么能让一方的修改不影响另一方,怎么能易于扩展减小修改量。开闭原则是,对修改关闭,都扩展开放。设计模式很多使我们编程中已经用到的技巧了,但是经过命名后,反而不能理解了,哈哈哈。

2023-07-20 09:33:56 71

原创 使用U盘启动盘制作系统

在下载Ventoy软件,Windows系统选Windows版,Linux系统选Linux版。解压Ventoy压缩包,运行Ventoy2Disk.exeU盘启动盘做好后,只需要把系统镜像放入U盘任意位置即可。

2023-07-20 09:33:30 91

原创 日期与时间

ctime库支持的精度是秒,而且不支持多线程,chrono库支持多精度和多线程。

2023-07-20 09:33:13 65

原创 逆向分析笔记

首先了解调用约定,了解函数的入参方式;然后分析ebp,ebp是当前栈底,ebp-x是获取入参,因为入参是调用方准备好的,ebp+x是局部变量,因为这部分在当前栈帧中。

2023-07-20 09:32:31 794

原创 内存调试笔记

valgrind会检测堆上的数组越界或内存泄露。

2023-07-20 09:32:13 77

原创 进程调试笔记

如果出现死锁,则父进程进入等待状态,不会归还终端,此时 Ctrl + c 即可中断父进程执行。然后搜索源码,查找谁在持有被等待的资源,这样就可以定位到死锁的两个线程了。然后切换到栈帧,查看源码,或者直接查看源码,就知道在等待什么资源了。如果发现了lock字样,就差不多是了。

2023-07-20 09:31:30 56

原创 解决问题的一般方法

百度、谷歌、论文、专利、技术论坛、淘宝、qq群。

2023-07-19 09:25:57 185

空空如也

空空如也

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

TA关注的人

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