
Linux基础、网络与内核
文章平均质量分 84
收录Linux基础知识、多进程/多线程程序设计、网络编程基础、服务器编程基础
优惠券已抵扣
余额抵扣
还需支付
¥39.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
ZY-JIMMY
求知若渴,虚心若愚
展开
-
两种高效的并发模式:半同步/半异步模式、领导者/追随者模式
半同步/半异步模式、半同步/半反应堆模式、相对高效的半同步/半异步模式、领导者/追随者模式原创 2019-08-02 00:06:33 · 2000 阅读 · 0 评论 -
理解Linux五种I/O模型、同步I/O与异步I/O、阻塞与非阻塞
五种IO模型、五种I/O模型的比较、同步I/O与异步I/O原创 2019-07-30 22:28:44 · 2791 阅读 · 0 评论 -
Linux内核空间内存管理(三):slab内存分配机制剖析
slab概述、基本设计原则、slab层的设计、slab 描述符、普通和专用高速缓存、与slab分配器有关的全局变量、创建缓存、创建slab 与 cache_grow()、slab的销毁:退还内存与kmem_cache_destroy()、内存请求路径原创 2019-06-01 02:48:32 · 1860 阅读 · 0 评论 -
Linux内核空间内存管理(二):buddy system 伙伴系统算法
外碎片问题、伙伴系统概述、主要数据结构、分配块、释放块原创 2019-05-31 13:57:54 · 1737 阅读 · 0 评论 -
Linux内核空间内存管理(一):内存寻址、内存管理机制综述
内存寻址、硬件中的分段与分页、Linux内存管理页与内存管理区、kmalloc()和vmalloc()原创 2019-05-31 02:05:38 · 5801 阅读 · 9 评论 -
浅析malloc的底层实现原理(ptmalloc)
内存布局、brk(sbrk)与mmap函数、内存管理的一般方法、ptmalloc简介、内存管理数据结构概述、内存分配、回收概述原创 2019-05-30 19:48:54 · 4248 阅读 · 2 评论 -
深入剖析 epoll 内核实现(Linux Kernel 2.6.11)
epoll 概述、epoll 内核实现机制综述、epoll 内核实现的具体分析原创 2019-05-25 01:55:03 · 1836 阅读 · 0 评论 -
深入剖析 fork 内核实现(Linux kernel 2.6.11)
进程复制概述、do_fork执行过程综述、do_fork函数执行过程的详细分析原创 2019-05-23 14:28:36 · 1903 阅读 · 0 评论 -
Shell程序设计(二) 内置命令、find、grep与正则表达式
Shell内置命令、find命令、grep命令、正则表达式原创 2019-05-08 04:01:08 · 1668 阅读 · 0 评论 -
Shell程序设计(一) 变量、程序控制与函数
变量、条件、程序控制、命令列表、函数原创 2019-05-08 04:01:04 · 1586 阅读 · 0 评论 -
高性能 I/O框架库 libevent 的安装和简单使用(实现多客户/服务器)
I/O框架库概述、I/O框架库 libevent 的安装、libevent 的简单使用 —— 实现多客户服务器原创 2019-04-26 04:09:50 · 1072 阅读 · 0 评论 -
Linux网络编程 | 统一事件源的实现
信号是一种异步事件:信号处理函数和程序的主循环是两条不同的执行路线。很显然,信号处理函数需要尽可能快地执行完毕,以确保该信号不被屏蔽(为了避免一些竞态条件,信号在处理期间,系统不会再次触发它)太久。一种典型的解决方案是:把信号的主要处理逻辑放到程序的主循环中,当信号处理函数被触发时,它只是简单地通知主循环程序接收到信号,并把信号值传递给主循环,主循环再根据接收到的信号值执行目标信号对应的逻辑代码...原创 2019-04-22 00:19:35 · 997 阅读 · 0 评论 -
浅析Linux守护进程、守护进程的创建步骤
何为守护进程、进程组 / 组长进程 / 会话 / 会话首进程、守护进程的创建步骤、创建守护进程程序示例原创 2019-04-21 22:31:10 · 2185 阅读 · 8 评论 -
Linux网络编程 | 三种IO复用函数的比较
通过事件集、最大支持文件描述符数、工作模式和具体实现等四个方面比较I/O函数的异同。原创 2019-04-19 23:52:02 · 1075 阅读 · 0 评论 -
Linux网络编程 | IO复用 : epoll系列系统调用详解
内核事件表、操作函数epoll_ctl、epoll_wait函数、使用epoll系列系统调用实现多客户/服务器、LT 和 ET模式原创 2019-04-19 01:46:55 · 2106 阅读 · 1 评论 -
Linux网络编程 | IO复用 : poll系统调用详解
poll系统调用、使用poll编写多客户/服务器(socket)原创 2019-04-19 01:45:59 · 1068 阅读 · 0 评论 -
Linux网络编程 | IO复用 : select系统调用详解(实现改进的多客户/服务器)
select API、文件描述符就绪条件、读取键盘(标准输入)、改进的多客户/服务器原创 2019-04-18 03:14:20 · 1972 阅读 · 0 评论 -
基于TCP实现简单的HTTP Web服务器
HTTP的操作过程、实现简单Web服务器原创 2019-04-18 01:48:55 · 2549 阅读 · 3 评论 -
Linux网络编程 | HTTP协议简述与报文分析
协议基础与模块概述、基本概念、特点、URL和URI的区别、HTTP报文结构概述、HTTP请求报文、请求报文中的常用方法、GET方法和POST方法的区别、HTTP响应报文常见面试问题原创 2019-04-17 20:31:32 · 1549 阅读 · 0 评论 -
Linux网络编程 | TCP、UDP协议总结
TCP协议状态转移图、常见问题、TCP可靠传输的实现、滑动窗口机制超时重传、TCP拥塞控制的方法、慢启动、拥塞避免、快速重传、快速恢复、TCP服务器-客户端编程流程、UDP协议总结、UDP服务器-客户端编程流程、TCP协议和UDP协议的区别原创 2019-04-17 17:25:33 · 1452 阅读 · 0 评论 -
Linux网络编程 | 基本UCP套接字编程
通信模型、UDP数据读写、实现完整的UDP服务器端客户端程序原创 2019-04-17 17:23:53 · 1473 阅读 · 1 评论 -
基于TCP实现服务器端、多客户端通信(多线程、多进程并发编程)
多客户端并发访问的问题分析、多线程方式实现客户端并发访问、多进程方式实现客户端并发访问、解决多进程方式下僵尸进程问题原创 2019-04-17 17:17:57 · 7211 阅读 · 5 评论 -
Linux网络编程 | 基本TCP套接字编程
TCP通信模型、TCP数据读写、实现完整的TCP服务器端客户端程序(单客户机访问)、从C-S程序看TCP连接与释放原创 2019-04-17 17:17:02 · 4587 阅读 · 0 评论 -
使用 VS 2019 编写和调试 Linux C/C++程序
环境要求、创建新项目、配置连接器、Linux安装远程调试、编写并调试Linux程序、编写Linux多线程程序原创 2019-04-05 17:59:24 · 34438 阅读 · 13 评论 -
深入理解TCP协议 " 三次握手、四次挥手 "
TCP报文格式、三次握手过程详解、三次握手常见问题、四次挥手过程详解、四次挥手常见问题、TCP状态转移图原创 2019-04-04 11:14:11 · 1899 阅读 · 0 评论 -
Linux网络编程 | 基本套接字(Socket)编程
网络中进程如何通信、Socket简介、socket套接字、套接字描述符、Socket基础API、创建socket、命名socket、监听socket、接受连接、发起连接、关闭连接、TCP数据读写、UDP数据读写、主机字节序和网络字节序、客户端 / 服务器模式及编程流程原创 2019-04-16 20:55:48 · 2113 阅读 · 0 评论 -
Linux网络编程 | 计算机网络体系结构概述
分层思想、计算机网络体系结构的概念、计算机网络体系结构的标准、计算机网络体系结构的分层原理、通信协议与端口、OSI七层模型、OSI七层模型的划分、各层功能定义通信特点、TCP/IP参考模型、TCP/IP四层模型的划分各层功能定义、与OSI模型的比较、客户端/服务器模式原创 2019-04-16 20:59:25 · 2331 阅读 · 2 评论 -
Linux | 多线程环境编程
文章目录线程与进程一个进程中可以创建多少线程关于strtok函数的线程安全问题在多线程环境中使用forkpthread_atfork线程与进程一个进程中可以创建多少线程为了得出此问题的结果,我们进行一个简单的测试,之后进行分析:#include <stdio.h>#include <assert.h>#include <string.h>#incl...原创 2019-03-24 19:58:33 · 2254 阅读 · 0 评论 -
Linux | 线程同步的四种方式
文章目录互斥锁条件变量信号量读写锁Linux下提供了多种方式来处理线程同步,最常用的是互斥锁、条件变量、信号量和读写锁。互斥锁在线程里也有这么一把锁——互斥锁(mutex),互斥锁是一种简单的加锁的方法来控制对共享资源的访问,互斥锁只有两种状态,即上锁( lock )和解锁( unlock )。【互斥锁的特点】:原子性:把一个互斥量锁定为一个原子操作,这意味着操作系统(或pthre...原创 2019-03-24 00:11:50 · 2725 阅读 · 0 评论 -
Linux | POISX线程
文章目录线程的基本概念什么是线程为什么要引入线程线程与进程的区别用户级和内核级线程线程同步实现线程同步的几种方法pthread库数据类型操纵函数pthread_createpthread_exitpthread_join线程同步程序示例线程的基本概念什么是线程线程(thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺...原创 2019-03-17 23:29:31 · 2470 阅读 · 0 评论 -
Linux进程间通信 | 信号量、消息队列、共享内存
文章目录信号量基本概念Linux的信号量机制semget函数semop函数semctl函数信号量应用示例程序消息队列基本概念Linux的消息队列机制msgget函数msgctl函数msgsnd函数msgrcv函数消息队列应用程序示例共享内存基本概念Linux的共享内存机制shmget函数shmat函数shmdt函数shmctl函数共享内存应用示例程序信号量基本概念临界资源指同一时刻,只允许...原创 2019-03-09 19:52:01 · 1959 阅读 · 0 评论 -
Linux | 信号处理机制及相关系统调用
文章目录信号概述信号处理机制内核对信号的基本处理方法有关信号的系统调用signal系统调用kill系统调用alarm函数模拟对于 Linux来说,信号的实质是一种软中断,许多重要的程序都需要处理信号。信号,为 Linux 提供了一种处理异步事件的方法。比如,终端用户输入了 ctrl+c 来中断程序,会通过信号机制停止一个程序。信号概述信号机制是进程之间相互传递消息的一种方法,信号全称为软中断...原创 2019-03-05 21:17:30 · 1568 阅读 · 1 评论 -
Linux进程间通信 | 管道
文章目录进程间通信简介(IPC)管道机制的基本概念什么是管道管道通信的特点匿名管道管道的创建与关闭管道的读写命名管道命名管道的概念命名管道与管道的区别命名管道的创建命名管道的读写进程间通信简介(IPC)进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共...原创 2019-03-05 23:03:46 · 1071 阅读 · 0 评论 -
Linux进程管理 | 替换进程映像exec系列函数
替换进程映像exec系列函数由一组相关的函数组成,它们在进程的启动方式和程序参数的表达方式上各有不同。exec函数可以把当前进程替换为一个新进程,新进程由path或file参数指定。可以使用exec函数将程序的执行从一个程序切换到另一个程序。例如,可以在启动另一个有着受限使用策略的程序前,检查用户的凭证。exec函数比system函数更有效,因为在新的进程启动后,原来的程序就不再运行了。#in...原创 2019-02-23 19:11:30 · 1103 阅读 · 0 评论 -
浅谈Linux虚拟内存技术
文章目录虚拟内存虚拟内存的概念实例分析Linux的虚拟内存技术虚拟内存的页、物理内存的页框及页表请页与交换快表页的共享页的保护多级页表Linux的页表结构内存是程序得以运行的重要物质基础。如何在有限的内存空间运行较大的应用程序,曾是困扰人们的一个难题。为解决这个问题,人们设计了许多的方案,其中最成功的当属虚拟内存技术。Linux作为一个以通用为目的的现代大型操作系统,当然也毫不例外的采用了优点甚...原创 2019-02-23 17:03:16 · 1441 阅读 · 0 评论 -
Linux系统调用 | 内核态与用户态的转换
文章目录Unix/Linux的体系架构Linux系统调用简述系统调用号与系统调用表内核态与用户态内核态与用户态的转换Unix/Linux的体系架构如上图所示,从宏观上来看,Linux操作系统的体系架构分为用户态和内核态(或者用户空间和内核)。内核从本质上看是一种软件——控制计算机的硬件资源,并提供上层应用程序运行的环境。用户态即上层应用程序的活动空间,应用程序的执行必须依托于内核提供的资源,...原创 2019-02-23 15:31:42 · 1859 阅读 · 0 评论 -
Linux文件管理 | 底层文件访问
文章目录概述write系统调用read系统调用概述每个运行中的程序被称为进程,它有一些与之关联的文件描述符。这是一些小值整数,可以通过它们访问打开的文件或设备。有多少文件描述符可用取决于系统的配置情况。当一个程序开始运行时,它一般会有3个已经打开的文件描述符:0:标准输入1:标准输出2:标准错误write系统调用系统调用write的作用是把缓冲区buf的前nbytes个字节写入与...原创 2019-02-17 18:11:45 · 911 阅读 · 0 评论 -
Linux进程管理 | 僵尸进程的产生原因和避免方法
文章目录基本概念基本概念我们知道在unix/linux中,正常情况下,子进程是通过父进程创建的,子进程在创建新的进程。子进程的结束和父进程的运行是一个**异步过程**,即父进程永远无法预测子进程 到底什么时候结束。 当一个进程完成它的工作终止之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。一个进程使用fork创建子进程,如果子进程退出,而父进程并没有...原创 2019-02-17 15:56:29 · 1127 阅读 · 0 评论 -
Linux进程管理 | fork复制进程 和 写时拷贝机制
文章目录fork函数函数原型函数说明实现写时拷贝机制fork函数UNIX及类UNIX(UNIX-like)系统中的分叉函数。返回值: 若成功调用一次则返回两个值,子进程返回0,父进程返回子进程PID;否则,出错返回-1。fork()函数将运行着的程序分成2个(几乎)完全一样的进程,每个进程都启动一个从代码的同一位置开始执行的线程。这两个进程中的线程继续执行,就像是两个用户同时启动了该应用程...原创 2019-02-17 14:27:51 · 1884 阅读 · 1 评论 -
Linux | 静态库与共享库及其制作
文章目录一、库什么是库?二、静态库什么是静态库?静态库的创建与使用三、共享库什么是共享库?共享库的创建和使用四、静态库与共享库的区别一、库什么是库?库是预先编译好的方法(函数)的集合。 **本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行。**由于Windows和Linux本质不同,因此二者库的二进制是不兼容的。分为两种形式:静态库(.a .lib)和共享库也称动态...原创 2019-02-02 19:38:36 · 1094 阅读 · 2 评论