
Linux
文章平均质量分 80
Linux学习笔记
LateBloomer777
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
LinuxUDP编程
由于的,所以Server端绑定完IP、端口号后,使用recvfrom可以阻塞等待客户端的数据,而且Client端通过sendto发送的数据包直接发送到互联网(也是基于IP、端口号)这种操作是不担保Server端是否收到的,原创 2024-12-05 19:30:51 · 449 阅读 · 0 评论 -
Linux之TCP三次握手、四次挥手详解
Three-way Handshake,其实就是。、指定自己的初始化序列号为后面的可靠性传输作准备。实质上就是连接服务器指定端口,建立TCP连接,并,交换TCP窗口大小信息客户端connect阻塞、服务端accept阻塞时,进行三次握手:第一次握手:客户端给服务端发一个SYN报文,并指明客户端的初始化序列号ISN-------此时客户端处于SYN_SENT状态首部的同步位SYN=1,初始序号seq=x,SYN=1的报文段不能携带数据,但要消耗掉一个序列号。原创 2024-12-05 19:28:47 · 1414 阅读 · 0 评论 -
Linux网络编程优化
---服务器关闭后可以快速再启动,表示服务器会-----通过中实现,服务器通过连接获得的是网络字节序信息,原创 2024-12-04 22:43:23 · 403 阅读 · 0 评论 -
LinuxTCP编程详解
C/S模式:Client客户端、Server服务器TCP编程基于socket套接字实现,因此也习惯称为。原创 2024-12-04 22:39:16 · 1667 阅读 · 0 评论 -
Linux网络编程基础
以该图为例(左边server往右边client发送数据):发送方经过各层会加上包头进行封包,最终通过驱动发送到路由器,路由器中间可能会经过不同网络,最终发送给接收方,存入它的空间,读取这个数据包就是不断地拆包环节。ARP/RARP:解析地址,比如IP地址---->MAC地址,MAC地址---->IP地址。,内设置流量控制,避免数据流淹没慢的接收方。局域网IP:192.XXX.XXX.XXX、 10.XXX.XXX.XXX。组播IP:224.XXX.XXX.XXX、239.XXX.XXX.XXX。原创 2024-12-03 20:01:23 · 978 阅读 · 1 评论 -
Linux条件变量&线程池详解
避免了多线程对同一块临界资源访问产生的冲突,同一时刻对临界资源的访问,,由此也带来了竞争的问题。即之间时刻都在这把锁,而临界资源是有限的,当的候,,反而降低了运行效率。有没有什么办法可以等生产者线程生产出资源,消费者线程再去竞争锁消费呢?这就是条件变量的作用。正如互斥量保护了【临界资源】,条件变量也保护【条件】资源,当条件不符合时即【条件】资源空缺,消费者线程休眠等待;当【条件】资源产生,消费者线程被唤醒然后去消费资源。这样便解决了线程间等待的问题,提高了运行效率。原创 2024-12-03 19:50:03 · 776 阅读 · 0 评论 -
Linux信号集、信号的阻塞&信号驱动
信号的三种方式,即使是忽略,也仍然打断了进程的进行(相当于是捕捉了信号,执行的了空函数什么都没做),可如果在访问重要资源时不希望被打断呢?可以用,即,它处于,并不是不响应该信号,而是信号的状态递达delivery:信号产生并递达到进程未决pending:信号产生但未递达到进程,主要是阻塞屏蔽导致的,原创 2024-12-02 21:38:59 · 488 阅读 · 0 评论 -
Linux进程间通信——信号量&信号详解
SIG_DFL 为默认动作,SIG_IGN 为忽略(函数名是函数的入口地址,这里的sighandler_t 是函数指针类型名 通过typedef void(*sighandler_t)(int)实现,因此自定义函数也要设置成无返回值,参数为1个int型的//由于signal在不同类unix系统的行为不完全一样,系统建议使用sigaction函数。原创 2024-12-02 21:28:40 · 2486 阅读 · 0 评论 -
Linux互斥量&读写锁
1.临界资源同一时刻只允许一个进程/线程访问的共享资源(比如文件、外设打印机)2.临界区访问临界资源的代码3.互斥机制mutex互斥锁,用来避免临界资源的访问冲突,形象点的说法 好比有一个公共卫生间,进去使用的人会给门上锁,使用完会开锁4.创建互斥锁5.销毁互斥锁Linux中,互斥锁不占任何资源,所以销毁锁不是必须的,可利用其返回值查询锁状态,锁定时返回EBUSY6.申请互斥锁(P操作)7.释放互斥锁(V操作)原创 2024-12-01 21:27:45 · 521 阅读 · 0 评论 -
Linux线程详解
在引入线程之前,作为(分配得到了CPU的时间、内存等),操作系统通过调度算法实现多进程并发执行,共用CPU,但由于创建或撤销进程时,系统都要为之分配或回收资源,限制了并发程度的提高。后来,为了减少进程间切换的开销,可把进程作为资源分配单位和调度单位两个属性分隔开,于是有了,甚至。采用多线程来实现多任务开发可以极大减小切换开销。Linux中不区分进程、线程,而是通过来实现线程,也叫轻量级进程LWP。由于线程是进程的一部分,原创 2024-12-01 21:15:31 · 1203 阅读 · 0 评论 -
Linux进程间通信(中)
这类IPC对象有唯一的ID,用key值来关联,并且IPC创建后一直存在,直到被删除。注意:消息内容读到变量的buf里,类型读到msg_type里,消息读取一条,该类型的一条消息则少一条,读完了则阻塞等待消息添加进来。1.生成key值(不是必须的步骤,但通过节点号产生的key值可以确保是唯一的)1.生成key值(不是必须的步骤,但通过节点号产生的key值可以确保是唯一的)6.控制共享内存(常用于删除共享内存,删除前应断开所有进程的连接)(成员包含消息类型、消息内容、其他节点的结构体)和优先级,独。原创 2024-11-30 20:08:08 · 715 阅读 · 0 评论 -
Linux进程间通信(上)
进程间通信(Inter Process Communicating)主要包括:无名管道pipe、有名管道fifo、内存映射mmap、共享内存shm,消息队列msg、信号signal、套接字socket(多机之间,多用于网络编程)原创 2024-11-30 19:44:28 · 820 阅读 · 0 评论 -
Linux进程操作(下)
控制终端:由于在 Linux 中,每一个系统与用户进行交流的界面称为终端(shell窗口,本身也是一个控制进程),每一个从此终端启动的进程都依附于这个终端,终端也称为这些进程的控制终端,当控制终端被关闭时,相应的进程都会自动关闭。进程组:进程的集合,进程组长是相关联进程中的父进程,其PID也是进程组ID,也可通过getpgid(getpid())获取。,可以实现父子进程执行不同的程序(即父进程创建子进程,子进程调用exec函数族,shell命令的源码逻辑也是如此),这种进程脱离终端,为什么要脱离终端呢?原创 2024-11-29 20:31:49 · 769 阅读 · 0 评论 -
Linux进程操作(上)
每个进程,比如shell窗口下敲的命令都是进程,它们的父进程都是shell脚本/bin/bash通过下面的函数获取自身和父进程的PIDgetpid() 返回自身PIDgetppid() 返回父进程的PI父进程创建子进程后,可以,从而让它们执行不同的内容两个进程会(并发),子进程(这样也避免了自动地无限fork)父、子进程有的,互不影响,执行的顺序由操作系统决定。原创 2024-11-29 20:15:59 · 986 阅读 · 0 评论 -
Linux进程基础
在用户的视角上,这些进程看似同时进行,但不是真正意义上的“同时进行”,因为只有一个处理器,在固定的时刻只有固定的进程被执行了,只不过CPU处理的速度很快,它把一个时间段划分成很短的时间片段,然后在这之间来回切换。这个时间片段短到人无法感知的程度,所以才能让用户感觉是多个进程同时在进行。并发也称时分复用,是系统对于进程的一种调度管理其实决定并行的因素不是CPU的数量,而是CPU的核心数量,比如一个CPU多个核也可以并行。原创 2024-11-28 20:11:14 · 948 阅读 · 0 评论 -
Linux文件操作
创建函数还有一个单独的函数 int creat(filename,mode) mode的值有S_IRUSR 可读 、S_IWUSR 可写、S_IXUSR 可执行 、S_IRWXU 可读可写可执行 ,但用的少,原因是它只创建不打开。文件描述符,范围(3~1023),0、1、2(默认已使用)分别对应标准输入stdin(键盘)、标准输出stdout(显示器屏幕)、标准错误stderr三个标准IO。不同于文件IO使用文件描述符(非负整数)来操作文件,标准IO使用文件流指针,使用上的区别只是定义的变量需要注意一下。原创 2024-11-28 19:47:20 · 1164 阅读 · 0 评论 -
Linux操作系统概述
MCU和MPU的区别:MCU,Micro Controller Unit,微控制器,俗称“单片机”,内置CPU、存储器和各种外设接口,特点是单核,小容量存储,控制简单(执行刺激-响应式的过程控制),适合数据采集、家电控制MPU,Micro Processor Unit, 微处理器,需要外挂大容量存储器(如DDR和FLASH),多核,高主频(几GHz),适合高性能计算和复杂算法处理MCU不具备内存管理单元MMU。原创 2024-11-26 19:52:10 · 1191 阅读 · 0 评论 -
Linux文件基础
文件目录分布呈树状数据结构,/是根目录,目录的源头。原创 2024-11-27 21:07:42 · 401 阅读 · 0 评论 -
Linux命令操作基础
这个通过按“↑”或“↓”键,便可快速输入之前输入的命令,也可以使用histroy [number] 来直接显示之前的number条命令。vi是一种方便的文本编辑器,Linux系统一般是自带的,而vim是在vi的基础上发展升级的,平常使用上没太大区别,在。很多时候容易忘记命令或文件名(也不好记住),可以输入命令或文件名的前几个字符然后按下。命令模式下按下a/i/o进入到此模式,可以进行文本编辑,按下ESC可以退回到命令模式。的提示符,如果当前用户为超级用户,提示符为“#”,其他用户的提示符均为“$”原创 2024-11-27 21:02:53 · 1177 阅读 · 0 评论