会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
第七子007
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
6
7
8
9
10
11
12
13
14
···
22
下一页
2022年2月9日
linux源码解读(二十二):网络通信简介——网络拥塞控制之cubic算法
摘要: 网络拥塞的概念大家一定不陌生,肯定都有亲生体会:比如节假日的高速路堵车。本来车流量已经很大了,如果再不限制高速口的车进入,整条路只会越来越堵,所以交管部门可能会临时限流,只允许车辆下高速,不允许上高速!互联网刚发明的那会还没有拥塞的概念,各个节点死命地传输数据,导致网络中各种路由设备的buff瞬间被
阅读全文
posted @ 2022-02-09 19:50 第七子007
阅读(1894)
评论(0)
推荐(0)
2022年2月4日
linux源码解读(二十一):网络通信简介——tcp三次握手
摘要: 前面介绍了用来管理存放网络数据包的sk_buff,以及描述通信协议的socket和sock结构体,现在终于轮到怎么和远程的计算机通信了!从常识上讲,通信之前必须要建立连接,比如有线的键盘给电脑发送信号,需要先让键盘通过usb接口连接到电脑,否则电脑怎么接受键盘的电信号了?同理:我要想使用鼠标,比如先
阅读全文
posted @ 2022-02-04 17:38 第七子007
阅读(977)
评论(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
阅读(2120)
评论(0)
推荐(0)
2022年2月1日
linux源码解读(十九):网络通信简介——sk_buff结构体介绍
摘要: 1、时至今日,已经找不到单机设备了,所有的IT硬件设备都会联网和其他的IT设备通信。设备之间传递数据总要遵守特定的协议规范吧,避免出现“鸡同鸭讲”的尴尬局面,这个就是至今世界范围内最流行的tcp/ip协议! 为了简化,又被分成了5层,各种体系的对应关系如下图: 看网络原理解析的各种技术文章时,经常会
阅读全文
posted @ 2022-02-01 13:05 第七子007
阅读(2975)
评论(0)
推荐(0)
2022年1月28日
linux源码解读(十八):红黑树在内核的应用——timer定时器
摘要: 定时器都知道吧?个人认为是linux最核心的功能之一了!比如线程sleep(5000),5s后再唤醒执行,cpu是怎么知道5s的时间到了?还有nginx这种反向代理每隔一段时间都要检测客户端的是否还在,如果掉线了就没必要再分配资源维护连接关系啦。那么间隔固定时间检测心跳的定时机制是怎么实现的了? 1
阅读全文
posted @ 2022-01-28 19:42 第七子007
阅读(1697)
评论(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
阅读(2369)
评论(0)
推荐(0)
2022年1月19日
linux源码解读(十六):红黑树在内核的应用——虚拟内存管理
摘要: 1、linux内核中利用红黑树增删改查快速、稳定的特性来管理的还有另一个非常重要的功能:虚拟内存管理!前面介绍了buddy和slab算法是用来管理物理页面的。由于早期物理页面远比虚拟页面小很多,而且只需要分配和回收合并,所以也没用树形结构来组织,简单粗暴地用链表来管理!但是虚拟内存不一样了:以32位
阅读全文
posted @ 2022-01-19 20:19 第七子007
阅读(2170)
评论(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
阅读(1783)
评论(1)
推荐(0)
2022年1月13日
linux源码解读(十四):红黑树在内核的应用——红黑树原理和api解析
摘要: 1、红黑树是一种非常重要的数据结构,有比较明显的两个特点: 插入、删除、查找的时间复杂度接近O(logN),N是节点个数,明显比链表快;是一种性能非常稳定的二叉树! 中序遍历的结果是从小到大排好序的 基于以上两个特点,红黑树比较适合的应用场景: 需要动态插入、删除、查找的场景,包括但不限于: 某些数
阅读全文
posted @ 2022-01-13 21:42 第七子007
阅读(2628)
评论(0)
推荐(0)
2022年1月8日
linux源码解读(十三):内核驱动module加载kprobe&字节跳动Elkied简要分析
摘要: 要想在计算机里干点事,权限肯定是越高越好的。正常情况下,cpu硬件层面保证了运行在0环的操作系统和运行在3环的用户app互相隔离,3环app要想进入0环执行代码只能通过中断或系统调用的形式,执行最多代码的应该就是硬件的驱动了,常见的屏幕打印、磁盘读写、网卡/wifi收发数据都要执行硬件驱动。因为需要
阅读全文
posted @ 2022-01-08 17:13 第七子007
阅读(1806)
评论(0)
推荐(1)
上一页
1
···
6
7
8
9
10
11
12
13
14
···
22
下一页
公告