
Linux
文章平均质量分 91
从头开始,循序渐进,学习Linux操作系统
jxwd
转载请注明出处,欢迎转载转发。开心学编程,学到无极限
展开
-
Linux系统网络编程——第二十节 多路复用之epoll 模型
epoll相关系统调用1、epoll_create:(自从linux2.6.8之后, size参数是被忽略的,用完之后, 必须调用close()关闭其返回值是一个文件描述符。调用这个函数的时候,底层(内核层)会帮我们构建出一个epoll模型。epoll模型是什么?先不用管,就先理解它是一个模型就好了,它是有一个整体的、抽象的概念。2、epoll_ctl()原创 2022-12-11 10:36:07 · 684 阅读 · 1 评论 -
Linux系统网络编程——第十九节 多路复用(1)(概念、select、poll)
阻塞式等、非阻塞式等,设置某一段时间来去等3、其。原创 2022-12-11 00:20:52 · 544 阅读 · 0 评论 -
Linux网络原理及编程(8)——第十八节 数据链路层
各位好,博主新建了个公众号《自学编程村》,拉到底部即可看到,有情趣可以关注看看哈哈,关注后还可以加博主wx呦~~~(公众号拉到底部就能看到呦~~)思考一个问题:真正在网络中跑的是一个一个IP报文吗?实际也不是。真正在网路中传输的是一个一个的以太网帧。当然,从IP往下,不同的网络就有不同的标准了。我们接下来介绍的以太网帧,主要以以太网为标准。也是比较有代表性的。1、MAC地址用来识别数据链路层中相连的节点;原创 2022-12-10 20:55:08 · 576 阅读 · 0 评论 -
Linux网络原理及编程(7)——第十七节 网络层
各位好,我们根据前面的学习,知道:1、HTTP:是用来构建与解析 request && response -》调用recv和send来解决自己的问题。注意,这里的recv和send是tcp提供的接口。2、TCP :可靠性、效率、什么时候发送、怎么发、发多少3、IP:解决端到端、点到点的问题。将数据经过路径选择、送达对方主机的过程——IP负责。原创 2022-12-10 10:58:10 · 723 阅读 · 0 评论 -
Leetcode番外篇——滑动窗口的应用
像本题的其他条件(串p)是用来将滑动窗口中的数据抵消掉的(所以抵消掉和元素不在都是减)。不论是用优先级队列,还是用双向队列,都用到了这一点思想:即如果是最大的值被删掉了而它却仍然在我们所创建的数据结构里,不需要慌,只要在出来的时候(top的时候)判断一下它是不是在我们滑动窗口的范围之内就可以了。1、滑动窗口需要注意的是:充分利用其特性——在滑动的时候,中间的大部分元素都是不变的,变化的仅仅是滑动窗口的两端。本题的难度实际一般,关键就是需要想到取最大的数的时候,不要着急去删除就可以了。原创 2022-12-10 10:32:41 · 779 阅读 · 0 评论 -
Linux网络原理及编程(6)——第十六节 TCP可靠性保证的原理
TCP中采用了许许多多的机制,来保证网络传输过程当中数据的可靠性的问题。这里的可靠可以广义一点来理解。它几乎涉及到了方方面面。我们现在就挑选一些最最重要的机制来进行讲解。原创 2022-12-10 10:21:51 · 711 阅读 · 0 评论 -
Linux网络原理及编程(5)——第十五节 TCP的连接(三次握手、四次挥手)
(等待的时间是通信一个来回最多花费的时间:2MSL)如果服务器重传了若干次都没有响应,那其也就强行关闭了。(但是这种情况是比较小的)在server的TCP连接没有完全断开之前不允许重新监听,原创 2022-12-09 17:48:37 · 999 阅读 · 0 评论 -
Linux网络原理与编程(4)——第十四节 传输层协议
传输层是在应用层的下面一层,我们在讲解传输层协议之前,先来说一说一些前置知识即命令函数等;然后,我们本节主要来介绍UDP、TCP的报文。原创 2022-12-09 16:57:04 · 642 阅读 · 0 评论 -
Linux网络原理及编程(3)——第十三节 HTTPS
我们本文主要来介绍https,主要来介绍https的加密原理。大家应该都知道http和https的区别,区别很简单,主要就是在https是采用了加密协议的,而http完全是在网络上裸奔的。而我们现在几乎所有的连接都用的是https我们首先需要明白的是,我们现阶段的加密,本质上,是在应用层和传输层之间进行加密的。加密的算法有很多,比如SSL/TLS等。原创 2022-12-09 11:57:38 · 892 阅读 · 4 评论 -
Linux网络原理与编程(2)——第十二节 应用层协议(以HTTP为例)
我们从本节开始,就来正式地详细介绍网络各个层次的内容。我们先从最顶端的应用层协议说起。在说应用层协议之前,我们来思考一下什么叫协议?原创 2022-12-09 00:29:54 · 735 阅读 · 3 评论 -
Linux系统编程第六节——进程的替换(execl、exelp、execle、execv、execvp、execve)
我们输入ls,就是运行这样一个可执行文件,它在/bin/ls目录下,因为在环境变量里,我们可以直接运行而不用加路径。所以我们用execlp的时候,就不需要加前面的"/bin/ls" 了,因为它是在环境变量里的,execlp函数会自动从环境变量里搜索。然后如果带上了字母e,意思就是在最后,会再加上一个指针数组,这个指针数组里存储的是环境变量。第一个参数,看到了path也应该能猜个大概了,它的意思是路径,谁的路径?原创 2022-12-08 20:02:38 · 824 阅读 · 1 评论 -
Linux多线程详解
线程的概念和理解理解线程之前,我们需要重新对进程进行理解我们前面说一个task_struct有着一个进程地址空间,然后有页表,搭建其和物理内存的映射。我们现在需要重新对进程进行定位理解:对于CPU来说,其看到的PCB可以是多个,然后共享一份地址空间。注意,这里你没有看错,就是多个PCB共享同一块地址空间。允许这样的情况存在。那如果这样的话,进程到底是啥呢?我们之前说进程是一系列的代码和数据以及组织它的数据结构,并且这主要的数据结构就是PCB。那现在呢?实际上,原创 2022-04-11 09:03:44 · 433 阅读 · 0 评论 -
Linux系统编程第五节——进程创建、终止、等待(通俗易懂快速上手版本)
我们本节内容,主要来讲述进程控制有关的内容。同样,我们会用通俗易懂、不同于教科书的讲授思路,来为大家讲解。同时,本节内容板块清晰简明,在最终同学们的思维导图可以做起来呦~~~(同时需要说明一下,我们本节注重的是系统编程方面,而不是完完全全地侧重于系统理论知识呦,如果想要深入学习进程的知识,可以参考以后的《操作系统》篇章,敬请期待哈~)原创 2022-12-08 16:57:29 · 874 阅读 · 0 评论 -
Linux网络原理与编程——第十一节 网络基础及套接字
一、网络的层状划分结构我们网络的层级,与OS之间的关系,可以看成是这个样子的:我们来解释一下:从system call(系统调用结构)开始往下,都是属于OS和硬件的范畴,我们一般的程序员所进行的开发,通常都是在用户层。(这个我们后面还会具体说到)其中,TCP/IP协议属于传输层,准确点来说,其是由操作系统来完成,就是说由OS来帮助我们收发报文。而其他的MAC协议和以太网等协议,就是属于驱动、网卡等硬件设施层面的事情了。我们后面再来谈。他们属于数据链路层和物理层。(注:这里只是原创 2022-04-06 15:24:32 · 7364 阅读 · 20 评论 -
Linux第十节——信号
实际上,信号我们用的并不少,我们本节就来重点地、系统地探讨一下信号的有关内容。为了便于理解,我们先来说ctrl c由ctrl + c发出的信号我们来举一个简单的例子:先该创建文件创建文件:来看这样一个简单的代码:它是一个死循环。我们用这个死循环来演示ctrl c的功能。结合上面的运行,来说两个点:1、在前台运行的程序只能有一个。我们的程序在前台运行起来之后,我们再去输入一些指令等等,就无法执行了。在前台没有另外的可执行程序运行的时候,实际上是ba...原创 2022-03-18 21:39:44 · 4509 阅读 · 15 评论 -
Linux 第四节 进程地址空间
你认为用%p打印出来的是真正内存中的地址?实际上,我们在用C/C++语言所看到的地址,全部都是虚拟地址!物理地址,用户一概看不到,由OS统一管理你认为堆栈等在整个系统中只会存在一份?你认为真正的内存中真的有内存分布一说?本节内容,结合进程的知识,你将了解到这些知识。原创 2022-02-13 13:35:18 · 866 阅读 · 16 评论 -
初始Linux—Linux系统编程第三节——初始进程
你是否知道,你耳熟能详的main函数是有三个参数的?你是否设置过环境变量?那你是否知道,环境变量是干什么用的?内存、操作系统的又是怎样的存在?冯诺依曼体系结构是什么?本节,你将会学到这些内容。原创 2022-02-12 22:10:22 · 1628 阅读 · 15 评论 -
Linux系统编程—第二节—(Centos 7)开发工具等(yum vim gcc g++ gdb make Makefile )
原创 2022-02-03 22:52:22 · 11375 阅读 · 15 评论 -
初识 Linux系统编程 第一节——Linux基本指令与权限
Linux发展背景(了解)开源(了解)企业应用现状(了解)Linux在服务器领域的发展(了解)Linux在桌面领域的发展(了解)Linux在移动嵌入式领域的发展(了解)Linux在云计算/大数据领域的发展(了解)发行版本(了解)操作系统(了解)Linux下的基础指令:(重点)1、ls指令2、cd指令3、pwd指令4、touch指令5、mkdir指令递归创建文件:补充:tree命令6、rm(rmdir)指令7、man指令8、cp原创 2022-01-30 18:29:32 · 2863 阅读 · 17 评论