
Linux
文章平均质量分 93
Ideal Dragon
没有什么好运气,只能一直保持努力。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Linux的socket缓冲区
Linux的soket缓冲区每个 socket 被创建后,都会分配两个缓冲区,输入缓冲区和输出缓冲区。write()/send() 并不立即向网络中传输数据,而是先将数据写入缓冲区中,再由TCP协议将数据从缓冲区发送到目标机器。一旦将数据写入到缓冲区,函数就可以成功返回,不管它们有没有到达目标机器,也不管它们何时被发送到网络,这些都是TCP协议负责的事情。TCP协议独立于 write()/s...原创 2019-11-18 22:14:32 · 1586 阅读 · 0 评论 -
poll机制源码深入剖析
poll机制源码深入剖析文章目录poll机制源码深入剖析poll调用方法poll实现原理poll源码实现应用程序调用poll函数do_sys_poll复制用户区数据构建监听结构链表-->调用do_poll-->数据返回do_poll遍历链表对每个调用do_pollfd-->睡眠-->有事件或者超时-->返回do_pollfd找到文件结构-->调用文件驱动的po...原创 2019-11-16 17:57:03 · 605 阅读 · 1 评论 -
epoll机制源码分析
epoll机制源码分析文章目录epoll机制源码分析epoll 调用方法epoll实现原理源码分析关键结构思考题epoll 调用方法// 调用epoll_create建立一个epoll对象(在epoll文件系统中给这个句柄分配资源);//参数:监听的最大fd数目 返回值:epollfdint epoll_create(int size); //添加、删除、更改操作//参数:ep...原创 2019-11-16 17:55:41 · 418 阅读 · 0 评论 -
单机最大长连接数
https://blog.youkuaiyun.com/ybxuwei/article/details/77969032原创 2019-09-21 14:05:19 · 1517 阅读 · 0 评论 -
关于samb的使用
samba配置使用时的相关坑samba作为一种跨平台的共享文件传输协议,使用起来非常之爽。我用它在我的linux主机和windows主机之间来回切换。第一种情况,linux主机作为服务器,windows作为客户端这种情况下,需要根据网上的教程修改/etc/smb.conf这个配置文件,添加smb的访问用户和密码,设置他的访问权限。还要使得客户端可写,只要是writable=yes就可以。第...原创 2019-08-27 15:24:25 · 365 阅读 · 0 评论 -
浅析 Linux 中的时间编程和实现原理
引子 我们都生活在时间中,但却无法去思考它。什么是时间呢?似乎这是一个永远也不能被回答的问题。然而作为一个程序员,在工作中,总有那么几次我必须思考什么是时间。比如,需要知道一段代码运行了多久;要在 l...转载 2019-06-03 21:20:53 · 751 阅读 · 0 评论 -
Linux中的线程局部存储(一)
本文转载自:http://blog.youkuaiyun.com/cywosp/article/details/26469435 在Linux系统中使用C/C++进行多线程编程时,我们遇到最多的就是对同一变量的多线程读写问题,大多情况下遇到这类问题都是通过锁机制来处理,但这对程序的性能带来了很大的影响,当然对于那些系统原生支持原子操作的数据类型来说,我们可以使用原子操作来处理,这...转载 2019-05-24 10:23:20 · 130 阅读 · 0 评论 -
初级嵌入式软件工程师学习路线(在校本科或者硕士)
ARM+LINUX路线,主攻嵌入式Linux操作系统及其上应用软件开发目标: (1)掌握主流嵌入式微处理器的结构与原理(初步定为arm9) (2)必须掌握一个嵌入式操作系统 (初步定 为uclinux或linux,版本待定) (3)必须熟悉嵌入式软件开发流程并至少做一个嵌入式软件项目。从事嵌入式软件开发的缺点是: (1) ...转载 2019-04-15 15:40:33 · 42638 阅读 · 11 评论 -
linux内存管理(五)——伙伴系统
内核中很多时候要求分配连续页,而计算机经过长时间的运行以后,频繁的分配和释放内存,就会造成有很多内存虽然空闲可用,但是散布在物理地址空间的各处,这就是内存管理的碎片问题。为了能够快速检测内存中的连续区域,减缓碎片问题,linux内核采用了古老而历经考验的技术:伙伴系统。如图所示,第一幅图中有2的4次方的一块连续内存,此时,系统将其分为两块大小相等的2的3次...原创 2019-03-13 09:08:47 · 333 阅读 · 0 评论 -
linux内存管理(四)——地址转换
物理地址:CPU通过地址总线的寻址,找到真实的物理内存对应地址。就是真实的内存地址。逻辑地址:程序代码经过编译后出现在汇编程序中地址,算是进程当中用到的地址吧。线性地址(虚拟地址):就是上面的逻辑地址计算而来的地址,本质还是进程当中使用的虚拟地址。在32位CPU架构下,可以表示4G的地址空间,用16进制表示就是0x00000000---0Xffff ffff 。 ...原创 2019-03-12 16:20:06 · 669 阅读 · 0 评论 -
linux内存管理(三)——分页管理机制
前面已经说了,利用计算机的局部性原理,将内存细粒化,分成一个个4KB大小的页,然后与虚拟地址进行映射,这样可以每次先映射需要用到的和加载经常用到的内容。我们可以看到进程1和进程2的虚拟地址空间都被映射到了不连续的物理地址空间内(这个意义很大,如果有一天我们的连续物理地址空间不够,但是不连续的地址空间很多,如果没有这种技术,我们的程序就没有办法运行),甚至他们共用了一部分物理地址空间,这就是共享...原创 2019-03-11 18:17:26 · 245 阅读 · 0 评论 -
linux内存管理(二)——进程的内存分布
既然内存管理,是因为多进程的内存使用问题而引发的,那么我们也看看一个完整的进程独占的内存都有什么内容?在多任务操作系统中的每一个进程都运行在一个属于它自己的内存沙盘中。这个沙盘就是虚拟地址空间(virtual address space),在32位模式下它总是一个4GB(虚拟地址)的内存地址块。但是每个进程地址会被分为用户空间和内核空间,所有进程的内核空间都被映射到同一块物理内存。 ...原创 2019-03-10 17:11:05 · 289 阅读 · 0 评论 -
Linux内存管理(一)
学习Linux系统内核机制时,其内存管理的机制是几个非常重要的模块之一。在学习内核设计的时候,我觉得应该抱着,如果是你来设计,应该怎么设计,需要考虑哪些问题,这样的角度去学习内核,否则你都不知道这个设计要解决什么问题,只是看书上说要这么这么设计,那么这样子将会是事倍功半,一知半解,知识点也是犹如一盘散沙的。首先,第一个要解决的问题就是什么是内存管理,为什么要内存管理? 当只有一个任务...原创 2019-03-09 13:31:12 · 177 阅读 · 0 评论 -
【转】漫谈linux文件IO
原文地址:http://blog.chinaunix.net/uid-27105712-id-3270102.html 在Linux 开发中,有几个关系到性能的东西,技术人员非常关注:进程,CPU,MEM,网络IO,磁盘IO。本篇文件打算详细全面,深入浅出。剖析文件IO的细节。从多个角度探索如何提高IO性能。本文尽量用通俗易懂的视角去阐述。不copy内核代码。 阐述之前,要先有...转载 2018-11-27 23:57:19 · 172 阅读 · 0 评论