
Linux
文章平均质量分 95
介绍Linux的使用以及相关知识
XiaoCCCCCCCCCCCCCCC
这个作者很懒,什么都没留下…
展开
-
Linux的进程信号 -- 信号产生,信号保存,信号捕捉,硬件中断,内核态和用户态,可重入函数,volatile,SIGCHLD
信号是进程之间事件异步通知的⼀种方式,属于软中断。基本结论:1. 进程在信号还没有产生的时候,早就知道信号该如何处理了。2. 信号的处理不是立即进行处理的,而是在合适的时候进行处理的。3. 操作系统在被设计的时候,就早已经内置了进程对于信号的识别和处理方式。4. 产生信号的信号源是非常多的。原创 2025-03-25 15:15:52 · 1004 阅读 · 0 评论 -
进程间通信(Inter-Process Communication,IPC) -- 匿名管道,命名管道,System V,共享内存,消息队列,信号量
1.:⼀个进程需要将它的数据发送给另⼀个进程。2.:多个进程之间共享同样的资源。3.:⼀个进程需要向另⼀个或⼀组进程发送消息,通知它(它们)发⽣了某种事件(如进程终⽌时要通知⽗进程)。4.:有些进程希望完全控制另⼀个进程的执⾏(如Debug进程),此时控制进程希望能够拦截另⼀个进程的所有陷⼊和异常,并能够及时知道它的状态改变。原创 2025-03-13 14:43:15 · 939 阅读 · 0 评论 -
C/C++动静态库的制作与原理 -- 静态库,动态库,目标文件,ELF文件,动态链接,静态链接
库是写好的现有的,成熟的,可以复用的代码。现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始。本质上来说库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。库有两种:静态库:.a文件 [Linux],.lib文件 [windows]动态库:.so文件 [Linux],.dll文件 [windows]1. 静态链接提⾼了程序的模块化⽔平。对于⼀个⼤的项⽬,不同的⼈可以独⽴地测试和开发⾃⼰的模块。原创 2025-02-26 14:39:49 · 999 阅读 · 0 评论 -
Ext系列文件系统 -- 磁盘结构,磁盘分区,inode,ext文件系统,软硬链接
一个进程PCB中,fs_struct中存储根目录和当前文件的当前目录的信息,file_struct中有一个文件描述符表,其中是该进程打开的文件,文件描述符表中的指针指向每个被打开文件的files结构体,在files结构体中有存储该文件的操作方式结构体files_operations,用f_op指针指向。dentry_operations和inode_operations同理。原创 2025-02-20 16:41:18 · 843 阅读 · 0 评论 -
Linux中的基础IO -- C语言文件操作,系统级文件操作(open, write, read),文件描述符,重定向,dup2,缓冲区机制
pathname:要打开或创建的目标文件路径。flags:打开文件时,可以传⼊多个参数选项,这里就是使用位图的方式来传递标志位,⽤下⾯的⼀个或者多个常量进⾏“或”运算,构成flags。O_RDONLY:只读打开。O_WRONLY:只写打开。O_RDWR:读,写打开。这三个常量,必须指定⼀个且只能指定⼀个。O_CREAT:若⽂件不存在,则创建它。需要使⽤mode选项,来指明新⽂件的访问权限。O_APPEND:追加写。mode:指定创建文件时的默认权限。原创 2025-02-13 16:47:58 · 1068 阅读 · 0 评论 -
进程控制 -- 进程创建(fork),进程终止(exit, _exit),进程等待(wait, waitpid),进程程序替换(exec*系列函数)
execl函数,需要传递程序的路径,并且使用列表形式传递命令行参数。int main()printf("我的程序要运行了!\n");sleep(1);exit(1);printf("我的程序运行完毕!\n");return 0;原创 2025-01-04 12:46:46 · 590 阅读 · 0 评论 -
虚拟地址空间 -- 虚拟地址,虚拟内存管理
虚拟地址空间本质就是一个结构体对象,名为mm_struct(内存描述符),描述Linux下进程地址空间的所有信息。每个进程只有一个mm_struct结构,在每个进程的task_struct结构中,有一个指向该进程mm_struct的指针。mm_struct结构体中存储的是对进程地址空间中代码区、堆区、栈区等每个区域进行区域划分的信息,存储的是每个区域的开始位置和结束位置。原创 2024-12-22 23:09:01 · 809 阅读 · 0 评论 -
Linux系统中的环境变量 --命令行参数,PATH,通过代码获取环境变量,本地变量
1. 将自己写的二进制程序拷贝到环境变量PATH中存在的目录下,但是不推荐这样,因为PATH环境变量中默认存在的目录都是与系统配置相关的目录,如果将自己的程序拷贝到这些目录中,可能会污染系统指令的环境等。当执行 cd ~ 为什么会直接转到 /home/csq 中,因为在执行这条命令时,把 ~ 替换为环境变量 /HOME 中存储的目录,所以直接就跳转到 /home/csq 中了。SHELL:当前Shell,代表的是使用哪个版本的Shell,它的值通常是/bin/bash这个目录。原创 2024-12-19 21:58:46 · 644 阅读 · 0 评论 -
Linux系统中进程的概念 -- 冯诺依曼体系结构,操作系统,进程概念,查看进程,进程状态,僵尸进程,孤儿进程,进程优先级,进程切换,进程调度
我们常⻅的计算机,如笔记本。我们不常⻅的计算机,如服务器,目前,我们所认识的计算机都是由一个个的硬件组成,包括如下:包括键盘, ⿏标,扫描仪, 写板,网卡,磁盘(外存)等。含有和等。显⽰器,打印机,磁盘,网卡等。从硬件的角度上来理解,用户1用qq发送一条消息给用户2。本质上就是两台冯诺依曼体系结构的计算机进行数据的交互,具体过程如下:(1)首先用户1和用户2都要启动qq,本质是将qq这个可执行程序加载到内存中。原创 2024-12-14 12:51:10 · 1131 阅读 · 0 评论 -
Linux环境下的基础开发工具 -- 包管理器,vim,gcc/g++,make/makefile,git,gdb/cgdb
在Linux下安装软件一个通常的办法是下载到程序的源代码,并进行编译,得到可执行程序。但是这样太麻烦了,于是有些人把一些常用的软件提前编译好,做成软件包(可以理解成windows上的安装程序) 放在一个服务器上,通过包管理器可以很方便的获取到这个编译好的软件包,直接进行安装。软件包和软件包管理器就好比"APP"和"应用商店"这样的关系。yum是Linux下非常常用的一种包管理器。主要应用在Fedora,RedHat,CentOS等发行版上。apt/apt-get主要应用在Ubuntu上。原创 2024-11-21 23:23:24 · 1127 阅读 · 0 评论 -
Linux权限的概念以及Shell命令的运行原理
上述例子表面csq作为xiaoc.txt该文件的拥有者以及所属组成员,但是该文件的拥有者没有w权限,使用csq用户不能对该文件进行写操作,因为当前csq已经被匹配成该文件的拥有者了,拥有者没有w权限,虽然csq也是该文件所属组的成员,但是身份确认只确认一次,确认为拥有者就不会再确认为所属组成员了。umask的意义:默认权限是OS自主决定的,无法在创建前进行修改 -- umask使新建文件的预设权限可配置,是可以灵活满足需要的一种表现。凡是在umask中出现的权限,就是不希望在预设权限中出现的权限。原创 2024-10-28 14:10:12 · 1031 阅读 · 0 评论 -
Linux基本命令
常用选项:-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖15. cat命令语法:cat [选项] [文件]功能: 查看目标文件的内容,适合看短文件。常见选项:-b 对非空输出行编号-n 对输出的所有行编号-s 不输出多行空行。原创 2024-10-25 18:57:22 · 997 阅读 · 0 评论