Linux--系统
笔记
wanWan呐
code changes the world
hello world!!!
展开
-
线程(线程控制、线程安全(同步与互斥实现)、单例模式)
线程介绍线程的概念linux 下的线程是一个轻量级进程,是通过进程pcb描述实现的,并且同一个线程组(进程)中的线程共用同一个虚拟地址空间,所以 linux 下的传统pcb更加轻量化,因此叫做轻量级进程。线程是CPU调度的基本单位,进程是系统资源分配的基本单位。进程是一个线程组。线程的优缺点...原创 2020-03-14 17:45:26 · 507 阅读 · 0 评论 -
进程间通信(管道、共享内存、消息队列、信号量)
进程间通信Linux环境下,进程地址空间相互独立,每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到,所以进程和进程之间不能相互访问,要交换数据必须通过内核,在内核中开辟一块缓冲区,进程1把数据从用户空间考到内核缓存区,进程2再内核缓存区把数据读走,内核提供这种机制称为进程间通信。通信方式有:管道、共享内存、消息对列、信号量等管道什么是管道呢?我们把从一个进...原创 2020-03-06 20:50:02 · 586 阅读 · 0 评论 -
基础IO(std_io、sys_io、缓冲区、文件描述符、文件流指针、重定向、文件系统、硬软链接、动态库与静态库)
基础 IO标准库 io 接口(fopen、fclose、fwrite、fread、fseek)PS:标准库IO接口的操作句柄是:FILE*(文件流指针)fopen : FILE *fopen(const char *path, const char *mode);filename - - - 这是 C 字符串,包含了要打开的文件名称。mode- - - 这是 C 字符串,包含了...原创 2020-02-29 22:08:52 · 1016 阅读 · 0 评论 -
实现一个简单的mini_shell
创建一个mini_shell的过程获取标准输入。对数据进行解析,得到要运行的的所有命令参数信息。创建子进程,进行程序替换,让子进程运行。父进程进行进程等待 。代码实现: 1 //1.获取标准输入 2 //2.对数据进行解析-》得到要运行的的所有命令参数信息 3 //[ ls -l ] ->[ls][-l] 4 //3.创建子进程,进行程...原创 2020-02-22 01:15:20 · 314 阅读 · 0 评论 -
linux进程控制(进程创建、终止、替换)
进程创建( fork 与 vfork)pid_t fork (void):详细介绍forkfork函数是一个非常重要的函数,它从已存在进程中创建一个新进程,新进程为子进程,而原进程为父进程。创建子进程用到写时拷贝实现。子进程拷贝父进程PCB中的数据(虚拟地址空间,页表),子进程是父进程的一个复制品。pid_t vfork(void):详细介绍vfork从一个已存在的进程中创建一个新...原创 2020-02-16 01:05:16 · 546 阅读 · 0 评论 -
详解wait/waitpid的参数:status
关于 wait 与 waitpid 中的参数:status用到的代码: 1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<unistd.h> 4 #include<sys/wait.h> 5 int main() 6 { 7 pid_t pid = fork();...原创 2020-02-14 19:39:03 · 2618 阅读 · 0 评论 -
linux进程地址空间
进程地址空间进程的地址空间是进程可用于寻址内存的地址集合, 包括进程的物理地址空间和虚拟地址空间。操作系统有虚拟内存和物理内存的概念, 但是在很久之前, 操作系统只有物理内存的概念, 程序寻址都是用的物理地址, 寻址空间的大小取决于 cpu 地址线条数, 在 32 位的操作系统上, 寻址的范围是固定的(最多 4G).。也就是说, 每次运行一个程序, 都会给进程分配 4G 的物理内存, 这样就带来...原创 2020-02-13 15:43:39 · 311 阅读 · 0 评论 -
Linux进程一【进程概念、进程状态、进程优先级、环境变量】
冯诺依曼体系结构计算机都是由一个个硬件组件组成:输入设备:键盘、鼠标等输出设备:显示器、打印机存储器:内存中央处理器(CPU):运算器、控制器组成ps:不考虑缓存情况,这里的CPU能且只能对内存进行读写,不能访问外设(输入或输出设备) ;外设(输入或输出设备)要输入或者输出数据,也只能写入内存或者从内存中读取;所有设备都只能直接和内存打交道。硬件结构决定软件行为,所有设备都是围绕存...原创 2020-02-13 10:59:05 · 554 阅读 · 0 评论 -
一个简单的进度条小程序
回车(\n)概念数据换行,针对标准输出的时候,还有刷新缓冲区#include <stdio.h> #include<unistd.h>int main() { printf("hello world!\n"); sleep(3); return 0; } //中端显示 hello world,三秒后程序执行结束#incl...原创 2020-02-07 18:06:55 · 952 阅读 · 0 评论 -
项目构建工具:make/Makefile
Makefile是一个普通的文本文件,文件中记录的是一个项目的所有构建规则make是一个解释程序,在执行 make 命令的时候,会到当前目录里下寻找 Makefile 文件,然后对 Makefile 中记录的构建规则进行逐行解释执行,最终完成整个项目的构建。Makefile 编写规则目标对象:依赖对象[Tab]为了生成目标对象所执行的命令语句预定义变量$^ : 所有...原创 2020-02-06 21:07:28 · 456 阅读 · 0 评论 -
Linux 环境开发工具
Linux软件包管理器—yum查看软件包通过 yum list 命令可以罗列出当前一共有哪些软件包:yun list由于包的数量非常多,可以用 grep 命令进行筛选:yun list | grep lrzsz筛选之后: ①:软件包名称: 主版本号.次版本号.源程序发行号-软件包的发行号.主机平台.cpu架构②:“x86_64” 后缀表示64位系统的安装包, “i686...原创 2020-02-06 00:41:31 · 387 阅读 · 0 评论 -
Linux权限操作
Linux下有两种用户:超级用户(root)、普通用户。超级用户:可以再linux系统下做任何事情,不受限制 。 超级用户的命令提示符是“#”。普通用户:在linux下做有限的事情。普通用户的命令提示符是“$”。切换命令:su <用户名>ps:要从普通用户user切换到root用户则使用 su root(root可以省略),此时系统会提示输入root用户的口令。为了方便...原创 2020-01-31 23:27:10 · 324 阅读 · 0 评论 -
Linux基础指令
目录相关指令ls :显示目标列表,ls命令的输出信息可以进行彩色加亮显示,以分区不同类型的文件。-a:显示所有档案及目录(ls内定将档案名或目录名称为“.”的视为隐藏,不会列出);-l:以长格式显示目录下的内容列表。输出的信息从左到右依次包括文件名,文件类型(d:目录类型文件, -:普通文件,l:符号连接文件,c:字符设备文件,b:块式文件,p:管道文件,s:套接字文件 )、权限模式、硬连...原创 2020-01-28 22:17:56 · 312 阅读 · 0 评论