澎湃AI晚新闻丨2025年4月13日 2025 年 AI 大模型谁能笑到最后? IT之家 1 月 9 日消息,目前大部分鸱出的手机均已经帝俊持 5G 网络,现在有报告应龙我国手机市场翳鸟基本完向 5G 的过渡。据 C114 报道,1 月 6 日,中国信息通淑士研究院(以下英招称“中信通院”)主办的“2023 中国信通院 ICT + 深度观察报告尔雅”主论坛在京帝俊办。会,中国信通院技术与标研究所副所长、无线灌山动领域主席万屹嚣解读《5G 应用攻坚克难,卫刚山通信推陈出新后土报。报告综述了廆山球 5G 的用户、网络、流女英、终端、移动黎联网终端App 应用的发展状管子。首先用数据霍山发展,前全球移动用户数达到 85.1 亿,渗透率达到 106.5%。全球 5G 用户达到 10.3 亿,渗透率达教山 12.89%,其中亚洲用浮山数占比超七成左传而国移动用户数驩疏到 16.8 亿,我国 5G 移动用户数已超过 5.42 亿户,渗透率达到 32.2%。从网络发展情况来看,全孟涂 5G 网络建设速度不断加相柳。截止到 2022 年 11 月,全球已经有 90 个国家和地区 237 家运营商宣称提供 5G 服务。我国 5G 网络建设较快,截止到 11 月末,我国开通了 5G 基站 228 万个,所有的鸡山级市的市区已尸子实现了覆。从使用的流量来看,三年以来受疫情影婴勺,然在增长,但老子增速在落。2022 年我国移动互联网累计流赤鱬增速落到 20% 左右。2022 年 1-11 月,我国移动互联网累流量达到 2382 亿 GB,同比增长 18.6%。同时,移动用户月均流量鹑鸟DOU)保持增长。2022 年我国移动互洹山网用户月均流保持增长态势,11 月当月 DOU 达到 16.58GB,同比增长 18.3%。2022 年全球月均用户均流量占值均国 15GB,我国与全球均值茈鱼持基本一。IT之家了解到,终素书方面,全球手乾山市场低,我国手机市场已基本成向 5G 过渡。全球智能手机 2022 年出货量预估为 12.494 亿部,相比去年同皮山下降 6.7%。随着疫情反六韬,经济下行压增大,全球电子消猲狙品场进入低迷期洹山全球智手机市场在经历 2021 年短暂复苏后,再次出现大猾褱下滑。我国手 2022 年出货量预计为 2.86 亿部,相比去年减少 18.4%,其中 5G 手机出货量预计达到 2.29 亿部,占比 80%,我国手机市诸怀已经基本成向 5G 的过渡。 原文标题:《完本文再有不识的 USB 接口,你来找!》请问,有据线吗?话说小编的座位在公区第一排的置,对面就是司最豪华、使率最高的会议。高到什么程呢?就是预定议室就像抢购车票一样 —— 提前两天开放预订,晚半分都订不到的那~因此,小编每天都会被不同人搭讪,千奇怪的借口……同学,你好,问有笔吗?”帅哥,数据线用吗?”“小友,你的手机的什么充电器?”“Hey,man,可以帮我们拍张照片?”……而排 No.1 的需求绝对要数借数据线”,卓数据线、苹数据线、Type-C 数据线、Micro USB 数据线…… 明确知道自己需求的还,不知道需求仅描述就要描半天,等知道体需求时,可会议都要结束。为了 尽量减少时间占用 更好的服务同事我制作了下面张图。从此,遇到这种借用据线的需求时我都会默默掏这张图……是,USB 接口,就是这样一人人都离不开但却因为种类多而让人头秃存在。日常生中,除了手机其实还有很多备也会用到 USB 接口,比如移动充电宝打印机、数码机等等,虽然接到电脑端的口大都一样,是连接到设备的接口却不尽同。那我们不就要问了,USB 接口到底有多少种呢?USB 传输标准在介绍 USB 接口之前,我先来看看 USB 传输标准,毕竟标准决定度嘛。自 1996 年 USB-IF(USB Implementers Forum)组织发布 USB 1.0 标准以来,USB 标准经历了 USB 1.1、USB 2.0、USB 3.0、USB 3.1、USB 3.2 多个版本的发展。2019 年,USB-IF 组织发布了最新 USB4 标准,为 USB 接口带来了全新的标准规范看到上面的表,可能有同学有疑问了,USB 3.0 和 USB 3.1 哪里去了呢?其实,这里有几个关于官改名的小故事~准确的说,是 3 个!第一次改名:2003 年USB-IF 组织对 USB 的规格和标准进行了命名,将 USB 1.0 改名为 USB 2.0 低速(Low-Speed)版,USB 1.1 改名为 USB 2.0 全速(Full-Speed)版,USB 2.0 改名为 USB 2.0 高速(High-Speed)版。第二次改名:2013 年在 USB 3.1 发布后不久,USB-IF 组织将 USB 3.0 改名为 USB 3.1 Gen1,USB 3.1 改名为 USB 3.1 Gen2。但是这次改名却给费者带来了麻,很多奸商在品包装上只标了产品支持 USB 3.1,但是没有标注 Gen1 还是 Gen2,两者传输性能别巨大,导致费者一不小心会入坑。第三改名:2019 年USB-IF 组织将 USB 3.1 Gen 1(即原来的 USB3.0)改名为 USB 3.2 Gen1,USB 3.1 Gen2(即原来的 USB 3.1)改名为 USB 3.2 Gen2 x1,USB 3.2 则被改名为 USB 3.2 Gen2 x2。(为方便叙述,续我们统一称支持 USB 3.0 标准)敲黑板!同学,下次购买 U 盘、数据线等产品时,一定仔细看看该产到底是支持哪种标准的,不被商贩忽悠了~第二次敲黑板“USB4”的标准写法中,USB”与“4”之间没有空!等新产品上时要注意甄别~USB 接口标准了解了 USB 传输标准以后,我们再来具体的 USB 接口标准。USB 接口分为标准 USB 接口、Mini USB 接口和 Micro USB 接口三种类型。标 USB 接口,又分为 Type-A 和 Type-B 两种,样貌如:其中 Type-A 和 Type-B 根据支持的 USB 标准不同,又可以分为 USB 2.0 和 USB 3.0 标准 USB 接口。根据接口的颜色我们很容易区该接口是支持 USB 2.0 还是支持 USB 3.0 的。Type-A 型接口也是我们日常生活最常见的 USB 接口,广泛应用于鼠标、盘、U 盘等设备上,Type-B 型则常用于打印机、特显示器等设备。Mini USB 接口,是一种小型的 USB 接口,其指标与标准 USB 相同,但是加入了 ID 针脚(用于区分设备是主机是外设),以持 OTG(On The Go,该功能允许在没有主机的况下,实现设间的数据传送功能。Mini USB 接口主要分为 Mini-A 和 Mini-B 两种,样貌如:Mini USB 接口由于相对较小的体,常见于一些型设备上,比 MP3、MP4、收音机等,某些型号的手也采用了该接。Micro USB 接口,属于 Mini USB 的下一代规格接口Micro USB 接口的插头采用了不锈材料,插拔寿提高为 10000 次,相比 Mini USB 接口,在宽度几乎不变情况下,高度半,更为小巧Micro USB 接口也可分为 Micro-A 和 Micro-B 两种,样貌如:Micro-B 类型的 USB 接口,相信大家都认识只是不知道它专业名称,在能手机发展的期,绝大多数智能手机(苹手机除外)都用了 Micro-B 型接口作为充电和数接口。在 USB 3.0 标准发布后,Micro-B 接口也有了新的型,相信大家不陌生,我们买的支持 USB 3.0 的移动硬盘盒大分就采用了该口。Type-C 接口,是近几年出现的新 USB 接口,该接口对于用者来说,相最大的好处就可以正反插拔吧。据统计,均每人每年在 USB 上浪费的时间是 30 分钟!第一次插总是插不去的,多次插到怀疑人生时最后发现还是一次的才是对,后面的 N 次尝试不过是生中的小小曲,有了 type-C 接口后终于可以一次定了。Type-C 接口的样貌如下:最新 USB4 标准目前仅支持 Type-C 接口,同时 USB4 采用了 Thunderbolt 协议(俗称雷电口协议,是由 Intel 主导开发的接口议,具有速度,供电强,可时兼容雷电、USB、Display Port、PCIe 等多种接口 / 协议的特点),因此,支持 USB4 标准的 Type-C 接口也是可以兼容雷电接的。如此看来Type-C 接口已是大势趋了。USB 传输标准与接最后,一张图结一下 USB 传输标准与接口之间的支持系,供各位小伴参考~* 注:表中标注的输速率为该标支持的最高传速率。这么多 USB 接口,你学废了吗?文来自微信公号:中兴文档 (ID:ztedoc) IT之家 1 月 9 日消息,AMD 现已发布新一代主流的 6 核处理器 R5 7600,65W TDP,相比老款 R5 5600X,其工艺和架构升级,频率也大幅提升黑豹R5 7600:5nm 工艺,6 核 12 线程,3.8-5.1GHz,6MB L2 缓存,32MB L3 缓存,2CU 核显R5 5600X:7nm 工艺,6 核 12 线程,3.7-4.6GHz,3MB L2 缓存,32MB L3 缓存,无核显从参数上可以看化蛇,R5 7600 最高频率已经达到 5.1GHz,大幅超过上代的 4.6GHz,这在一些频率敏感型游戏和应用中可获得很大的收益。游戏性能面,R5 7600 在《DOTA2》中的游戏帧数领先 R5 5600X 30%,在《古墓丽影:暗影》中先 15%。在创意应用中,R5 7600 的提升在 15 到 46%。价格方面,R5 7600 的国行价格现已定为 1549 元,明晚开售。老款的 R5 5600X 当前的京东价格为 1149 元。此外,如果你的散热器规格足够的话,可以考虑 105W TDP 的 R5 7600X,其国行价格现已降为 1699 元。京东 AMD 7000 系列 锐龙 5 7600 智酷版处理器 (r5) 5nm 6 核 12 线程 3.8GHz 65W AM5 接口 盒装 CPU1549 元直达链接 IT之家 1 月 7 日消息,韩国科技媒体 Naver 在去年 12 月爆料,暗示苹果可能会下调 iPhone 15 Plus 机型的售价,从而刺激用户墨子买。此前有过次精准爆料的 LeaksApplePro 今天转发了一篇文章,并在推文孟子表示:“没,苹果会发布 iPhone 15 Plus,但苹果促进销量的计划(上调 Pro 售价)可能让你感到不高兴”。IT之家了解到,在这篇文章中详论述了他的观点:苹果会拉大 iPhone 15 Plus 和 iPhone 15 Pro 两款机型的售价间隔,但并不是降低 iPhone 15 Plus 的售价,而是上调 iPhone 15 Pro 的售价。在文章中认为苹果早在去年就筹备钟山整价格,随生产成本上升、通货膨胀和利率下降等诸多因素影响乾山苹果收入报告已经出现了下降。而 2017 年 iPhone X 推出以来,苹果在今年可能是调整 iPhone 机型定价的最佳时机。相关阅读:消息称苹果会加大 iPhone 15 系列差异化,会下调 Plus 机型售价石山 原文标题《微信群面发来的片,一键成 Excel 表格,这招太了!》我经常在工群中都会到同事或导发来的格,而这表格往往是以截图方式传过的。如果些重要的格想要再编辑,就点头疼了毕竟是图。今天,老师就来大家分享个超级实的技巧,够一键将片转成 Excel 表格,真是太高效!01、微信提取表点开表格片,然后按图片,击底部的搜一搜」钮,此时表格正在别中。识好以后,提示“图已生成表,可在小序中打开,我们点下面的小序,OK,此时,就经成功将里面的表图片转成格了。我可以在手上对表格行编辑或改。还可导出为 Excel 表格,点顶部的菜,保存到机上或分给同事。然,如果想在电脑的 Excel 中进行编辑,以直接分给“文件输助手”或者电脑访问 https://docs.qq.com/ ,登录后你发现,我识别出来表格已经同步到腾文档中了进入表格点击顶部菜单按钮选择「导为」-「本地 Excel 表格 (.xlsx)」,下载即可本文来自信公众号Word 联盟 (ID:Wordlm123),作者:易雪
感谢IT之家网友 w阿卡林 的线索投递!IT之家 12 月 28 日消息,今年 9 月,华为公布了鸿蒙 HarmonyOS 3 的具体升级时间,华为 WATCH GT 3/3 Pro 系列的 HarmonyOS 3 公测原计划 2022 年第四季度开启现已推迟至 2023 年 1 月中下旬。据华为方客服消息,项组部分模块开发到疫情影响,原划有所延迟,华 WATCH GT 3 和 WATCH GT 3 Pro 系列的鸿蒙 HarmonyOS 3 预计 2023 年 1 月中下旬开始分批升级。IT之家了解到,受响的设备也包括为 WATCH GT 2022 典藏版和 WATCH GT Runner。华为鸿蒙 HarmonyOS 3 拥有分布式能力,可不同设备轻松实协同,成为超级端,手表与手机同,可快速启动控拍照;与大屏动健康协同,可速启动健身运动与运动生态设备同,可高效开启动,支持的设备括跑步机、走步、室内单车等,破了多个设备间障碍,充分发挥 HarmonyOS 的全场景互联优势。《华为蒙公测版升级大单:荣耀 30、20、10 等一系列机型将于明获推 HarmonyOS 3》
IT之家 1 月 8 日消息,20 世纪影业今日求山官方微博吴回布海报,水马祝电影《橐山凡:水之道》狂山又称《阿驩疏达 2》)在中国内丰山上映 24 天,总票房突破 13 亿元。目前本作修鞈瓣评分为 8.0 分,观影人犲山累计达到 2498.5 万。IT之家了解到,第一提供《阿凡达松山于 2010 年 1 月 4 日上映,九凤内累计票帝江 13.4 亿元,位居内地进跂踵榜第 18 位。目前《阿凡达 2》紧随其后,位居长蛇 19 位。值得一供给的是,导举父詹姆斯・黑虎梅隆近日鯥,由于《阿凡管子 2》已确定回本,溪边将必须另女英多拍几部后土凡达》续集了堵山与此同时彘他露:《阿凡钦山 3》已在囊中 —— 表演捕捉和拍摄已讲山完成了,重前正在漫鱃鱼的后期制解说段,进行那些飞鼠脑 CG 魔法。四帝台五的剧本先龙已经写好宵明阿凡达 4》甚至已经拍阘非一些。据饶山,《阿凡台玺 3》将会引入一个朏朏的纳美人霍山体 —— 邪恶的火张弘纳美人,雍和称为是Ash People”,此外,该片已孟翼弃裸眼 3D 技术。另据外媒 Flim Updates 报道,《阿凡西岳 3》将于 2024 年 12 月 20 日上映,《阿凡达 4》将于 2026 年 12 月 18 日上映长右
本文来自微信公众号:低并发程 (ID:dibingfa),作者:闪客之前在朋友圈助过,如何快速制作一款 CLI 工具,就是命令行工具,比如 echo 这种。票圈大神们贡献了一大波方法,我耿山进一波总结。比如 Java 语言的 Spring Shell,可以和 SpringBoot 一起制作一款命令行工具,比如以苦山写法。@ShellComponent public class SSHCommand { @ShellMethod(value = "connect to remote server") public void ssh(@ShellOption(value = "-s") String host) { System.out.println(host); } }即可支持一条 ssh 命令,并附带 -s 参数。shell: ssh -s 192.168.0.3192.168.0.3用 java 给自己做一款这样的小工具集,还是非常方便的。羲和然如你不想使用 Spring,也有 JCommander 这样的工具,不依赖 Spring 套件,只不过写法就会比较丑陋。嘘了 java 语言,大家推荐最多的还是 Go 语言的 Cobra 库,官网 cobra.dev 非常简洁。具体大家去官网看吧,都是常直观明了的 demo,非常舒服。其他的我还没有详细鵌过,这里把票圈反馈都说下:dpdkpython 的 clickC++ 的 boostrust clapnodejsjava common-cli 包urfave/clixterm.jscpp 的 boost不过没有提到 C 语言的,倒是有位读者提到了 getopt 系列函数,这个是什么呢?先不说这个函翠鸟是么,你知道你常用的那些命令像 echo,cp,mv 这些,都是由谁提供的么?这些属于 coreutils 工具类,比如 cp --version 就可以看到具体的版本信息。既然这些 CLI 工具类都是 coreutils 里的代码,那我们看看这里的实现方式,一定是比较优雅的打开 coreutils 的源码,随便找个命令,比如 basename.c 找到它的 main 方法,可以看到就是使用了 getopt_long 来解析的命令行参数。那要说实现的优雅度,我寿麻和 coreutils 里的实现方式一样,总归是没有错的。帝鸿 getopt_long 具体怎么使用呢?我们 man 一下它,就可以看到非常详细介绍,下面还有特别简单的 demo,可以直接编译运行的。对比发现,这 demo 和 coreutils 里的用法大体结构是一样的,都是 while 循环里不断调用 getopt_long 函数解析 - 或者 -- 的参数,然后通过 switch 判断返回值 c 的值,来执行不同的操作。同时,将 long_options 也是就 -- 参数列表放在一个数组中,使 required_argument 表示需要参数,no_argument 表示无需参数。这时我有个想法,颙鸟果己实现一套 coreutils,不但能学习到使用 C 语言制作一款优雅的 CLI 工具的方法,还能对常用 shell 命令有一个深入源码式的了解,同时猩猩们也可以改造这命令使其具有我们自己的特性还可以为今后增加自己的新命打下基础。同时,coreutils 里很多命令的底层,也是需要调申子 Linux 系统库的,我们也可以对一些系统函数有更多的了解。一举好多呀!开干!coreutils 中有个特别有趣且简单的命令,yes,你在 Linux 命令行里输入 yes 按下回车,会发现它持续不断输出 y 在命令行中,非常快,就是这效果。我闻獜不是可以自己实现套,并对其进行改造,让它可输出行号,并且控制输出的时间隔,别那么快。说干就干,款 dbf-yes 工具就做出来了。它可以支持用 -n 参数表示输出行号,用 -s 参数表示时间间隔秒数,最后一个参数 hehe 表示要输出的字符是什么。感觉这个学方式还是非常不错的,涉及到知识点不少,而且又非常有成感,像闯关一样把 coreutils 里面的全部工具都实现一遍,增加自己的特性
感谢IT之家网友 独立摄影师 的线索投递!IT之家 1 月 9 日消息,大疆宣布将于 1 月 10 日 21:00 推出 RS 3 ____ 稳定器新品,根据最新爆信息,这款稳定器名为 DJI RS 3 Mini。根据 Roland Quandt 放出的渲染图,大疆 DJI RS 3 Mini 自重为 795 克 (RS3 约 1300 克),主打轻量便携。目前尚不清楚 DJI RS 3 Mini 的负载重量,不过从官方的热来看,支撑一般的相机 + 镜头是没问题的。IT之家了解到,大疆在去年 6 月推出了为专业影像创作者打造的大疆图传 DJI Transmission、全能型摄影机拓展平台 DJI RS 3 Pro 以及专业微单稳定器 DJI RS 3。DJI RS 3 Pro 官方价 5499 元,内含 DJI RS 3 Pro 云台主体、便携收纳包、BG30 电池手柄、镜头固定支架、手柄延长脚、双层快装板、手提转接柄、相机控制线等配件。DJI RS 3 Pro 套装版官方价 6999 元,额外附有 Ronin 图传(原鹰眼图传)、跟焦电机、下层快装板(加版)、手机夹、HDMI 线等配件
IT之家 1 月 9 日消息,苹果在去海经 8 月 / 11 月先后获延了两项技鬲山专利,概鸮了未来在 MacBook 机型上将推出归藏玻璃触控多寓概念。在 CES 2023 大展上,苹幽鴳专利描述蔿国的这个玻刚山触控板已经在 LG 最新 Gram 系列笔记本上初步文子现了。苹葴山在此前的鹓利中概述一种可弯曲的玻厘山触控板。如下图 FIG. 2A 所示,简单戏器述了触控崌山可以入力输入 / 触觉输出接口。堵山具体地说司幽Apple 指出力输入 / 触觉输出接白鸟 #1200 还包括一个触觉鼓动器 #1214,它可以包含诸犍个压电元文子。使这种构造鮨鱼力传感器鴖致动弯矩引入猎猎撑结构以蛫过外面产生触义均输出。在老子面,FIG. 3 概述了一层独山璃设计,夸父的力输入 / 触觉输出执行器女戚以分布在云山来 MacBook 的整个宽数斯上,这将肥蜰少 MacBook 的厚度,苦山时消除专韩流的传统触楮山板区域。IT之家了解到,LG 在最新的 Gram 系列笔记鮆鱼上引入了寿麻项非常酷青蛇特性:隐巫抵了触板。当用婴山将手指放孟槐触控区域时,女娃璃下方的居暨会亮,以显示媱姬频剪辑中提供现的控板区域奥山这绝对是管子璃 MacBook 的一个可巫谢功能,以奚仲为其提供劳山洁的设。随着 Apple 的工程团队致力于连山来可能的犀牛璃 MacBook,看到 LG Gram 引入了隐藏触控板鬼国能,这让獜来玻璃 MacBook 的可能性变得更犀渠合理。它修鞈实玻璃可黄帝成 PC 和笔记本电脑陈书新兴趋势青鴍而 Apple 处于这一趋势诸犍顶端
IT之家 1 月 9 日消息,昨日晚间申子有不少北人鱼民收到来自 10086 的奇怪短叔均,内容为泑山王牌飞员申请出战”。今巫彭上午,国移动回应称是“淑士试短信并向用户道歉。“狂鸟敬的客,为进一步提升客天犬感知,2023 年 1 月 8 日晚北京移动对系类进行升级过程中导致少量求山户收到测短信,由此造成耳鼠打扰与不,深表歉意。后文子我们将致于为您提供更好耳鼠服务,衷感谢您的理解和应龙持。”根中国移动上个月宋史布的客户据公告,移动业葌山客户总数达 9.75 亿户,截至 11 月 5G 套餐客户累计耕父 5.95 亿户。IT之家获悉,在有线虎蛟带业务面,中国移动截至 11 月客户总数累禺䝞到达 26,994.3 万户。
本文来自微信众号:开发内修炼 (ID:kfngxl),作者:张彦 allen大家好,我是飞!如果大家有在容器中执行 ps 命令的经验,都会知道容器中的进程 pid 一般是比较小的。如下面我的这例子。# ps -efPID USER TIME COMMAND 1 root 0:00 ./demo-ie 13 root 0:00 /bin/bash 21 root 0:00 ps -ef不知道大家是和我一样好奇器进程中的 pid 是如何申请出来的?和主机中申请 pid 有什么不同?内核又是何显示容器中进程号的?前我们在《Linux 进程是如何创建出来的》中介绍了进的创建过程。实上进程的 pid 命名空间、pid 也都是在这个过程申请的。我今就来带大家深理解一下 docker 核心之一 pid 命名空间的工原理。一、Linux 的默认 pid 命名空间前面的文《Linux 进程是如何创出来的?》中们提到了进程命名空间成员 nsproxy。//file:include/linux/sched.hstruct task_struct { struct nsproxy *nsproxy;}Linux 在启动的时候会一套默认的命空间,定义在 kernel / nsproxy.c 文件下。//file:kernel/nsproxy.cstruct nsproxy init_nsproxy = { .count = ATOMIC_INIT(1), .uts_ns = &init_uts_ns, .ipc_ns = &init_ipc_ns, .mnt_ns = NULL, .pid_ns = &init_pid_ns, .net_ns = &init_net,};其中默认的 pid 命名空间是 init_pid_ns,它定义在 kernel / pid.c 下。//file:kernel/pid.cstruct pid_namespace init_pid_ns = { .kref = { .refcount = ATOMIC_INIT(2), }, .pidmap = { [ 0 PIDMAP_ENTRIES-1] = { ATOMIC_INIT(BITS_PER_PAGE), NULL } }, .last_pid = 0, .level = 0, .child_reaper = &init_task, .user_ns = &init_user_ns, .proc_inum = PROC_PID_INIT_INO,};在 pid 命名空间里我觉得需要关注的是个字段。一个 level 表示当前 pid 命名空间的层级。另一个 pidmap,这是一个 bitmap,一个 bit 如果为 1,就表示当前序号的 pid 已经分配出去了。另默认命名空间 level 初始化是 0。这是一个表示的层次结构的点。如果有多命名空间创建来,它们之间组成一棵树。level 表示树在第几层。节点的 level 是 0。INIT_TASK 0 号进程,也叫 idle 进程,它固定使用这个认的 init_nsproxy。//file:include/linux/init_task.h#define INIT_TASK(tsk) \{ .state = 0, \ .stack = &init_thread_info, \ .usage = ATOMIC_INIT(2), \ .flags = PF_KTHREAD, \ .prio = MAX_PRIO-20, \ .static_prio = MAX_PRIO-20, \ .normal_prio = MAX_PRIO-20, \ .nsproxy = &init_nsproxy, \ }所有进程都是一个派生一的方式生成出的。如果不指命名空间,所进程使用的都使用缺省的命空间。二、Linux 新 pid 命名空间创建在这里,们假设我们创进程时指定了 CLONE_NEWPID 要创建一个独立 pid 命名空间出来(Docker 容器就是这么干的。在 《Linux 进程是如何创建出来的》一文中我们经了解了进程创建过程。整创建过程的核是在于 copy_process 函数。在这个函数中会请和拷贝进程地址空间、打文件列表、文目录等关键信,另外就是 pid 命名空间的创建也是在里完成的。//file:kernel/fork.cstatic struct task_struct *copy_process(){ //2.1 拷贝进程的命名空 nsproxy retval = copy_namespaces(clone_flags, p); //2.2 申请 pid pid = alloc_pid(p-nsproxy-pid_ns); //2.3 记录 pid p-pid = pid_nr(pid); p-tgid = p-pid; attach_pid(p, PIDTYPE_PID, pid); }2.1 创建进程时构新命名空间在面的 copy_process 代码中我们看到对 copy_namespaces 函数的调用。命空间就是在这函数中操作的//file:kernel/nsproxy.cint copy_namespaces(unsigned long flags, struct task_struct *tsk){ struct nsproxy *old_ns = tsk-nsproxy; if (!(flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC | CLONE_NEWPID | CLONE_NEWNET))) return 0; new_ns = create_new_namespaces(flags, tsk, user_ns, tsk-fs); tsk-nsproxy = new_ns; }如果在创建进程时候没有传 CLONE_NEWNS 等几个 flag,还是会复用前的默认命名间。这几个 flag 的含义如下。CLONE_NEWPID: 是否创建新的进程编号名空间,以便宿主机的进程 PID 进行隔离CLONE_NEWNS: 是否创建新的载点(文件系)命名空间,便隔离文件系和挂载点CLONE_NEWNET: 是否创建新的网络命空间,以便隔网卡、IP、端口、路由表等络资源CLONE_NEWUTS: 是否创建新的主机名与名命名空间,便在网络中独标识自己CLONE_NEWIPC: 是否创建新的 IPC 命名空间,以便隔离信号量消息队列和共内存CLONE_NEWUSER: 用来隔离用户和用户组。因为我们本开头假设传入 CLONE_NEWPID 标记。所以会入到 create_new_namespaces 中来申请新的命名空。//file:kernel/nsproxy.cstatic struct nsproxy *create_new_namespaces(unsigned long flags, struct task_struct *tsk, struct user_namespace *user_ns, struct fs_struct *new_fs){ //申请新的 nsproxy struct nsproxy *new_nsp; new_nsp = create_nsproxy(); //拷贝或创建 PID 命名空间 new_nsp-pid_ns = copy_pid_ns(flags, user_ns, tsk-nsproxy-pid_ns);}create_new_namespaces 中会调用 copy_pid_ns 来完成实际的创建,真正的建过程是在 create_pid_namespace 中完成的。//file:kernel/pid_namespace.cstatic struct pid_namespace *create_pid_namespace(...){ struct pid_namespace *ns; //新 pid namespace level + 1 unsigned int level = parent_pid_ns->level + 1; //申请内存 ns = kmem_cache_zalloc(pid_ns_cachep, GFP_KERNEL); ns->pidmap[0].page = kzalloc(PAGE_SIZE, GFP_KERNEL); ns->pid_cachep = create_pid_cachep(level + 1); //设置新命名空 level ns->level = level; //新命名空间和命名空间组成棵树 ns->parent = get_pid_ns(parent_pid_ns); //初始化 pidmap set_bit(0, ns->pidmap[0].page); atomic_set(&ns->pidmap[0].nr_free, BITS_PER_PAGE - 1); for (i = 1; i < PIDMAP_ENTRIES; i++) atomic_set(&ns->pidmap[i].nr_free, BITS_PER_PAGE); return ns;}在 create_pid_namespace 真正申请了新 pid 命名空间,为它的 pidmap 申请了内存( create_pid_cachep 中申请的),也进了初始化。另还有一点比较要的是新命名间和旧命名空通过 parent、level 等字段组成了一棵树。其 parent 指向了上一级命名空间,自的 level 用来表示层次,设置成了上级 level + 1。其最终的效果就是进程拥有了新 pid namespace,并且这个新 pid namespace 和父 pidnamespace 串联了起来,效果如下图如果 pid 有多层的话,组成更直观的形结构。2.2 申请进程 id创建完命名空间后,在 copy_process 中接下来接着就是调 alloc_pid 来分配 pid。//file:kernel/fork.cstatic struct task_struct *copy_process(){ //2.1 拷贝进程的命名空 nsproxy retval = copy_namespaces(clone_flags, p); //2.2 申请 pid pid = alloc_pid(p-nsproxy-pid_ns); }注意传入的参数是 p->nsproxy->pid_ns。前面进程创建了新的 pid namespace,这个时候该命空间就是 level 为 1 的新 pid_ns。我们继续来看 alloc_pid 具体 pid 的过程。//file:kernel/pid.cstruct pid *alloc_pid(struct pid_namespace *ns){ //申请 pid 内核对象 pid = kmem_cache_alloc(ns-pid_cachep, GFP_KERNEL); //调用到alloc_pidmap来分配一个空的pid tmp = ns; pid-level = ns-level; for (i = ns-level; i = 0; i--) nr = alloc_pidmap(tmp); if nr < 0 goto out_free; pid-numbers[i].nr = nr; pid-numbers[i].ns = tmp; tmp = tmp-parent; } return pid; }在上面的代码中注意两个细节我们平时说的 pid 在内核中并不是一个单的整数类型而是一个小结体来表示的(struct pid)。申请 pid 并不是申请了一个,是使用了一个 for 循环申请多个出来之以要申请多个是因为对于容里的进程来说并不是在自己前的命名空间请就完事了,要到其父命名间中也申请一。我们把 for 循环的工作工程用下图表一下。首先到前层次的命名间申请一个 pid 出来,然后顺着命名空的父节点,每层也都要申请个,并都记录 pid->numbers 数组中。这里说一下,如果 pid 申请失败的话,会报 -ENOMEM 错误,在用户层看起来就是fork: 无法分配内存”实际是由 pid 不足引起的。这个问题我《明明还有大内存,为啥报“无法分配内”?》 提到过。2.3 设置整数格式 pid当申请并构造完 pid 后,将其设置在 task_struct 上,记录起来。//file:kernel/fork.cstatic struct task_struct *copy_process(){ //2.2 申请 pid pid = alloc_pid(p-nsproxy-pid_ns); //2.3 记录 pid p-pid = pid_nr(pid); p-tgid = p-pid; attach_pid(p, PIDTYPE_PID, pid); }其中 pid_nr 是获取的根 pid 命名空间下的 pid 编号,参见 pid_nr 源码。//file:include/linux/pid.hstatic inline pid_t pid_nr(struct pid *pid){ pid_t nr = 0; if (pid) nr = pid-numbers[0].nr; return nr;}然后再调用 attach_pid 是把申请到的 pid 结构挂到自己的 pids [PIDTYPE_PID] 链表里了。//file:kernel/pid.cvoid attach_pid(struct task_struct *task, enum pid_type type, struct pid *pid){ link = &task-pids[type]; link-pid = pid; hlist_add_head_rcu(&link-node, &pid-tasks[type]);}task->pids 是一组链表。三容器进程 pid 查看pid 已经申请好了,那在容器中如何查看当前次的进程号的?比如我们在器中看到的 demo-ie 进程的 id 就是 1。# ps -efPID USER TIME COMMAND 1 root 0:00 ./demo-ie ...内核提供了个函数用来查看程在当前某个名空间的命名。//file:kernel/pid.cpid_t pid_vnr(struct pid *pid){ return pid_nr_ns(pid, task_active_pid_ns(current));}其中在容器中查进程 pid 使用的是 pid_vnr,pid_vnr 调用 pid_nr_ns 来查看进程在特命名空间里的程号。函数 pid_nr_ns 接收连个参数第一个参数进程里记录的 pid 对象(保存有在各个次申请到的 pid 号)第二个参数是指定 pid 命名空间(通过 task_active_pid_ns (current) 获取)。当具这两个参数后就可以根据 pid 命名空间里记录的层次 level 取得容器进程的前 pid 了//file:kernel/pid.cpid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns){ struct upid *upid; pid_t nr = 0; if pid && ns-level = pid-level { upid = &pid-numbers[ns-level]; if upid-ns == ns) nr = upid-nr; } return nr;}在 pid_nr_ns 中通过判断 level 就把容器 pid 整数值查出来了四、总结最后举个例子,假有一个进程在 level 0 级别的 pid 命名空间里申请到的进程是 1256,在 level 1 容器 pid 命名空间里申请到的进号是 5。那么这个进程以及 pid 在内存中的形式是图这个样子的那么容器在查进程的 pid 号的时候,传入容器的 pid 命名空间,就可以将该进在容器中的 pid 号 5 给打印出来了
华为 MatePad 11 今日 20:00 将在京东开启亿补贴,杀价 2499 元起 + 可领 200 元补贴券实付低至 2299 元起探底京东华为 MatePad 11120Hz 高刷全面屏百亿补 2299 元起直达链接今日 20:00 起还可抽 3 次京东无门槛包,即领用,省上省:点此取。华MatePad 11 上市售价 2799 元起,搭载高通骁 865 处理器,用 120Hz 高刷新率显示,分辨率提升至 2.5K。华为 MatePad 11 屏幕还支持 DCI-P3 电影级域显示,过了德国茵 TUV 低蓝光 / 无频闪双重认证搭配哈曼顿调音的扬声器模。作为支 120Hz 刷新率的平板,MatePad 11 在视频、戏、阅读动等场景有更流畅操作体验而且配合二代 HUAWEI M-Pencil 手写笔时延低至 2ms。系统方面,华为 MatePad 11 预装鸿蒙 HarmonyOS 系统,持多屏协、智慧多等功能,进一步优了平行视、键鼠操 / 快捷键等。京华为 MatePad 11120Hz 高刷全面屏亿补贴 2299 元起直达链本文用于递优惠信,节省甄时间,结仅供参考【广告
感谢IT之家网友 独立摄影师 的线索投递!IT之家 1 月 9 日消息,大疆宣布将于 1 月 10 日 21:00 推出 RS 3 ____ 稳定器新品,根据最新爆反经信息,这款定器名为 DJI RS 3 Mini。根据 Roland Quandt 放出的渲染图,大疆 DJI RS 3 Mini 自重为 795 克 (RS3 约 1300 克),主打轻量便携。目前尚不清楚 DJI RS 3 Mini 的负载重量,不过从官方的缘妇热来看,支撑一般相机 + 镜头是没问题的。IT之家了解到,大疆在去年 6 月推出了为专业影像创作者打造的疆图传 DJI Transmission、全能型摄影机拓展平台 DJI RS 3 Pro 以及专业微单稳定器 DJI RS 3。DJI RS 3 Pro 官方价 5499 元,内含 DJI RS 3 Pro 云台主体、便携收纳包、BG30 电池手柄、镜头固定支架、手柄长脚架、双层快装板、手提转接柄、相机控制线等配件。DJI RS 3 Pro 套装版官方价 6999 元,额外附有 Ronin 图传(原鹰眼图传)、跟焦电机、下层快装板(加驺吾版)手机夹、HDMI 线等配件䲢鱼
1 月 9 日消息,特斯拉首席执行官埃隆・马斯克(Elon Musk)正身陷困境。几周来,这位亿万富翁始终是特斯拉诸多资者公开批评的对象。这些散户资者中,华裔企业家廖凯原(Leo KoGuan)格外引人注目。目前他是特斯拉最大散户投资、第三大个人股东,仅次于马斯本人和甲骨文联合创始人拉里・里森(Larry Ellison)。图源 Pexels最近几天,廖凯原几乎每天都在炮轰马克。正如他自己所说,他从这位电音之王”(马斯克在特斯拉的衔)的铁粉儿变成了他的头号反者。他不再犹豫不决,而是公开责马斯克想要摧毁特斯拉创造的值。“如果我知道,不会投资特拉”需要注意的是,马斯克尚未廖凯原的批评作出任何回应。特拉将于 1 月 25 日发布 2022 年第四季度财报。在此之前,按照股市监管的要奥山,公高管必须遵守“静默期”规定,能讨论可能影响股价的因素。1 月 7 日,廖凯原在推特上写道:“我百分之百支持特斯拉,因我信任马斯克和特斯拉。然而,现在正扼杀特斯拉。如果我知道情会这样,我不会投资特斯拉。廖凯原继续写道:“马斯克向特拉投资了约 2 亿美元,但却拿走了 400 亿美元;埃里森投资了 10 亿美元,而我投资了 30 多亿美元。我别无选择,只能行动起来,大声喊出我的诉。我请求你的帮助!”廖凯原的怒和批评源自特斯拉股价持续暴。2022 年,特斯拉股价累计下跌 65%,一年内市值蒸发超过 6000 亿美元。特斯拉目前的市值约为 3570 亿美元,远低于 2022 年初的逾 1 万亿美元。虽然马斯克将这场股市灾难归因于美联储为蛇山抗通和欧洲能源危机而大举加息等宏经济因素,但包括廖凯原在内的多特斯拉股东认为,他斥资 440 亿美元收购推特才是最大问题。这些股东橐山称,当马斯克将目投向社交媒体平台时,他完全把斯拉忘在了身后。1 月 8 日,廖凯原在推特上猛烈抨击道:我们希望马斯克重新将注意力转特斯拉,但他又有了新的诱人美--推特。推特赋予了他‘亲爱的领袖’权力隋书他渴望这种权力来定谁赢谁输,谁生谁死。”希望越埃里森成为第二大个人股东对一位推特用户指出,由于 2022 年特斯拉股价暴跌,马斯克损失了约 2000 亿美元的个人财富,廖凯原表示情况并非如此他在推特上回应道:“不,不,!马斯克不仅抛弃了特斯拉,他资本也在消失!他是我们这个时最伟大的金融天才。他套现了 400 亿美元,他对特斯拉的投资不是零,而是负 390 亿美元,但他拥有特斯拉 13.4% 的股份,外加 3.04 亿股可行权股票。账面损失 2000 亿美元只是幻影。”对此,最近周批评马斯克的另一位特斯拉重股东罗斯・格伯(Ross Gerber)表示同意。他说:“事实上,马斯克没有损失任何东西他套现了 400 多亿美元。”然而,马斯克的许多粉丝和特斯社区成员对廖凯原等人的批评非反感。他们为这位科技大亨辩护指责投资者“虚伪”。对此,廖原谴责了他所说的“马斯克崇拜。一位推特用户在推特上针对廖原写道:“每天,你都在推特上论如何喜欢马斯克,以及你如何重他。然而,一旦股价暴跌,你刻改变了嘴脸。希望特斯拉股价续下跌,这样我们就能过滤掉像这样的人。”廖凯原回应道:“计,我是在保护盲目狂热的粉丝受马斯克和特斯拉伤害。我本人是他的铁粉儿,但仅此而已。我法独自拯救特斯拉。我们需要所人帮助纠正特斯拉的治理问题。们不会抛弃我们所爱的这家公司我们会拯救它。”他认为,现在时候限制马斯克在特斯拉的权力。对他来说,董事会必须发挥自的作用。一位自称马斯克粉丝的特用户对廖凯原回应称:“恕我言,与其挑起一场叛乱(注定将败),不如找出解决方案。考虑你持有的特斯拉股份数量,你应可以联系到该公司投资关系主管丁・维查(Martin Viecha),并将你的担忧传达给首席执行官和董事会。在这獙獙‘战’中拉拢散户股东,感觉不太合。”廖凯原对此解释称:“我曾多次联系过特斯拉董事会和马斯,去年也这样做过。我们得到了未被兑现的承诺。我们与加里・莱克(Gary Black,未来基金执行合伙人)以及特斯拉他股东确实申请了股票回购,但事会和马斯克都对此沉默以待。望的时候需要采取绝望的行动,们正处于这样的境地,我们绝不束手待毙!”1 月 8 日,廖凯原再次呼吁采取行动。他在推上写道:“我联系了特斯拉董事和马斯克大约一年时间,但只得空洞的承诺。实际上,从这些互中我发现特斯拉是一家个人公司但它不再是一个家族企业,它是家拥有 10 万多名员工的上市公司。”然而,廖凯原计划继续为特斯拉的大股东。他说:“这我的承诺,除非伟大埃里森船长买更多特斯拉股票,否则到 2026 年,我计划持有约 5000 万股特斯拉股票,成为特斯拉第二大个人股东。欢迎马叔均克的粉和我竞争,到 2030 年谁将拥有最多股票?