Linux Kernel

TCP Fast Open知识

こ雲淡風輕ζ 提交于 2020-12-26 08:38:43
TCP Fast Open 定义 TCP Fast Open(TFO)是用来加速连续TCP连接的数据交互的TCP协议扩展,原理如下:在TCP三次握手的过程中,当用户首次访问Server时,发送SYN包,Server根据用户IP生成Cookie(已加密),并与SYN-ACK一同发回Client;当Client随后重连时,在SYN包携带TCP Cookie;如果Server校验合法,则在用户回复ACK前就可以直接发送数据;否则按照正常三次握手进行。 起源 由Google于2011年的论文(http://conferences.sigcomm.org/co-next/2011/papers/1569470463.pdf)中提出,IPV4的TFO已经合入Linux Kernel Mainline,Client内核版本为3.6;Server内核版本为3.7。 Google研究发现TCP三次握手是页面延迟时间的重要组成部分,所以他们提出了TFO:在TCP握手期间交换数据,这样可以减少一次RTT。根据测试数据,TFO可以减少15%的HTTP传输延迟,全页面的下载时间平均节省10%,最高可达40%。 目前互联网上页面平均大小为300KB,单个object平均大小及中值大小分别为7.3KB及2.4KB。所以在这种情况下,多一次RTT无疑会造成很大延迟。 2011年6月,对Google

使用 docker buildx 构建多 cpu 架构镜像

烂漫一生 提交于 2020-12-22 14:57:49
使用 docker buildx 实现多平台编译 docker registry api v2 支持多 CPU 架构镜像. 同时 harbor v2 也实现了 docker registry api v2 的支持. 实现之后, 将不再有 cpu 架构困扰, 一个 docker pull image:tag 将自动适配可适配的平台。真正做到海纳百川,一骑当千。 0x01 准备 docker 开启实验模式 buildx 插件 qemu 模拟器 Linux kernel >= 4.8 linux 系统内核 由于 binfmt_misc 机制开启需要依赖 Linux kernel >= 4.8 。因此,在对 linux 系统操作选型上有一定要求。 建议使用 发行版 出场内核已经满足需求的操作系统。而不是选择自己升级系统内核。 ubuntu:18.04 LTS 及以上 debian:10 及以上 参考文章: build multi architecture docker image with buildx 开启实验模式 当前 buildx 还是一个实验模式, 如需要支持, 需要进行如下配置 开启实验模式。修改 /etc/docker/daemon.json, 增加 experimental 字段, 如下。 # vi /etc/docker/daemon.json {

他是中国最牛X的黑客,曾让6个国家束手无策,却被怀疑是精神病

被刻印的时光 ゝ 提交于 2020-12-17 00:45:30
△Hollis, 一个对Coding有着独特追求的人△ 这是Hollis的第 228 篇原创分享 作者 l Hollis 来源 l Hollis(ID:hollischuang) 黑客,一直都是很神秘的一群存在,中国出过很多顶尖的黑客,比如我们很多人都知道的阿里巴巴守护神——道哥吴翰清、熊猫烧香的作者李俊、号称入侵过腾讯的菜霸鄢奉天等。 1 但是有一个更加牛X的黑客,他在1998年发明了一款病毒,这款病毒曾让6国网络瘫痪,全球损失超过十亿美元! 大多数人第一次知道病毒这东西是2006年的熊猫烧香。 但是,今天的主角研发的这款病毒比熊猫烧香出现早了8年。 1998年,13岁的道哥吴翰清还没有考入西安交大少年班,他的"幻影旅团"还没有创办。 1998年,菜霸鄢奉天才8岁,那时候的他,肯定也想不到自己8年以后能够黑进腾讯的内部系统。 1998年,中国还没有红客这个词,中国红客联盟(HUC)还没有成立。互联网上还没有关于中国红客的传说。 时间回到1998年6月,那是微软公司的Windows 98 刚刚正式发布。 但是仅过去3个月,一款名为CIH的病毒便开始在Windows 95、Windows 98和Windows ME等系统上传播。这款病毒会存储大量无用文件来挤满硬盘空间,甚至破坏主板BIOS芯片。 CIH病毒造成全球6000万台电脑瘫痪,其中韩国损失最为严重,全国15%的电脑中毒

Linux陈年漏洞,可造成系统宕机和遭黑客掌控

自古美人都是妖i 提交于 2020-12-06 18:53:51
点击上方 “ 民工哥技术之路 ” 选择“星标” 每天 10点 为你 分享 不一样的干货 读者福利!多达 2048G 各种资源免费赠送 GitHub的首席安全工程师 Nico Waisman 上周揭露了存在于 Linux 核心( Linux kernel )的安全漏洞,且该漏洞从 2013 年的 Linux kernel 3.10.1 便已存在,一旦被开采就有可能造成系统宕机或是遭到黑客掌控。 此一漏洞编号为 CVE-2019-17666 , 它存在于 Linux 核心中的 RTLWIFI 驱动程序,这个驱动程序是用来 支持Realtek 的 Wi-Fi 芯片,因此,采用 Realtek Wi-Fi 芯片的 Linux 设备 位在恶意装置的无线通讯范围内时,该漏洞就能被触发,形成缓冲区溢位,而让 Linux 系统宕掉,或是允许黑客取得系统权限。 此一漏洞仅冲击那些开启 Wi-Fi 并使用 Realtek 芯片的 Linux 设备 ,但从漏洞的属性来看,采用 Realtek Wi-Fi 芯片的 Android 装置也可能受到波及。 Waisman 向 Ars Technica 透露,这是个严重的 漏洞 ,代表 Linux 装置只要使用了 RTLWIFI ,就可被 远程 黑客由 Wi-Fi 造成系统的缓冲区溢位。 Linux开发人员已提交了 CVE-2019-17666 的修补程序

Linuxer-"Linux开发者自己的媒体"第四月稿件录取和赠书名单

╄→尐↘猪︶ㄣ 提交于 2020-12-01 10:35:26
原创 Linuxer Linux阅码场 2017-11-11 Linuxer已经从一个单纯的读者服务公众号转变为一个为广大用户解决linux学习,工作以及职业生涯实际问题的平台。用户参与,才能让这个平台更加实用,有效。Linuxer平台号召各路大虾一起来建设这个平台,“Linuxer”是广大linuxer的“Linuxer”。 第4个月稿件录取和赠书名单如下: 作者 赠送书 作品 明鑫 奔跑吧Linux内核》 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战 吴锦华 《奔跑吧linux内核》 吴锦华/明鑫: 用户态文件系统(FUSE)框架分析和实战 王玉成 《Deep Learning 深度学习》 王玉成: Android Things 第3个月稿件录取和赠书名单如下: 作者 赠送书 作品 魏永明 《微信小程序开发实战》 魏永明: MiniGUI的涅槃重生之路 郭健 《奔跑吧linux内核》 郭健: Linux内存逆向映射(reverse mapping)技术的前世今生 谢宝友 《奔跑吧linux内核》 谢宝友: 深入理解Linux RCU之一——从硬件说起 谢宝友:深入理解Linux RCU:从硬件说起之内存屏障 黄伟亮 《机器人爱好者(第4辑)》 黄伟亮: 探秘Linux的块设备和根 宋牧春 《奔跑吧linux内核》 宋牧春: Linux设备树文件结构与解析深度分析(1

linux设备驱动程序-设备树(0)-dtb格式

穿精又带淫゛_ 提交于 2020-11-24 06:26:51
linux设备树dtb格式 设备树的一般操作方式是:开发人员根据开发需求编写dts文件,然后使用dtc将dts编译成dtb文件。 dts文件是文本格式的文件,而dtb是二进制文件,在linux启动时被加载到内存中,接下来我们需要来分析设备树dtb文件的格式。 为什么要了解设备树dtb文件的格式 dtb作为二进制文件被加载到内存中,然后由内核读取并进行解析,如果对dtb文件的格式不了解,那么在看设备树解析相关的内核代码时将会寸步难行,而阅读源代码才是了解设备树最好的方式,所以,如果需要更透彻的了解设备树解析的细节,第一步就是需要了解设备树的格式。 注:本文部分参考: 官方文档 dtb格式总览 dtb的格式是这样的: dtb header 但凡涉及到数据的记录,就一定会有一个总的描述部分,就像磁盘的超级块,书的目录,dtb当然也不例外,这个描述头部就是dtb的header部分,通过这个header部分,用户可以快速地了解到整个dtb的大致信息。 header可以用这么一个结构体来描述: struct fdt_header { fdt32_t magic; /* magic word FDT_MAGIC */ fdt32_t totalsize; /* total size of DT block */ fdt32_t off_dt_struct; /* offset to

Linux信号(Understanding Linux Kernel 3rd)

烈酒焚心 提交于 2020-11-21 06:13:39
总览 产生 内核或应用程序产生,一份简短的信息。 传递 挂起状态 非挂起状态 信号类型 发给进程的信号(所有线程共享) 发给线程的信号 处理者 进程信号是其中一个没有屏蔽这个信号的线程处理。 线程就是指定线程处理。 处理方式 do_signal 处理 创建对应的特定栈帧来处理。 信号处理函数 整个进程中的线程共享。 有默认也有自定义。 需要的信息也可以自定义。 信号的作用 简讯 一份简短的信息。 生产者是内核或进程。 处理者是具体的线程或者是进程组中符合处理条件的线程。 内容 标准的信号就只有一个数字。 32 位的整数,每一位对应一个信号位。 支持实时信号的系统是 64 位,即两个 long . 信号定义 trap -l 用上面的指令罗列出支持的信号。 在编程中一般是宏定义,然后每个宏对应一个数字。 #define SIGHUP 1 #define SIGINT 2 #define SIGQUIT 3 #define SIGILL 4 #define SIGTRAP 5 #define SIGABRT 6 #define SIGIOT 6 #define SIGBUS 7 #define SIGFPE 8 #define SIGKILL 9 #define SIGUSR1 10 #define SIGSEGV 11 #define SIGUSR2 12 #define

不知道这些网站还做什么程序员啊!

…衆ロ難τιáo~ 提交于 2020-11-11 20:22:49
今天我就来总结一些程序员必备的网站,囊括开源项目、解决bug、技术分享、一线资源和自我提升的网站,希望能对广大程序猿有所帮助,赶紧给我收藏起来,下次刷不到了可别说我没提醒你。 我们首先来看一下国内比较流行的程序员社区: 1、CSDN: https://blog.csdn.net/linuxguitu ​ 老牌社区也挺好,就是广告和低质量内容多些,这个基本都是直接搜索结果跳转,犯懒不想看英文时候的选项。缺点就是鱼龙混杂,需要大家的甄别能力 2、segmentfault: https://segmentfault.com/u/chenbeiyou ​ SegmentFault创立于2012年,是中文领域较大的技术问答交流社区平台,在这里你可以检索,交流和分享任何技术编程相关的问题及知识。产品原型来自于国外程序员问答社区StackOverflow,但其产品形态经过一年多的发展,已经有问答、博客、活动等,它还是多个***马拉松活动的组织方。 3、知乎: https://www.zhihu.com/people/nan-gui-72-90-50 ​ 这个不用多说了吧,知乎是国内最大网络问答社区,连接各行各业的用户。其中程序员一直占据着半壁江山,老码农们分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。 4、哔哩哔哩: https://space.bilibili.com

(转)Linux网络数据转发平面的变迁-从内核协议栈到DPDK/XDP

[亡魂溺海] 提交于 2020-11-02 18:35:55
昨晚读了一篇Paper: https://penberg.org/parakernel-hotos19.pdf 大意是说,随着IO设备的进化,它们的存取/传输速率已经超过了CPU到内存的存储/传输速率,再也不再是慢速 外设 了,所以,对这些快速设备的管理和操作要发生改变才能适应,从这个意义上讲,几乎一成不变的Linux kernel在很多方面确实阻滞了性能的优化。 这可能是现如今人们纷纷转向DPDK/netmap或者XDP的本质原因了。怎么说呢?周末回上海前,发一篇感想。 在人们的印象中,一台标准的计算机包含三大件: CPU,即中央处理器。 内存,悬挂在类似叫做北桥的芯片上。 外设,慢速IO设备,悬挂在类似叫做南桥的芯片上。 这也是我们在《计算机组成原理》这门课中学到的。其实这就是现实中的计算机,就这样子,如果按照抽象的冯诺伊曼计算机来看,计算机是不包含外设的,它只有CPU和内存,强调存储和执行,是为 存储执行计算机。 有了现实中的计算机组成后,下一步就是设计操作系统来管理这些东西,事实上,几乎任何操作系统都可以按照这堆东西划分为不同的模块: 进程管理,管理CPU分时和调度。 内存管理,管理内存分配。 文件系统,管理文件组织。 网络协议栈,管理网络IO。 磁盘驱动,… … 其实一开始从名字上将除CPU,内存之外的物件叫做 外设 (某种意义上磁盘也是),并且将其连接到相对慢速的桥片上

微软将从 Windows 10 控制面板中彻底删除 Flash 配置组件

跟風遠走 提交于 2020-10-28 03:03:41
微软将从 Windows 10 控制面板中彻底删除 Flash 配置组件 包括微软、谷歌和苹果在内的软件制造商都在制定 Flash Player 的淘汰计划。预计明年微软还将提供一个可选的更新,用于从旧版本的 Windows 10 中删除它。在最近发布的在预览版中,微软已经悄悄地删除了配置 Flash Player 的传统控制面板设置,也从安装介质中删除了它的所有组件。 来源: cnbeta 拍一拍:眼看着当年大行其道的 Flash 落下来大幕。可是特供版呢…… NVIDIA 预计再过一个月才会有 Linux 5.9 驱动支持 虽然 NVIDIA 在支持新版本的 Linux 内核方面通常都很及时,通常会争取在新系列的发布候选版本结束前出一个驱动程序,但就最近新出的 Linux 5.9 内核而言,它需要的时间更长。NVIDIA 表示,Linux Kernel 5.9+ 与当前和以前的 NVIDIA Linux GPU 驱动不兼容。我们建议客户推迟更新至 Linux Kernel 5.9+,直到 11 月中旬。 来源: cnbeta 拍一拍:NVIDIA 没有解释为什么延迟,或许是我想多了。 在 Linux、Windows 系统上发现三个可以打开 shell 的 npm包 NPM 官方表示,任何安装或运行了该包的计算机都应被视为已被完全入侵。目前这三个包已被移除