
Linux操作系统
文章平均质量分 93
Linux系统编程。
清欢 Allen
暂停更新。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux 多线程( 进程VS线程 | 线程控制 )
为了对这些属性数据进行管理,OS采用了“先描述,再组织”的方式,该动态库中包含了一个个struct pthread结构体,其中包含了线程栈,上下文等数据,而线程ID(tid)便是动态库中每一个struct pthread结构体的首地址,进而CPU通过tid来找到对应的线程。joinable和分离是冲突的,一个线程不能既是joinable又是分离的,并且在常规线程分离的场景中,主线程一般用来创建新线程处理任务和回收资源,一般都是最后退出的。我们知道,全局变量,已初始化数据,未初始化数据等都是线程间共享的。原创 2023-09-16 20:52:34 · 1517 阅读 · 36 评论 -
Linux 多线程 ( 多线程概念 )
我们在以前所学习的进程知识中,一个进程由进程控制块(task_struct),进程地址空间( mm_struct ) ,页表,页表与进程地址空间,物理内存的映射为关系构成。每一个进程都有自己独有的进程地址空间和页表,对应的映射关系,所以我们在创建进程时需要耗费大量的时间,空间。但是,对于Linux系统,如果我们在创建一个进程后只创建task_struct,并且这些task_struct共享进程地址空间,页表等相关资源,图示如下。原创 2023-09-13 16:50:47 · 789 阅读 · 25 评论 -
Linux进程信号
信号是进程之间事件异步通知的一种方式,属于软中断。我们输入命令,在Shell下启动一个进程迎来循环打印一个字符串。sleep(1);return 0;我们可以使用kill -2 命令终止该进程。我们可以通过kill -l命令查看linux中定义的信号列表,其中,1 - 31号信号为普通信号,34 - 64号信号为实时信号。当然,我们可以使用 man 7 signal 查看各个信号的默认处理行为。原创 2023-08-31 11:58:50 · 2200 阅读 · 47 评论 -
Linux 进程间通信(IPC)
进程间通信(ipc), 指不同进程之间的信息传输或交换。原创 2023-08-22 16:34:47 · 893 阅读 · 2 评论 -
Linux中的动态库与静态库
我们在gcc 使用 -I -L 表明动态库的路径时,是对gcc编译器说的,当我们要运行加载程序的时候,此时已经生成了可执行程序,跟gcc没有任何关系,但是要运行时,进程需要通过->虚拟地址空间->页表映射去寻找动态库的位置,所以我们要对Linux系统表明动态库的位置.,静态库不需要将库的地址告诉操作系统是因为静态库在加载的时候已经将代码加载到内存中了,不需要再去与操作系统建立映射关系查找.与动态库的使用不同的是,我们使用gcc -I -L -l编译链接产生的可执行程序不可以直接运行.原创 2023-07-18 17:46:38 · 471 阅读 · 18 评论 -
Linux基础IO(三)
我们将块组分割为各个分组,并且写入相关的管理数据——>n个块组——> 整个分区就被写入了文件系统信息——>磁盘格式化。原创 2023-02-07 15:56:40 · 1011 阅读 · 2 评论 -
Linux基础IO(二)
本来是应该向stdout打印的数据,但是却都写入了log.txtr文件中,这个功能正好与输出重定向类似。原创 2022-11-13 21:31:43 · 1315 阅读 · 25 评论 -
Linux基础IO(一)
fopen函数中flags可以一次传递多个标志位,从而实现各种特定的功能。使用位操作来实现传递多个标志位:通过比特位的运算,传递不同的flags来实现不同的特定功能。总结:open函数形参flags中的含义便传递的选项无非就是位图的标志位,为了实现特定的功能从而将特定的标志位进行组合。原创 2022-11-09 21:14:10 · 1238 阅读 · 23 评论 -
进程控制(二)——minishell延续
经由上述操作,我们既排除了父进程调用系统命令putenv函数调用失败的问题,也排除了子进程执行进程替换后的因素和子进程是否能获取环境变量等问题。问题范围一步步减小。原创 2022-11-07 20:26:39 · 651 阅读 · 8 评论 -
Linux进程控制(一)
对于所有关于进程替换的函数中,多了字母便有了命令行参数传递的形式与功能不同。1:带v将命令行参数以指针数组的方式传递,最后只用传入这个指针数组的地址。2:带e的函数指可以将父进程的环境变量传给子进程。3:带p的指不用传递目标程序地址,通过环境变量找到目标程序。原创 2022-10-25 20:38:24 · 2586 阅读 · 23 评论 -
Linux基本指令
head -n text.c | tail - x (要拿的内容行数) 适用于取指定行数中间内容的文本内容;echo > 输出重定向:从文件开始,覆盖式的写入 (如果目标文件不存在就会创建这个文本,否则则直接进行访问输出)覆盖式的写入保存。(是内存级的文件,没有在磁盘上)。grep -E ^a 目标文件 找出目标文件以a为开头的扩展内容;more 将文本上的内容按指定行数打印出来(看下面的内容按回车,但看上面的不能上翻}原创 2022-09-14 19:04:17 · 350 阅读 · 0 评论 -
Linux进程概念
优先级实际上就是获取某种资源的先后顺序,而进程优先级就是指cpu资源分配的先后顺序。原创 2022-10-17 19:11:36 · 1952 阅读 · 31 评论 -
Linux权限
Linux权限原创 2022-09-17 10:46:12 · 862 阅读 · 0 评论 -
Linux编译链接and缓冲区
Linux编译链接and缓冲区原创 2022-09-18 15:47:27 · 454 阅读 · 0 评论 -
冯诺依曼体系
冯诺依曼体系具体讲解。原创 2022-09-24 20:47:25 · 436 阅读 · 1 评论