Linux
文章平均质量分 62
thief thief
热爱计算机的小菜鸟,跟随大神们学点知识!
展开
-
Linux下文件的mtime/ctime/atime以及touch对其的修改
Windows下的文件,文本都有他们自己的3个时间(创建时间,修改时间,访问时间),在Linux下也有三种时间(mtime,ctime,atime)但是他们是有区别的,在Linux下modification time(mtime) (当该文件的“内容数据”更改时,就会更新这个时间。内容数据指的是文件的内容,而不是文件的属性或权限 )test - 1 p(图1)touch的新的原创 2017-02-14 22:50:28 · 873 阅读 · 0 评论 -
TCP协议首部中URG与PSH
在介绍URG与PSH之前,我们先来看看TCP的首部格式: 上图展示了TCP的报头信息,下来我们介绍URG与PSH:什么是URG与PSHURG紧急URG(URGent) 当URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应当尽快传输(相当于高优先级的数据),而不要按原来的排队顺序来传送。例如:已经发生了很长的一个程序要在远地的主机上运行。DNA后来发现了一些问题,需要取消该原创 2017-06-20 09:44:27 · 505 阅读 · 0 评论 -
TCP中的定时器
1.连接建立(connection establishment)”定时器 在发送SYN报文段建立一条新连接时启动。如果在75秒内没有收到响应,连接建立将中止。2.“重传(retransmission)”定时器 在TCP发送某个数据段时设定。如果该定时器超时而对端的确认还未到达,TCP将重传该数据段。重传定时器的值 (即TCP等待对端确认的时间)是动态计算的,与RTT的转载 2017-06-20 09:49:38 · 211 阅读 · 0 评论 -
crond和crontab
什么是crond与crontabcrond是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务调度命令。crond命令每分钟会定期检查是否要执行的工作,如果有要执行的工作便会自动执行该工作。二Linux任务调度的工作主要分为以下两类:1、系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服原创 2017-06-08 21:40:22 · 976 阅读 · 0 评论 -
I/O多路转接----select
我们知道系统IO中有五种模型:阻塞I/O, 非阻塞I/O,信号驱动I/O,以及多路复用(select,poll,epoll)这四种是同步模型,还有一种是异步I/O模型;在I/O当中,我们知道它包含两件事情,一件事叫做等,另一件就是数据搬迁;其中这五种模型就是对事件进行等的操作;其中,多路复用(多路转接)中的三种服务器是最高效的等,所以,我们来对他们进行一个研究:select介绍1、select函数原创 2017-06-30 16:36:46 · 332 阅读 · 0 评论 -
守护进程(精灵进程)
什么是守护进程守护进程也称精灵进程(Daemon),是运行在后台的一种特殊进程。它独立于控制终端并且周期性的执行某种任务或等待处理某些发送的事件。Linux上的大多数服务器就是用守护进程实现的。 我们可以看到在系统启动默认的守护进程,他们的父进程ID全是init;比如:我们比较熟悉的sshd,远程连接的守护进程;我在前面的写道的crond就是作业规划进程;Linux系统启动时会启动很多系统服务原创 2017-06-09 12:33:38 · 4386 阅读 · 0 评论 -
I/O多路转接-----poll
在上一篇博客中我们简单的select进行了实现,但是我们都知道select是早期的一个服务器,有缺点,缺点也很明显,它支持的文件描述符只有1024个是比较少的,所以当请求达到一定数量的时候,他就不能被称为高性能服务器了,他就会越来越慢知道挂掉;所以,我们来简单来介绍poll来对select进行改进;poll的优缺点优点poll不需要开发者来计算最大文件描述符+1poll在应付大数目的文件描述符的原创 2017-07-02 16:58:38 · 312 阅读 · 0 评论 -
ARP协议以及CRC校验
ARP以及CRC原创 2017-06-10 21:22:13 · 1949 阅读 · 1 评论 -
I/O多路转接-----epoll服务器
在前面的两篇博客中,我们介绍了最早期的select和改进版的poll;但是,他两都没有改进的就是,想要快速知道事件就绪并没有得到改进,两个全部是遍历数组,我们都知道它的时间复杂度就是O(N);效率不是很高,时间复杂度达到O(1)才是高效的;epoll介绍epoll是Linux特有的I/O复用函数,它在实现和使用上与select、poll有很大差异,首先,epoll使用一组函数来完成任务,而不是单个函原创 2017-07-02 19:54:01 · 351 阅读 · 0 评论 -
TCP的3次握手与4次挥手
TCP的三次握手与四次挥手: 三次握手建立连接: 如上图(黑框)所示,在最初两端的TCP进程都处于CLOSED状态。host1主动打开连接,而host2被动打开连接。host2的TCP服务器进程优先创建传输控制块TCB,准备接受客户进程的连接请求,然后将自己的状态有COLSED改为LISTEN(收听)状态,等待客户的连接请求;host1的TCP客户进程也是创建传输控制块TCB,然后向B发出连接请原创 2017-06-20 14:15:31 · 561 阅读 · 0 评论 -
Shell脚本中的``与$()以及eval
1、“与$()“与$()在Shell脚本中都是用作命令代换的,例如:#!/bin/bashmytime=`date +%Y:%m:%d`echo $mytimedate +%Y:%m:%decho "`date +%Y:%m:%d`"echo "$(date +%Y:%m:%d)" 从结果上我们可以看到他们并没有什么区别,其实在实际使用的时候也没有什么区别,但是,我们一般建议使用$(),因原创 2017-07-04 11:38:56 · 2794 阅读 · 0 评论 -
Shell下的进度条
在Shell脚本下的进度条的原理和用C语言下原理是一样的,尅参看上一篇中他们进度条中换行与回车的原理C语言实现的进度条现在在Shell脚本中实现的一个进度条其实就是除了语法以外别的都基本差不多,所以,在原来单调的颜色上家了一些变色;字背景颜色范围:40----4940:黑41:深红42:绿43:黄色44:蓝色45:紫色46:深绿47:白色字颜色:30-----------3930:原创 2017-07-13 15:32:54 · 764 阅读 · 0 评论 -
TCP网络通信/线程池
TCP网络通信预备知识socket: 在TCP/IP协议中表示:IP地址+TCP端口号或UDP端口号唯一标识网络通讯中的一个进程,IP地址+端口号就称为socket。网络字节序: 在学习C语言的时候,我们大家都应该知道大小端 的问题,在网络数据流中同样也有大小端之分,网络数据流的地址规定: 先发出的数据是低地址,后发出的地址是高地址,即网络数据流应采用大端字节序,低地址高字节。#include原创 2017-06-25 17:06:23 · 1617 阅读 · 0 评论 -
端口
简介 在网络技术中,端口(Port)有好几种意思。集线器 、交换机 、路由器 的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。我们 这里所指的端口不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻 辑意义上的端口。 那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端原创 2017-06-16 15:36:37 · 962 阅读 · 0 评论 -
NAT技术与代理服务器
NAT技术与代理服务器原创 2017-06-16 15:05:50 · 534 阅读 · 0 评论 -
Linux下的第一次编程,小小进度条(C 语言 加Makefile)
关于进度条在写程序前,我们先来了解下进度条的几个小知识:●回车与换行●printf的缓存区回车与换行:我们在写作业的时候当写完一行是就要面临回车和换行的问题,只是我们平时没有注意,我们就用笔尖和纸来解释一下;1.回车:笔没有动,把纸向上挪一行(现在的笔尖还是在最右边,想写字还要挪到右边来写);2.换行:把笔尖挪到纸的左边界去,这样才可以开始写; 在计算机中的回车和原创 2017-02-16 21:40:59 · 339 阅读 · 0 评论 -
Linux进程描述符task_struct结构体详解--Linux进程的管理与调度
转载于: http://blog.csdn.net/gatieme目录(?)[+]日期内核版本架构作者GitHubCSDN2016-05-12Linux-4.5X86 & armgatiemeLinuxDeviceDriversLinux-转载 2017-02-18 20:26:59 · 411 阅读 · 0 评论 -
进程调度算法
转载于:进程调度算法进程调度算法调度算法是指:根据系统的资源分配策略所规定的资源分配算法。一、先来先服务和短作业(进程)优先调度算法 1. 先来先服务调度算法。先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度, 也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CP转载 2017-02-20 09:25:42 · 276 阅读 · 0 评论 -
Linux下黏滞位
一、什么是黏滞位:黏滞位最常用是应用于路径。当路径被设置粘黏位后,路径下的文件只有文件的owner,路径的owner, 或者root 才能够重命名、删除文件。如果没有黏滞位,任何用户,不管是不是owner, 只要有路径的写/执行权限就可以重命名、删除文件。典型的应用就是/tmp路径,黏滞位可以阻止一般用户删除/重命名其他用户的文件。二、修改黏滞位:1. 用chmod +t原创 2017-02-20 11:44:57 · 238 阅读 · 0 评论 -
Linux系统中,配置 g++,gdb,ctags;以及vim的配置
● 安装g++, gdb, ctags以及vim配置的目的:g++是Linux系统中对于C++程序的编译器,在Linux中,一般自带c语言的编译器->gcc,而并没有对于c++语言的编译器,所以就需要我们安装g++编译器;gdb是Linux中对于程序调试的工具,在VS中我们习惯了用F5,F9,F10,F11进行调试,在Linux中就要使用gdb对于程序进行这样的调试;ctags是vim原创 2017-03-02 20:21:35 · 474 阅读 · 0 评论 -
Linux环境下的管道容量
前面在 管道以及管道间通信http://blog.csdn.net/zyl_1102179268/article/details/59694330 中已经简单的介绍了管道中最简单的pipe匿名通信,但是在通信过程中也有4中特殊情况,第4个就和管道容量的大小有关,所以,现在我就测试一下管道容量的大小。empty可以看到的是 count = 65原创 2017-03-07 18:02:57 · 545 阅读 · 0 评论 -
共享内存
共享内存的实现原创 2017-03-20 22:47:41 · 313 阅读 · 0 评论 -
信号量(Semaphore)
信号量的操作原创 2017-03-13 18:52:51 · 917 阅读 · 0 评论 -
线程(上)
线程的概念在Linux中实际上没有真正意义上的线程,它是根据进程的模型模拟出来的一种类似于进程一样的程序,它是在进程的地址空间中存在,并且可以吧进程中的任务分开执行,达到真正意义上的并行,加快操作系统的运行速度;所以说:线程是Linux中轻量级的进程。(在Windows中实现了真正意义上的线程) 因为,线程存在于进程的地址空间中,所以,线程可以共享进程的一些资源和环境: 1、文件描述表,2、每种原创 2017-03-24 20:29:33 · 213 阅读 · 0 评论 -
死锁
死锁的产生,消除原创 2017-04-03 15:32:26 · 540 阅读 · 0 评论 -
线程安全与可重入性
系统安全原创 2017-04-17 22:35:06 · 520 阅读 · 0 评论 -
使用gdb调试多进程多线程程序
GDB调试多进程多线程原创 2017-06-05 15:41:28 · 321 阅读 · 0 评论 -
UDP网络通讯/UDP可靠性实现
UDP网络通讯在前面一篇博客中写道TCP套接字的网络通讯TCP网络通讯;下面来介绍UDP套接字的网络通讯。一、UDP与TCP的区别:TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议UDP是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。可靠性由上层应用实现,所以要实现UDP的可靠性传输,必须通过应用层来实现和控制。二、TCP如何实现可靠性传输请求与应答按序到达丢包原创 2017-06-25 22:14:29 · 4489 阅读 · 0 评论