
Linux
haha and giraffe
一只努力的长颈鹿
展开
-
Linux下常用的监测服务器命令
本篇用于记录一些Linux下命令或者工具的使用一、tcpdump tcpdump是一个网络抓包工具,可以根据主机、接口、协议等选项过滤出想要从网络上抓取的数据包,也可以根据选项指明数据包表达的格式。tcpdump的选项:-i 指定要监听的网卡接口-n 使用ip地址表示主机;使用数字表示端口-e 显示以太网帧头部信息 tcpdump还可以用表达式来进一步过滤数据...原创 2019-03-14 16:11:14 · 236 阅读 · 0 评论 -
Linux系统编程——内存映射与写时复制
基本概述 内存映射就是将虚拟内存中的一块区域与磁盘上的对象建立关联以初始化虚拟内存区域的内容。有两种映射文件映射:讲一个文件的一部分直接映射到调用进程的虚拟内存中 匿名映射:一个映射没有对应的文件(也可以理解成一个内容总是被初始化为零的虚拟文件的映射) 一个进程的映射中的内存可以与其他进程中的映射共享,当两个或者多个进程共享相同的物理分页时候,每个进程都可以对其做修改和读取...原创 2019-02-25 16:55:34 · 1616 阅读 · 0 评论 -
虚拟内存管理知识点回顾
概述 首先需要知道虚拟内存是一个抽象的概念。概念上而言,虚拟内存是一个存放在磁盘上N个连续字节大小的单元组成的数组。每个进程都拥有一个虚拟内存空间,在此空间上进程可以对虚拟内存进行管理和应用(例如内存映射和malloc、free等动态分配内存空间)。虚拟内存的作用(为什么需要虚拟内存?而不是直接操控物理内存):将主存可以看成是一个存储在磁盘上地址空间的高速缓存,也就是说,其功能是在主...原创 2019-02-23 19:24:26 · 435 阅读 · 0 评论 -
Linux系统编程——POSIX消息队列
简介 POSIX消息队列就是进程之间通讯的方式之一,其特点是以消息的形式交换数据(数据的交换单位是整个消息),POSIX消息队列和System V消息队列相比,有以下优点:消息通知特性允许一个进程能在一条消息进入之前为空的消息队列时候,异步的通过信号或者线程的实例化接收通知 Linux下可以通过poll()、select()、epoll监控POSIX消息队列打开、关闭、删除消息队...原创 2019-02-21 16:18:49 · 764 阅读 · 0 评论 -
链接、装载与共享库
程序执行简述 由下图编译的过程可以看出,源程序经过预处理,编译,汇编等步骤形成可重定位目标文件,再由多个可重定位目标文件链接成可执行目标文件。 每个步骤做的事情:(1)预处理(预编译),处理源代码中以“#”开头的预处理指令,如#include,#define。具体工作如下:将所有#define删除,并展开所有宏定义 处理所有条件预编译指令,如#if,#ifndef...原创 2019-02-09 22:08:05 · 200 阅读 · 0 评论 -
Linux系统编程之守护进程
守护进程简介及特点 守护进程又称精灵进程(DAEMON),是一类具有如下特点的进程。其生命周期很长,通常在系统启动的时候会创建并一直运行,当系统关闭时才终止,不随着用户登录、注销等改变其状态。 他是在后台运行且不拥有控制终端的进程。守护进程创建过程及原因 要把一个进程变成守护进程,要完成以下步骤:执行一个fork,然后父进程退出,子进程接着运行。这样做就是为了让子进...原创 2019-01-18 22:01:44 · 174 阅读 · 0 评论 -
Linux系统编程之线程
线程概述 线程是允许应用程序并发执行多个任务的一种机制,一个进程中可包含多个线程。同一程序中的所有线程都会执行相同的程序,共享一份全局内存区域,其中包括代码段、初始化数据段、未初始化数据段、以及堆内存段、栈及文件描述符。 多线程可以弥补多进程的缺陷:进程之间信息难以共享,而线程则可以方便快速共享信息,只需将数据复制到共享变量中即可 调用fork()创建进程代价较高,创建线...原创 2019-01-03 19:19:59 · 241 阅读 · 0 评论 -
Linux系统编程之进程
进程的创建 系统调用fork()可以从一个父进程中创建一个子进程,子进程的资源同父进程几乎一样:子进程获取父进程的栈、数据段、堆和代码段(执行文本段)的拷贝。执行fork()之后,每个进程都可以修改自己栈数据、堆中的变量且并不会影响另一个进程。执行fork()时,子进程会获得父进程所有的文件描述符副本,类似于dup(),意味着父进程和子进程对应的文件描述符指向同一个打开文件句柄(共享当前...原创 2018-12-31 18:32:31 · 228 阅读 · 0 评论 -
Linux信号(一)
信号的概述 信号是事件发生时对进程的通知机制,也成为软件中断,是进程之间通信的方式之一。信号分为两大类,一组用于内核向进程通知事件,构成所谓的传统或标准信号;另一组由实时信号构成。 信号因某些事件而产生,信号产生后,会于稍后传递给某个进程,进程即会采取相应的措施来相应信号。但是有时候需要保证一段代码不被传递来的信号所中断,即可以将信号添加到进程的信号掩码中(其作用就是阻塞该信号...原创 2018-12-29 16:17:48 · 879 阅读 · 1 评论 -
Linux目录与链接
目录 在文件系统中,目录与普通文件主要有两个区别。i节点条目中,会将目录标记为一种不同的文件类型。 目录是一种特殊的文件,本质上是一个表格,包含文件名和i节点编号。而文件的i节点中存储信息列表不包含文件名。 关于目录的系统调用有很多。#include <sys/stat.h>#include <unistd.h>#include <...原创 2018-12-26 15:58:38 · 919 阅读 · 0 评论 -
Linux文件系统与文件属性
磁盘和分区 常规文件和目录通常存放在硬盘里。可将每块磁盘划分为一个或多个不重叠的分区,内核将每个分区视为位于/dev路径下单独设备。 磁盘分区主要是以下三种之一:文件系统、数据区域(可做裸设备对其访问)、交换区域(供虚拟内存使用)。文件系统 文件系统是对常规文件和目录的组织集合。在文件系统中,用来分配空间的基本单位是逻辑块,即文件系统所在磁盘设备上若干连续的物理块...原创 2018-12-23 20:15:04 · 731 阅读 · 0 评论 -
Linux进程与内存分配
进程 进程是由内核定义的抽象实体,该实体分配用以执行程序的各项系统资源,是拥有资源的基本单位。从内核的角度来看,进程由用户内存空间和一系列内核数据结构组成,其中用户内存空间包含程序代码及代码所使用的变量(程序段和数据段),而内核数据结构则用于维护进程状态信息。 每个进程都有一个进程号,用以标识系统中的某个进程。Linux内核限制进程号小于等于32767,一旦进程号达到32767...原创 2018-12-21 17:43:50 · 2762 阅读 · 0 评论 -
Linux系统编程基础知识
本篇主要介绍了Linux系统编程的基础概念,为后续深入打好基础,还有助于回顾操作系统的知识。内核 通常来说,操作系统的内核是整个os的核心所在,是指管理和分配计算机资源(CPU、RAM和设备)的核心软件层。 内核的主要任务:进程调度:Linux属于抢占式多任务操作系统,多任务是指多个进程可以同时驻留在内存中,而且每个进程都可以获得CPU的使用权,抢占式是指运用进程调度算...原创 2018-12-15 17:09:36 · 430 阅读 · 0 评论 -
Linux文件IO
本文章中提到的文件IO都是不带缓冲的IO,即每个read和write都调用内核中的一个系统调用。文件描述符 文件描述符是一个非负数,每当打开一个现有的文件或者创建一个新文件时,内核都向进程返回一个文件描述符。文件描述符用以表示所有类的已打开文件,包括管道(pipe)、FIFO、socket、终端设备和普通股文件。特殊:文件描述符0、1、2分别代表标准输入、标准输出、标准错误,把其换为...原创 2018-11-23 17:29:10 · 151 阅读 · 0 评论 -
grep与正则表达式
转自马哥linuxgrep是linux下强大的文本搜索工具。命令:grep [option] pattern [FILE]option: --corlor=auto 把匹配的文本着色 -v 显示不能够被pattern匹配到的行 -i 忽略字符大小写 -o 仅显示匹配到字符串本身 ...转载 2018-11-19 17:24:11 · 135 阅读 · 0 评论 -
linux目录介绍
转自 https://blog.youkuaiyun.com/m0_38044196/article/details/72844025/:根目录,位于Linux文件系统目录结构的顶层,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中。/bin,/usr/bin:该目录为命令文件目录,也称为二进制目录。包含了供系统管理员及普通用户使用的重要...转载 2018-11-14 21:09:59 · 145 阅读 · 0 评论