linux
文章平均质量分 52
dwx2046
这个作者很懒,什么都没留下…
展开
-
每天一个linux命令:watch命令
http://www.cnblogs.com/peida/archive/2012/12/31/2840241.htmlwatch是一个非常实用的命令,基本所有的Linux发行版都带有这个小工具,如同名字一样,watch可以帮你监测一个命令的运行结果,省得你一遍遍的手动运行。在Linux下,watch是周期性的执行下个程序,并全屏显示执行结果。你可以拿他来监测你想要的一切命令的结果变化转载 2016-04-04 14:00:24 · 354 阅读 · 0 评论 -
如何解决ssh总是掉线的问题
配置服务端:ClientAliveInterval 设置一个以秒记的时长,如果超过这么长时间没有收到客户端的任何数据,sshd 将通过安全通道向客户端发送一个”alive”消息,并等候应答。默认值 0 表示不发送”alive”消息。这个选项仅对SSH-2有效。ClientAliveInterval指定了服务器端向客户端请求消息的时间间隔, 默认是0, 不发送.而ClientAlive原创 2016-05-24 20:33:01 · 6065 阅读 · 0 评论 -
配置linux DNS
ping 的时候出现如上问题,初步诊断是DNS的问题,通过 cat /etc/resolv.conf查看DNS发现没有配置,添加DNS后显示正确,但是重启network服务发现DNS又消失了,如下:网上有人说这个/etc/resolv.conf文件其实只是一个link文件,实际修改DNS要修改如下文件才可以,发现结果是正确的,重启服务后DNS的地址原创 2016-06-03 22:56:16 · 913 阅读 · 0 评论 -
使用RAII来管理对象资源
RAII(资源获取即初始化)基本技术原理很简单,如果希望保持对某个重要资源的跟踪,那么创建一个对象,并将资源的生命期和对象的生命期相关联。这样的话,就可以利用c++复杂老练的对象管理机制来管理资源。最简单的形式是,当你构造一个对象的时候,其构造对象会获得一份资源,而析构函数则释放这份资源。采用对象管理资源,即使碰到意外的return、异常(C++保证如果抛出了异常,局部对象就会被销毁)甚至是邪恶的原创 2016-06-09 22:41:23 · 1200 阅读 · 0 评论 -
正确使用POSIX条件变量
最近在写线程池的时候看到了对于pthread_cond_t条件变量这样的解释:pthread_cond_wait() blocks the calling thread until the specified condition is signalled. This routine should be called while mutex is locked, and it will原创 2016-06-10 16:43:53 · 1065 阅读 · 0 评论 -
条件变量的虚假唤醒
这个问题主要来源与我们在使用pthread条件变量wait函数的时候总是使用while去做判断而不是使用if,因为等待在条件变量上的线程被唤醒有可能不是因为条件满足而是由于虚假唤醒(Spurious wakeups)That's called spurious wakeup and is explicitly allowed by POSIX. Essentially, return fr原创 2016-06-10 17:38:05 · 1995 阅读 · 0 评论 -
linux系统端口占用和close-on-exec机制
一直以来,在处理linux服务器的过程中,经常会遇到一个问题,有时候kill掉进程之后,端口被占用,新的进程一直起不来,等待很久也不能启动新进程,总是提示端口被占用,只有重启机器才能恢复正常,这个简直是个灾难,查了一些资料,了解了如何查看端口占用情况和处理方法。1、使用netstat命令查看端口占用情况。 2、我们还需要知道是什么程序占用,加上-p参数原创 2016-07-30 12:00:04 · 1606 阅读 · 0 评论 -
mmap与直接IO(read、write)的效率比较
不能简单的说哪个效率高,要看具体实现与具体应用。无论是通过mmap方式或read/write方式访问文件在内核中都必须经过两个缓存:一个是用address_space来组织的以页为基础的缓存;一个是以buffer来组织的缓存,但实际上这两个缓存只是同一个缓冲池里内容的不同组织方式。当需要从文件读写内容时,都经过 address_space_operation中提供的函数也就是说路径是一致的。如原创 2016-08-03 16:03:51 · 11284 阅读 · 0 评论 -
MPI非阻塞通信使用、性能分析与实现原理
非阻塞通信:异步通信通常是使MPI应用程序实现高性能计算的关键,使用异步通信具有如下优势:1)函数是非阻塞的,这使得进程在与另一个进程通信的同时继续参与计算;2)如果应用适当,可以绕过MPI的内部buffers,极大地提高程序的通信带宽;最常见的基本的非阻塞调用就是MPI_Isend和MPI_IrecvMPI_Isend的使用与同步版本的MPI_Send不同,MPI原创 2016-08-03 16:40:16 · 8117 阅读 · 0 评论 -
vim命令大全
进入vi的命令vi filename :打开或新建文件,并将光标置于第一行首vi +n filename :打开文件,并将光标置于第n行首vi + filename :打开文件,并将光标置于最后一行首vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处vi -r filename :在上次正用vi编辑时发生系统崩溃,恢复filena转载 2016-08-01 14:52:53 · 353 阅读 · 0 评论 -
linux brk、sbrk、mmap和munmap系统调用
sbrk/brk重新指定数据段的结束位置。sbrk(增量),增量可正可负,也可以是0,,都返回原来的数据段结束地址,失败返回-1,。brk(地址),返回0或者-1。头文件。sbrk(0)可以取得当前结束地址。没有使用的虚拟内存地址,操作系统就没有映射到物理内存,如果试图访问会差生段错误。指定新的结束位置后如果有整个内存页被空闲出来,这一页就立即被解除映射。#include #原创 2016-08-01 10:46:52 · 3125 阅读 · 0 评论 -
fork与vfork的区别
1.fork函数介绍#include sys/types.h>#include unistd.h>pid_t fork (void );正确返回:父进程中返回子进程的进程号;子进程中返回0;(单调用双返回函数)错误返回:-1;子进程是父进程的一个拷贝。具体说,子进程从父进程那得到了数据段和堆栈段,但不是与父进程共享而是单独分配内存。fork函数返回后,子进程和父进程都是从f原创 2016-08-24 21:37:32 · 1481 阅读 · 0 评论 -
记录一次多线程死锁的问题
std::mutex mtx;std::condition_variable cv;int cargo = 0; // shared value by producers and consumersvoid consumer(){ std::unique_lock lck(mtx); while (cargo == 0) cv.wait(lck);原创 2016-04-29 10:04:01 · 528 阅读 · 0 评论 -
FTP应答码
http://www.cnblogs.com/cpcpc/archive/2011/01/25/2123074.htmlFTP协议1. 文件传输 文件传输服务是网络互联环境所必需的一种服务,当前网络中文件传输最主要的传输方式是使用FTP协议。 FTP,全称File Transfer Protocol,中文名为文件传输协议,它可以在网络中传输电子转载 2016-04-04 15:55:14 · 1042 阅读 · 0 评论 -
linux各文件夹的作用
/bin 二进制可执行命令 /dev 设备特殊文件 /etc 系统管理和配置文件 /etc/rc.d 启动的配置文件和脚本 /home 用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示 /lib 标准程序设计库,又叫动态链接共享库,作用类似windows里的.dll文件 /sbin 系统管理命令,这里存放的是系统管理员使用的管理程序转载 2016-04-11 14:19:08 · 306 阅读 · 0 评论 -
Linux命令学习手册-od命令
http://blog.chinaunix.net/uid-9525959-id-2001619.htmlod [OPTION]... [FILE]... od [-abcdfilosx]... [FILE] [[+]OFFSET[.][b]] od --traditional [OPTION]... [FILE] [[+]OFFSET[.][b] [+][LABEL]转载 2016-04-04 15:21:38 · 392 阅读 · 0 评论 -
Linux 中的零拷贝技术,第 2 部分
http://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy2/index.htmlLinux 中的直接 I/O如果应用程序可以直接访问网络接口存储,那么在应用程序访问数据之前存储总线就不需要被遍历,数据传输所引起的开销将会是最小的。应用程序或者运行在用户模式下的库函数可以直接访问硬件设备的存储,操作系统内核除了进行必要的虚拟转载 2016-03-23 17:46:10 · 409 阅读 · 0 评论 -
linux目录作用详解(超详细,树状排版)
http://blog.csdn.net/cuibo1123/article/details/2606895自己在网上找了好久,没找到,干脆自己做一个。给大家分享下,希望能顺便指出我的错误。请复制到记事本,然后取消自动换行。看起来就会很清晰了。 / 根目录 │ ├boot/ 启动文件。Linux的内核及引导系统程序所需要的转载 2016-03-23 21:55:13 · 305 阅读 · 0 评论 -
如何查看linux版本
如何得知自己正在使用的linux是什么版本呢,下面的几种方法将给你带来答案!1. 查看内核版本命令:➜ ~ cat /proc/versionLinux version 3.17.4-301.fc21.x86_64 (mockbuild@bkernel01.phx2.fedoraproject.org) (gcc version 4.9.2 20141101 (Red H原创 2016-04-07 11:16:27 · 1932 阅读 · 0 评论 -
Segmentation fault 问题浅谈
http://blog.chinaunix.net/uid-24347760-id-1989555.html今天调试程序时遇到了一个问题,当我用GDB调试程序时出现了Segmentation fault,以前没有遇到过,最后查看资料,有点明白了。 出现了Segmentation fault,基本上的原因是,非法的内存访问。例如数组的越界,在循环操作时循环变量的控制问题,也有字转载 2016-03-25 13:29:00 · 646 阅读 · 0 评论 -
每天一个linux命令:ln 命令
http://www.cnblogs.com/peida/archive/2012/12/11/2812294.htmlln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(li转载 2016-04-12 15:02:08 · 398 阅读 · 0 评论 -
linux中man 2与man 3区别
在查询stat系统调用的时候发现这个问题,记录在此,发现查询到的信息不是系统调用信息,使用man 2即可1、Standard commands (标准命令)2、System calls (系统调用)3、Library functions (库函数)4、Special devices (设备说明)5、File formats (文件格式)6、Games a原创 2016-04-12 15:07:01 · 4397 阅读 · 0 评论 -
Linux特殊权限:SUID、SGID、SBIT
SUID: 只对二进制程序有效 执行者对于程序需要有x权限 在程序运行过程中,执行者拥有程序拥有者的权限首先查看passwd命令的绝对路径, 查看passwd命令权限:passwd的拥有者是root,且拥有者权限里面本应是x的那一列显示的是s,这说明这个命令具有SUID权限。 同时发现普通用户没有w权限,所以按理来说普通用户是不能执行这个命令的,因为这个命原创 2016-04-12 16:14:10 · 546 阅读 · 0 评论 -
FTP两种工作模式介绍
http://blog.chinaunix.net/uid-372384-id-2413918.htmlhttp://my.oschina.net/binny/blog/174691.主动FTP模式最初的FTP规范中使用的就是传统的主动模式的FTP。在这种模式下,客户端从一个临时端口(大于1024的端口号)连接到FTP服务器的命令控制端口(端口21),当客户端准备好传输数据时,原创 2016-04-04 20:54:01 · 30428 阅读 · 0 评论 -
linux 如何清理僵尸进程
http://www.cnblogs.com/yuxc/archive/2012/11/04/2753391.html定义In UNIX System terminology, a process that has terminated,but whose parent has not yet waited for it, is called a zombie.转载 2016-04-13 19:01:38 · 867 阅读 · 0 评论 -
linux进程调度策略
linux内核的三种主要调度策略:1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务 3,SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用,实时进程根据实时优先级决定调度权值。分时进程则通过nice和counter值决定权值,nice越小,counter越大,被调度的概率越大,也就是曾经使用了cpu转载 2016-04-10 20:51:18 · 394 阅读 · 0 评论 -
Linux 互斥锁、原子操作实现原理
在Linux下,信号量和线程互斥锁的实现都是通过futex系统调用。futex(快速用户区互斥的简称)是一个在Linux上实现锁定和构建高级抽象锁如信号量和POSIX互斥的基本工具。它们第一次出现在内核开发的2.5.7版;其语义在2.5.40固定下来,然后在2.6.x系列稳定版内核中出现。Futex 是fast userspace mutex的缩写,意思是快速用户空间互斥体。Lin原创 2016-08-24 22:13:37 · 10068 阅读 · 0 评论