↑点击蓝字 关注我们
欢迎阅读 OSCHINA 编辑部出品的开源日报——您探索和理解开源世界的日常指南。在这里,我们每天从宏观到微观,全面展现开源技术和文化的动态图景。
每日一更,风雨无阻。
OpenSource Daily # 2024.11.4
省流概览
今日要闻
Java 反编译器 Fernflower 作者 Stiver 逝世
JetBrains 于日前发文纪念 Java 反编译器 Fernflower 的原作者 Stiver —— 因胶质母细胞瘤于 10 月 20 日逝世。
Stiver 是一名俄罗斯裔德国程序员,主要开发医疗设备软件。曾在 2006 年发布了一篇文章,介绍了如何在 Java 1.5 刚发布时使用 Unsafe 调整 Java 类层次结构。并在 2008 年左右开始对 Java 反编译着迷。彼时的 Java 反编译环境非常糟糕,第一代反编译器(如 JAD 或 JODE)已走向衰落。且随着 Java 作为一种语言发展,现有的反编译器基本无人维护。
OpenAI 泄露完整版 O1,具备图像推理能力
有海外网友在社交平台爆料,OpenAI 已经在 ChatGPT 官网上部署了完整版 o1,让免费用户也可以直接使用。目前 OpenAI 已经修复了这个漏洞,将完整版 O1 继续隐藏起来。但据爆料用户表示,完整版 O1 具备附件上传功能,并拥有之前 Altman 提过的图像推理能力。从这次泄露的效果来看,完整版 O1 模型已具备使用能力,或将会在不久之后正式推出。
被问爆 N 遍的微信 deepin 4.0 公测版,他来了!
微信 4.0 公测版本已上架 deepin 应用商店!本次微信 Linux 4.0 公测版全面重构,不仅在架构上实现了突破,更在功能上完成对 Windows 与 Mac 版本的全面对齐。这意味着,无论用户使用哪个平台,都能获得丰富且一致的应用体验。
仓颉编程语言官网正式上线,首个公测版本开放下载
仓颉编程语言官网已于 2024 年 10 月 30 日 10:08 正式公开上线,首个公测版本开放下载。
中文官网地址:https://cangjie-lang.cn/
英文官网地址:https://cangjie-lang.cn/en
根据介绍,本次仓颉编程语言官网上线了首页、在线体验、文档、学习、下载、动态以及三方库共六个模块。
今日观察
社交观察
llamafile 的主要开发者 Justine Tunney 分享了她为 llamafile 构建一个新的语法高亮器的有趣经历。
https://justine.lol/lex/
为了这个她一个月学习了 42 种编程语言:Ada、汇编、BASIC、C、C♯、C++、COBOL、CSS、D、FORTH、FORTRAN、Go、Haskell、HTML、Java、JavaScript、Julia、JSON、Kotlin、ld、LISP、Lua、m4、Make、Markdown、MATLAB、Pascal、Perl、PHP、Python、R、Ruby、Rust、Scala、Shell、SQL、Swift、Tcl、TeX、TXT、TypeScript 和 Zig。
由于编程语言的多样性,语法高亮器的开发并不简单,需要考虑到各种语言的特殊字符、注释方式和字符串表示啥的。作者分享了一些编程语言中的有趣语法,例如 C 语言中的三字符和通用字符、Haskell 中的嵌套注释、Tcl 中的带引号的标识符、JavaScript 中的正则表达式处理、Shell 中的 heredoc 语法、Kotlin 中的字符串插值、Swift 中的多重引号、C♯中的多行字符串表示等等等等。
- 微博 蚁工厂
从小黄鸭到 AI 助手:程序员的新时代调试秘诀
很多程序员的桌上可能都曾经摆着一只小黄鸭,看起来不过就是那种普普通通的橡皮玩具。在代码的迷宫中走得太深时,你向它解释每一行代码的来龙去脉。神奇的是,往往在表达的过程中,问题的答案就浮出水面了。这就是著名的 "小黄鸭调试法"。
现在到了 AI 时代,AI 就是程序员们升级版的 “小黄鸭”,不仅能耐心的听你解释代码,它还会思考,会提问,会给出建议。就像金庸小说里面的扫地老僧,当你正在苦恼一个棘手的并发问题时,它会适时地问:"你考虑过死锁的情况吗?" 当你在纠结代码结构时,它会建议:"这里如果用观察者模式,是不是会更优雅一些?"
- 微博 宝玉xp
Asahi Linux 是一个为苹果 M 系列芯片开发的 Linux 发行版
Asahi Linux 是一个为苹果 M 系列芯片开发的 linux 发行版。当然和一般的发行版不同的是因为苹果的封闭性需要发行版的开发者自己搞定 M 系列芯片驱动的开发,特别是图形驱动部分。
图为开发者 Alyssa Rosenzweig 在在 X.Org 开发者大会上介绍苹果 M1/M2 GPU 驱动程序的最新进展,现在已经能跑一些 3A 游戏了,比如《巫师 3》等。
- 微博 蚁工厂
AI search 不是赚钱的生意
今天大家都在讨论这个 searchGPT 的发布,其实基于大多数的理解,AI search 不是赚钱的生意,这个在 portal 层面的说法是没错,就是不如基于推荐算法和排序的搜索赚钱。但是多考虑一个层次,如果你做 api 的生意,就完全不一样了,目前由于存在的一些幻觉,很多强真实校准业务的场景,必须用 google 或者 bing api 来串起来一个 agent 或者 workflow 来工作,集成的效果取决于客户的产品力,很多就做不下去了。
而当 searchGPT 的 api 发不出来以后,整个游戏规则都会被改变,出来答案就是准的,至少是互联网搜索级别的准,再有大模型的语义和推理加持,那以前触达不到的生意这下都有可能可以做了。
- 微博 Transformer-周
“鸿蒙之父” 王成录回应为何离开华为:不让鸿蒙生态受到约束
王成录表示自己离开还是为了维护鸿蒙生态:“我在华为再留下来,咱们整个大鸿蒙生态的建设会受到很多约束。因为只有华为的设备,咱们行业里面有个经验,就是一个操作系统,要在某一个领域生态做成功,他系统的设备的数量必须占到总设备数量 20%。你没有设备量,我就开发应用,没人开发应用,消费者体验不到就不买你的设备,你就会负向循环了。”
- 凤凰网
国产数据库:从 “可用” 走向 “好用”
目前,国产数据库产品推陈出新,性能不断增强,但国外企业起步较早,占据了较大市场份额,国产数据库要从多方面持续发力。“国产数据库要做到性能更好、价格更低,用户才真正有动力去应用。”
- 科技日报
1.4 万亿美元的 Meta,被迫卷入 AI 竞争的无限游戏
而 Meta 股价在过去几个月里起起伏伏,也在一定程度上反映出投资者对大厂持续投入 AI 的纠结。一方面,AI 的快速发展让投资者愈发相信这项技术将带来移动互联网后最重要的变革,并创造庞大的商业价值;另一方面,对硅谷巨头每个季度数十亿、数百亿美元投入 AI,但短期内回报寥寥的现实也感到担忧。
- 极客公园
人形机器人千亿级市场 “觉醒”,五洲新春等 75 只概念股谁主沉浮?
新项目的主要产品为丝杠类产品,应用于汽车、机器人等领域,考虑到新能源汽车前景广阔,市场需求潜力巨大,同时,人形机器人产业处于 0-1 爆发阶段,产业空间同样巨大。公司此时积极布局产能,有望形成卡位优势,率先切入蓝海市场,打开成长空间。
- 览富财经
商汤执行董事徐冰最新访谈:商汤最近在做什么?数万亿的 AI 投资能回本吗?
徐冰认为,全人类对 AI 和算力的需求正在飞速跃升,包括 个性化 AI 助手、自动驾驶及机器人在内的三大领域,有望产生超级应用, 为行业带来巨大的机遇。AI 算力需求的增长已是定势,关键在于降低成本。基于「算力基建–大模型–应用」三位一体的战略,商汤正在建设中国最大的 AI 云服务之一。
- 量子位
中国云市场格局生变:运营商强势崛起,千亿俱乐部迎来新成员
在中国云计算市场上,运营商云是一个独特的存在。从全球范围来看,运营商的云业务存在感都很低。但是,中国的运营商云似乎很强势,尤其是近两年来,发展迅猛,冲击了整个市场格局。
- 数据猿
今日推荐
Leantime/leantime
https://github.com/Leantime/leantime
Leantime 是一款面向非项目经理的开源项目管理系统。战略、计划和执行结合在一起,让团队中的每个人都能轻松使用。在构建过程中,还考虑到了多动症、阅读障碍和自闭症等问题。
开源之声
Linus::我略微出手修改几行内核代码就提升了 2.6% 性能
观点 1:这个优化的意思就是 x64 平台不再调用 barrier_nospec 了。以前这个函数是为了避免分支预测 偷跑泄露内核空间数据的,这个优化提前把无效的地址(可能是合法的内核地址)给转换成无效用户空间的地址了,这样分支预测提前偷跑的路径也不可能读取到内核空间上去,没有内核数据泄露的风险了,所以那个比较慢的 barrier-nospec 函数就没必要了。
观点 2:我来班门弄斧解释下,这里原来性能瓶颈是 barrier_nospec 是个加强版内存屏障,会进一步禁止推测预执行,所以有很大的 performance penalty。新的办法纯粹是对指针操作,不会引发对错误用户空间数据的预取,因为非法地址 (大于最大用户空间地址) 会先 mask 成全 1,该地址当然是个非法的用户空间地址,后续 raw_copy_from_user 的时候触发 MMU 异常并由该函数捕获从而安全退出。另外测试用例是 will it scale,也就是在超多核场景下的测试,众所周知这个时候的内存屏障有很大的沟通成本,考虑 numa 的话更明显。而对于普通用户来说,这个修改的提升几乎是透明的。
观点 3:骚操作,如果指针找不到就全部掩码写 1,这可能会有 安全风险,如果用户空间的地址实际上是无效的或者不应该被访问的,强制它们为有效可能会导致未定义行为,包括访问非法内存区域,这可能会导致系统崩溃或者安全漏洞。还有可能导致数据损坏,如果指针指向的内存区域已经被释放或者不属于当前进程,那么复制操作可能会覆盖重要的数据,导致数据损坏。说不定还可能导致系统稳定性问题,由于内核空间可能会错误地访问用户空间的非法地址,这可能会导致内核崩溃或者系统变得不稳定。虽然他说提升了 2.6%,可是性能问题可能依然存在,虽然 barrier_nospec () 可能会降低性能,但是通过 pointer masking 强制用户指针全为 1 可能会引入更多的性能问题,因为内核需要处理更多的非法内存访问和潜在的异常。还有就是会让调试更特喵的困难,当出现由于非法内存访问导致的问题时,调试将变得更加困难,因为错误可能不会立即显现,而是在系统运行一段时间后由于累积的副作用而表现出来。所以,别神话了这孙子,也许埋了更大的雷....
观点 4:既然认为埋坑了,何不发个邮件,和 Linus 一辩?
观点 5:从 patch 的代码看 barrier_nospec 函数还在啊。只是单挑出来内存指针无效的情况,强制用户指针为全 F。增益应该也来自于避免这部分的额外处理。 而用户指针全 F 默认就是无效指针,不会造成额外性能开销。另外这个修改根本没动调试代码,只能说对调试没有帮助。
观点 6:很久前我也写内核,对现在这个事,不了解细节。但是呢,你不发邮件,是你的错;你发了,如果你是对的,就是他的问题;你发了,如果你是错的,被祖师爷怼也要立正,不丢人。方法论的事情,不妨再想想
观点 7:大神喜欢写 goto
观点 8:goto 在内核里随处可见,自从做了内核开发,也习惯用 goto,以至于被同事诟病
观点 9:祖师爷还得亲自写代码。如果不是某个 issue 提出了关联问题,那就是是每一笔提交和原始代码都认真看了,才能发现可以优化的点。
观点 10:真佩服 linus 的代码检查的功力,及仔细程度。千万行代码级的产品,对细节了如指掌。
观点 11:感觉下划线比驼峰命名更清晰明了
观点 12:驼峰其实很垃圾,还得切换大小写。堆在一起长了看着也眼花
观点 13:祖师爷得考虑接班人问题了
观点 14:太难了,一个复杂系统只有从头做起来的人才能知道里面的边边角角,接班人再聪明还是会经常把握不住设计的理念
程序员梗图
References
https://www.oschina.net/news/318980/in-memory-of-stiver
https://www.pingwest.com/w/299717
https://www.oschina.net/news/318801
https://www.oschina.net/news/318961
https://weibo.com/2194035935/OExVCxaHw
https://weibo.com/1871474290/OEemMjI3x
https://weibo.com/2194035935/OEwwRCbf2
https://weibo.com/1727858283/OEwAbE4Ve
https://www.c114.net.cn/terminal/55731.html
https://t.cj.sina.com.cn/articles/view/7517400647/1c0126e47059062x0y
http://3g.k.sohu.com/t/n834400905?serialId=2d3ad6290fe63e6011ccc93f298b991e
https://finance.sina.cn/2024-11-04/detail-incuwspx9963699.d.html
http://3g.k.sohu.com/t/n834605022?serialId=d0c27916a87c1529c1d91f1c8533939b
https://k.sina.com.cn/article_5787529871_158f6b28f01901dskk.html
https://github.com/Leantime/leantime
https://mp.weixin.qq.com/s/JxyMBHc4qPdozGK32TBTbQ
END
↓分享、在看与点赞~Orz