Linux
文章平均质量分 66
Er_meiyao
这个作者很懒,什么都没留下…
展开
-
进程间通信
管道:管道的概念:管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质:其本质是一个伪文件(实为内核缓冲区)由两个文件描述符引用,一个表示读端,一个表示写端。规定数据从管道的写端流入管道,从读端流出。管道的原理: 管道实为内核使用环形队列机制,借助内核缓冲区(4k)实现。管道的局限性:① 数据自己读不能自己写。② 数据一旦被读走,便不在管道中存在,不可反复读取。③ 由于管道采用半双工通信方式。因此,数据只能在一个方向上原创 2020-09-04 14:54:00 · 191 阅读 · 0 评论 -
使用指定的glibc
在当前测试程序路径下执行:可以先ldd 看看libgcc_s.so.1 和libstdc++.so.6 用到那个路径下的,在当前路径下创建软链接到特定动态库:ln -s /lib64/libgcc_s-4.8.5-20150702.so.1 libgcc_s.so.1ln -s /lib64/libstdc++.so.6.0.19 libstdc++.so.6执行程序:LD_PRELOAD=/data/glibc-2.28/lib/libc.so.6 LD_LIBRARY_PATH=./ /d原创 2020-08-03 20:22:57 · 3319 阅读 · 0 评论 -
知识图谱---后台架构技术
(Java)后端架构师技术图谱https://github.com/ermeiyao/architect-awesome(c++)语言特性C++ primeThe C++Standard LibraryEffective modern c++Effective c++More Effective c++Effective STL编译构建CMAKEbladegcc/g++《程序员的自我修养—链接、装载与库》并发编程Linux 多线程服务端编程:使用 muduo C+原创 2020-08-01 16:50:58 · 534 阅读 · 0 评论 -
glibc 2.17 引发的‘‘内存泄漏现象‘‘
前几天在定位一个很奇怪的"内存泄漏"问题。我们的服务在arm下面跑到好好的,但是在x86下面的环境下面内存运行时间久了就上涨。用vargrind工具检查内存,也没发现什么问题,说明我们的代码方面应该试ok的。对比一下两套环境的不同,发现libc和libstdc++的版本不同,所以就怀疑应该试这版本上的差异导致内存管理上的不同表现。经过测试数据的对比,如果将libc 升级到高版本 比如2.28 运行期间内存表现就会很稳定。原因在于,高版本的libc 的 freee 会定期调用 systrim ,将内存还给原创 2020-08-01 16:34:05 · 1107 阅读 · 0 评论 -
同步IO和异步IO
同步IO和异步IO五种io模型:1.1 阻塞IO1.2 非阻塞IO模型1.3 IO复用模型1.4 信号驱动IO模型1.5 异步IO五种io模型:[1] blocking IO - 阻塞IO[2] nonblocking IO - 非阻塞IO[3] IO multiplexing - IO多路复用[4] signal driven IO - 信号驱动IO[5] asynchronous IO - 异步IO前面四种都是同步io.一般情况下,一次网络IO读操作会涉及两个系统对象:(1) 用户进程(原创 2020-07-17 18:06:04 · 520 阅读 · 0 评论 -
ssh 免密配置
ssh 免密配置Linux 建议使用自己的个人账号。如果本地已经有id_rsa.pub,可以直接使用,没有的话用git bash 执行:ssh-keygen -t rsa 生成一个, 然后上传id_rsa.pub到服务器,并拷贝到~/.ssh/authorized_keys后面执行:cat id_rsa.pub >> ~/.ssh/authorized_keys没有auth...原创 2020-01-21 14:44:24 · 1109 阅读 · 1 评论 -
Linux内存管理相关
首先,了解几个概念。BSS段:BSS段(bss segment)通常是指用来存放程序中未初始化的全局变量的一块内存区域。BSS是英文Block Started by Symbol的简称。BSS段属于静态内存分配。数据段:数据段(data segment)通常是指用来存放程序中已初始化的全局变量的一块内存区域。数据段属于静态内存分配。代码段:代码段(code segment/text segment)原创 2017-04-17 18:53:53 · 258 阅读 · 0 评论