
Linux
文章平均质量分 97
零基础学习Linux,会详细讲解:Linux系统编程 + 网络编程~
yy_上上谦
在校大学生一枚…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Linux | 网络编程】MAC帧协议 + ARP协议
在学完网络层IP协议之后,本章我们将继续向下沉一层,进入到数据链路层的学习。该层有两个重要的协议需要我们来学习,一个是ARP协议,另一个就是MAC帧协议,这二者都是处于数据链路层。ARP协议在MAC帧协议的上一层,它们属于上下层的关系。老规矩,我们先来认识报头的各个字段,再来学习它们的作用。搬好小板凳,我们马上开讲啦…原创 2023-10-25 17:22:17 · 2096 阅读 · 10 评论 -
【Linux | 网络编程】IP协议
前两章我们学习了整个网络协议中最重要的协议TCP协议,也结束了传输层协议栈的学习。本章我们继续向下沉一层,进入到网络层的学习。本章我们来学习网络层的IP协议,也是网络协议栈中最重要的一个协议之一。和前几章一样,先学习了解其协议格式和报头中每个字段的含义,再理解数据经过IP层的传输过程。还是那句话:整个网络协议栈就叫做TCP/IP协议栈,可想而知TCP/IP协议的重要性!!原创 2023-10-24 16:53:17 · 564 阅读 · 7 评论 -
【Linux | 网络编程】TCP协议
从上一章开始,我们正式进入传输层的学习,该层两个重要的协议TCP协议和UDP协议。上一章我们主要学习了UDP,认识了其报头和各个字段。TCP协议因为要维持可靠性传输,所以要做很多工作,同时也很难理解,本章我们将重讲TCP协议。整个网络协议栈就叫做TCP/IP协议栈,可想而知TCP/IP协议的重要性!!整个网络协议栈叫做TCP/IP协议,用两个协议把整个网络协议栈命名了,但是可不止这两个协议,说明这两个协议非常重要。原创 2023-10-20 20:54:16 · 1235 阅读 · 9 评论 -
【Linux | 网络编程】UDP协议
在我们刚学习网络时,我们知道网络是层状的结构,前面所有的内容都是围绕着应用层展开的。接着我们来学习操作系统内部最顶层协议,叫做传输层协议。应用层用应用的功能都是传输层提供的接口。例如,用http通信,http协议底层用的是tcp协议。https在密钥协商之前,首先要将客户端和服务端的连接建立好,所以在应用层的理解之下,还要搞一下传输层协议。传输层最典型协议有两种,一个udp,以个tcp,对应的就是曾经学到的udp套接字和tcp套接字。👉网络层状结构复习。原创 2023-10-18 14:57:08 · 507 阅读 · 9 评论 -
【Linux | 网络编程】HTTPS协议
在上一章中,我们学习了http协议,了解了其层状的结构,并对其常见报头,方法,各种特性有了相关的认识。本章我们紧接着学习https这一协议。分析通信时是如何加密的,主要的策略有哪些,并了解现在主流的加密措施等。目标已经,搬好小板凳,准备开讲啦… 👉http协议复习数字指纹(数据摘要),其基本原理是利用单向散列函数(Hash函数)对信息进行运算,生成一串固定长度的数字摘要。数字指纹并不是一种加密机制,但可以用来判断数据有没有被篡改。原创 2023-10-12 14:20:17 · 351 阅读 · 7 评论 -
【Linux | 网络编程】HTTP协议
从本章开始,我们要自顶向下的学习网络协议,有了前面的基础,我们再学习http协议就更容易理解了。本章的目标是学习http协议,熟悉http的协议格式,方法,状态码等概念,并且对http常见的报头进行学习。目标已经确定,准备开讲啦… 👉【网络层状结构复习】原创 2023-10-11 14:48:39 · 483 阅读 · 4 评论 -
【Linux | 网络编程】序列化与反序列化
本章我们将重谈网络协议,了解主流的网络协议,学习序列化与反序列化,并通过自己手写一个简易版的网络协议,来了解网络传输中数据的变化过程。目标已经确定,办好小板凳,准备开讲啦……在学习本章内容之前,先复习之前的👉TcpServer本章代码详情:👉Gitee我们只是简单的实现一个网络计算器,不涉及到负载运算,目的在于学习了解制定协议的过程。1+12*310-75/9// ...x + y规定,编码之后的格式是,报头(长度)和字符之间用\r\n分隔,有效载荷最后用\r\n。原创 2023-10-06 14:08:22 · 663 阅读 · 7 评论 -
【Linux | 网络编程】TCP的服务端(守护进程) + 客户端
上一节,我们用了udp写了一个服务端和客户端之间通信的代码,只要函数了解认识到位,上手编写是很容易的。本章我们开始编写tcp的服务端和客户端之前通信的代码,要认识一批新的接口,并将我们之前学习的系统知识加进来,做到融会贯通…原创 2023-10-03 13:07:25 · 3946 阅读 · 7 评论 -
【Linux | 网络编程】UDP的服务端 + 客户端
从上一章开始我们正式进入Linux网络编程的学习,上回中我们对网络有了大概的认识,宏观上了解了网络的传输过程,对局域网广域网以及Mac地址和IP地址有了初步的认识。本章我们正式进入网络编程,用代码来实现网络间的通信,学习认识相关的接口……原创 2023-10-01 11:25:25 · 1826 阅读 · 4 评论 -
【Linux | 网络编程】网络原理
本章开始我们进入Linux网络编程阶段的学习,本章我们将来认识一下网络,学习一下网络原理。对网络整体有个大概的认识,要了解网络传输数据的基本流程,并了解封装和解包的过程,目标已经明确,搬好板凳准备开讲了……原创 2023-09-25 20:54:14 · 1333 阅读 · 5 评论 -
【Linux】生产消费模型 + 线程池
上一章节我们学习了线程的同步与互斥,学习了互斥锁和条件变量的使用。本章我们将学习编程的一个重要模型,生产者消费者模型,并且运用之前学的线程同步和互斥的相关接口来实现阻塞队列和环形队列,最后再来实现一个简易的线程池。目标已经确定,准备开讲啦……原创 2023-09-20 20:09:13 · 693 阅读 · 1 评论 -
【Linux】线程同步与互斥
上一章我们学习了线程的控制,理解了什么是线程id,和线程私有栈等相关的概念,还学习了线程退出的四种方式,并学习了几个相关接口。本章我们还是继续进行线程方面的学习,接下来我们将学线程的互斥加锁,同步条件变量等待等相关问题的学习,目标已经确定,搬好小板凳准备开讲啦……线程互斥,它是对的,难道它任何场景都是合理的吗?很显然并不是。一个执行流,长时间得不到某种资源。例如一个线程的优先级很高,每次竞争锁时,都可以优先竞争到。这就导致了其他线程竞争不到锁,造成了饥饿问题。原创 2023-09-18 19:32:27 · 661 阅读 · 6 评论 -
【Linux】线程控制
上一章我们认识了什么是线程,对线程有个基本的概念,了解并学习了进程和线程的关系,对页表有了更深层次的理解,还对查看进程有了了解。本章我们再继续学习线程,将对线程id进行了解,线程私有栈等,接下来学习线程控制,线程退出,线程分离等,目标确定,办好小板凳准备开讲了……原创 2023-09-16 17:59:25 · 673 阅读 · 8 评论 -
【Linux】线程的概念
从本章开始,我们进入Linux系统编程最后一节多线程的学习,本章我们先来简单的认识一下线程。原创 2023-09-15 10:45:49 · 634 阅读 · 5 评论 -
【Linux】进程通信 — 信号(下篇)
上一篇我们讲述了信号的基本概念和相应系统接口的使用,本章我们想更深入的学习信号发送的一系列过程,目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆。原创 2023-08-29 17:20:11 · 1122 阅读 · 9 评论 -
【Linux】进程通信 — 信号(上篇)
本章我们将讲解Linux信号这部分的内容,本章将介绍信号的产生,发送,信号的捕捉,屏蔽等操作,将对信号进行一些列系统的了解与学习。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆在我们学习信号之前,我们先来回忆一下生活中的各种信号,例如:红绿灯、铃声、闹钟……即便这个信号还没有产生,我们就已经具备了处理这个信号的能力。即便当前信号还没有产生,我们已经提前知道了这个信号的处理方法。信号是给进程发送的,进程要具备处理信号的能力。原创 2023-08-26 21:43:42 · 684 阅读 · 5 评论 -
【Linux】进程通信 — 共享内存
上一章我们由进程通信,引入并讲述了管道,匿名管道和命名管道和匿名管道。本章我们将继续讲解进程通信的另一种方式,通过共享内存的方式来进行进程间的通信。还要学习几个系统调用接口,并用代码实现两个进程通过共享内存来进行通信。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆。原创 2023-07-29 17:41:45 · 1649 阅读 · 17 评论 -
【Linux】进程通信 — 管道
从本章开始,我们开始学习进程通信相关的知识,本章将来详细探讨一下管道,学习匿名管道和命名管道的原理和代码实现等相关操作。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆。原创 2023-07-25 11:48:57 · 1511 阅读 · 11 评论 -
【Linux】动静态库
本章将来学习一下动静态库的相关知识,从认识动静态库到自己手写简单版本的库,最后将库发布出去,如何去使用第三库等方面做详细讲解。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆无论动静态库在使用的时候,用gcc生成可执行程序时,都要指明库所在的路径。而在运行时则是:静态库不需要再去找库的位置,而动态库则需要再找库的位置。静态库是在编译时加载到可执行程序中的,当可执行程序启动时,静态库的代码已经完全集成在程序中,不需要额外的加载过程。而动态库则是运行时才加载到可执行程序中的。原创 2023-07-18 20:25:17 · 610 阅读 · 16 评论 -
【Linux】inode软硬连接
本章我们将学习学习认识一下磁盘的的物理结构,理解磁盘分区分块,如何对区块进行管理。学习认识inode和软硬连接。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆。原创 2023-07-13 18:41:39 · 862 阅读 · 10 评论 -
【Linux】文件描述符(下篇)
紧接着上篇的文件描述符,我们要继续讲解文件描述符,通过文件描述符讲解重定向的原理,再用所学的知识自己模拟实现一下C语言中fopen等文件操作,讲解一下缓冲区,最后再完善一下我们之前实现的shell。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆。原创 2023-07-05 20:27:54 · 532 阅读 · 12 评论 -
【Linux】文件描述符 (上篇)
本章开始,我们将进入Linux文件相关的学习与操作,从复习回顾C语言的文件操作接口,再从操作系统角度出发,学习系统调用接口。再了解虚拟文件系统,内核管理文件的数据结构。最后通过学习的操作文件的系统接口来模拟实现C语言的文件操作接口,最后对之前实现的shell进程改进。目标已经确定,接下来就要搬好小板凳,准备开讲了…🙆🙆🙆🙆。原创 2023-07-04 20:35:22 · 1082 阅读 · 12 评论 -
【Linux】进程控制 — 进程程序替换 + 实现简易shell
上一节我们讲了进程终止和进程等待等一系列问题,并做了相应的验证,本章将继续对进程控制进行学习,我们将学习进程程序替换,进行相关验证,运用系统进程程序替换接口,自己模拟写一个shell,该shell能够实现执行指令,等一系列命令行操作……原创 2023-05-26 00:02:13 · 2098 阅读 · 14 评论 -
【Linux】进程控制 — 进程终止 + 进程等待
在此之前,我们学过进程的概念,进程的状态,进程地址空间等一系列进程相关的问题。本章我们继续学习进程,我们要来学习一下进程的控制,关于进程等待,进程替换等问题。原创 2023-05-23 22:07:00 · 1230 阅读 · 6 评论 -
【Liunx】进程地址空间
上节我们讲完了环境变量,本章我们来给环境变量收个尾,讲解一下进程优先级🙋🙋🙋……本文实验系统:CentOS 7.6~独立性多进程运行,需要独享各种资源,多进程运行期间互不干扰。进程相关的数据结构是独立的,进程的代码和数据是独立的。进程地址空间不是物理上存在的概念而是,逻辑上抽象的概念。进程地址空间,就是操作系统给进程画的大饼,为了更好的维护进程彼此之间的独立性(每个进程都认为内存是从全0到全F的)。让每一个进程都认为自己是独占系统中的所有资源的!!原创 2023-05-07 23:19:03 · 988 阅读 · 19 评论 -
【Linux】进程优先级 + 环境变量
在学完进程状态之后,本章我们将来学习一下环境变量,还有进程优先级等🙋🙋🙋……CentOS 7.6优先级是权限吗?在之前我们讲解过什么是权限:👉传送门我们这里讲的优先级并不是权限,那么优先级到底是什么呢?如果我们说权限是能不能得问题的话那么优先级就是 — 能!但只不过是先还是后的问题优先级是进程获取资源的先后顺序为什么会存在优先级?排队的本质叫做确认优先级那么排队的最根本原因是 — 资源不够!系统里面永远都是,进程占大多数,而资源是少数!所以,进程竞争资源是常态!一定需要确认先后!原创 2023-05-02 18:22:17 · 1713 阅读 · 14 评论 -
【Linux】fork函数 + 进程状态
在我们有了进程的初步基本概念之后,我们就要来学习一下如何创建进程,进程的几种状态,进程的优先级的问题,搬好小板凳要开讲了🙋🙋🙋……CentOS 7.6。原创 2023-04-16 16:00:44 · 1467 阅读 · 12 评论 -
【Linux】进程的概念 + 查看进程
在前面我们学习了Liunx的基本指令和权限相关知识,还有基本工具的使用,有了以上的基础知识我们本章将正式接触操作系统,搬好小板凳要开讲了🙋🙋🙋……原创 2023-04-14 15:48:05 · 1850 阅读 · 9 评论 -
【Liunx】必备工具的简单使用 — yum / vim / gcc / gdb / make
本章将介绍Linux下常用工具的安装及使用,在Linux下安装软件,编写代码,调试代码,以及和远程gitee仓库交互等操作。原创 2023-04-06 11:25:36 · 854 阅读 · 13 评论 -
【Linux】权限管理
本章开始我们正式开始学习Linux,在日后的学习中我们将陆续学习Linux系统编程和网络编程……基本指令我们就不再过多赘述,指令只要经常用就会熟能生巧,所以我们也就不必过于关心指令记不住的问题,我们直接开门见山,从重点抓起,本章我们将介绍Linux的权限管理……😉😉😉所有演示均在CentOS7.6下进行 ~在我们日常的生活中,我们所接触的权限有,例如:某某视频软件,有的视频是需要vip客户才能观看,普通用户却看不了,这就是权限。如果想要对某些文件具备某些权限,对应的事物需要具备对应的属性。原创 2023-04-01 22:16:56 · 2065 阅读 · 10 评论