![](https://img-blog.csdnimg.cn/direct/53164a069cb24b50a597655077626fb1.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 81
Linux,一般指GNU/Linux(单独的Linux内核并不可直接使用,一般搭配GNU套件,故得此称呼),是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。
会飞的鱼-blog
欢迎大家加入qq交流群一起进步,746491142。CSDN数据库赛道新星计划Top3,阿里云专家博主。
展开
-
同步IO、异步IO以及五种网络IO模式
当用户进程调用了select,那么整个进程就会被block,而同时,kernel会 “监视”所有select负责的socket,当任何一个socket中的数据准备好了,select就会返回。很显然,这种IO模型是同步的。有一天,学校里面优化了热水的供应,增加了很多水龙头,这个时候小明同学再去装水,舍管阿姨告诉他这些水龙头都还没有水,你可以去忙别的了,等有水了告诉他。: 小明去打开水,而开水塔此时没有水,开水塔的阿姨叫小明把水壶放到现场,来水后会帮他打好水,并打电话叫他来取,这是异步IO的一种案例。原创 2024-07-15 14:14:00 · 1115 阅读 · 0 评论 -
Epoll——详解
如果这次没有把数据一次性全部读写完(如读写缓冲区太小),那么下次调用 epoll_wait()时,它还会通知你在上没读写完的文件描述符上继续读写,当然如果你一直不去读写,它会一直通知你!如果系统中有大量你不需要读写的就绪文件描述符,而它们每次都会返回,这样会大大降低处理程序检索自己关心的就绪文件描述符的效率!如果这次没有把数据全部读写完(如读写缓冲区太小),那么下次调用epoll_wait()时,它不会通知你,也就是它只会通知你一次,直到该文件描述符上出现第二次可读写事件才会通知你!如何解决事件与 连接。原创 2024-07-13 20:51:43 · 538 阅读 · 0 评论 -
TCP——分包和粘包
分包发送方发送字符串”helloworld”,接收方却分别接收到了两个数据包:字符串”hello”和”world”发送端发送了数量较多的数据,接收端读取数据时候数据分批到达,造成一次发送多次读取;原创 2024-07-16 16:45:00 · 254 阅读 · 0 评论 -
网络编程——滑动窗口
在图中,我们可看出灰色1号2号3号包已经发送完毕,并且已经收到Ack。4、5、6、7号包是黄色的,表示已经发送了。要等4号-10号包有接下来的动作后,我们的包才会继续往下发送。接下来的操作就是一样的了,确认包后,窗口往后移继续将未发送的包读进缓存,把“待发送“状态的包变为”已发送“。维持发送方/接收方缓冲区,缓冲区是用来解决网络之间数据不可靠的问题,例如丢包,重复包,出错,乱序。通过商定包的重传机制等一系列操作,来解决不可靠的问题。如果一直等不到的话,我们也会把读进缓存的待发送的包也一起发过去。原创 2024-07-16 18:45:00 · 245 阅读 · 0 评论 -
第八章——网络编程TCP/UDP详解
下层协议通过封装为上层协议提供服务。应用程序数据在发送到物理网络上之前,将沿着协议栈从上往下依次传递。每层协议都将在上层数据的基础上加上自己的头部信息(有时也包括尾部信息),以实现该层的功能。七层协议模型 (open system interconnection)服务器收发、客户方发送、接收。服务器接收、客户端发送。原创 2024-07-15 17:30:00 · 214 阅读 · 0 评论 -
第七章——Linux线程的详细概念和通信方式详解
使用fork创建进程以执行新的任务,该方式的代价很高。多个进程间不会直接共享内存线程是进程的基本执行单元,一个进程的所有任务都在线程中执行,进程要想执行任务,必须得有线程,进程至少要有一条线程,程序启动会默认开启一条线程,这条线程被称为主线程或 UI 线程线程,是进程内部的一个控制序列。即使不使用线程,进程内部也有一个执行线程。类比:创建一个进程,类似于“克隆”一个家庭。该“家庭”与原来的家庭完全相同但是新“家庭”和原来的家庭完全独立。进程包含一个或多个线程。原创 2024-07-14 19:30:00 · 618 阅读 · 0 评论 -
第六章——Linux进程的详细概念和通信方式详解
消息队列,用于从一个进程向另一个进程发送数据。但仅把数据发送到一个“队列”中,而不指定由哪个进程来接受。消息队列,独立与发送消息的进程和接收消息的进程。(信号、管道、命名管道都不独立与发送和接收进程)消息队列,有最大长度限制:MSGMNB消息队列中的单条消息,也有最大长度限制:MSGMAX信号量,是一种特殊的变量。只能对信号量执行P操作和V操作P操作, 如果信号量的值 > 0, 则把该信号量减1如果信号量的值 ==0, 则挂起该进程。原创 2024-07-13 18:45:00 · 795 阅读 · 0 评论 -
几种常见的项目日志使用方法
在通常情况下,Linux/UNIX每个程序在开始运行的时刻,都会打开3个已经打开的stream. 分别用来输入,输出,打印诊断和错误信息。可以被fprintf、fread等函数使用,他们在程序开始启动后,stdin, stdout, and stderr 的文件描述符是 0, 1和2,其它的文件描述符则排在其后。如果我们实在要用printf或者fprintf去生成日志的话,最好还是加上这些信息,__FILE__ __LINE__ __FUNCTION__, __DATE__, __TIME__。原创 2024-07-10 16:25:22 · 790 阅读 · 0 评论 -
gdb调试与Coredump
gdb是GNU 发布的一个强大的程序调试工具,也是Linux 程序员不可或缺的一大利器。本章我们将给出gdb 常用的命令的操作说明。原创 2024-07-10 15:48:26 · 601 阅读 · 0 评论 -
第五章 服务器——并发处理
通俗的并发通常是指同时能并行的处理多个任务。原创 2024-07-10 15:22:21 · 516 阅读 · 0 评论 -
第四章 Linux实现高并发http服务器
HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。原创 2024-07-10 15:09:41 · 571 阅读 · 0 评论 -
第二章节 Linux网络通信详解
典型的服务器程序可以同时服务于多个客户端,当有客户端发起连接时,服务器调用的accept()返回并接受这个连接,如果有大量的客户端发起连接而服务器来不及处理,尚未accept的客户端就处于连接等待状态,listen()声明sockfd处于监听状态,并且最多允许有backlog个客户端处于连接待状态,如果接收到更多的连接请求就忽略。服务器程序所监听的网络地址和端口号通常是固定不变的,客户端程序得知服务器程序的地址和端口号后就可以向服务器发起连接,因此服务器需要调用bind绑定一个固定的网络地址和端口号。原创 2024-07-02 08:19:06 · 1060 阅读 · 0 评论 -
第三章 Linux的文件操作
所谓对I/O通道进行管理,就是对设备的一些特性进行控制,例如串口的传输波特率、马达的转速等等。dev:dev是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用 户的账号命名的。boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。etc:所有的配置文件, 所有的系统管理所需要的配置文件和子目录都存放在这里。原创 2024-06-26 16:21:46 · 970 阅读 · 0 评论 -
Linux文件IO深入剖析
openO_DIRECT绕过内核缓冲区的直接访问,便有效避免了CPU和内存的多余时间开销。后者只对写数据有效,它将写入内核缓冲区的数据立即写入磁盘,将机器故障时数据的丢失减少到最小,但是它仍然要经过内核缓冲区。原创 2024-06-26 14:48:11 · 483 阅读 · 0 评论 -
Linux系统调用的详解
操作系统- 管理计算机硬件与软件资源的软件,是用户与系统交互的操作接口,为它上面运行的程序提供服务。操作系统内核- 操作系统的核心。负责管理系统的进程、内存、设备驱动程序、文件和网络系统。一个内核不是一套完整的操作系统,如Linux。Linux操作系统- 基于Linux内核的操作系统。通常由Linux内核、shell(特殊的应用程序,提供运行其他程序的接口)、文件系统和应用程序。常见的有Redhat、FedoraCentosUbuntu和Android等。原创 2024-06-26 14:32:06 · 1092 阅读 · 0 评论 -
第一章节 Linux介绍、搭建开发环境以及常用Linux入门必备命令
无论你信与不信,Linux 已经成为这个世界上增长最迅速的操作系统!在服务器领域,IBM、HP、Novell、Oracle 等厂商对Linux 系统提供了全方位的支持。2004年,IBM宣布其全线服务器均支持Linux,思科公司在网络防火墙和路由器中也使用了定制的Linux,阿里云也开发了一套基于Linux的智能操作系统“YunOS”,可用于智能手机、平板电脑和网络电视。2010年排名前500名的超级计算机中,92.4%(462台)都采用了Linux 操作系统。原创 2024-06-26 14:06:43 · 949 阅读 · 0 评论 -
Linux - samba实现Linux与windows文件共享——共享文件夹目标文件访问权限被拒绝解决方案(超详细,看不懂你怪我)
Linux - samba实现Linux与windows文件共享——共享文件夹目标文件访问权限被拒绝解决方案原创 2023-05-18 20:20:53 · 6078 阅读 · 3 评论 -
TFS(淘宝分布式文件系统)核心存储引擎
根据淘宝2016年的数据分析,淘宝卖家已经达到900多万,有上十亿的商品。每一个商品有包括大量的图片和文字平均:15k),粗略估计下,数据所占的存储空间在1PB以上,如果使用单块容量为1T容量的磁盘来保存数据,那么也需要块磁盘来保存这么大的数据量,应该怎么保存呢?就保存在普通的单个文件中或单台服务器中吗?显然是不可行的。淘宝针对海量非结构化数据存储设计出了的一款分布式系统,叫TFS,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。1.文件系统接口。原创 2024-06-10 09:01:55 · 977 阅读 · 0 评论 -
centos8.2如何配置yum源(详解)
centos8.2如何配置yum源(详解)原创 2023-04-23 11:21:43 · 1176 阅读 · 0 评论 -
解决错误:Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-centosofficial(Linux安装问题)正在解析主机 失败:未知的名称或服
解决错误:Couldn‘t open file /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-centosofficial(Linux安装问题)正在解析主机 失败:未知的名称或服原创 2023-04-23 11:21:48 · 284 阅读 · 0 评论