Linux/Unix
文章平均质量分 64
askunix_hjh
这个作者很懒,什么都没留下…
展开
-
httpDNS解析过程
httpDNS是基于http协议DNS服务器发送域名解析请求,替代了基于DNS协议向运营商LocalDNS发起解析请求的传统方式,可以避免LocalDNS造成域名劫持和跨网访问问题,解决移动互联网服务中域名解析异常带来的困扰。服务IP:考虑到服务IP防攻击之类的安全风险,为保障服务可用性,HTTPDNS同时提供多个服务IP,当某个服务IP在异常情况下不可用时,可以使用其它服务IP进行重试。A...原创 2019-12-14 16:37:21 · 1028 阅读 · 1 评论 -
银行家算法学习笔记
要想说银行家,首先得说死锁问题,因为银行家算法就是为了死锁避免提出的。问什么叫做银行家算法呢?因为这套算法适用于银行贷款业务,适用于银行家的决策。 一个银行家共有20亿财产 第一个开发商:已贷款15亿,资金紧张还需3亿。 第二个开发商:已贷款5亿,运转良好能收回。 第三个开发商:欲贷款18亿银行家是资源,开发商是进程。在操作系统中,有内存,硬盘等等资源被众多进程...原创 2018-07-15 20:15:20 · 4059 阅读 · 0 评论 -
HTTP协议的长连接与短连接
点击查看原文:查看原文1、HTTP协议与TCP协议的关系??HTTP的长连接和短连接实质上是TCP的长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP层:解决网络路由和寻址问题 TCP协议:解决如何在IP层之上可靠的传输数据报,并在另一端收到发送的包,并且顺序与发出顺序一致。TCP有可靠,面向连接特点。2、如何理解HTT...原创 2018-07-15 11:38:00 · 4977 阅读 · 4 评论 -
路由表生成算法
文章转载 强烈推荐参考:路由表算法 (距离向量算法、LS算法、Dijkstra算法)路由(名词)数据包从源地址到目的地址所经过的路径,由一系列路由节点组成。 路由(动词)某个路由节点为数据报选择投递方向的选路过程。 路由节点一个具有路由能力的主机或路由器,它维护一张路由表,通过查询路由表来决定向哪个接口发送数据包。 在Linux环境下可以通过ifconfig和route查看路由表...原创 2018-07-14 17:00:39 · 1597 阅读 · 0 评论 -
普通版 / 多进程 / 多线程 --- TCP服务器实现原理详解
UDP服务器请查看: 简单的UDP服务器实现代码注释很详细,不了解的可以看代码,基本一半以上都是注释。tcp_server.c (普通版)#include<stdio.h>#include<sys/socket.h> #include<netinet/in.h>#include<errno.h>#include...原创 2018-07-13 19:19:15 · 1905 阅读 · 1 评论 -
Linux基础命令(二)之du、df详解
>>** 自己总结分享,希望读者能轻松掌握以下重要命令:du、df、**<<一:du 1.命令参数:du -h:以人类可读的方式显示du -a:使用此选项时,显示目录和目录下子目录和文件占用磁盘空间的大小。du -s:使用此选项时,du只显示目录所占用磁盘空间的大小,而不显示其下子目录和文件占用磁盘空间的信息。du --appar...原创 2017-11-13 00:00:08 · 746 阅读 · 0 评论 -
Linux基础命令(三)之top详解
top命令经常用来监控linux的系统状况,比如cpu、内存的使用,程序员都知道这个命令,比较常见。 1> top进入视图 2> 数据分析 【top视图 01】基本视图第一行含义分析 第一行:19:18:35 — 当前系统时间5 min, 14:29 — 系统已经运行了5分钟(在这期间没有重启过)3 users ...原创 2017-11-15 12:12:28 · 759 阅读 · 0 评论 -
初次接触 --- Linux、Unix对比
首先,Linux的革命性在于它是一款开源的软件。Linux是一个成熟、强壮、安全和广泛的类似于Unix的操作系统,Linux的强壮和应用广泛来自于一定的代价-为了安装和维护Linux可能要求你必须是一个计算机的行家。Linux在操作系统和应用程序正确安装完毕后,相对来说很方便使用。而且Linux很安全,不管她怎么努力尝试都不会毁坏这个系统——除非使用锤子。Linux的特点和好处:1> ...原创 2017-11-18 11:08:26 · 547 阅读 · 0 评论 -
LInux下实现简单的彩色进度条
准备工作:新建vim tt.c文件#include&amp;lt;stdio.h&amp;gt;#include&amp;lt;memory.h&amp;gt;#define NONE &quot;\e[0m&quot;#define BLUE &quot;\e[0;34m&quot;#define RED &quot;\e[0;31m&am原创 2017-12-05 13:54:27 · 392 阅读 · 0 评论 -
哲学家就餐问题学习笔记
场景:5个哲学家,5根筷子,5盘意大利面(意大利面很滑,需要同时两根筷子才能夹起来)大家围绕桌子,进行思考与进食的活到,如下图所示。 哲学家的活动描述: 哲学家除了吃面,还要思考,所以要么放下左右手筷子进行思考,要么拿起两根筷子开始吃饭(哲学家只能拿自己两侧的筷子吃面,不考虑卫生问题,要不两侧的都拿起来吃面,要么就不拿,处于思考状态。吃面和思考其实是交替进行的)。如何安排哲学家...原创 2018-07-15 20:49:10 · 4539 阅读 · 0 评论 -
Linux下的查找( grep & find )
grep用法:grep 递归搜索文件语法:grep -r -n “XXXX” ./ 说明:-r 表示递归,-n 表示标出要搜索的内容所在的行数,“XXXX” 表示当前要搜索的内容,./ 表示在当前文件下grep排除搜索目录使用 grep时,经常会遇到这样一个问题,要查找的内容(变量命名等)在一个或者多个文件(目录)中有,但是,我们又不想搜索它们,因此就可以使用 –exc...原创 2018-08-02 15:03:39 · 7197 阅读 · 0 评论 -
模拟实现ls-l功能
功能描述:用unix文件和目录函数遍历一个目录下的所有文件,包括子目录,并分别把信息输出到文件和标准输出上。列举每个文件的权限相关信息,列举每个目录的相关信息。代码实现:#include <stdio.h>#include<stdlib.h>#include <dirent.h>#include <stdlib.h>#include &...原创 2018-12-13 19:04:46 · 1424 阅读 · 0 评论 -
Unix下的内存管理
Linux内存管理程序和内存:程序是指在硬盘上的可执行文件(硬盘上的文件有:普通文件、目录文件、块特殊文件、字符特殊文件、FIFO、套接字、符号链接)。当程序被运行时,需要将可执行文件加载到内存,在内存中的可执行文件形成进程(也就是加载到内核中了)。一个进程文件可以存在多个进程内存。内存区域划分: 代码区 只读常量区 全局区/数据区 BSS段 堆区 栈区(1)按照地址...原创 2018-12-12 15:37:20 · 1091 阅读 · 0 评论 -
高级I/O总结(二):select、poll、
回顾部分同步通信 VS 异步通信同步就是发出一个调用时,在没有得到结果之前,该调用就不返回。调用者会主动等待调用的结果。异步就是调用者发出调用之后,调用直接返回了,没有结果。后续有了结果,会以状态、信号等方式通知调用者。阻塞 VS 非阻塞阻塞就是指调用结果返回之前,当前线程被挂起,直到返回结果。非阻塞就是指不能立刻返回结果之前,该调用不会阻塞当前线程。select概念:是用来监视...原创 2018-10-18 22:05:23 · 313 阅读 · 0 评论 -
Linux - 线程 & 进程和线程的区别
线程特点进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程;...原创 2018-10-23 21:20:46 · 2786 阅读 · 0 评论 -
fork、vfork、clone的区别
Linux的用户进程不能直接被创建出来,因为不存在这样的API。它只能从某个进程中复制出来,再通过exec这样的API来切换到实际想要运行的程序文件。复制的API包括三种:fork、clone、vfork。这三个API的内部实际都是调用一个内核内部函数do_fork,只是填写的参数不同而已。进程的四要素:(1)有一段程序供其执行(不一定是一个进程所专有的),就像一场戏必须有自己的剧本。(...原创 2018-09-24 12:03:35 · 562 阅读 · 0 评论 -
高级I/O总结(一):基础
重要概念同步通信 VS 异步通信概念:(1)同步通信的不足等待接口耦合性网络位置耦合性可用性耦合性 总结: 耗时 + 耦合度比较高。(2)异步通信无等待面向消息解耦合位置独立确保投递 总结:解决了同步通信的不足。阻塞 VS 非阻塞(1)阻塞是指调用结果返回之前,当前线程会被挂起,线程只有在得到结果之后才会返回。(2)非...原创 2018-08-31 16:59:54 · 455 阅读 · 0 评论 -
Linux基础命令(一)你用过哪些Linux常见命令?
写在前面:① 文件目录操作类的命令,比如:cd、ls、cp、rm、find、grep、zip、tar、yum、less等。② 系统权限操作命令,比如:chmod 、chown 、sudo等。③ 操作系统级命令,比如:shutdown、uname 、top、du、df、losf、netstat等。文件目录操作类的命令:cd(1)cd /home 进入 ‘/ home’...原创 2018-08-02 23:35:35 · 4943 阅读 · 0 评论 -
【基础IO 】系统调用和库函数
本文重点:1、认识文件描述符,理解重定向。 2、系统调用和库函数的区别。 3、软连接和硬链接的概念和区别。 4、静态库和动态库。1、认识文件描述符,理解重定向。2、系统调用和库函数的区别。3、软连接和硬链接的概念和区别。4、静态库和动态库。...原创 2018-08-15 00:48:38 · 510 阅读 · 0 评论 -
Linux管道 - 系统调用pipe()函数实现
管道概念1、管道是操作提供的一块操作系统内存; 2、管道是Unix中最古老的进程间通信方式; 3、我们把一个进程连接到另一进程的数据流称为管道。管道通信原理 父进程和子进程之间,或者两个兄弟进程之间,可以通过系统调用建立起一个单向的通信管道。但是这种管道只能由父进程开建立,对于子进程来说是静态的,与生俱来的。管道两端的进程各自都将该管道视作一个文件。一个进程写,另一个进程读。并...原创 2018-04-06 17:21:58 · 6261 阅读 · 0 评论 -
进程(上)- 进程创建 & 进程终止 & 进程等待详解及代码实现
一 进程创建1、fork函数fork函数很重要,函数功能是:从已存在的进程中创建一个新进程,新创建出的进程为子进程,而原进程为父进程。#include&amp;lt;unistd.h&amp;gt;pid_t fork(void);//返回值:子进程中返回0,父进程返回子进程id,出错返回-1分配新的内存块和内核数据结构给子进程将父进程部分数据结构内容拷贝至子进程添加子进程到系...原创 2018-04-06 21:54:41 · 3050 阅读 · 0 评论 -
网络分层模型(OSI、TCP/IP)以及对应的网络协议
为什么要引入网络协议概念? 为了使不同厂商生产的计算机之间能够互相通信,约定了一个共同的标准,就是网络协议。网络协议分层的好处? 最大好处在于“封装”。各自独立;灵活,并且一层改变,不会造成系统问题;结构上易分割;容易实现和维护,便于调试;促进标准化工作。OSI七层模型:主要功能: 这种框架性的设计方法,使不同类型的主机实...原创 2018-05-12 23:22:13 · 6964 阅读 · 3 评论 -
socket套接字详解(TCP与UDP)
学习LInux,网络编程套接字是基础,也是新手学习的难点,通过本篇文章,读者可以通过图解、作者的代码实现思路全面理解IP地址、端口号、TCP、UDP概念、socket API用法、模拟客户端/服务器通信等。Mark:阅读blog + 代码实现耗时18分钟 文章重点:IP地址、端口号……socket API实现UDP客户端/服务器套接字是网络编程中的一种通...原创 2018-05-12 00:03:17 · 50541 阅读 · 10 评论 -
【原理】 进程调度算法
进程调度的原理:需要进程调度的理由很简单,即充分利用计算机系统中的CPU资源,让计算机系统能够多快好省地完成我们让它做的各种任务。为此,可在内存中可存放数目远大于计算机系统内CPU个数的进程,让这些进程在操作系统的进程调度器的调度下,能够让进程高效(高的吞吐量–throughput)、及时(低延迟–latency)、公平(fairness)地使用CPU。为此调度器可设计不同的调度算法来选择进...原创 2018-03-07 15:07:46 · 6563 阅读 · 0 评论 -
计算机组成原理复习题 --- 全面版
1、指令和数据都放在内存上,如何从时间和空间上区分他们是指令还是数据? 答:一般来讲,取指周期中从内存读出的信息流是指令流,它流向控制器;而在执行器周期中从内存读出的信息流是数据流,它由内存流向运算器。 1.数据区分两种,一种是栈数据,和堆数据, 2.而全局变量和静态变量和常量字符串放在文本区或者叫全局区, 3.并在文本区的隔壁还有一个是指令区,专门放指令。 他们分别有一个段基原创 2018-01-08 16:14:36 · 13679 阅读 · 5 评论 -
进程创建<fork函数>原理(使用代码实现)
1、在讲进程创建, 等待, 终止等原理以及代码实现之前,首先需要了解进程的几个状态1. Linux进程状态:R run 运行状态 0 (TASK_RUNNING),可执行状态&运行状态(在run_queue队列里的状态)2. Linux进程状态:S 浅度睡眠 1 系统默认sleep (TASK_INTERRUPTIBLE),可中断的睡眠状态, 可处理signal3. Linux进程状态:D 深度睡眠原创 2017-12-31 02:15:58 · 2086 阅读 · 1 评论 -
计算机网络复习题(全套)
1、网络协议主要要素为_________。【答案】语法、语义、同步。2、一座大楼内的一个计算机网络系统,属于________。【答案】LAN。3、随着电信和信息技术的发展,国际上出现了所谓“三网融合”的趋势,下列属于三网之一的是(ABC)A.传统电信网 B.计算机网C.有线电视网 D.卫星通信网4、通信系统必须具备的三个基本要素是( C )A、终端、电缆、计算机...原创 2017-11-25 19:40:43 · 97657 阅读 · 29 评论 -
浅谈task_struct结构
⏞进程概念是操作系统的基础,也是Linux的核心部分,这篇文章调研task_struct结构体, 帮助our理解结构体中的各个字段的含义。Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。它定义在include/linux/sched.h文件中。task_struct结构体,可以说她是linux内核源码中最复杂的一个结构体了,原创 2017-12-09 16:14:54 · 1534 阅读 · 0 评论 -
网络攻击方法分析与防范措施
推荐阅读(仅仅三页内容):常见网络攻击手段分析及防御原理 一个网站建立以后,如果不注意安全方面的问题,很容易被人攻击,下面我就总结几种常见的漏洞的简介与攻击原理分析前奏:什么是网络安全 黑客入侵技术的发展攻击技术: 一、DoS攻击: 不是用DoS操作系统攻击,其全称为Denial of Service——拒绝服务。它通过协议方式,或抓...原创 2018-05-13 13:42:04 · 21754 阅读 · 0 评论 -
总结常见应用层协议端口号
点击查看:端口号和协议号的区别 协议 端口号 DNS UDP 53 SMTP TCP 25 Telent TCP 23 HTTP TCP 80 HTTPS TCP 443 FTP TCP/20/21 TFTP UDP 69 POP3 TCP 110 SSH TCP...原创 2018-05-13 14:13:52 · 4129 阅读 · 3 评论 -
简单的UDP网络程序(Socket API)
预备知识:本文的目的是写回显服务器,在撸代码之前,先来个热身。IP地址是什么?IP地址有IPV4、IPV6之分,一般不特俗说明,默认就是IPV4。 IP地址是用来标识不同的主机,每个主机都有唯一的IP地址; 对于IP4来说,IP地址是一个4字节,32位整数; IP地址用“点分”制表示,如:192.168.1.11(用点分割的每个数范围0~255)。源IP地...原创 2018-05-25 17:43:20 · 5637 阅读 · 0 评论 -
Linux 信号(上)- 信号概念 & 信号处理等
全篇阅读只需6分钟生活中的信号概念可想而知(交通信号灯),那什么是Linux中的信号概念呢?其实很好理解,首先信号有好多种,不同的信号处理方式也不同(三种处理方式,默认、忽略&lt;&gt;、捕捉&lt;要求内核在处理该信号时切换到用户态执行这个处理函数,这种方式称为捕捉(Catch)一个信号&gt;); 在接收信号之前就已经指导改如何处理了。(以上两条也是信号的特性)信号发送给谁呢?怎么发送?信号的发送者有很多原创 2018-04-09 13:09:34 · 1105 阅读 · 0 评论 -
总结进程、进程组、作业、会话
本篇文章主要讲述进程间关系的几个基本概念。从以下几个方面叙述:进程进程组作业会话进程: 进程是操作系统的一个核心概念。每个进程在内核中都有一个进程控制块(PCB)来维护进程信息,这样可以使一个在多道程序环境下不能独立运行的程序成为一个能独立运行的基本单位或其他进程并发执行的进程。 Linux内核的进程控制块是task_struct结构体。task_struct是...原创 2018-05-06 12:59:17 · 1656 阅读 · 0 评论 -
守护进程详解及其代码实现
1、概念理解:守护进程(Daemon)是运行在后台的一种特殊进程,也称为精灵进程。是生存期较长的一种进程,常常在系统自举时启动,仅在系统关闭时终止。没有控制终端,仅仅在后台运行,Linux有很多守护进程执行日常事务活动,是不受终端控制的进程。2、守护进程作用:Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。同时,守护进程完...原创 2018-05-06 14:09:44 · 3095 阅读 · 0 评论 -
Shell命令原理
shell命令:用简单的图示理解shell要点: 1&amp;gt; 简单讲,其实shell就是逐条执行命令,在终端执行的命令都是一条一条敲上去,再执行的,shell脚本就是事先写很多命令,然后执行脚本,让shell一次性将这些命令执行完。2&amp;gt; shell脚本和编程语言相似,也有变量和流程控制语句,但shell脚本是解释执行的,不需要编译,shell程序从脚本中一条一条读取并执行这...原创 2018-05-10 00:38:02 · 3076 阅读 · 0 评论 -
TCP连接的建立和关闭过程及相关面试问题详解(三次握手&四次挥手&面试问题)
三次握手、四次挥手问题是面试中一定会问到的,包括在《高质量C/C++编程》一书中也有类似的习题。(浏览器输入www.baidu.com回车后发生了什么?)这篇blog就TCP连接的建立和关闭过程及相关面试问题做一个详解,如有错误,望指正。如果对TCP还不了解,可以先阅读这篇文章:三次握手: 三次握手是就是TCP在建立连接时的过程。 TCP是主机对主机层的传输控制协议,提供可...原创 2018-07-03 19:45:59 · 1812 阅读 · 2 评论 -
TCP固定头部结构详解
所谓的三次握手就是TCP建立连接的过程,四次挥手是TCP断开连接的过程,本篇文章就两种过程做一详解,如有遗漏、望指正。1、前言尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写。双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上之...原创 2018-07-03 19:46:19 · 13700 阅读 · 3 评论 -
TCP协议的可靠传输
传输层使用的两个主要协议:TCP和UDP。TCP面向连接,提供有序可靠的传输;UDP无连接,提供无序不可靠的传输。总述1、确认应答(ACK)机制:2、超时重传机制: 接收方收到报文就会确认,发送方发送一段时间后没有收到确认就重传。3、滑动窗口机制:4、数据校验: TCP将保持它首部和数据的检验和。这是一个端到端的检验和,目的是检测数据在传输过程中的任何变化。...原创 2018-05-31 16:09:33 · 3012 阅读 · 0 评论 -
HTTP和HTTPS
HTTP:HTTP:超文本传输协议用于网页浏览器和网站服务器之间传递信息。HTTP协议信息传递是以明文方式发送内容,不提供任何的数据加密如果攻击者截取传输报文,就会读懂其中信息因此,HTTP协议不适合传输一些敏感信息,比如:。信用卡号,密码等信息。 为了解决上面这种不安全的传输缺陷,就需要另一种协议:安全套接字层超文本传输协议HTTPS。HTTPS...原创 2018-05-26 16:58:19 · 1394 阅读 · 3 评论 -
什么是进程? ( 进程的详细概念 )
进程管理是操作系统重点、难点问题,也是贯穿Linux学习的知识点。那么什么是进程?为什么引入进程的概念? 从理论角度看,是对正在运行的程序过程的抽象; 从实现角度看,是一种数据结构,目的在于清晰地刻画动态系统的内在规律,有效管理和调度进入计算机系统主存储器运行的程序。什么是进程? 狭义定义:进程就是一段程序的执行过程。 广义定义:进程是一个具有一定独立...原创 2017-12-09 15:19:46 · 48589 阅读 · 1 评论