拼多多招聘 Linux 内核开发工程师/专家/架构师

194 天前
 diproxy

岗位职责:

有兴趣欢迎联系,wx:yafangshao 或者 email: laoar.shao@gmail.com

5568 次点击
所在节点    酷工作
70 条回复
diproxy
191 天前
@psklf 对对对,您说的对,您都对。
psklf
191 天前
@diproxy #41 今天不喷了,改阴阳了是吧?
diproxy
191 天前
@psklf
老哥,你看下我们俩的对话,都是些垃圾信息。
你再看看我跟其他人(除了你那几个同行)的对话,都是有效信息。
我们俩在这扯来扯去的,制造垃圾信息,没有意思。
你说什么就是什么,你都是对的,我只是期望不要再制造垃圾信息了。
kami2soul
191 天前
并不都是垃圾信息,起码让有些人知道了拼多多一部分的公司文化是什么样的
psklf
191 天前
@kami2soul #44 说得好
diproxy
191 天前
@kami2soul

一叶障目 不见泰山
sadj0aihnsdo
191 天前
现在 github 上面还有并夕夕利用 serializer 0DAY 的证据,Google Play 都把并夕夕下架,这种做恶的公司还是离远点好,不然有天进去了都不知所以然。https://github.com/davinci1010/pinduoduo_backdoor
diproxy
191 天前
@sadj0aihnsdo
我不清楚这件事情具体的背景,也不清楚事情的真实性。
我只能从我的做操作系统的角度来谈谈我对操作系统安全性的看法:
对于操作系统人而言,操作系统的安全性是至关重要的,在我待过的所有公司里都会把操作系统的安全性放在很重要的位置,我们会及时回合 cve ,一般通过热升级来解决安全问题,如果热升级无法解决,我们会重启服务器来解决,这部分成本不小。
为了操作系统的安全性,这些大厂都会投入很多研发成本,所以我们看到大厂的信息基本不会被人盗取,如果存在的话,那只能说明他们的研发能力太弱或者不重视研发。
然而,我们经常会看到手机用户的信息被盗取这类信息,是手机做不到安全性和隐私的保障吗?显然不是的,看看苹果手机,很少会有这种事情。但 andriod 手机为什么这么多问题,显然手机厂商不愿意投入研发成本来保护用户数据。
如果存在盗取用户信息的行为,这显然是不对的。厂商不愿意投入研发成本来保护用户 这也是不对的。
timewarp
191 天前
拼多多的内核这么新啊,北京有岗位吗
diproxy
190 天前
@timewarp
北京没有岗位,只在上海有。
新内核才能做出新东西,才有新挑战,不过也会有新问题,使用新内核压力也比较大,要踩别人没踩过的坑,这些坑也都是成长的机会。
以前的公司使用的内核都较老,比如 3.10 ,4.X ,分析清楚一个内核问题后发现都被别人在新内核里已经解决了,想要实现一个新特性发现都被别人在新内核里使用更好的框架给淘汰了,这是很没有成就感的。
一些私心:国内内核的开发水平跟国外差距很大,很重要的一个原因是国内使用的都是老旧的内核,做不出新东西。我期望能使用新技术跟上国外的脚步。超越很难,先跟上。
timewarp
190 天前
@diproxy 感同身受,我看了楼主邮箱名字后发现世界这么小,我就在你的老东家。现在内核要从 4.18 升级 5.10 了,虽然还是很老,国内都比较看中稳定性,说白了能用就行,新功能探索什么的基本没指望。其实我有个疑问,拼多多升级内核不怕机器崩溃影响业务吗,还是有什么高级一些的方法可以快速切流量。
diproxy
190 天前
@timewarp
上层业务的容灾性越好 升级内核的压力就会越小,拼多多的上层业务这块做的还是不错的。我们升级内核通常会先选一些优先级较低或者容灾性较强的业务,这能发现新内核里比较严重的 bug 。然后再逐步铺开新内核。
新内核没有那么脆弱,但还是有很多的问题,我们升级的过程中也是压力挺大,新内核里的新问题往往是出在新特性上,一些经验:
1. 新特性最好做到可配置,出问题时可以快速关闭,定位根因后再打开。
2. 使用 livepatch 来快速修复内核 bug ,我们这边对 livepatch 很依赖,很多 bugfix 或者一些特性部署都是通过 livepatch 做的。
3. 如何快速识别是否是新内核引入的问题,这个就只能靠个人经验了。

总之,拼多多还是非常鼓励使用新技术的,只要能给业务带来价值。至于前司,我不太好说什么,只能说过于保守了。
timewarp
190 天前
@diproxy
其实我有个疑问,单纯的推进新内核似乎并不能完全产生收益,甚至可能背锅,我感觉“拿收益”一直是底层团队比较困扰的事情,不好讲清楚价值所在。

类似阿里这种公有云,场景很复杂,可以产生明确的内核需求,但是一般私有云基本停留在能跑就行的程度,想诞生一个需求实在是太难了。业务同事不懂内核,他们自己也不知道需要什么特性,而从内核这边把新特性反向推向业务去拿收益也比较难。
diproxy
190 天前
@timewarp
从收益的角度会比较难,很多东西都是说不清道不明的,如果谈收益,老板还会跟你谈 ROI ,投入是否值得。
但从解决业务问题和满足业务需求的角度就容易了。以我们从 4.19 升级到 6.1 为例:
1. 我们遇到的一些内核问题在高版本已经修复了,但回合过来工作量很大。
2. 一些业务想要使用一些新特性,但 4.19 不支持,回合过来这些特性也费时费力,比如有业务想使用 iouring ,有些业务想使用 bpf networking 。
3. 新内核可以更好的追踪业务问题。使用 bpf 来更高效的找到业务问题的 rootcause ,bpf 在各个内核版本迭代都很快,升级到新版本更容易定位业务问题。
4. 新硬件,这个就看公司了,拼多多在新硬件的引进上是相对较快的 新硬件的新特性往往需要新内核支持。

这就要求在平时工作中把当前内核无法解决的问题给记录下来,每个问题都有对应的业务,这些业务在你想要升级内核的时候就会帮助你。
至于我们想要升级到 6.12 ,主要是:
1. 容器场景下 cfs 表现堪忧,试试 eevdf 或者 sched_ext ,我们在测试环境中验证了 eevdf 在某些场景确实优于 cfs 。
2. bpf 又做了很多迭代,比如 token ,可以满足业务在自己容器跑 bpf 而需要特权或者 cap 。
3. 我们在 6.1 上又积累了一些新问题。
4. 我们又引入了一些新硬件。

但我觉得最重要的一点是,公司高层对待新技术的开放性,没有这一点,其他上面我写了那么多文字都是扯淡。拼多多在这方面远好于贵司。高层的态度决定了公司的风格。
timewarp
190 天前
@diproxy

> 但我觉得最重要的一点是,公司高层对待新技术的开放性,没有这一点,其他上面我写了那么多文字都是扯淡。拼多多在这方面远好于贵司。高层的态度决定了公司的风格。

扎心了老铁。

第二点确实很关键,我司的业务都是能跑就行,指望他们对 iouring 这种提出需求那基本不可能了...
第三点,我司目前也是能用就行,bpf 这玩意儿有多少能力就用多少能力,不支持的功能就不用了...
第四点那在我司是彻底不可能了,引入高配 amd 机器还得因为 numa 性能问题改为单路了,解决不了性能问题就解决掉 numa...

至于 eevdf 这个词语在我司就是洪水猛兽了,当初调研升级系统时本来是把 openeuler22 和 openeuler24 都作为备选的,但是 openeuler24 用的是 6.6 内核,引入了 eevdf ,尽管这个内核有很多很棒的其他特性,但是仍然被否决了。

稳定性优先其实就是能不动就不动,不做就不会错。全公司自上而下其实没看到对技术有什么追求,可能自从当年章文嵩走了之后整个技术氛围就老化了。
anufether
189 天前
一个与主题无关的提问:
linux 内核开发需要哪些基本条件,普通程序员也可以去学习吗
diproxy
189 天前
@timewarp

> 第四点那在我司是彻底不可能了,引入高配 amd 机器还得因为 numa 性能问题改为单路了,解决不了性能问题就解决掉 numa...

AMD 跨 numa 问题确实比 intel 要突出,我们刚引入 AMD 罗马的时候也是遇到很多跨 NUMA 的性能问题,在这方面我们做了很多的工作,现在已经很少有跨 NUMA 导致的业务性能分层问题了。 我们现在的主力机型就是 AMD 了,包括罗马米兰热那亚,intel 我们会逐步淘汰掉。

你们不会是在 bios 关闭 numa 吧,如果是这样的话,那是在跟我们走完全相反的路,我们在计划开启 sub-numa 来创建更多的 numa 。AMD 机器的 CPU 核数普遍很多内存普遍都很大,罗马和米兰以 256 为主,热那亚以 384 为主,内存基本都是 512G 以上。CPU 多+内存大,这导致 Linux 内核的内存管理出现了很多瓶颈,比如 zone->lock, 如果你改为单一 numa 的话,这个锁冲突会更严重。zone->lock 的冲突问题我也在跟社区讨论: https://lore.kernel.org/linux-mm/CALOAHbBTTs=4o=DsNL5f+dvt3fEwABTFMF25japrGL_FEzWSPA@mail.gmail.com/ 。 我也在尝试优化掉这个 zone->lock, 只是现在我每天要处理的事情很多,很难在单一某个技术点上长时间持续投入下去,所以这一块进展很慢。如果你感兴趣的话,你也可以去优化这一块。

> 全公司自上而下其实没看到对技术有什么追求,可能自从当年章文嵩走了之后整个技术氛围就老化了。

一朝被蛇咬,十年怕井绳。
欢迎加入我司,一起推动国内 Linux 内核技术的进步。
diproxy
189 天前
@anufether

linux 内核开发并不是什么高大上的东西,也没有什么高深莫测的,只要你感兴趣,结合书籍看源码,然后积极参与社区讨论,你会很快就精通的。

书籍:深入理解 LINUX 内核 ,Linux 设备驱动程序,UNIX 环境高级编程,UNIX 网络编程,深入理解计算机系统等经典书籍。
源码: https://github.com/torvalds/linux
社区讨论: https://lore.kernel.org/all/ (最好订阅你感兴趣的子系统的邮件列表)
anufether
189 天前
@diproxy 谢谢回复!
kingcanfish
189 天前
一个与主题无关的提问:
内核团队也需要向业务团队那样 11116 吗,按我的理解内核开发并不是光靠堆工作时长就能堆出产出的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1116832

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX