会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
第七子007
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
6
7
8
9
10
11
12
13
14
···
22
下一页
2022年2月20日
linux源码解读(二十四):进程间通信IPC方式对比&poll接受数据
摘要: 为了确保进程数据的安全,cpu在硬件级别就支持不同进程的内存隔离了,采用的手段分别是:LDT和分页;每个进程都有自己的ldt描述符,严格规定了该进程使用的物理内存!同时还有分页机制,不同进程就算是同样的虚拟地址,也会映射到不同的物理地址!这两项措施严格保证了进程之间的物理内存是严格隔离的,互相无法读
阅读全文
posted @ 2022-02-20 21:25 第七子007
阅读(777)
评论(0)
推荐(0)
2022年2月12日
linux源码解读(二十三):网络通信简介——网络拥塞控制之BBR算法
摘要: 1、从网络问世直到10来年前,tcp拥塞控制采用的都是经典的reno、new-reno、bic、cubic等经典的算法,这些算法在低带宽的有线网络下运行了几十年。随着网络带宽增加、无线网络通信的普及,这些经典算法逐渐开始不适应新环境了: 手机、wifi等的无线通信在空口段由于信道竞争等原因导致数据包
阅读全文
posted @ 2022-02-12 21:44 第七子007
阅读(2278)
评论(0)
推荐(0)
2022年2月9日
linux源码解读(二十二):网络通信简介——网络拥塞控制之cubic算法
摘要: 网络拥塞的概念大家一定不陌生,肯定都有亲生体会:比如节假日的高速路堵车。本来车流量已经很大了,如果再不限制高速口的车进入,整条路只会越来越堵,所以交管部门可能会临时限流,只允许车辆下高速,不允许上高速!互联网刚发明的那会还没有拥塞的概念,各个节点死命地传输数据,导致网络中各种路由设备的buff瞬间被
阅读全文
posted @ 2022-02-09 19:50 第七子007
阅读(1925)
评论(0)
推荐(0)
2022年2月4日
linux源码解读(二十一):网络通信简介——tcp三次握手
摘要: 前面介绍了用来管理存放网络数据包的sk_buff,以及描述通信协议的socket和sock结构体,现在终于轮到怎么和远程的计算机通信了!从常识上讲,通信之前必须要建立连接,比如有线的键盘给电脑发送信号,需要先让键盘通过usb接口连接到电脑,否则电脑怎么接受键盘的电信号了?同理:我要想使用鼠标,比如先
阅读全文
posted @ 2022-02-04 17:38 第七子007
阅读(991)
评论(0)
推荐(0)
2022年2月2日
linux源码解读(二十):网络通信简介——socket&sock结构体介绍
摘要: linux下的网络编程离不开socket,中文被翻译为套接字。任何网络通信都必须先建立socket,再通过socket给对方收发数据!数据接受的demo代码如下: #include <string.h> #include <sys/socket.h> #include <sys/types.h> #
阅读全文
posted @ 2022-02-02 20:53 第七子007
阅读(2159)
评论(0)
推荐(0)
2022年2月1日
linux源码解读(十九):网络通信简介——sk_buff结构体介绍
摘要: 1、时至今日,已经找不到单机设备了,所有的IT硬件设备都会联网和其他的IT设备通信。设备之间传递数据总要遵守特定的协议规范吧,避免出现“鸡同鸭讲”的尴尬局面,这个就是至今世界范围内最流行的tcp/ip协议! 为了简化,又被分成了5层,各种体系的对应关系如下图: 看网络原理解析的各种技术文章时,经常会
阅读全文
posted @ 2022-02-01 13:05 第七子007
阅读(3023)
评论(0)
推荐(0)
2022年1月28日
linux源码解读(十八):红黑树在内核的应用——timer定时器
摘要: 定时器都知道吧?个人认为是linux最核心的功能之一了!比如线程sleep(5000),5s后再唤醒执行,cpu是怎么知道5s的时间到了?还有nginx这种反向代理每隔一段时间都要检测客户端的是否还在,如果掉线了就没必要再分配资源维护连接关系啦。那么间隔固定时间检测心跳的定时机制是怎么实现的了? 1
阅读全文
posted @ 2022-01-28 19:42 第七子007
阅读(1740)
评论(1)
推荐(0)
2022年1月21日
linux源码解读(十七):红黑树在内核的应用——epoll
摘要: 1、简单介绍一下epoll的出现的背景:这里以java代码为例,最原始的server代码如下: while(true){ ServerSocket ss = new ServerSocket(8888); System.out.println("启动服务器...."); Socket s = ss.
阅读全文
posted @ 2022-01-21 21:57 第七子007
阅读(2385)
评论(0)
推荐(0)
2022年1月19日
linux源码解读(十六):红黑树在内核的应用——虚拟内存管理
摘要: 1、linux内核中利用红黑树增删改查快速、稳定的特性来管理的还有另一个非常重要的功能:虚拟内存管理!前面介绍了buddy和slab算法是用来管理物理页面的。由于早期物理页面远比虚拟页面小很多,而且只需要分配和回收合并,所以也没用树形结构来组织,简单粗暴地用链表来管理!但是虚拟内存不一样了:以32位
阅读全文
posted @ 2022-01-19 20:19 第七子007
阅读(2195)
评论(0)
推荐(0)
2022年1月15日
linux源码解读(十五):红黑树在内核的应用——CFS调度器
摘要: 1、在现代的操作系统中,进程调度是最核心的功能之一;linux 0.11的调度算法简单粗暴:遍历task_struct数组,找到时间片counter最大的进程执行;显然这种策略已经不适合越来越复杂的业务场景需求了,所以后来逐步增加了多种调度策略,目前最广为人知的调度策略有5种:cfs、idle、de
阅读全文
posted @ 2022-01-15 21:29 第七子007
阅读(1830)
评论(1)
推荐(0)
上一页
1
···
6
7
8
9
10
11
12
13
14
···
22
下一页
公告