Linus 和 Dirk 讨论继任、Rust 和更多话题

https://lwn.net/Articles/990534/ By Jake Edge September 25, 2024

The “Linus and Dirk show” has been a fixture at Open Source Summit for as long as the conference has existed; it started back when the conference was called LinuxCon. Since Linus Torvalds famously does not like to give talks, as he said during this year’s edition at Open Source Summit Europe (OSSEU) in Vienna, Austria, he and Dirk Hohndel have been sitting down for an informal chat on a wide range of topics as a keynote session. That way, Torvalds does not need to prepare, but also does not know what topics will be brought up, which makes it “so much more fun for one of us”, Hohndel said with a grin. The topics this time ranged from the just-released 6.11 kernel and the upcoming Linux 6.12, through Rust for the kernel, to the recurring topic of succession and the graying of Linux maintainers.
“Linus 和 Dirk show” 在开源峰会上一直是一个固定项目,自从这个会议存在以来就一直如此;它始于会议还被称为 LinuxCon 的时候。正如 Linus Torvalds 在今年奥地利维也纳的欧洲开源峰会(OSSEU)上所述,由于他出了名地不喜欢发表演讲,他和 Dirk Hohndel 一直以基调会话的形式,就一系列话题进行非正式的聊天。这样,Torvalds 就不需要准备,但也不知道会提到哪些话题,这使得"对我们其中一人来说更有趣",Hohndel 带着笑意说。这次的话题范围从刚发布的 6.11 内核和即将到来的 Linux 6.12,到内核的 Rust 语言,再到关于继任和 Linux 维护者日渐老龄化的反复话题。

Dirk Hohndel 是 Verizon 的开源项目官。在此之前,Dirk 是 VMware 的首席开源官,领导公司的开源项目办公室,指导开源项目的使用和贡献工作和战略,并推动整个公司共同的价值观和流程,以促进 VMware 与开源社区的互动。在加入 VMware 之前,Dirk 曾担任英特尔首席 Linux 和开源技术专家近 15 年。在此之前,除其他职务外,他还担任过 SuSE 的首席技术官和德意志银行的 Unix 架构师。
附:OSSEU 官方 Featured Speakers 中有介绍这里是引用

After Torvalds suggested that they had been doing these talks for 20 years, though Hohndel pointed out that the tradition began in 2012, the conversation turned to the weather—a common topic after the surprisingly horrible weather in much of Europe due to Storm Boris. In a massive understatement, Hohndel said that it had been a “wee bit windy” the day before, which he and Torvalds had hoped to use as a sightseeing day, but the day before the conference started (September 15) was not a day to stray far from your hotel. It did give Torvalds plenty of time to do the 6.11 kernel release, which they discussed next.
在 Torvalds 提议他们已经做了这样的谈话20年之后,尽管 Hohndel 指出这一传统始于 2012 年,谈话转向了天气——在风暴 Boris 导致欧洲大部分地区出现意外恶劣天气后,天气成为一个常见的话题。Hohndel 大大低估地表示,在会议开始的前一天(9月15日),前一天有点 “风大”,他和 Torvalds 希望利用这一天进行观光,但那并不是一个远离酒店的好日子。这确实给了 Torvalds 充足的时间来发布 6.11 内核,接下来他们讨论了这个话题。

在这里插入图片描述

6.11 and 6.12

Hohndel asked what was interesting in 6.11, but Torvalds replied that, like most every other kernel release over the last 15 years so, it was not particularly exciting, which is exactly how it is supposed to be. The release signals the opening of the two-week merge window, of course, which Torvalds chose to start while he was on the road for OSSEU (as well as the Maintainers Summit and Linux Plumbers Conference). The merge window is where “we’re getting all the new code for the next release and that’s the fun part” for him. Hohndel noted that Torvalds had been pulling patches on his laptop backstage while they were waiting for the session, “so it is just-in-time delivery of the Linux kernel”.
Hohndel 询问了 6.11 中有什么有趣的地方,但 Torvalds 回答说,像最近 15 年的大多数其他内核发布一样,它并没有特别激动人心,这正是它应该的样子。发布标志着为期两周的合并窗口的开启,当然,Torvalds 选择在他为 OSSEU(以及维护者峰会和 Linux 管道会议)出差期间开始。合并窗口是“我们获得下一个版本的所有新代码的地方,这是有趣的部分”对他来说。Hohndel 注意到 Torvalds 在他们等待会议时在后台的笔记本电脑上拉取补丁,“所以这就是 Linux 内核的及时交付”。

Hohndel said that the bulk of what is being pulled these days seems to be drivers of various sorts, which Torvalds agreed is the case. More than half of the kernel is drivers, which has generally been true over the years, because that is “literally the point of a kernel” since it is meant to “abstract out all the hardware details”. So, much of the code flowing in is meant to enable new hardware or to fix the hardware support already in the kernel.
Hohndel 说,这些天被拉取的大部分内容似乎是各种驱动程序,Torvalds 同意这个观点。内核中一半以上是驱动程序,这在过去的几年中总是如此,因为这“实际上是内核的意义”,旨在“抽象出所有的硬件细节”。所以,流入的大部分代码旨在启用新硬件或修复内核中已有的硬件支持。

For Torvalds, the surprise is that, after working on Linux for a third of a century now, there are still plenty of changes to the core kernel that are being made. Half of what he merged that day were low-level changes to the virtual filesystem (VFS) layer and there have been lots of discussions lately in the area of memory management. Those core changes are ultimately being driven by expansion in the hardware base, but also by new users, with new ways to use the kernel.
对 Torvalds 来说,令人惊讶的是,在从事 Linux 工作三分之一世纪后,核心内核仍在进行许多改变。他那天合并的内容中有一半是虚拟文件系统(VFS)层的低级更改,而最近在内存管理领域也有很多讨论。这些核心更改最终是由硬件基础的扩展驱动的,但也由新用户驱动的,他们有使用内核的新方法。

The extensible scheduler class (sched_ext), which allows scheduling decisions to be made by BPF programs, will be coming in 6.12, he said, in answer to a question from Hohndel. Torvalds had not yet merged it, but it was in his queue (and was merged later in the week). Some of the core kernel maintainers are at the conferences this week, so he got a lot of early pull requests the previous week, because they did not want to deal with them during their travel. “I’m stuck with that part”, he said to laughter.
他在回答 Hohndel 的问题时说,可扩展调度类(sched_ext),它允许通过 BPF 程序进行调度决策,将在 6.12 中出现。Torvalds 还没有合并它,但它在他的队列中(并且在那周晚些时候合并)。一些核心内核维护者本周在会议上,所以他上周早些时候收到了很多早期的拉取请求,因为他们不想在旅行期间处理这些请求。“我被这部分卡住了”,他说,引起笑声。

The conclusion of the 20-year project to get the realtime patches upstream was another thing that would be part of the next kernel, Torvalds confirmed. (In fact, he pulled the enablement patches on September 20, the day after receiving them in a rather different form.) People think that kernel development is rapid because of the pace of releases, but any given feature “may have been developed over months or years or, in some cases, decades”. That development happens in the open on the mailing lists, but people typically do not see the background work that goes into a new feature that seems to just appear in the kernel. But, he agreed, the realtime patches are an outlier in terms of development time, in part because they “touched every single area in the kernel”, so there is a lot of convincing and coordination that needed to be done; he knows of no other similar project out there.
Torvalds 确认,将实时补丁上游合并的 20 年项目的结论将是下一个内核的一部分。(实际上,他在 9 月 20 日收到这些以相当不同的形式提交的补丁的第二天拉取了启用补丁。)人们认为内核开发进展迅速,是因为发布的节奏,但任何给定的功能“可能已经开发了数月或数年,或者在某些情况下,数十年”。这种开发在邮件列表上公开进行,但人们通常看不到新功能背后的工作,这些新功能似乎只是突然出现在内核中。但他同意,实时补丁在开发时间上是一个异常,部分原因是它们“触及了内核中的每一个单独区域”,所以需要做很多说服和协调工作;他不知道还有其他类似的项目。

Rust

Hohndel said that one of the topics that has been generating a lot of discussion in the community recently is “obviously Rust”. He noted that one of the Rust-for-Linux maintainers stepped down citing “‘non-technical nonsense’ as the reason”; beyond that, there have been problems getting the Apple graphics driver written in Rust merged. He asked: “why is this so hard?”
Hohndel 提到,最近社区中产生了大量讨论的一个话题显然是“Rust”。他指出,其中一个 Rust-for-Linux 维护者因为“非技术性的胡说八道(non-technical nonsense)”为理由而辞职;除此之外,合并用 Rust 编写的苹果图形驱动程序也遇到了问题。他问:“为什么这么难?”

“I actually enjoy it, I enjoy arguments”, Torvalds said; one of the nice things about the Rust effort is that it “has livened up some of the discussions”. Some of those arguments “get nasty” and people do “decide that this is not worth my time”, but it is interesting and “kind of shows how much people care”. He is not sure why Rust, in particular, has been so contentious, however.
Torvalds 回答说:“我其实很喜欢它,我喜欢争论”,Rust 的努力之一就是“激活了一些讨论”。一些争论“变得令人不快”,人们确实会“决定这不值得我花时间”,但它很有趣且“某种程度上显示了人们有多在乎”。然而,他不确定为什么特别是 Rust 如此有争议。

The whole “Rust versus C discussion is taking almost religious overtones” that remind him of the vi versus Emacs fights from when he was young, which, Hohndel reminded, still go on. “C is, in the end, a very simple language”, Torvalds said, which is why he and lots of other programmers enjoy it. The other side of that, though, is that it is also easy to make mistakes in C. Rust is quite different and there are those who do not like that difference; “that’s OK”.
他说,“Rust 与 C 的讨论几乎具有宗教色彩”,让他想起了年轻时的 vi 与 Emacs 的争论,Hohndel 提醒说,争论仍在继续。“C 语言终归是一种非常简单的语言”,这就是他和许多其他程序员喜欢它的原因。然而,C 语言的另一方面是很容易犯错误。Rust 与 C 相当不同,有些人不喜欢这种差异;“这也没关系”。

There is no one who understands the entire kernel, he said; he relies heavily on the maintainers of various subsystems, since there are only a few areas that he gets personally involved in. There are C people who do not know Rust and the reverse is true as well, which is also fine. One of the nice things about the kernel is that people can specialize: some people care about drivers, others about specific architectures, or still others who like filesystems. “And that’s how it should be.”
他说,没有人能完全理解整个内核;他非常依赖各个子系统的维护者,因为只有少数几个领域他会亲自参与。有些懂 C 但不懂 Rust 的人,反之亦然,这也没关系。内核的一大优点是人们可以专精:有些人关心驱动程序,其他人关心特定的架构,还有些人喜欢文件系统。“这就是应有的方式。”

There are, obviously, some people who do not like “the notion of Rust and having Rust encroach on their area”. He finds it all interesting, however. People have “even talked about the Rust integration being a failure”, which is way too early to determine. Even if that happens, “and I don’t think it will, that’s how you learn”. He sees the Rust effort as a “positive, even if the arguments are not necessarily always”.
很显然,有些人不喜欢“Rust 的概念以及 Rust 侵入他们的领域”。然而,他觉得这一切都很有趣。人们甚至“谈论过 Rust 集成是一次失败”,但要断定这一点还为时过早。即使发生了,“我不认为会,这就是你学习的方式”,他看到 Rust 的努力是“积极的,即使争论并不总是如此”。

Torvalds noted that kernel C is “not normal C”; there are a lot of rules on how the code can be written and there are tools to help detect when things go awry. There is memory-safety infrastructure within the kernel project that is not part of the C language, but it has been built up incrementally over the years, which allowed it to avoid any major outcry. The “Rust change is, obviously, a much bigger and a much more in-your-face” thing.
Torvalds 指出,内核中的 C 语言“并不是普通的 C 语言”;内核代码的编写有很多规则,并有工具帮助检测事情何时出错。内核项目内有内存安全基础设施,这不是 C 语言的一部分,但它在多年来逐渐构建起来,这让它免于任何重大的抱怨。显然,“Rust 的变化显然是一个更大、更显著”的事情。

Hohndel agreed that it was too early to say that Rust in the kernel was a failure, but that he had been hearing about efforts to build a Rust kernel from the bottom up as an alternative. He wondered if that was a potential outcome if there continues to be a struggle to get Rust into Linux; “an alternative universe” could perhaps arise from Redox, Maestro, or some other Rust kernel. In terms of languages for building a kernel, Torvalds said, there is not a lot of choice; unless you are going to write in assembly, you have to choose one of the C-like languages—or Rust. Linux is not everywhere, these days, in part because it has gotten “very big” over the last three decades; some developers are looking for something smaller, safer, and “not quite as fully-fledged”, which is an area where Rust kernels could perhaps make an impact.
Hohndel 同意说,现在断定内核中的 Rust 失败还为时过早,但他已经听说有人努力建立一个从底层开始的 Rust 内核作为替代品。他想知道,如果继续难以将 Rust 加入 Linux,是否会出现这样的结果;“另一个宇宙”可能会从 Redox、Maestro 或其他 Rust 内核中产生。在构建内核的语言方面,Torvalds 说,选择不多;除非你要用汇编语言编写,否则你必须选择一种 C 类语言——或 Rust。如今 Linux 并不无所不在,部分原因是在过去三十年里它已经变得“非常大”;一些开发者正在寻找更小、更安全、“不那么全功能” 的东西,这是 Rust 内核可以产生影响的地方。

Hohndel disagreed somewhat with that, though he did agree that there are “deeply embedded” use cases where Linux is not used; but for general-purpose systems, “it is everywhere”. He noted that most 5G modem chips have a complete Linux distribution running inside; “in your iPhone is a chip that runs, as its firmware, Linux”. Torvalds reminded attendees of the old “joke” about “world domination”, but “that joke became reality and isn’t funny any more”, he said to laughter.
Hohndel 在某种程度上不同意这一观点,尽管他确实同意有一些“深度嵌入式”的用例中不使用 Linux;但对于通用系统,“它无处不在”。他指出,大多数 5G 调制解调器芯片内部都运行着一个完整的 Linux 分发;“在你的 iPhone 内部的一颗芯片,作为其固件,运行着 Linux。” Torvalds 提醒与会者旧的“世界统治”玩笑,但“那个玩笑成为了现实,已经不再好笑了”,他笑着说。

Torvalds seemed optimistic that “some clueless young person will decide ‘how hard can it be?’” and start their own operating system in Rust or some other language. If they keep at it “for many, many decades”, they may get somewhere; “I am looking forward to seeing that”. Hohndel clarified that by “clueless”, Torvalds was referring to his younger self; “Oh, absolutely, yeah, you have to be all kinds of stupid to say ‘I can do this’”, he said to more laughter. He could not have done it without the “literally tens of thousands of other people”; the “only reason I ever started was that I didn’t know how hard it would be, but that’s what makes it fun”.
Torvalds 似乎对“一些天真的年轻人会决定‘这有多难?’”并开始使用 Rust 或其他语言开发自己的操作系统持乐观态度。如果他们坚持“几十年”,他们可能会有所成就;“我期待着看到这个”。Hohndel 澄清说,Torvalds 所说的“无知”,是指他年轻时的自己;“哦,当然,你得有各种傻才会说‘我能做到这个’”,他更多笑声中说。没有“成千上万的其他人”,他是不可能做到的;“我开始的唯一原因是因为我不知道这会有多难,但那正是使它变得有趣的地方”。

Gray hair and burnout

The kernel Maintainers Summit was being held the next day, Hohndel said, and he expected the topic of burnout to come up. Maintainers are “an aging group”, many with less or not “the right color of hair”—though Torvalds interjected: “gray is the right color”. Meanwhile, kernel development is showing no signs of slowing down, Hohndel said; in fact, it is “accelerating in many ways, Rust being one of them”. He wonders, as maintainers get older and burnout becomes more widespread, if there is a need to talk about “mini-Linus” who would be a successor.
Hohndel 说,内核维护者峰会将在第二天举行,他预计会提到燃尽(burnout)的话题。维护者是“一个老龄化的团队”,许多人已经没有了或者没有“正确的头发颜色”,尽管 Torvalds 插话说:“灰色是正确的颜色”。与此同时,Hohndel 说,内核开发显示出没有放慢的迹象;实际上,“在许多方面都在加速,Rust 就是其中之一”。他想知道,随着维护者年纪越来越大,燃尽现象越来越普遍,是否有必要谈论“迷你 Linus”,即接班人。

“We have been talking about that forever”, Torvalds replied, “some people are probably still disappointed that I’m still here”. While it is definitely true that kernel maintainers are aging, the positive spin on that is that he does not know of many projects where maintainers—and not just him—have stuck around for more than three decades. The idea that people “burn out and go away” is true, but that is the norm for most projects; the fact that some stick around on the kernel project for decades is unusual, “and I think that’s, to some degree, a good sign”.
Torvalds 回答道:“我们已经讨论这个问题很久了”,“有些人可能还会失望于我还在这里”。虽然内核维护者确实在变老是事实,但从积极的一面来看,他不知道有多少项目的维护者——不仅仅是他——已经坚持了三十多年。认为“人们会燃尽然后离开”是事实,但这是大多数项目的常态;一些人坚持在内核项目上工作数十年是不寻常的,“而且我认为这在某种程度上是一个好迹象”。

On the other hand, new developers may look at the project and not really see a place for themselves when they see people who have been with the project for a long time, he said. The kernel project is unlike other open-source projects, since the number of developers just seems to grow; there is a “fairly healthy developer subsystem” in the kernel. “The whole ‘monkey dance’ about ‘developers, developers, developers’—we’ve got them”; he does not see the presence of some graying developers as a “huge problem”.
另一方面,他说,新开发者可能会看到项目,并且在看到一些长期与项目共事的人后,他们可能真的看不到自己的位置。内核项目不像其他开源项目,因为开发者数量似乎只会增长;内核中有一个“相当健康的开发者子系统”。“关于‘开发者,开发者,开发者’的整个‘猴子舞蹈’——我们拥有他们”;他不认为一些发灰的开发者存在是一个“巨大的问题”。

Hohndel said that he was not claiming that the older maintainers were a problem, per se, just that it indicates things will have to change down the road. Torvalds has been doing Linux for 33 years, but Hohndel suggested that in another 33, he would not be—“possibly” was the reply. The current backup is Greg Kroah-Hartman, “who has even less hair than the two of us” and is around the same age as they are, Hohndel said. “How do we get the next generation to gain the experience” needed so that they can take over Torvalds’s role in “10, 15, 20, 30 years”, he wondered.
Hohndel 说,他并不是要说年长的维护者本身是个问题,只是这表明将来的情况必须改变。Torvalds 已经做了 33 年的 Linux,但 Hohndel 提议再过 33 年,他将不会做了——回答是“可能”。目前的替补是 Greg Kroah-Hartman,“他的头发比我们两个人都要少”,而且年龄也差不多,Hohndel 说。“我们如何让下一代获取所需的经验”,以便他们能在“10、15、20、30 年后”接替 Torvalds 的角色,这让他感到好奇。

Since the kernel project has so many developers, it has always had a lot of competent people that could step up if needed, Torvalds said. Hohndel had mentioned Kroah-Hartman, but he has not always been the backup, Torvalds said. “Before Greg, there were Andrews [Morton] and Alans [Cox], and after Greg there will be Shannons and Steves, who knows?” It comes down to a matter of trust, he said; there will need to be a person or group of people that the community can trust.
Torvalds 说,由于内核项目有如此多的开发者,如果有需要,它一直都有许多有能力的人可以接替。Hohndel 提到了 Kroah-Hartman,但他并不总是备选人,Torvalds 说。“在 Greg 之前,有 Andrews [Morton] 和 Alans [Cox],在 Greg 之后将会有 Shannons 和 Steves(这里应该是 steven Rostedt),谁知道呢?”这归根到底是信任的问题,他说;将需要有一个或一群社区可以信赖的人。

Greg Kroah-Hartman 是 Linux 内核 的主要开发人员。截至 2013 年 4 月,他是 Linux 内核稳定分支、([ 2 ]) staging 子系统、USB、驱动程序核心、debugfs、kref、kobject 和 sysfs 内核子系统、 用户空间 I/O (与 Hans J. Koch 合作) 和 TTY 层的维护者。
Andrews Morton,1959 年出生,在内核社区中因执行各种不同的任务而闻名:维护可能正在进入主线的补丁的 -mm 树、审查大量补丁、提供有关与社区合作的演示,以及一般来说,处理许多重要且可见的内核开发杂务。
Alan Cox 1968 年出生,Linux 开发的关键人物。他维护了 Linux 内核的 2.2 分支,并继续深度参与其开发,这种关系可以追溯到 1991 年。Alan Cox 曾被普遍认为是 Linus Torvalds之后的 “second in command” ,后来他减少了对 Linux 的参与,转而攻读 MBA。
Steven Rostedt PREEMPT_RT 补丁的原始开发人员之一,Ftrace 主要作者和维护者

Part of being trusted is having been around for “long enough that people know how you work”, but that does not have be 30 years. There are top-level maintainers for major subsystems who got there in just a few years, he said. In truth, being a maintainer is “not as glorious as it is sometimes conceived”; there are maintainers “who would be more than happy to get new people in to come and help”.
被信任的一部分是已经在那里“足够长的时间,让人们知道你是如何工作的”,但这不必须是 30 年。他说,有些主要子系统的顶级维护者在短短几年内就达到了那个地位。事实上,作为一个维护者“并不像有时想象的那么光彩”;有一些维护者“会非常乐意让新人进来帮忙”。

Starting out

When they got their start in open source, that world was a smaller and simpler place, Hohndel said; these days, everything is “hype versus reality”, and he was “not just talking about AI”, with projects focused on making “the quick buck, about the quick exit, versus things that are making a difference”. If Torvalds were starting today, did he think it “would be easy to find interesting, rewarding, long-term useful projects”?
Hohndel 表示,当他们开始涉足开源世界时,这个领域是一个更小、更简单的地方;如今,一切都是“炒作与现实之间的对比”,他“并不仅仅是在谈论 AI”,而是关注那些致力于“快速赚钱、迅速退出、与那些做出差异的事情”项目。如果 Torvalds 今天才开始,他认为“找到有趣的、有回报的、长期有用的项目会容易吗?”

Torvalds replied: “I don’t think that has ever been easy”. But setting up an open-source project is much easier these days; “do a few web clicks and you have a GitHub repository where you can start doing open source”. In addition, you do not have to “explain why you are doing open source, because people take that for granted now”. That means there are a lot of small projects out there “that you would never have seen 30 years ago”.
Torvalds 回答说:“我不认为这曾经容易过”。但是这些天建立一个开源项目要容易得多;“做几次网页点击,你就有一个 GitHub 仓库,可以开始做开源项目”。此外,你不需要“解释你为什么做开源,因为现在人们认为这是理所当然的”。这意味着外面有很多小项目“你在 30 年前从未见过”。

That said, “it was never easy to find something meaningful that you could spend decades doing”, which is still true today. You have to come up with an idea that you are interested in, Torvalds said, “but at the same time, you are not the only one interested in it”. People often say “do what you love”, but if that is “something that nobody else cares about, you are not going to create the next big, successful open-source project”.
他说,“找到可以投入几十年的有意义的事情从来都不容易”,今天也是如此。你必须想出一个你感兴趣的想法,Torvalds 说,“但与此同时,你不是唯一对它感兴趣的人”。人们经常说“做你热爱的事”,但如果那是“没有其他人在乎的事情,你就不会创造下一个大的成功的开源项目”。

Finding something meaningful is particularly hard in the tech industry, where there is so much hype. “Everybody is following everybody else like lemmings off a cliff trying to chase the next big thing.” Torvalds does not think that is a successful strategy; instead, “find something that isn’t what everybody else does and excel at that”. Hohndel interjected that they were out of time; he had hoped to end with something inspirational along the lines of “Linus telling the community where to go and make a difference”, but, what he got was lemmings falling off a cliff, he said with a chuckle. That way, though, the session itself ended with laughter.
在技术行业内找到有意义的事情尤其困难,那里有太多的炒作。“每个人都像悬崖上的旅鼠一样追随别人试图追逐下一个大事件。”Torvalds 认为这不是一个成功的策略;相反,“找到一些与众不同的事情,并在那上面做到最好”。Hohndel 插话说他们的时间已经用完了;他希望以某种鼓舞人心的方式结束,比如“Linus 告诉社区去哪里、如何做出不同”,但他得到的是旅鼠掉下悬崖,他笑着说。就这样,会议本身以笑声结束。

[ I would like to thank LWN’s travel sponsor, the Linux Foundation, for travel assistance to Vienna for Open Source Summit Europe. ]
[ 我想感谢 LWN 的旅行赞助商,Linux 基金会,为前往维也纳参加欧洲开源峰会提供的旅行协助。 ]

关注微信公众号 Linux_kernel_kevin 获取最新更新

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值