
Linux
文章平均质量分 87
Sekai_Z
这个作者很懒,什么都没留下…
展开
-
vim、gcc/g++、ctags简析
.vim 一.vim有主要有三种模式:命令模式、插入模式、底行模式 1.命令模式(command mode) 控制光标的移动、字符、字或行的删除,移动复制某段进入Insert mode下,或者lastline mode。 2.插入模式(Insert mode)原创 2016-05-28 22:53:41 · 697 阅读 · 0 评论 -
进程组,作业与会话
一、进程组、作业、会话1.进程组(process group) 每个进程除了有一个进程ID(保存在PCB当中),还属于一个进程组。进程组由一个或多个进程组成,通常和一个作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。 每个进程组都有一个组长进程,组长进程的ID等于组ID。 组长进程可以组建一个进程组。只要进程组中有一个进程存在,原创 2016-08-03 11:45:42 · 2280 阅读 · 0 评论 -
shell脚本学习之语法
一、条件测试1、条件测试:test或[ 命令test可以测试一个条件是否成立,若测试结果为真,则退出码为0,若测试结果为假,则为1字符串比较时:用==或=或 !=(建议用==)表示比较两字符相同或不相同[ -z string ] 若string的长度为0则为真[ -n string ] 若string的长度不为0则为真*在比较两个字符串是否相等时,建议加上双原创 2016-08-18 14:57:10 · 880 阅读 · 0 评论 -
UDP及TCP详析
一、UDP1.UDP段格式2.UDP协议 UDP协议是不面向连接,也不保证传输的可靠性,是不可靠的传输层协议。 发送端UDP协议层值只管把应用层传来的数据封装成段交给IP协议层。若网络故障无法发送给对方,UDP协议层也不会给应用层返回任何错误消息。同样,接收端的UDP也只管把收到的数据根据端口号交给相应的应用程序。若发送端发来多个数据包且达到接收端顺序已原创 2016-08-07 20:08:05 · 806 阅读 · 3 评论 -
正则表达式与grep、sed
一、正则表达式 一个正则表达式,就是用某种模式去匹配一类字符串的一个公式。绝大部分是基于vi中的文本替换命令和grep文本搜索命令,还可以在sed、awk、perl等支持正则表达式的编程语言中使用。 规定一些特殊语法表示字符类、数量限定符和位置关系,然后用这些特殊语法和普通字符一起表达一个模式。1、字符类:在模式中表示某个字符的取值范围是一类字符中任意一个。2、原创 2016-08-20 23:19:59 · 1079 阅读 · 0 评论 -
awk、cut、sort和uniq
一、awk sed以行为单位处理文件,awk不仅能以行为单位还能以列为单位处理文件。 awk缺省的行分隔符是换行符,缺省的列分隔符是连续的空格和tab,而且行分隔符和列分隔符都可以重定义,比如/ect/passwd文件的每一行有若干字段以:分隔,则重新定义awk的分隔符为:并可以以列处理这个文件。 awk可以像C语言一样支持分支和循环结构,基本语法和sed类似。原创 2016-08-21 17:10:29 · 896 阅读 · 0 评论 -
网络编程基础<二>
3.TCP通信流程TCP三次握手 服务器调用socket()、bind()、listen()完成初始化后,调用accept()阻塞等待,处于监听端口的状态,客户端调用socket()初始化后,调用connect()发出SYN段并阻塞等待服务器响应,服务器应答一个SYN+ACK段,客户端接收到后从connect()返回,同时应答一个ACK段,服务器收到后从acce原创 2016-08-10 22:05:42 · 478 阅读 · 0 评论 -
网络编程基础
一、网络编程基本知识1、网络字节序 内存中的多字节数据对于内存地址有大端小端 之分,磁盘文件中的多字节数据相对于文件中偏移地址也有大端小端之分。网络数据流也有大小端之分。 大端即数据低位存在高地址,高位存在低地址。 网络数据流的地址这样规定:先发出的数据是低地址(故先发送高位),后发出的数据是高地址。收数据从低地址收(先收高位)。 TCP/IP协原创 2016-08-09 21:26:12 · 675 阅读 · 0 评论 -
IO多路复用
一、LINUX IO模型 网络IO本质是socket读取,socket在Linux系统被中抽取为流,IO可以理解为对流操作。对于一次IO访问,对read,数据先被拷贝到操作系统内核的缓冲区,然后才会从操作系统内核拷贝到应用程序的地址空间。即:第一阶段:等待数据第二阶段:将数据从内核拷贝到进程网络IO有五种模型:1.阻塞IO2.非阻塞IO3.多路复用IO4.信号驱原创 2016-08-13 23:29:27 · 1063 阅读 · 0 评论 -
多线程编程<二>
一、线程同步1.mutex互斥量 多个线程同时访问共享数据时有可能会冲突,这出现了和可重入性同样的问题。 例如,当两个线程都想把某个全局变量增加1这个操作在某平台需要三条指令:1.从内存读变量值到寄存器。寄存器加1。将寄存器的值写回内存。 此时,如果线程1在执行加1操作时,因为突发原因切出去,而线程2继续,则会导致这个全局变量不能达到预想原创 2016-08-01 21:09:38 · 518 阅读 · 0 评论 -
网络基础<一>
一、TCP/IP四层模型 TCP/IP是一组协议的代名词。TCP/IP协议簇分为四层,IP位于网络层,TCP位于传输层。 TCP/IP通信协议采用四层的结构,每一层呼叫它的下一层提供的网络来完成自己的需求。应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP),文件传输协议(FTP),网络远程访问协议。传输层:提供结点间数据传送服务。如传输控制协议T原创 2016-08-04 22:44:42 · 773 阅读 · 0 评论 -
进程
一.操作系统 1.操作系统是应用程序和硬件之间的插入的一层软件,所有应用程序对硬件的操作都要通过操作系统。任何计算机都包含一个基本的程序集合,称为操作系统 2. 内核: 是操作系统最基本的部分,主要负责管理系统资源( 通过进程间通信机制及系统调用,应用进程可间接控制所需的硬件资源(特别是处理器及IO设备) 3.操作系统的目的是与硬件交互,管理所有的硬件资源,同原创 2016-06-09 17:35:37 · 611 阅读 · 0 评论 -
子进程的创建
1.fork()函数 include 一个现有进程可以调用fork函数穿件一个新进程,子进程返回0,父进程返回子进程ID,出错返回-1 子进程是父进程的副本,子进程获得父进程的数据空间、堆和栈的副本,父子进程不共享这些空间。父子进程共享正文段。对于子进程,现在很多实现并不执行父进程的数据段。栈和堆的完全复制,而是使用写时拷贝技术,这些区域由父子进程共享,而且内核将他原创 2016-06-26 18:23:52 · 1280 阅读 · 0 评论 -
ipc--消息队列
消息队列也是一种进程间通信的方式,systemV 消息队列被大量使用特点:1.消息队列面向数据块2.ipc生命周期不是随进程的(进程退出则退出),系统中若创建IPC,若不显式删除,则一直存在,是随内核的(用命令行删除或者重启系统)3.消息类型队列和管道不同的就是它没有谁进谁出的规定,是半双工的4.消息队列是操作系统提供的第三方进程,完成双向通信消息队列f原创 2016-07-23 23:28:42 · 663 阅读 · 0 评论 -
IPC与信号量
一、信号量介绍信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线程必须释放信号量。其它想进入该关键代码段的线程必须等待直到第一个线程释放信号量。为了完成这个过程,需要创建一个信号量VI,然后将Acquire Semaphor原创 2016-07-24 23:24:34 · 673 阅读 · 0 评论 -
linux的进程通信-管道
进程间通信 每个进程各自有不同的用户地址空间,任何一个进程的全局变量在另一个进程中都看不到。 在设计一个进程时,让进程感觉自己独占资源,一个进程占(可访问)的最大空间为2^32(32位下)(虚拟地址到物理地址的转换) 例如对于父子进程来说,父子进程的数据会分离,一旦子进程要写入数据就会触发写时拷贝,子进程写的数据父进程不能看到 进程间通信是本质是让不原创 2016-07-17 12:11:13 · 901 阅读 · 0 评论 -
信号之可重入函数、竞态条件
一、可重入函数1.基本概念 当捕捉到信号时,不论进程的主控制流程当前执行到哪儿,都会先跳到信号处理函数中执行,从 信号处理函数返回后再继续执行主控制流程。信号处理函数是一个单独的控制流程,因为它 和主控制流程是异步的,二者不存在调⽤用和被调⽤用的关系,并且使用不同的堆栈空间。引入了 信号处理函数使得一个进程具有多个控制流程,如果这些控制流程访问相同的全局资源(全局 变量、硬件资源等)原创 2016-07-28 23:09:25 · 1434 阅读 · 0 评论 -
linux信号理解
一、信号的基本概念 当在shell下启动一个前台的进程时,用户可以通过键盘上ctrl+c使这个进程结束,即产生了一个硬件中断。当cpu在执行这个进程的代码时,该进程的用户空间代码暂停执行,cpu从用户态切换到内核态处理硬件中断。终端驱动程序将键盘上输入的ctrl+c解释成一个SIGINT信号, 记录在进程的PCB中。当某个时刻要从内核返回该进程的用户空间代码继续执行之前,需原创 2016-07-28 22:54:03 · 718 阅读 · 0 评论 -
多线程编程<一>
一、理解线程1.进程与线程联系 线程:线程也是一个执行流,线程在进程内部运行 1.对一个进程来讲,每个进程都有个PCB,且每个进程均有自己的独立地址空间,进程的地址空间是00-FF,4G(32位下),再从地址空间由MMU和页表转化为物理内存--> 环境变量区 栈区 堆区 静态区 进程强调资源独占,进程间不受影响(fork的子进程和父进程代码共享数据原创 2016-07-31 22:20:37 · 518 阅读 · 0 评论 -
shell脚本学习--符号
一、shell简单介绍 shell的作用是解释执行用户的命令,用户输入一条命令,shell就解释一行【交互式】。另一种执行命令的方式是【批处理】,用户事先写一个shell脚本,其中有很多条命令,shell一次把这些命令执行完。shell程序从脚本中一行一行读取并执行这些命令,相当于一个用户把脚本中的命令一行一行敲到shell提示符下执行 shell脚本是解释执行的,不需要编原创 2016-08-14 21:10:19 · 1709 阅读 · 0 评论