Linux
文章平均质量分 95
Linux
终余余
这个作者很懒,什么都没留下…
展开
-
Linux进程间通信
管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”统计我们当前使用云服务器上的登录用户个数who命令用于查看当前云服务器的登录用户(一行显示一个用户),wc -l用于统计当前的行数。原创 2023-09-11 13:40:00 · 175 阅读 · 0 评论 -
Linux软硬链接/动静态库
inode编号,其实就是一个“指针”的概念,本质就是该文件inode属性中的一个计数器(count),标识有几个文件名和我的inode建立了映射关系。总而言之,就是有几个文件名指向我的inode(文件本身)。为什么创建普通文件,硬链接数默认是1?因为普通文件名本身就和自己的inode存在映射关系,只有1个。为什么目录硬链接数是2?除了自身之外,目录中有一个隐藏的“·”指向当前目录。原创 2023-08-24 13:08:03 · 479 阅读 · 1 评论 -
Linux缓冲区/磁盘/inode
解耦合是指将两个或多个系统、组件或模块之间的紧密关联度降低,使它们能够独立演进,互不影响。在软件开发中,解耦合是一种设计原则,旨在减少系统各组件之间的依赖关系,从而提高系统的可维护性、灵活性和扩展性。解耦合的目的是降低系统中各组件之间的相互依赖程度,使其能够独立进行修改、更新或替换,而不会对其他组件产生影响。当系统中的组件高度耦合时,对一个组件的修改可能会引发对其他组件的连锁反应,导致系统的不稳定和难以维护。而解耦合的设计可以使各组件更加独立,降低系统的复杂性,提高系统的灵活性和可扩展性。原创 2023-08-22 15:57:20 · 287 阅读 · 1 评论 -
Linux基础IO
/用于处理文件已经存在的情况//用于处理文件比存在的情况pathname: 要打开或创建的目标文件flags: 打开文件时,可以传入多个参数选项,用下面的一个或者多个常量进行“或”运算,构成flags。//宏标记位参数:O_RDONLY: 只读打开 O_WRONLY: 只写打开 O_RDWR : 读,写打开//这三个常量,必须指定一个且只能指定一个O_CREAT : 若文件不存在,则创建它。需要使用mode选项,来指明新文件的访问权限。原创 2023-08-17 15:28:56 · 125 阅读 · 1 评论 -
Linux进程控制(进程创建、进程终止、进程等待、进程替换)
变成z状态之后呢,然后20秒过后,父进程一醒来,父进程会立马执行这里的位置,它就会把对应的子进程回收掉,所以我们就又会看到z状态就变没了。那么成功的时候,我也可以看一下它等待成功时的返回值。是因为子进程的内核数据结构基本没变,只是重新建立了一下虚拟到物理地址之间的一种映射关系,那么它的内核对应的数据结构没有发生任何变化,包括子进程的pid都不变,子进程的pid不变,那么也就意味着它压根就没有创建新的子进程或者新的进程,它依旧是老的进程,只不过让新的程序执行了不同的让新的进程执行了不同的程序,这就叫做。原创 2023-08-09 10:43:19 · 489 阅读 · 1 评论 -
Linux进程地址空间
内存会分为几个区域:栈区、堆区、全局/静态区、代码区、字符常量区 …如下空间布局图,请问这是物理内存吗?—— 不是,是进程地址空间。进程地址空间不是物理内存!进程地址空间,会在进程的整个生命周期内一直存在,直到进程退出!这也就解释了为什么全局/静态变量的生命周期是整个程序,因为全局/静态变量是随着进程一直存在的。原创 2023-08-03 14:20:00 · 52 阅读 · 0 评论 -
Linux中的环境变量
getenv函数同样可以来获取环境变量的内容,如果想要获取某一个环境变量的内容的话应该使用getenv函数,而env数组是给子进程使用的子进程是一个笼统的概念,我们可能会在子进程中使用各种各样的功能,所以环境变量的每个值可能都要得到,所以就会有这个数组方便子进程使用环境变量,我们之前说环境变量具有全局属性在任意的进程中都能使用,它之所以有全局属性的原因是在创建子进程的时候会继承环境变量,那子进程是如何继承环境变量的呢?这样定制后,就可以避免频繁的启动位于shell搜索的路径之外的程序了。原创 2023-07-29 21:29:19 · 4753 阅读 · 0 评论 -
Linux进程概念(二)
僵尸进程的退出结果会写在PCB中,一个进程退出了,它的代码和数据会被释放,但是它的PCB是不会被释放,如果父进程不回收这块资源,那么会造成系统的内存泄漏。在该状态下的进程,无法被操作系统杀掉,只能通过断电或者进程自己醒来的方式中断深度睡眠状态。硬件的速度较慢,但是大量的进程需要访问硬件,势必会产生较多的阻塞进程,这些阻塞进程的代码和数据在短期内不会被执行,如果全部存在于内存中将会导致内存占用。因为进程在退出的时候,不会立即释放该进程对应的资源,会保存一段时间,让父进程或操作系统来读取子进程的返回代码。原创 2023-07-24 21:53:46 · 62 阅读 · 0 评论 -
Linux进程概念(一)
fork调用的一个奇妙之处就是它仅仅被调用一次,却能够返回两次,它可能有三种不同的返回值: 1)在父进程中,fork返回新创建子进程的进程ID;fork只拷贝下一个要执行的代码到新的进程。其实就相当于链表,进程形成了链表,父进程的fork函数返回的值指向子进程的进程id, 因为子进程没有子进程,所以其fork函数返回的值为0 .系统调用在使用上,功能比较基础,对用户的要求相对也比较高,所以,有心的开发者可以对部分系统调用进行适度封装,从而形成库,有了库,就很有利于更上层用户或者开发者进行二次开发。原创 2023-07-18 18:55:35 · 95 阅读 · 1 评论 -
Linux权限
user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群 体(group)-c : 若该档案拥有者确实已经更改,才显示其更改动作-f : 若该档案拥有者无法被更改也不要显示错误讯息-h : 只对于连结 (link)进行变更,而非该 link 真正指向的档案-v : 显示拥有者变更的详细资料-R : 对目前目录下的所有档案与子目录进行相同的拥有者 变更(即以递回的方式逐个变更)–help : 显示辅助说明–version : 显示版本。文件内容,是否可以查看,由文件自己的权限决定)原创 2023-07-04 19:34:29 · 54 阅读 · 0 评论