
Linux
文章平均质量分 96
Jasper@.
好好学习技术,分享编程知识
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux篇】第二十篇——HTTP协议(认识协议+HTTP协议+HTTPS)
今天我要用一个例子带大家认识协议——网络计算器。我结合上一篇博客的线程池版本的TCP服务器进行编写这个网络计算器。大致过程如下:注意: 客户端将请求封装成一个数据包,该过程叫做序列化,服务端将请求数据包进行解析的过程叫做反序列化。目前市面上有json、xml等格式,都可以供程序员进行该操作。协议定制:协议的头文件如下:客户端填充请求数据包: 客户端需要让用户输入两个操作数和一个操作符,然后填充好请求数据包(序列化),并且调用将请求数据包发送过去,然后接受服务端发送过来的响应数据包,并且进行解析(反序列化原创 2022-07-12 16:23:28 · 8705 阅读 · 34 评论 -
【Linux篇】第十九篇——网络套接字编程(二)(TCP套接字的编写+多进程版本+多线程版本+线程池版本)
⭐️ 本篇博客开始给大家介绍网络编程中的套接字编程——基于UDP协议的套接字和基于TCP的套接字,这篇博客主要介绍基于UDP协议套接字,下一篇介绍基于TCP协议的套接字。在介绍套接字编程之前,我会先给大家介绍一些预备知识:源IP地址和目的IP地址、源端口号和目的端口号等,方便大家更好地理解网络套接字编写的整个流程。需要注意的是,我们是站在应用层进行编写套接字的,所以接下来会用到都是传输层的接口。话不多说,先看今天的主要内容~目录............原创 2022-06-20 21:45:07 · 2544 阅读 · 33 评论 -
【Linux篇】第十八篇——网络套接字编程(一)(预备知识+UDP套接字的编写)
⭐️ 本篇博客开始要给大家介绍网络相关的内容了,本篇博客介绍的是网络中比较基础的一些知识,能够帮助大家认识网络目录原创 2022-05-29 19:18:12 · 2588 阅读 · 51 评论 -
【Linux篇】第十七篇——网络基础(概念+协议的认识+OSI七层模型+TCP/IP五层模型+网络传输的流程)
⭐️ 本篇博客开始要给大家介绍网络相关的内容了,本篇博客介绍的是网络中比较基础的一些知识,能够帮助大家认识网络目录🌏网络的发展🌏协议🌲认识“协议”🌲协议分层🌲OSI七层模型🌲TCP/IP五层(或四层)模型🌏网络传输的基本流程🌲数据的封装和分用🌲局域网通信🌲跨网络通信🌏网络中的地址管理🌲认识IP地址🌲认识MAC地址🌲通过指令查看IP和MAC🌐总结🌏网络的发展网络的发展有下面几个阶段:独立模式: 计算机最开始是以单机模式被广泛使用的。每一台计算机都是独立的,之间不能够进行数据共享与通信.原创 2022-05-22 11:22:45 · 1499 阅读 · 29 评论 -
【Linux篇】第十六篇——多线程(四)(读写锁+线程池)
⭐️ 本篇博客主要介绍读写锁和线程池相关的内容。我会给大家简单实现一个内存池,方便大家理解。原创 2022-05-03 20:02:25 · 1113 阅读 · 44 评论 -
【Linux篇】第十五篇——多线程(三)(生产消费模型+POSIX信号量)
⭐️ 本篇博客开始要继续给大家介绍线程同步和互斥的实际应用——生产者消费者模型,还要给大家介绍一种同步的机制——POSIX信号量目录生产者消费者模型生产者消费者模型概念: 生产者消费者模式就是通过一个容器来解决生产者和消费者的强耦合问题。生产者和消费者彼此之间不直接通讯,而通过一个来进行通讯,所以生产者生产完数据之后不用等待消费者处理,直接扔给阻塞队列,消费者不找生产者要数据,而是直接从阻塞队列里取,阻塞队列就相当于一个缓冲区,平衡了生产者和消费者的处理能力。这个阻塞队列就是用来给生产者和消费.原创 2022-04-30 09:00:00 · 1124 阅读 · 34 评论 -
【Linux篇】第十四篇——多线程(二)(线程同步和互斥+线程安全+条件变量)
⭐️ 本篇博客开始要继续给大家介绍多线程相关的知识,这篇博客内容比较丰富,耐心看完会有所收获。目录线程互斥线程互斥原创 2022-04-27 17:58:59 · 2161 阅读 · 36 评论 -
【Linux篇】第十三篇——多线程(一)(线程概念+线程控制)
⭐️ 本篇博客开始要给大家介绍多线程相关的知识,本篇博客主要讨论多线程的概念和多线程的控制目录原创 2022-04-24 17:10:29 · 4346 阅读 · 43 评论 -
【Linux篇】第十二篇——信号(概念+信号的产生+阻塞信号+捕捉信号)
⭐️ 本篇博客要给大家介绍一些关于进程间通信的一些知识。其中包括信号是什么,如何产生的,信号如何保存,什么时候处理,如何捕捉信号等等一些问题,在今天的博客中,你都将找到答案。目录了解信号了解信号...原创 2022-04-16 19:06:13 · 2091 阅读 · 42 评论 -
【Linux篇】第十一篇——进程间通信(管道+system V共享内存)
⭐️ 本篇博客要给大家介绍一些关于进程间通信的一下知识。Linux下进程通信常见的几种方式,例如管道、共享内存等。目录介绍管道认识管道匿名管道创建匿名管道——pipe使用匿名管道进行通信介绍概念: 进程间通信(IPC,Interprocess communication)是一组编程接口,让程序员能够协调不同的进程,使之能在一个操作系统里同时运行,并相互传递、交换信息。这使得一个程序能够在同一时间里处理许多用户的要求。IPC方法包括管道(PIPE)、消息排队、旗语、共用内存以及套接字(socket.原创 2022-04-09 19:37:11 · 2390 阅读 · 34 评论 -
【Linux篇】第十篇——动静态库(动静态库的介绍+动静态库的打包与使用)
⭐️上一篇博客介绍了基础IO相关的一些内容。这篇博客要继续聊一聊关于动静态库相关的一些内容。在之前的学习过程中,我们也会使用C/C++的相关的库,这些库都是由不同的语言打包好了的,我们直接调用即可。下面我们就会好好聊一聊相关内容。目录动静态库的概念静态库的打包与使用静态库的打包静态库的使用动静态库的概念静态库: Linux下,以.a为后缀的文件。程序在编译链接的时候把库的代码链接到可执行文件中。程序运行的时候将不再需要静态库。本质是在编译时把静态库中的代码(不是一次性加载,而是分页加载)复制到了.原创 2022-04-02 17:59:13 · 2614 阅读 · 40 评论 -
【Linux篇】第九篇——基础IO(系统文件IO+文件描述符+重定向+文件系统+软硬链接)
⭐️这篇博客就要开始聊一聊Linux中基础IO相关知识,IO相信大家都不陌生,我们在C/C++中对文件进行读写的操作,也就是文件IO,这篇博客我也会带大家回顾一下。这篇博客还会介绍系统中的文件IO调用的接口,还有文件系统相关的内容和概念,文件描述符等相关知识的分享。目录C语言文件IO介绍C语言文件操作库函数的简单使用C语言默认打开的三个流系统文件IO系统调用接口的介绍openC语言文件IO介绍C语言文件操作库函数的简单使用C语言的专栏中有专门讲到这一块知识,这里会介绍一些,更细节的内容可以参.原创 2022-03-29 18:19:31 · 3610 阅读 · 39 评论 -
【Linux篇】第八篇——Linux下的进程控制(进程创建+进程终止+进程等待+进程程序替换+简易shell的实现)
⭐️这篇博客就要开始聊一聊进程控制相关的内容了,这部分的内容十分的丰富且十分的重要,序号这一块内容是非常有必要的目录进程创建fork函数写时拷贝进程终止进程退出的三种场景进程常见的退出方法进程等待进程等待的方法进程创建fork函数fork这个函数我在第一次讲进程创建的那篇博客中介绍过了,关于fork的返回值和用法可以去看右边这篇博客,这里就简单说明一下。(Linux进程)fork函数也是一个系统调用接口,为当前进程创建子进程,子进程返回0,父进程返回子进程的pid,出错返回-1进程调.原创 2022-03-20 13:19:05 · 3239 阅读 · 35 评论 -
【Linux篇】第七篇——进程地址空间(程序地址空间+虚拟地址空间)
⭐️这篇博客就要和大家介绍进程地址空间相关内容,学完这个部分,我们会对进程的地址空间有一个全选的了解目录程序地址空间进程地址空间程序地址空间先看厦门下面一张图,在之前C/C+博客的内存管理中放过这张图,相信大家对这个不陌生吧。这篇博客有详细的介绍——C/C++内存管理下面我们通过一个代码来证明上面的地址空间分布图:代码运行结果如下:为了更深入地理解,我们用做了这样一个测试:#include <stdio.h>#include <stdlib.h>#inc.原创 2022-03-13 20:36:33 · 7046 阅读 · 19 评论 -
【Linux篇】第六篇——环境变量(概念+作用+环境变量的查看和应用)
⭐️这篇博客就要开始聊一聊进Linux下环境变量相关内容了,相信大家或多或少都听过环境变量这个词把,我们在Windows操作系统下也能够看到它,而且我们之前应该都有配置过这个玩意,但是却不理解这是个啥,今天我就带大家来了解一下这个小玩意儿~目录概念为什么要有环境变量?环境变量相关指令环境变量组织方式通过代码获取环境变量通过系统调用获取环境变量环境变量的全局属性总结概念环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,它是系统中某些具有.原创 2022-03-06 21:40:57 · 1573 阅读 · 19 评论 -
【Linux篇】第五篇——Linux下的进程(冯若依曼体系结构+操作系统+进程相关内容)
⭐️这篇博客就要开始聊一聊进程相关的内容了,这聊这个之前,我们还需要了解一下操作系统相关和管理的概念,这样更加有助于我们了解进程的内容了。目录冯若依曼体系结构操作系统进程概念冯若依曼体系结构冯·诺伊曼体系结构是现代计算机的基础,现在大多计算机仍是冯·诺伊曼计算机的组织结构。(下面是一张冯若依曼体系结构的图片)存储器: 对应的是我们电脑中的内存中央处理器CPU: 其中由运算器和控制器两个部分构成输入设备: 包括键盘、硬盘、鼠标等输出设备: 硬盘、显示器等(输入设备和输出设备统称为外设).原创 2022-03-05 21:43:43 · 1798 阅读 · 21 评论 -
【Linux篇】第四篇——Linux环境下的工具(二)(make/Makefile+进度条小程序)
⭐️上一篇博客介绍了Linux环境下的文本编辑工具,软件包管理工具,编译代码和调试代码的工具,这篇博客我还要介绍有关项目自动化构建工具——make/Makefile。目录项目自动化构建工具make/Makefile介绍依赖关系和依赖方法make/Makefile的使用进度条小程序\r和\n行缓冲区进度条总结项目自动化构建工具make/Makefile介绍用简短的语言描述make和Makefile两个工具就是:make是一条指令,Makefile是一个文件。几点介绍:在一个项目中,Make.原创 2022-03-01 17:16:35 · 967 阅读 · 11 评论 -
【Linux篇】第三篇——Linux环境下的工具(一)(yum + vim + gcc/g++ +gdb)
⭐️这篇博客我要给大家介绍Linux环境下的一些工具。比如Linux的软件管理器yum,文本编辑器vi/vim,编译器gcc和g++,还有代码调试器gdb等。目录软件包管理器yum介绍使用方法rzsz工具vim编辑器概念vim正常模式下的命令vim底行模式的命令简单的vim配置软件包管理器yum介绍Linux下软件安装的几种方式:源码安装:源码安装会带来交叉编译的问题,源码在不同的环境下可能会有不同的效果,导致安装十分麻烦。这种安装方式用的比较少。rpm安装:rpm安装相对上面的方式比较.原创 2022-02-25 18:45:08 · 1197 阅读 · 15 评论 -
【Linux篇】第二篇——权限管理(文件的访问权限+文件权限的修改+文件掩码+目录权限)
⭐️上一篇博客介绍了Linux中的常用指令,今天就带大家来了解一下Linux中有关权限的概念。目录????Linux下的用户????文件的权限????文件的访问者????文件类型和访问权限????文件权限值的表示????权限设置????chmod????chown????chgrp????umask????目录权限????介绍????粘滞位????给用户sudo分配权限????总结????Linux下的用户在Linux下有两种用户:超级用户(root)和普通用户超级用户具有最高的权限,做任何事原创 2022-02-18 13:19:21 · 1632 阅读 · 16 评论 -
【Linux篇】第一篇——基本指令(使用方法+图示)
原创 2022-02-15 13:10:35 · 8329 阅读 · 34 评论 -
C语言篇——程序的编译
今天我来补一下C语言篇的程序的编译的一篇文章,也算是有一个结尾了。目录程序的翻译环境和执行环境编译和链接翻译环境编译的几个阶段预处理编译汇编链接运行环境程序的翻译环境和执行环境在ANSI C的任何一种实现中,存在两个不同的环境 :第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。第2种是执行环境 ,它用于实际执行代码。一个.c的文件事如何变成.exe的可执行文件的呢?下面这张图片是一个大概的过程:编译和链接翻译环境组成一个程序的每个源文件通过编译过程分别转换成.原创 2021-11-26 21:33:09 · 3909 阅读 · 21 评论