自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux基础IO(七)之理解文件系统

Linux基础IO之理解文件系统:先对一块内存分区然后分组,分组完就是一个文件系统:文件系统内容有Block Group,Super Block,inode table、GDT、Block Bitmap和inode Bitmap等,本文章详细讲述了以上内容的概念作用和彼此之间的联系等,查看inode的命令:ls -li,stat可以查看文件更多内容,问题描述了:新建文件、删除文件、查找文件、修改文件,操作系统需要做什么等,重新深刻理解了目录等。

2025-04-14 19:00:00 485

原创 Linux基础IO(六)之文件系统 -- 认识理解硬件(磁盘)

Linux基础io之文件系统:回忆之前的知识(谈在磁盘中的文件即没有被打开的文件)和文件=内容+属性(两者是分开存储的),认识磁盘:1.磁盘的物理结构(计算机中唯一的机械设备)和 与SSD、与混盘的区别,物理结构有盘片、磁头、马达、磁头停泊区和与电脑连接的连接口等,磁盘存储的原理,磁盘存储与内存的区别。2.磁盘的存储结构,磁片(磁头)、磁道、扇区,扇区是访问磁盘的最小单元,CHS寻址方式等.3.磁盘的抽象结构:可以看作线性结构,LBA地址和CHS寻址的转化。回归硬件-磁盘如何被访问等。

2025-04-14 10:19:41 478

原创 Linux基础IO(五)之用户缓冲区

Linux基础IO之缓冲区:C语言中的FILE内部封装了fd文件描述符,一般C库函数写入文件时是全缓冲的,而写入显示器是行缓冲。当发生重定向到普通文件时,数据的缓冲方式由行缓冲变成了全缓冲。缓冲区当进程退出时一般也会刷新。FILE里面还有对应打开的文件的缓冲区字段和维护信息,初步实现用户级缓冲区,c语言跨平台型等。

2025-04-10 20:45:00 1080

原创 Linux基础IO(四)之重定向

Linux基础IO之文件重定向:重定向的本质,重定向分为:输出重定向、输入重定向追加重定向,使用dup2来实现文件的重定向,dup2如何使用(参数的含义),用系统调用实现输入重定向、输出重定向、追加重定向,shell的补充(增加了重定向的命令),1号文件描述符 vs 2号文件描述符有什么区别,如何理解Linux中“一切皆文件”等。

2025-04-10 15:59:36 732

原创 Linux基础IO(三)之访问文件的本质

Linux基础IO之访问文件的本质,文件描述符的本质(数组下标),c语言中的FILE中必定封装了文件描述符fd,文件描述符中0,1,2分别是标准输入0, 标准输出1, 标准错误2对应的物理设备一般是:键盘,显示器,显示器,对于该结论的验证,以及文件描述符的分配规则等

2025-04-09 19:30:00 301

原创 Linux基础IO(二)之文件系统调用

Linux基础IO之文件系统调用,Linux中常见的系统调用(open write read close lseek等),c语言的文集读写接口一定封装了系统调用接口,细谈打开文件open,关闭文件close,写入文件write,读取文件read,c语言文件接口调用的底层详解等

2025-04-09 15:07:55 662

原创 Linux基础IO(一)之回顾C语言文件接口

Linux基础IO之共识原理(文件=内容+属性,文件分为打开的文件与没有打开的文件,细谈打开的文件和没有被打开的文件),回顾c语言文件接口(访问磁盘、键盘、显示器等的过程都是IO),新建目录新建在哪里,修改文件工作目录等。打开文件的方式(读,写,追加等),C语言会默认打开三个输入输出流(标准输入流、标准输出流、标准错误)等内容。

2025-04-07 19:30:00 780

原创 Linux进程控制(五)之做一个简易的shell

制作一个简易的Shell(shell是操作系统的一层外壳程序,帮我们用户执行指令, 获取到指令后,交给操作系统,操作系统执行完后,把执行结果通过shell交给用户。shell大部分执行命令时,要创建子进程(fork)。shell/bash本身也是一个进程,执行指令的时候,本质就是自己创建子进程执行的。)制作Shell所用的函数、系统调用等预备知识,制作Shell的代码实现、运行结果及最后的结论等

2025-04-07 11:09:51 922

原创 Linux进程控制(四)之进程程序替换

Linux进程程序替换:概念、单进程版程序替换,替换的原理(代码和数据的替换),多进程版程序替换(数据代码写时拷贝),替换六大(七大)函数,函数的解释,小知识(表头中有程序入口的地址),命名理解(l,v,p,e),六大函数的代码体现,7大函数的关系等。

2025-03-22 21:00:00 1178

原创 Linux进程控制(三)之进程等待

Linux进程等待:概念(是什么),必要性(为什么),如何等待进程【等待进程的方法】(怎么做),僵尸进程-内存泄露,wait等待、waitpid等待回收僵尸进程,循环等待,waitpid的参数如何理解,获取子进程status,进程终止和退出码的原理,宏操作、进程等待的原理,进程阻塞等待、进程非阻塞等待,非阻塞轮询等。

2025-03-22 15:46:25 579

原创 Linux进程控制(二)之进程终止

Linux进程终止:进场退出的场景(三种),常见的退出方法(return,exit,_exit),main函数的返回值-退出码(0代表正确),获得退出码的方法,自己设计退出码体系,exit和_exit的区别及原理,缓冲区在哪里等。

2025-03-18 18:30:00 1790

原创 Linux进程控制(一)之进程创建

进程创建:fork函数的初识(创建子进程),fork函数的返回值(子进程返回值0,父进程返回值为子进程的pid),写时拷贝(原理),fork常规用法(父子进程执行一样的代码),fork调用失败的原因(进程数超过了限制)等

2025-03-18 12:42:01 696

原创 Linux进程概念(六)之程序地址空间

程序地址空间:研究背景,程序地址空间的回顾(分布、堆栈相对而生),进程地址空间(分页&&虚拟地址空间),回答历史核心问题(fork),地址空间究竟是什么,如何理解地址空间上的区域划分,进程概念进一步理解,为什么要有地址空间(意义),对页表的深层理解,批量化注释、去注释等。

2025-03-11 19:15:00 1125

原创 Linux进程概念(五)之环境变量

环境变量的基本概念,常见的环境变量:PATH,查看环境变量的方法,测试HOME,和环境变量相关的命令,命令行参数(本地变量&&内建命令)、环境变量的组织方式,通过代码获取环境变量,通过系统调用获取或者设置环境变量等。

2025-03-11 12:40:13 855

原创 Linux进程概念(四)之进程优先级

进程优先级:基本概念,优先级PRI和权限,优先级PRI vs nice值NI,调整进程优先级,查看优先级命令,位图与优先级,调度算法,其他概念:竞争性、独立性、并行、并发、进程切换and时间片、进程的上下文,切换上下文等。

2025-03-10 10:31:57 916

原创 Linux进程概念(三)之进程状态

操作系统进程状态:运行状态、阻塞状态、阻塞挂起状态等,Linux中的状态:R(running)运行,S(sleeping)阻塞,D(disk sleep),T(stopped),t(tracing stop),X(dead)死亡,Z(zombie)僵尸状态等,查看进程,孤儿进程等

2025-03-10 10:20:12 713

原创 Linux进程概念(二)

Linux进程、CPU、PCB结构体、task_struct结构体对象、先描述再组织、task_struct内容:标识符、状态、优先级、程序计数器、内存指针、上下文数据、io状态信息、记账信息,如何查看进程、getpid、getppid、fork和执行流、父子代码共享等。

2025-03-09 23:22:45 968

原创 Linux进程概念(一)

硬件、软件、冯诺依曼体系结构、硬件存储和效率、存储器、CPU、操作系统、外部设备、设计操作系统的目的、操作系统如何管理、系统调用和库函数调用,底层硬件-软件驱动程序-操作系统-系统调用接口等。

2025-03-09 23:07:46 905

原创 Linux环境基础开发工具的使用(三)

Linux项目自动化构建工具-make/makefile 依赖关系和依赖方法 makefile的自动化推导 使用git命令行 gitee github

2025-02-20 21:59:03 839 2

原创 Linux环境基础开发工具的使用(二)

Linux编译器-gcc/g++ 预处理 编译 汇编 链接(动静态链接) 函数库 Linux Linux调试器-gdb gdb命令

2025-02-20 21:43:28 1029

原创 Linux环境基础开发工具的使用(一)

Linux软件管理器yum、Linux编辑器vim、vim的三种模式切换、vim的基本概念、基本操作、命令集、简单的vim配置

2025-02-18 22:13:04 1015

原创 使用Linux创作第一个小程序--进度条

回车概念 \r换行概念 \n Linux项目 linux小程序 进度条

2025-02-18 22:04:35 304

原创 Linux用户/权限理解

Linux的用户权限、Linux文件权限、权限的理解~

2024-12-11 09:19:47 1321

原创 Linux基本指令

Linux基本指令

2024-12-09 12:32:36 865

原创 跳表(概念、代码实现、对比)

跳表、skiplist、原理、概念、与平衡搜索树和哈希表的对比

2024-11-24 16:32:55 892

原创 贪吃蛇(简易版~)

贪吃蛇(简易版)

2024-11-23 23:04:36 354 1

原创 扫雷(最简易版)

扫雷(最最最简易版~)

2024-11-22 08:09:37 310

原创 三子棋的实现

三子棋的实现

2024-11-21 22:39:39 264

原创 B树、B+树、B*树(原理、应用等)

B树、B+树、B*树等代码实现、操作、原理、应用

2024-11-21 14:39:22 1972

原创 B树(原理、代码实现、性能分析)

B树、搜索树、原理、代码实现

2024-11-20 08:40:58 1258

原创 图(三)最短路径(Dijkstra、Bellman-Ford、Floyd-Warshall算法)

最短路径、Dijkstra算法、Bellman-Ford算法、Floyd-Warshall算法、单源最短路径、多源最短路径

2024-11-19 14:42:22 1148

原创 图(二)最小生成树

最小生成树、kruskal、Prim算法

2024-11-18 20:27:26 601

原创 图(一)(概念、存储结构、遍历)

图的基本概念、存储结构、遍历方法等

2024-11-17 22:39:11 921

原创 函数模板、类模板~

【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误。

2024-11-13 09:07:49 832

原创 哈希原理、代码实现、应用 与 unoredered_set、unordered_map的实现代码

哈希、哈希表、哈希桶、散列表、闭散表、开散表、unordered_set、unordered_map

2024-11-12 14:55:02 1212

原创 set 、multiset、unordered_set 和 map 、multimap、unordered_map

set 、multiset、unordered_set 和 map 、multimap、unordered_map

2024-11-11 20:53:59 907

原创 栈和队列(原理、代码实现、例题)

栈和队列的原理、代码实现、例题

2024-11-10 12:25:29 606

原创 并查集(原理、实现、应用)

并查集、查找、合并、求根

2024-11-09 13:22:07 661

原创 二叉搜索树、AVL(平衡二叉查找树)、红黑树

二叉搜索树、AVL树、红黑树、平衡二叉查找树

2024-11-08 22:25:54 1263

原创 树(二叉树、堆、队列)【包含前序、中序、后序遍历】

树、二叉树、堆、队列

2024-11-07 20:31:02 1104

空空如也

空空如也

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

TA关注的人

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