- 博客(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
原创 图(三)最短路径(Dijkstra、Bellman-Ford、Floyd-Warshall算法)
最短路径、Dijkstra算法、Bellman-Ford算法、Floyd-Warshall算法、单源最短路径、多源最短路径
2024-11-19 14:42:22
1148
原创 函数模板、类模板~
【优点】模板复用了代码,节省资源,更快的迭代开发,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
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人