Linux
文章平均质量分 91
tf_apologize
不要那么孤独,请相信,这世界上真的有人在过着你想要的生活,愿你我带着最微薄的行李和最丰盛的自己在世间流浪。
展开
-
Linux系统性能分析——iostat
I/O子系统的监视器——iostat一、iostat是什么?iostat是I/O statistics(输入/输出统计)的缩写,用来动态监视系统的磁盘操作活动。二、iostat能做什么?通过iostat方便查看CPU、网卡、tty设备、磁盘、CD-ROM 等等设备的活动情况, 负载信息。三、iostat怎么使用?用法: iostat [ 选项 ] [ <时间间隔> ...原创 2020-02-03 16:13:45 · 276 阅读 · 0 评论 -
Linux系统实用工具——ldd
看你缺点啥——ldd一、ldd是什么?ldd(list dynamic dependencies),列出动态库依赖关系。 ldd不是个可执行程式,而只是个shell脚本。 ldd显示可执行模块的dependency的工作原理,其实质是通过ld-linux.so(elf动态库的装载器)来实现的。ld-linux.so模块会先于executable模块程式工作,并获得控制权,因此当上述的那些环境...原创 2020-02-01 11:55:59 · 2434 阅读 · 0 评论 -
free引发的cache、buffer、swap讨论
free引发的cache、buffer、swap讨论$ free total used free shared buffers cachedMem: 8062624 7910056 152568 0 5232 964468-/+ buffers/cache:...原创 2020-01-19 16:34:30 · 422 阅读 · 0 评论 -
Linux系统实用工具——lsof
眼里只有文件——lsof一、lsof是什么?lsof(list opened files),列举系统中已经被打开的文件。在 linux 系统中,一切皆文件。通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件。所以 lsof 命令不仅可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。二、lsof能做什么?查看指定端口或端口范围被哪些进程占用,查看...原创 2020-01-17 21:47:23 · 467 阅读 · 0 评论 -
Linux系统性能分析——sar
寻找系统瓶颈的利器——sar一、sar是什么?sar是System Activity Reporter(系统活动情况报告)的缩写。sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行状态。它的特点是可以连续对系统取样,获得大量的取样数据;取样数据和分析的结果都可以存入文件,所需的负载很小。sar是目前Linux上最为全面的系统性能分析工具之一,可以从14个大方面对...原创 2020-01-16 17:07:51 · 508 阅读 · 0 评论 -
线程间同步机制(一)
我们在开发的过程中,经常遇到多个线程访问同一资源的情况,也就是所谓的临界资源。同一个资源对多个线程同时可见,如果均只是读访问,那没毛病,关键是实际生产中读写是一起的。那么问题来了,一个线程在写数据,另外一个线程在读数据,那么读线程读取的很可能是乱码,即使运气好不是乱码,也不是想要的数据,读取的都是脏数据(这里盗用一下数据库术语)。更糟糕的是,多个线程同时在写数据,你想象一下,那将是多么混乱,数据将原创 2017-04-21 20:22:41 · 533 阅读 · 0 评论 -
I/O多路复用机制(一)
在实际的开发中,我们经常会遇到这样的场景,我们需要接受多个端口的数据、多个终端的数据抑或是多个文件描述符对应的数据。那么,遇到这样的问题,你在程序中该怎么做呢?通常的做法,在程序中对数据交互的描述符进行轮询。那么问题来了,轮询的时间设置为多少呢?设置的太短,可以保证处理性能和速度,但是CPU的使用率太高,一旦处理的描述符数量多了起来,CPU可能就扛不住了。设置的时间太长,描述符处理的时间片太短,处原创 2017-04-26 17:45:21 · 1439 阅读 · 0 评论 -
I/O多路复用机制(二)
在实际的开发中,我们经常会遇到这样的场景,我们需要接受多个端口的数据、多个终端的数据抑或是多个文件描述符对应的数据。那么,遇到这样的问题,你在程序中该怎么做呢?通常的做法,在程序中对数据交互的描述符进行轮询。那么问题来了,轮询的时间设置为多少呢?设置的太短,可以保证处理性能和速度,但是CPU的使用率太高,一旦处理的描述符数量多了起来,CPU可能就扛不住了。设置的时间太长,描述符处理的时间片太短,处原创 2017-04-27 10:23:48 · 619 阅读 · 0 评论 -
I/O多路复用机制(三)
在实际的开发中,我们经常会遇到这样的场景,我们需要接受多个端口的数据、多个终端的数据抑或是多个文件描述符对应的数据。那么,遇到这样的问题,你在程序中该怎么做呢?通常的做法,在程序中对数据交互的描述符进行轮询。那么问题来了,轮询的时间设置为多少呢?设置的太短,可以保证处理性能和速度,但是CPU的使用率太高,一旦处理的描述符数量多了起来,CPU可能就扛不住了。设置的时间太长,描述符处理的时间片太短,处原创 2017-04-27 10:33:14 · 451 阅读 · 0 评论 -
进程间通信方式总结——共享内存
Linux/Unix系统IPC是各种进程间通信方式的统称,但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open Group(X/Open)标准化的推进呵护影响的扩大,情况虽已得到改善,但差别仍然存在。一般来说,Linux/Unix常见的进程间通信方式有:管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进原创 2017-04-16 11:36:59 · 1826 阅读 · 0 评论 -
进程间通信方式总结——消息队列
Linux/Unix系统IPC是各种进程间通信方式的统称,但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open Group(X/Open)标准化的推进呵护影响的扩大,情况虽已得到改善,但差别仍然存在。一般来说,Linux/Unix常见的进程间通信方式有:管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进原创 2017-04-16 11:52:25 · 6375 阅读 · 0 评论 -
select poll epoll
在面试的过程中,经常会被问道I/O复用模型有哪些?它们的区别是什么?你拿它们做过什么项目?…… 如果你连I/O复用模型都不知道,那么后面的问题也就不会被问到了,你这场面试已经岌岌可危了,至少在Linux方面公司是不会考虑你了。当然,如果你在其他方面特别突出,那还是可以挽回的。不要紧张,看完这篇文章后回去编写程序测试一下就会了。记得一定要编写代码哦,只知道理论知识是不行的,面试官原创 2016-11-14 18:41:21 · 558 阅读 · 0 评论 -
Vim使用总结
vim是高级版的vi,vim不但可以用不同的颜色显示文字内容,还能够进行诸如shell脚本,C等程序编辑功能,你可以将vim视为一种程序编辑器。在vi里面,【tab】和【space】所得到的结果是不一样的。移动光标h或向左箭头键光标向左移动一个字符j或向下箭头键光标向下移动一行k或向上箭头键原创 2017-03-05 15:20:19 · 365 阅读 · 0 评论 -
Linux系统启动流程
了解Linux系统的启动流程,能够让我们更加深入的去理解操作系统。今天博主就关于Linux系统启动流程做一个简单的总结,希望对小伙伴们有一点启发。其实,前面的几步对于其他操作系统也是通用的,只是不同系统之间在这几步上稍微有那么一点点区别罢了。第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是原创 2017-03-10 16:51:20 · 406 阅读 · 0 评论 -
diff和patch使用总结
diff是Linux系统的一个很重要的工具程序,我们通常用diff对同一软件(或程序)的不同版本的文件进行对比查看。不过,你不要用diff去比较两个完全不相干的文件,因为那样是比不出结果来的。最后提醒一下,diff是以“行”为单位比较的哦。diff和patch是一对工具,在数学上来说,diff是对两个集合的差运算,patch是对两个集合的和运算。diff比较两个文件或文件集合的差异,并记录下来,生原创 2017-03-07 18:29:33 · 4330 阅读 · 0 评论 -
进程间通信方式总结——管道(一)
Linux/Unix系统IPC是各种进程间通信方式的统称,但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open Group(X/Open)标准化的推进呵护影响的扩大,情况虽已得到改善,但差别仍然存在。一般来说,Linux/Unix常见的进程间通信方式有:管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进原创 2017-04-13 16:28:47 · 3179 阅读 · 0 评论 -
进程间通信方式总结——管道(二)
Linux/Unix系统IPC是各种进程间通信方式的统称,但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open Group(X/Open)标准化的推进呵护影响的扩大,情况虽已得到改善,但差别仍然存在。一般来说,Linux/Unix常见的进程间通信方式有:管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进原创 2017-04-13 16:38:57 · 704 阅读 · 0 评论 -
进程间通信方式总结——信号量
Linux/Unix系统IPC是各种进程间通信方式的统称,但是其中极少能在所有Linux/Unix系统实现中进行移植。随着POSIX和Open Group(X/Open)标准化的推进呵护影响的扩大,情况虽已得到改善,但差别仍然存在。一般来说,Linux/Unix常见的进程间通信方式有:管道、消息队列、信号、信号量、共享内存、套接字等。博主将在《进程间通信方式总结》系列博文中和大家一起探讨学习进原创 2017-04-14 17:35:50 · 2549 阅读 · 0 评论 -
动态链接库编程笔记
我们平时所做的大部分开发都是二次开发,会使用卖方提供的SDK,SDK中只有接口,没有具体业务逻辑实现的代码,我们在SDK接口的基础上做开发,进而实现我们想要的功能。 首先我们来说说静态链接库和动态链接库,静态链接库往往以lib后缀结尾,动态链接库往往以dll后缀结束,但是我们不能仅仅以后缀名作为它们二者的区别。比如动态链接库也存在lib后缀的文件,但是此时的lib文件只是保存一些函原创 2017-04-19 16:07:46 · 546 阅读 · 0 评论 -
makefile
Makefile在编程过程中经常被使用到,笔试或面试过程中也经常有被提到,因此需要好好学习一下哦。本篇博文为大家介绍三种makefile编写版本,这三个版本采用循序渐进的方式。可能有一些小伙伴对版本1比较熟悉,因为平时书上都是这么讲的,并且你平时也是这么编写的,对吧?当看到版本2时,有点熟悉,但不是特别理解。版本3就直接蒙圈了,这是啥啊?(开始怀疑人生了……)呵呵,不要紧张慢慢来,看了这篇博文你就原创 2016-11-14 19:05:56 · 739 阅读 · 0 评论