
linux
Lange_Taylor
从零开始
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux进程概念
操作系统常用调度算法在操作系统中存在多种调度算法,其中有的调度算法适用于作业调度,有的调度算法适用于进程调度,有的调度算法两者都适用。下面介绍几种常用的调度算法。先来先服务(FCFS)调度算法FCFS调度算法是一种最简单的调度算法,该调度算法既可以用于作业调度也可以用于进程调度。在作业调度中,算法每次从后备作业队列中选择最先进入该队列的一个或几个作业,将它们调入内存,分配必要的资源,创建进程...原创 2019-06-25 21:01:32 · 160 阅读 · 0 评论 -
MAC地址与IP地址的区别 ARP协议 数据链路层功能
MAC地址与IP地址的区别文章来源:https://www.cnblogs.com/wbxjiayou/p/5157411.html介绍一下MAC地址的知识,MAC地址和IP地址的区别以及MAC地址在实际应用中所涉及到的安全问题。一、基础知识如今的网络是分层来实现的,就像是搭积木一样,先设计某个特定功能的模块,然后把模块拼起来组成整个网络。局域网也不例外,一般来说,在组网上我们使用的是IE...原创 2019-09-02 09:11:27 · 1495 阅读 · 0 评论 -
如果很多连接都是处于time_wait状态,该怎么处理
参考大佬领会链接奉上:https://www.cnblogs.com/wzj4858/p/8227350.htmlTIMEWAIT状态本身和应用层的客户端或者服务器是没有关系的。仅仅是主动关闭的一方,在使用FIN|ACK|FIN|ACK四分组正常关闭TCP连接的时候会出现这个TIMEWAIT。服务器在处理客户端请求的时候,如果你的程序设计为服务器主动关闭,那么你才有可能需要关注这个TIMEWA...原创 2019-08-27 14:36:08 · 3184 阅读 · 0 评论 -
Linux软链接文件与硬链接文件 静态链接与动态链接
软链接文件与硬链接文件区别硬链接文件是一个文件别名(目录项)--与源文件操作同一个inode节点软链接文件是一个单独的文件,数据中存储源数据路径软链接可以对目录创建,硬连接不可以软链接可以跨分区建立,硬连接不可以删除源文件,软链接文件失效,硬链接文件无影响(链接数-1)静态链接与动态链接静态链接:链接静态库,将代码拷贝,程序大,运行时不依赖静态库,运行时大概率代码冗余动...原创 2019-08-17 20:48:35 · 411 阅读 · 0 评论 -
高级IO
ICMP协议:网络层协议—探测网络数据封装在IP分组中,IP协议直接为ICMP提供服务pingNAT/NAPT:网络地址转换服务部署在网关设备,对流经网关设备的IP报文,替换源端地址为自己的地址 代理服务:工作在应用层,实现数据的中间代理转发的工作;高级IO:五种典型IO/多路转接模型 阻塞/非阻塞/信号驱动/异步/多路转接IO发展历程:效率以及对...原创 2019-08-16 15:09:03 · 253 阅读 · 0 评论 -
TCP
TCP协议保证数据传输可靠性的方式主要有:(校序重流拥)校验和 发送的数据包的二进制相加然后取反,目的是检测数据在传输过程中的任何变化。如果收到段的检验和有差错,TCP将丢弃这个报文段和不确认收到此报文段。 确认应答+序列号 TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。 超时重传 当TCP发出一个段后,它启动一个定时器,等待目的端...原创 2019-08-25 15:53:49 · 868 阅读 · 1 评论 -
源码到可执行文件 僵尸进程
源码到可执行文件的过程1)预编译主要处理源代码文件中的以“#”开头的预编译指令。处理规则见下1、删除所有的#define,展开所有的宏定义。2、处理所有的条件预编译指令,如“#if”、“#endif”、“#ifdef”、“#elif”和“#else”。3、处理“#include”预编译指令,将文件内容替换到它的位置,这个过程是递归进行的,文件中包含其他文件。4、删除所有的注释,“//...原创 2019-08-15 18:52:12 · 247 阅读 · 0 评论 -
线程
有了进程,为什么还要有线程?线程产生的原因:进程可以使多个程序能并发执行,以提高资源的利用率和系统的吞吐量;但是其具有一些缺点:进程在同一时间只能干一件事 进程在执行的过程中如果阻塞,整个进程就会挂起,即使进程中有些工作不依赖于等待的资源,仍然不会执行。因此,操作系统引入了比进程粒度更小的线程,作为并发执行的基本单位,从而减少程序在并发执行时所付出的时空开销,提高并发性。和进程相...原创 2019-08-14 21:22:56 · 200 阅读 · 0 评论 -
浏览器输入url
浏览器中输入url后发生了什么我将该过程分为了以下六步:DNS域名解析在浏览器DNS缓存中搜索在操作系统DNS缓存中搜索读取系统hosts文件,查找其中是否有对应的ip向本地配置的首选DNS服务器发起域名解析请求建立TCP连接为了准确地传输数据,TCP协议采用了三次握手策略。发送端首先发送一个带SYN(synchronize)标志的数据包给接收方,接收方收到后,回传一个带有...转载 2019-08-09 21:39:38 · 277 阅读 · 0 评论 -
进程与线程 以及通信方式
基本概念:进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发;线程是进程的子任务,是CPU调度和分派的基本单位,用于保证程序的实时性,实现进程内部的并发;线程是操作系统可识别的最小执行和调度单位。每个线程都独自占用一个虚拟处理器:独自的寄存器组,指令计数器和处理器状态。每个线程完成不同的任务,但是共享同一地址空间(也就是同样的动态内存,映射文件,目标代码等等)...原创 2019-08-07 17:46:38 · 467 阅读 · 0 评论 -
fork和vfork
fork和vfork的区别:fork的基础知识:fork:创建一个和当前进程映像一样的进程可以通过fork( )系统调用:#include <sys/types.h>#include <unistd.h>pid_t fork(void);成功调用fork( )会创建一个新的进程,它几乎与调用fork( )的进程一模一样,这两个进程都会继续运行。在子进程中,成功的...原创 2019-08-09 21:23:03 · 299 阅读 · 0 评论 -
Linux虚拟地址空间
Linux虚拟地址空间为了防止不同进程同一时刻在物理内存中运行而对物理内存的争夺和践踏,采用了虚拟内存。虚拟内存技术使得不同进程在运行过程中,它所看到的是自己独自占有了当前系统的4G内存。所有进程共享同一物理内存,每个进程只把自己目前需要的虚拟内存空间映射并存储到物理内存上。 事实上,在每个进程创建加载时,内核只是为进程“创建”了虚拟内存的布局,具体就是初始化进程控制表中内存相关的链表,实际上...原创 2019-08-08 19:34:54 · 360 阅读 · 0 评论 -
网络基础
网络层:负责地址管理与路由选择:在复杂网络通讯环境中,为每一条数据选择一条合适的路径进行传输而选择路径是根据每一条数据中的目的端地址决定的并且路由选择也依托良好的地址管理IP协议字段:4位协议版本:4位头部长度:以4字节为单位 20~608位服务类型:4位TOS字段16位数据报长度: 包括IP头在内,一个IP报文的长度----一个udp报文的最大数据段大小64k-20-81...原创 2019-08-01 23:15:09 · 258 阅读 · 0 评论 -
进程基础
进程概念:进程是操作系统调度程序运行的灵魂,在操作系统中这个灵魂就是pcb–linux下是task_struct进程查看: ps -aux -ef /proc getpid()进程创建:—fork()—操作系统通过调用进程创建一个新的子进程 复制:复制父进程的pcb(代码共享,数据独有)创建子进程的意义:分摊压力,让子进程完成其它任务返回值:对于...原创 2019-08-02 15:19:53 · 162 阅读 · 0 评论 -
网络基础
TCP/IP重要解析:目的:为了了解底层协议,使得编程得心应手应用层:负责应用程序之间的数据沟通;自定制协议:结构化数据的传输序列化:将数据对象按照指定协议组织成为可持久化存储/数据传输的二进制数据格式串反序列化:二进制数据串按照指定协议解析出数据对象知名协议:HTTPURL:统一资源定位符http://username:password@server_ip:serv...原创 2019-07-30 16:41:05 · 249 阅读 · 0 评论 -
Linux套接字编程
**套接字编程:*网络通讯编程ip地址:功能:在网络唯一标识一台主机本质:IPv4: uin32_t在网路中的数据都必须带有源IP地址和目的IP地址PORT端口:功能:在主机上标识一个进程–表示一个数据应该由那个进程处理本质:uint16_t 0~65535在网络中的数据都必须带有源端口和目的端口特性:一个段口只能被一个进程占用,一个进程可以使用多个端口五元组:源IP地址...原创 2019-07-23 17:07:39 · 229 阅读 · 0 评论 -
进程控制
- 学习进程创建, 等待, 终止. 使用代码实现.- 编写自主shell.- 封装fork/wait等操作, 编写函数 process_create(pid_t* pid, void* func, void* arg), func回调函数就是子进程执行的入口函数, arg是传递给func回调函数的参数.- 调研popen/system, 理解这两个函数和fork的区别.进程的创建...原创 2019-07-06 20:14:20 · 135 阅读 · 0 评论 -
linux环境变量
一、环境变量1.概念指在操作系统中用来指定操作系统运行环境的一些参数。环境变量通常具有特殊用途,在系统中具有全局特性。环境变量通常具有全局属性,可以被子进程继承下去。2.常见的环境变量(1)PATH:指定命令的搜索路径(2)HOME:指定用户的主工作目录(即用户登录到Linux系统中时,默认的目录)(3)HISTSIZE:指保存历史命令记录的条数(4)SHELL:当前Shell,...翻译 2019-06-25 21:05:52 · 161 阅读 · 0 评论 -
图片服务器
项目核心需求:实现一个HTTP服务器,用来存储图片,针对于每一个图片提供一个唯一的url,用来显示图片。1.上传图片2.根据url访问图片 获取图片内容3.获取图片属性4.删除模块划分:1.数据存储模块文件数据库:数据库设计(表的结构(表头信息),个数)create table image_table( image_id int not null primary...原创 2019-09-06 13:13:42 · 1592 阅读 · 0 评论