Linux
文章平均质量分 81
长着胡萝卜须的栗子
这个作者很懒,什么都没留下…
展开
-
【Linux】守护进程及守护进程的创建
守护进程 守护进程是生存期长的一种进程。它们常常在系统引导装入时启动,仅在系统关闭时才终止。 守护进程没有控制终端。因此,说他们是在后台运行的。UNIX系统有很多守护进程,他们执行日常事务活动。 下面我从守护进程结构,以及如何编写守护进程程序两个方面分析守护进程。守护进程的特征 我们使用ps -axj命令查看一些常用的系统守护进程。原创 2016-08-03 12:26:40 · 3449 阅读 · 1 评论 -
【工具】GDB常见调试命令
1 、基本命令1.1 启动和退出GDB[root@localhost ~]#gdb test 启动GDB调试test程序[root@localhost ~]#gdb programe 2146 启动GDB调试进程号为2146的进程[root@localhost ~]# gdb (gdb) attach 2146 启动GDB挂载到进程号为2146的进程上开始调试(gdb)detach 2转载 2016-08-08 22:36:43 · 2101 阅读 · 0 评论 -
【工具】gdb多线程/多进程(守护进程)调试
一 调试多进程1) follow-fork-mode :set follow-fork-mode [parent|child]parent: fork之后继续调试父进程,子进程不受影响。 child: fork之后调试子进程,父进程不受影响。在使用如下方法设置完要调试的程序后:gdb命令行的 –-args 参数 gdb环境中 set args命令。 gdb –pid=PID(ps -ef |转载 2016-08-08 22:53:52 · 2528 阅读 · 0 评论 -
【Linux】硬链接、软链接及inode详解
inode 文件储存在硬盘上,硬盘的最小存储单位叫做“扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。 文件数据都储存在原创 2016-08-10 21:49:31 · 6654 阅读 · 1 评论 -
【Linux】stat命令查看文件的三个时间
stat命令 stat命令用于显示文件的状态信息。语法stat(选项)(参数) 选项 -L:支持符号连接; -f:显示文件系统状态而非文件状态; -t:以简洁方式输出信息; –help:显示指令的帮助信息; –version:显示指令的版本信息。 参数 文件:指定要显示信息的普通文件或者文件系统对应的设备文件名。Linu原创 2016-08-10 23:05:12 · 5094 阅读 · 0 评论 -
【面试】GDB调试
用GDB调试多进程程序 如果一个进程通过fork系统调用创建了子进程,gdb会继续调试原来的进程,子进程则正常运行。那么该如何调试子进程呢?单独调试子进程 子进程从本质上说也是一个进程,因此我们可以用通用的gdb调试方法来调试他。 举例来说如果要调试一个服务器中的某一个子进程,我们可以先运行服务器,然后找到目标子进程的PID,再将其附加(attach)到gdb调试器上,具体操作为:原创 2016-08-11 00:32:14 · 3513 阅读 · 0 评论 -
【Linux】文件系统结构,文件目录树及功能详解
一、文件目录树1、Linux文件目录分配的依据FHSFilesystem Hierarchy Standard (FHS)Filesystem Hierarchy Standard(文件系统目录标准)的缩写,多数Linux版本采用这种文件组织形式,类似于Windows操作系统中c盘的文件目录,FHS采用树形结构组织文件。FHS定义了系统中每个区域的用途、所需要的最小构成的文件和目录,同时还给出了例外原创 2016-07-11 11:16:17 · 10800 阅读 · 0 评论 -
【工具】GDB调试精粹
关于多进程调试技巧: 使用 GDB 调试多进程程序–1 使用 GDB 调试多进程程序–2 使用 GDB 调试多进程程序–3 gdb调试多进程和多线程命令 GDB调试基础 GDB调试汇总 【Linux学习】GDB调试器基本命令必知必会(一)一:列文件清单1. List(gdb) list line1,line2 二:执行程序要想运行准备调试的程序,可使用run命令,在它后面可以跟随发转载 2016-08-08 22:56:31 · 651 阅读 · 0 评论 -
socket编程选项——setsockopt和getsockopt
头文件:#include <sys/types.h> #include <sys/socket.h> setsockopt函数原型: int setsockopt(int sockfd, int level, int optname, const void* optival, socklen_t optlen); 功能: 用于任意类型、任意状态套接口的设置选项值. 参数: sockf原创 2016-09-17 15:33:34 · 4231 阅读 · 0 评论 -
select,poll,epoll优缺点及比较
在之前我已经分析了这三个函数,请看我之前的文章: IO多路复用之select函数详解 IO多路复用之poll函数详解 IO多路复用之epoll函数详解 这篇文章只总结优缺点,以便面试时回答。select优点1)select()的可移植性更好,在某些Unix系统上不支持poll() 2)select() 对于超时值提供了更好的精度:微秒,而poll是毫秒。select缺点1) 单个进程原创 2016-08-17 01:51:11 · 15301 阅读 · 8 评论 -
【工具】GDB使用方法总结(已重新排版)
GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。 于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图转载 2016-08-08 22:31:53 · 3132 阅读 · 2 评论 -
【TCP/IP】TCP的三次握手,四次挥手过程详解
TCP传输控制协议 TCP是一个面向连接的协议,为用户进程提供可靠的全双工字节流。TCP套接字是一种流套接字,TCP关心确认、超时和重传之类的细节。 首先,TCP提供客户与服务器之间的连接。TCP客户先与某个给定服务器建立一个连接,再跨该连接与那个服务器交换数据,然后终止这个连接。可靠性 其实TCP还提供了可靠性。当TCP向另一端发送数据时,他要求对端返回一个确认,如果没有收到确认,TCP就自原创 2016-08-07 17:31:42 · 2493 阅读 · 0 评论 -
【TCP/IP】TIME_WAIT状态及地址reuse问题,SO_REUSEADDR参数详解
TCP/IP四次挥手 在TCP/IP协议取消连接的时候会进行四次挥手过程: 当某个应用进程主动关闭的时候,该端TCP会发送一个FIN分节,表示数据发送完毕。 接收到这个FIN的对端执行被动关闭,这个FIN由TCP进行确认,他的接受也作为一个文件结束符EOF传递给接收端应用进程,因为FIN的接受意味着接收端应用进程在相应连接上再无额外数据可以接受。 一段时间后,接受原创 2016-08-07 01:26:45 · 5037 阅读 · 1 评论 -
Linux下的进程1——进程概念,进程切换,上下文切换,虚拟地址空间
进程概述 当一个可执行程序在现代系统上运行时,操作系统会提供一种假象——好像系统上只有这个程序在运行,看上去只有这个程序在使用处理器,主存和IO设备。 处理器看上去就像在不间断的一条接一条的执行程序中的指令,即改程序的代码和数据是系统存储器中唯一的对象。这些假象是通过进程的概念来实现的。 进程是操作系统对一个正在运行的程序的一种抽象。在一个系统上可以同时运行多个进程,而每个进程都好像在原创 2016-08-14 20:01:24 · 17387 阅读 · 5 评论 -
Linux下的进程2——进程的内存映像,进程PCB,task_struct详解
进程的内存映像 Linux下C程序生成主要由四个步骤组成: 预编译编译汇编链接 编译器gcc经过预编译,编译,汇编三个步骤将源程序文件转换成目标文件。 如果程序有多个目标文件或程序中使用了库函数,则编译器还需要将所有目标文件及所需的库文件链接起来,最后生成可执行程序。 当程序执行时,操作系统可将可执行程序复制到内存中. 程序转为进程通常需要以下步骤:内核将程序读入内存原创 2016-08-15 16:57:59 · 2868 阅读 · 0 评论 -
Linux下的进程3——进程创建,文件替换,进程程序替换
进程标识 每个进程都有一个非负整型标识唯一的进程ID。因为进程ID标识符总是唯一的,常将其用作其他标识符的一部分以保证其唯一性。 虽然是唯一的,但是进程ID是可复用的,当一个进程终止后,其进程ID就称为复用的候选者,大多数UNIX系统实现延迟复用算法,使得赋予新建进程的ID不同于最近终止进程所使用的ID,这防止了将新进程误认为是使用同一ID的某一个已终止的进程。 系统中有一些专用进程。原创 2016-08-16 01:12:07 · 1938 阅读 · 0 评论 -
IO多路复用之epoll函数详解
epoll 在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。 相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。 相对于select和poll来说,epoll更加灵活,没有描述符原创 2016-08-17 01:34:07 · 7592 阅读 · 1 评论 -
IO多路复用之select函数详解
IO复用 我们首先来看看服务器编程的模型,客户端发来的请求服务端会产生一个进程来对其进行服务,每当来一个客户请求就产生一个进程来服务,然而进程不可能无限制的产生,因此为了解决大量客户端访问的问题,引入了IO复用技术。 即:一个进程可以同时对多个客户请求进行服务。 也就是说IO复用的“介质”是进程(准确的说复用的是select和poll,因为进程也是靠调用select和poll来实原创 2016-08-17 00:48:14 · 10846 阅读 · 1 评论 -
IO多路复用之poll函数详解
poll poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。 poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。poll函数 函数格式如下所示:原创 2016-08-17 01:05:01 · 6978 阅读 · 0 评论 -
【计算机网络】——TCP/IP网络层,IP地址,IP协议,IP数据报的分片及组装详解
网络层 TCP/IP体系中网络层十分重要,本篇文章主要介绍IP(Internet Protocol)协议。 网络层的主要作用是“实现终端节点之间的通信”。这种终端节点之间的通信也叫作“点对点通信”。 网络层的下一层——数据链路层,主要作用是在互联同一种数据链路的节点之间进行宝传递。如果要跨越多种数据链路,就要借助网络层了。 网络层可以跨越不同的数据链路,即使在不同的数据链路上也能原创 2016-08-02 01:42:59 · 3185 阅读 · 0 评论 -
【Linux】终端,进程组,作业,会话及作业控制
终端概念 在UNIX系统中,用用户通过终端登录系统后得到一一个Shell进程,这个终端成为Shell进程的控制终端 (Controlling Terminal),控制终端是保存在PCB中的信息,而我们知道fork会复制PCB中的信息,因此由Shell进程启动的其它进程的控制终端也是这个终端。 默认情况 下(没有重定向),每个进程的标准输入、标准输出和标准错误输出都指向控制原创 2016-08-03 02:00:55 · 5741 阅读 · 0 评论 -
【UNIX网络编程】五种I/O模型,阻塞非阻塞同步异步问题详解
IO复用 在写简单的TCP/IP服务器-客户端程序时,客户端要同时处理两个输入: 标准输入TCP套接字 在结束的时候,因为客户端正阻塞于标准输入上的read函数,服务器TCP虽然正确的给客户TCP发送了一个FIN,但是既然客户进程正在阻塞于从标准输入读入的过程,他将看不到这个EOF,直到从套接字读时为止。 这样的进程需要一种预先告之内核的能力,使得内核一旦发现进程指定的一个或多个I/原创 2016-08-06 23:53:30 · 2394 阅读 · 0 评论 -
Linux下Mysql常用命令总结
很久没有写博客啦,大概有一年了,还记得以前找工作前疯狂的总结,后期慢慢的有些懈怠,最近总结了一下自己的问题,觉得博客这个方式是一个很好的学习方式,还是不能丢掉,所以今天又开始写博客啦,如果是师妹师弟看到我的这篇文章,也希望对你们有些帮助。 写这篇文章的初衷是我发现在工作中,总是与mysql打交道,并且即使是同一条命令,随便加个选项其实会变得更加实用方便,本篇文章我会采用持续更新的方式去写,所原创 2017-07-19 18:52:03 · 7890 阅读 · 0 评论