linux
文章平均质量分 87
niu_sama
这个作者很懒,什么都没留下…
展开
-
Linux进程间通信【二】
管道通信本质是基于文件的,也就是说操作系统并没有为此做过多的设计工作,而system V IPC是操作系统特地设计的一种通信方式。但是不管怎么样,它们的本质都是一样的,都是在想尽办法让不同的进程看到同一份由操作系统提供的资源。system V共享内存和system V消息队列就类似于手机,用于沟通信息;system V信号量就类似于下棋比赛时用的棋钟,用于保证两个棋手之间的同步与互斥。原创 2024-04-10 17:13:42 · 742 阅读 · 1 评论 -
Linux进程间通信【一】
管道是Unix中最古老的进程间通信的形式。我们把从一个进程连接到另一个进程的一个数据流称为一个“管道”who | wc -l 查看当前服务器上的登录用户个数,其中,who 和 wc -l 是两个程序,运行起来后变成了两个进程,who进程通过标准输入将数据打入“管道”,wc进程再从“管道”中读取数据,完成了数据的传输。原创 2024-03-23 20:51:52 · 1026 阅读 · 0 评论 -
Linux 动态库和静态库 【详解】
动静态库的本质是可执行程序的“半成品”。就像这样,test1.c、test2.c、test3.c、以及main.c形成可执行文件,我们需要先得到各个文件的目标文件test1.o、test2.o、test3.o以及main.o,然后再将这写目标文件链接起来,最终形成一个可执行程序。原创 2024-03-10 14:39:39 · 794 阅读 · 0 评论 -
Linux基础IO【 详 解 】
磁盘通常被称为块设备,一般以扇区为单位,一个扇区的大小通常为512字节。我们若以大小为512G的磁盘为例,该磁盘就可被分为十亿多个扇区。计算机为了更好的管理磁盘,于是对磁盘进行了分区。磁盘分区就是使用分区编辑器在磁盘上划分几个逻辑部分,盘片一旦划分成数个分区,不同的目录与文件就可以存储进不同的分区,分区越多,就可以将文件的性质区分得越细,按照更为细分的性质,存储在不同的地方以管理文件,例如在Windows下磁盘一般被分为C盘和D盘两个区域。命令:ls /dev/vda* -l 查看磁盘分区信息。原创 2024-03-08 12:28:03 · 654 阅读 · 0 评论 -
Linux 模拟实现shell【简单实现】
我们知道shell是一个永不退出的程序,所以他应该是一个死循环,并且shell为了防止影响到自己,我们在命令行上输入的所有命令都是由shell的子进程来执行的,所以它应该要有创建子进程的相关函数,当然也会有进程替换的相关函数,因为我们直接创建子进程,父子进程是共享代码的,如果没有进程替换,shell根本无法让子进程执行特定的命令。原创 2024-02-29 20:06:05 · 601 阅读 · 0 评论 -
Linux进程控制【详解】
在linux中fork函数时非常重要的函数,它从已存在进程中创建一个新进程。新进程为子进程,而原进程为父进程。fork之后,父子进程代码共享:我们可以看到,Before只输出了一次,而After输出了两次。Before是由父进程打印的,而在之后调用的fork,After由子进程和父进程两个进程执行。fork之后,父进程和子进程谁先执行完全由调度器决定。原创 2024-02-18 00:33:08 · 907 阅读 · 0 评论 -
Linux进程概念【详解】
优先级实际上就是获取某种资源的先后顺序,而进程优先级实际上就是进程获取CPU资源分配的先后顺序,原创 2024-01-31 21:00:24 · 1038 阅读 · 0 评论 -
操作系统(Operator System) 【详解】
任何计算机系统都包含一个基本的程序集合,称为操作系统(OS)。简单来说,操作系统就是一款进行软硬件资源管理的软件。操作系统包括:1.内核(进程管理,内存管理,文件管理,驱动管理)2.其他程序(例如函数库,shell程序等等)对于计算机底层的硬件,肯定有一个软件来对这些硬件进行管理;eg:内存什么时候读取数据?什么时候刷新缓存区…这些都由软件来管理,而这个软件就是操作系统。但是操作系统肯定不能直接和底层硬件交互,eg:如果操作系统自己来完成键盘的读取操作,你的键盘读取方式改变了,操作系统那边就需要重原创 2024-01-22 13:43:43 · 363 阅读 · 0 评论 -
冯诺依曼体系结构【详解】
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此程序指令和数据的宽度相同。截至目前,我们所认识的计算机,都是有一个个的硬件组件组成:1.输入单元:包括键盘, 鼠标,扫描仪, 写板等2.中央处理器(CPU):含有运算器和控制器等3.输出单元:显示器,打印机等1.2.3.4.原创 2024-01-19 14:40:06 · 1319 阅读 · 1 评论 -
linux第一个小程序 --- 进度条【简洁】
结果:先输入hello world然后休眠三秒后结束当去掉’'\n“ 后,结果就变成了先休眠三秒,然后打印hello world后结束。该现象就证明了缓冲区的存在。当缓冲区中遇到’‘\n’'或者缓冲区被写满后才会被打印出来,在第二张图片里面,没有\n,所以hello world先被写入缓存区,然后休眠三秒后,直到程序运行结束才将hello world打印到显示器。原创 2024-01-18 12:49:48 · 1952 阅读 · 0 评论 -
Linux基础工具的使用(yum,vim,gcc,g++,gdb,make/makefile)【详解】
1.在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序。2.但是这样太麻烦了, 于是有些人把一些常用的软件提前编译好, 做成软件包(可以理解成windows上的安装程序)放在一个服务器上, 通过包管理器可以很方便的获取到这个编译好的软件包, 直接进行安装。3.软件包和软件包管理器, 就好比 “App” 和 “应用商店” 这样的关系。原创 2024-01-13 00:55:54 · 1505 阅读 · 0 评论 -
Linux中的权限问题【详解】
Windows和Linux的交互方式虽然不同,但其本质上却是一样,图形化界面和命令行界面都是为了让用户进行相关操作,而图形化界面和命令行界面就是我们所说的 " 外壳程序 "。Linux严格意义上来说是一个操作系统,我们称之为 "核心 (kernel) ",但我们一般用户不能直接使用kernel,而是通过kernel的 “外壳程序”,也就是所谓的Shell,来与 kernel 沟通。对目录来说,具有浏览该目录信息的权限。虽然目录被加上了粘滞位,但如果用户有该目录的可写权限,则不影响其在该目录下创建文件。原创 2023-12-10 16:50:38 · 1094 阅读 · 0 评论 -
linux常见命令 【详解】
上面说到 -f 是强制性删除,-r是递归式删除,这两个结合在一起rm -rf dirname就是递归式强制性删除,千万不要执行以下指令,因为在Linux当中没有类似回收站的东西也没有撤销删除的功能,删除指令一旦执行则是不可逆的。: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。2)-a 详细输出所有信息,依次为内核名称,主机名,内核版本号,内核版本,硬件名,处理器类型,硬件平台类型,操作系统名称。原创 2023-12-03 16:06:56 · 866 阅读 · 2 评论