第 5 章:802.11ac(Wi-Fi 5)— 超级高速公路

"速度的追求永无止境——当 600 Mbps 不够时,那就追求 6.93 Gbps。"


本章导读

2013 年,802.11ac(VHT,Very High Throughput)登场。它只在 5 GHz 频段工作,专注于把速度推到极致:256-QAM、80/160 MHz 信道、最多 8 空间流、下行 MU-MIMO。理论最大速率达到了惊人的 6.93 Gbps。

Read more »

"当单车道的路堵到极限时,唯一的出路就是建立交桥。"


本章导读

2009 年,IEEE 正式发布了 802.11n(也称为 HT,High Throughput)——这是 WiFi 历史上最大的一次技术飞跃。它引入了 MIMO(Multiple Input Multiple Output,多输入多输出)技术,用多条天线同时传输不同数据,把多径衰落从"敌人"变成了"朋友"。加上 40 MHz 信道绑定、帧聚合、Block ACK 等机制,理论速率从 54 Mbps 一跃提升到 600 Mbps。

Read more »

"再好的交通规则,也需要好的道路和车辆来支撑。"


本章导读

前两章我们学习了 802.11 的协议层面——交通规则。但在数据真正"上路"之前,它必须经过一系列硬件处理:数字信号变成模拟信号,基带信号变成射频信号,功率被放大,然后通过天线发射到空中。这一章我们暂时离开协议,了解"道路基础设施"——WiFi 的射频硬件。

Read more »

"当第一个十字路口堵车时,人们做的第一件事就是修更宽的路。"


本章导读

1997 年的 802.11 标准只有 2 Mbps——这在拨号上网时代勉强够用,但随着互联网内容的丰富,2 Mbps 远远不够。1999 年,两个几乎同时发布的修正案彻底改变了局面:802.11b 把速率提升到 11 Mbps,802.11a 更是达到了 54 Mbps。

Read more »

"所有伟大的交通系统,都始于一个简单的十字路口。"


本章导读

1997 年 6 月,IEEE 发布了 802.11 标准——无线局域网的第一个正式标准。在我们的比喻中,这就像是在一个小镇上建立了第一个十字路口:有了基本的交通规则,有了红绿灯,有了简单的道路。虽然简陋,但它定义了所有后续交通系统的基础架构。

Read more »

"如果你能理解一个十字路口的交通管理,你就能理解 Wi-Fi。"


1 为什么有这个系列?

IEEE 802.11 协议族是现代无线通信的基石。从 1997 年的第一个标准(2 Mbps)到 2024 年的 Wi-Fi 7(46 Gbps),速率提升了 23000 倍。但这些协议标准动辄数千页,充满了密集的技术术语和抽象的状态机描述,让大多数学习者望而却步。

Read more »

主要是受打击了..md..太多不会了,又重新拾起来了,这次为了方便也不搞什么虚拟机了,所有环境完全在Win10上,主要是笔记本有点破,再搞个虚拟机有点吃不消了..所以参考了下各种教程,最终使用vscode + gdb + qemu的组合..或许qemu会换成Bochs..

1 环境搭建

1.1 gcc工具链

可以去这个github:https://github.com/blessingwater/GCC_x86_64-elf-tools-windows 下载,解压之后添加环境变量即可

Read more »

作为OS研发,在framework加点api,写个apk验证想法是常有的事,什么系统api,隐藏api更是想用就用,怎么能被@hide限制?所以一般的写的apk都是集成在系统源码里面,比如Settings,加上系统签名,这样确实没有@hide限制了,但是这样基本都是基于记事本开发,没有IDE的提示来得舒服,但是用Android Studio打开,由于原生sdk的限制,调用隐藏的api或咱们自己加的api会报红,这代码写起来就不爽。所以咱就是要整个两者兼得的方法,核心是两点,一是系统的jar包,也就是sdk;二是platform签名,没有签名认证,是安装不了的

关于sdk,咱们手上有源码是可以自己编译的,直接lunch sdk-eng,整编就好了,出来个啥,不大清楚,没用过,这里不用这个法子,此处选择用哪个模块导入哪个模块的jar包;系统签名相信就按着步骤来生成就好了

Read more »

上一节loader程序装载完kernel后,执行了jmp SelectorCode64:OffsetOfKernelFile命令跳转到kernel部分了,意味着Loader将处理的控制权交给了Kernel

处理器把控制权交给kernel后,kernel最先执行的是内核执行头程序。内核执行头程序是一段精心设计的汇编代码,而且必须借助特殊的编译链接方法才能得到最先执行。

内核头程序负责为操作系统创建段结构和页表结构,设置某些结构的默认处理函数、配置关键寄存器等工作。在完成上述工作后,依然要借助远跳指令才能进入系统内核主程序。

如何将内核执行头程序编译生成到整个内核程序文件的起始处?手动编写内核程序的链接脚本,在内核程序的链接过程中,链接器会按照链接脚本描述的地址空间布局,把编译好的各个程序片段填充到内核程序文件中。

看完有点懵,都是内核程序为啥要咱手动指定谁先谁后?大概是因为内核头是汇编写的,内核是c写的..要让head先执行就得在lds中指定第一条指令是啥..编译部分参考哈: ld - 链接脚本学习笔记与实践过程

Read more »

之前gitee图床挂了,然后gitee想用pages也必须用身份证,折腾一整最后放弃了gitee,直接用github好了(还是github靠谱),本想着研究一下hugo,但是新东西费时间啊,就继续使用hexo+next了,算是升了个级,并且添加了github CI,解决环境,部署问题,一个字,爽!

首先搭建hexo博客步骤还是和 Use hexo + github to build a blog | Sidney God 一样,按照步骤做就好了,注意这里不要去改node_modules源码了(好像除了markdown和mathjax冲突,也没啥需要改的,kmarked不适用新版本hexo,别折腾了..),环境部署麻烦

Read more »