- 博客(6)
- 收藏
- 关注
原创 Linux 进程通信 -- 管道
1、管道简介管道是Linux提供的进程间通信机制之一,允许通信进程之间通过文件读写的方式单向传递数据。内核实现的文件系统pipefs,会在内核为每个管道文件分配一个的环形缓存区,以支持读/写操作。进程可以使用两种类型的管道进行通信:匿名管道:只支持在父子进程、兄弟进程之间通信。一般使用方式为,父进程调用pipe()创建匿名管道,fork()的子进程默认继承父进程打开的管道 命名管道:支持任意的进程通过管道通信。进程通信前,需要先创建fifo类型特殊的文件,然后读写进程分别打开该文件进行读写2、
2022-04-17 18:55:54 1744
原创 PKI 体系
PKI简介公开密钥基础建设(英语:Public Key Infrastructure,缩写:PKI),又称公开密钥基础架构、公钥基础建设、公钥基础设施、公开密码匙基础建设或公钥基础架构,是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字证书。(PKI体系(一)-PKI介绍 - 简书)概念对称加密特点:加解密使用相同密钥,加解密过程速度快 算法:DES、3DES、AES非对称加密特点:加解密各用密钥对其中之一,密钥对公开的部
2022-02-09 14:00:00 1200
原创 Linux Mount Namespace分析
Mount Namepsace简介Mount Namepsace是Linux提供的进程文件隔离机制,通过隔离挂载点的方式,使得不同Namespace下的进程拥有不同的文件系统视图。下面将从设备挂载的例子出发,介绍Linux文件挂载(Mount)、Linux Mount Namespace等技术的实现机制。磁盘设备挂载示例使用unshare命令,在不同的namespace下的shell中执行挂载动作,观察可以发现:可以在一个挂载点重复执行挂载 挂载点之前的文件被“隐藏” 挂载点可被子.
2022-02-07 16:00:39 1228
原创 Linux so加载顺序
背景使用gcc8.2编译a.out,机器安装默认的版本为gcc3.4。使用ldd打印so依赖列表,此时libstdc++.so位于/usr/lib64目录下打印程序运行时加载的so库列表,显示加载的是/home/xxx/gcc-8.2/lib/目录下的libstdc++.so使用默认版本编译的程序,运行时加载的时/usr/lib64目录下的libstdc++库此时的环境变量LD_LIBRARY_PATH未设值分析()对比两个进程ldd的结果,可以看到ld-linu
2022-02-07 10:58:10 1901
原创 Unix 编程 -- 静态链接 & 重定位
静态链接·重定位静态链接过程会将汇编器生成的可重定位文件(*.o)合并到一个可执行文件中。当链接器完成符号解析后,就会执行重定位过程。重定位过程分为两步:重定位节及符号定义。相同类型的节会被聚合到可执行文件的同一类型的节中,如下图的步骤一。符号解析过程已经确定了符号被定义的模块及节位置,所以重定位节后,每个符号的运行时地址也已经确定了。 重定位节中的符号引用。如下图的步骤二,在编译mai...
2019-08-11 18:00:27 569 1
原创 Linux shell -- find 与 xargs命令
find / -name "*.ini" -exec file {} \;find / -name "*.ini" | xargs -i file {} find ./ -name '*.txt' -type f -print -exec -maxdepth 2 command {} \;-name : 匹配的文件名-maxdepth -mindepth : 指定搜索层上下限...
2018-03-15 11:19:03 428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人