2024 09 19 HackerNews

2024-09-19 Hacker News Top Stories #

  1. 台积电亚利桑那州工厂开始生产苹果A16处理器,标志着美国芯片制造复兴。
  2. 网络内容受谷歌SEO和生成式AI影响,导致可读性降低,影响自然语言处理研究。
  3. 23andMe独立董事辞职,反映出公司治理问题,CEO管理能力和公司竞争力受质疑。
  4. macOS Sequoia 15的DNS加密问题主要与Little Snitch相关,已发布更新修复。
  5. Scramble是一个开源的Chrome扩展,作为Grammarly的替代品,旨在提供写作增强工具。
  6. Swift 6发布,带来诸多改进和新特性,扩展了对Linux和Windows的支持。
  7. GraalVM Python是一个高性能、可嵌入的Python 3运行时,专为Java环境设计。
  8. 视频探讨了个人在团队中如何发挥高效能作用,强调了“高效能个人贡献者”的重要性。
  9. CUNY急于实现集中管理信息系统,忽视了Oracle软件的局限性,导致业务流程需适应软件。
  10. 文章面向高层程序员介绍了x86-64汇编语言的基本概念、特点、指令构成等,并展示了如何编写简单程序。

Apple mobile processors are now made in America by TSMC #

https://timculpan.substack.com/p/apple-mobile-processors-are-now-made

这篇文章由 Tim Culpan 撰写,标题为《苹果移动处理器现在在美国制造》。文章的主要内容如下:

  1. 生产进展:台积电(TSMC)在亚利桑那州的第一座工厂(Fab 21)已经开始生产苹果的 A16 移动处理器。这款处理器首次在 iPhone 14 Pro 中亮相,采用的是台积电的 5nm 工艺。
  2. 生产规模:目前,A16 处理器的生产数量虽然不多,但预计在工厂的第一阶段完成后,生产量将大幅增加,目标是在 2025 年上半年达到生产目标。
  3. 技术细节:A16 芯片使用的是 N4P 工艺,这是一种增强版的 5nm 工艺,虽然有时被称为 4nm,但它属于更广泛的 5nm 工艺系列。
  4. 项目重要性:亚利桑那州的项目是美国政府 39 亿美元“美国芯片法案”下的重点项目。苹果选择在美国生产其最先进的芯片,显示出其与台积电的合作意图。
  5. 产量与质量:目前,亚利桑那州的生产良率略低于台湾,但预计在未来几个月内将达到与台湾相当的水平。
  6. 未来产品:虽然文章没有明确指出 A16 芯片将用于哪些设备,但有可能会用于即将推出的 iPad 或下一代 iPhone SE。

总的来说,苹果在美国生产 A16 处理器是一个重要的里程碑,标志着美国在高端芯片制造领域的进步。


HN 热度 1432 points | 评论 707 comments | 作者:colinprince | 21 hours ago #

https://news.ycombinator.com/item?id=41574844

  • 美国的工业政策取得了成功,推动了高端生产,标志着美国制造业的复兴。
  • 有观点认为,美国制造业在过去一个世纪持续增长,但其 GDP 占比下降,主要是因为其他行业发展更快。
  • 政府的干预可能导致企业福利现象,虽然在国家安全方面是个胜利,但对经济产出和生活质量的影响可能有限。
  • 竞争市场的缺失使得美国在某些领域的竞争力下降,可能导致长期的经济问题。
  • 关税被视为对抗外国补贴的有效工具,但也可能导致价格上涨,影响消费者。
  • 有人认为,关税和保护主义政策是重建工业的必要手段,尽管短期内可能对消费者造成负担。
  • 讨论中提到,政府的干预在某些行业(如航空航天、生物技术)中是必要的,但其效果是否对整体经济有利仍存在争议。
  • 经济学界对政府干预的看法不一,部分人认为过度干预可能导致市场扭曲,影响社会整体福利。

Why wordfreq will not be updated #

https://github.com/rspeer/wordfreq/blob/master/SUNSET.md

该文档主要讨论了“wordfreq”项目为何不再更新的原因。以下是详细摘要:

  1. 数据快照:wordfreq 的数据是截至 2021 年的语言快照,来源于多个在线渠道。由于多种原因,项目决定不再更新。
  2. 生成式 AI 的影响:生成式 AI(如 ChatGPT)对数据造成了污染,导致语言使用的可靠信息变得稀缺。生成式 AI 生成的文本虽然看似真实,但缺乏实际的交流意图,这影响了词频的准确性。
  3. 信息获取成本上升:wordfreq 曾依赖于 Twitter 和 Reddit 等平台获取对话语言的使用数据,但这些平台现在的公共数据访问受限,且 Reddit 开始收费,导致数据获取变得困难。
  4. 对领域的失望:作者对自然语言处理领域的现状感到失望,认为生成式 AI 主导了该领域,传统的自然语言处理技术被边缘化。作者不愿意参与可能被误解为支持生成式 AI 的项目。
  5. 未来的展望:作者希望 OpenAI 和 Google 能为他们的数据收集付出高昂的代价,并对他们造成的混乱感到懊悔。

总的来说,文档表达了对当前语言处理领域的担忧,强调了生成式 AI 对数据质量和可用性的负面影响,以及对未来数据获取和使用的悲观态度。


HN 热度 1205 points | 评论 365 comments | 作者:tomthe | 11 hours ago #

https://news.ycombinator.com/item?id=41578483

  • 许多人认为,网络内容已经被谷歌的 SEO 规则污染,导致可读性降低,影响了自然语言处理的研究。
  • 生成式 AI 的内容被认为是对网络的进一步污染,造成了人类写作风格的模糊化。
  • 有观点指出,虽然 LLM(大语言模型)在生成内容时会重复使用某些词汇,但这并不意味着它们能有效反映人类的语言使用。
  • 一些评论者提到,生成内容的质量和来源不明,使得可靠的词频数据变得难以获得。
  • 还有人提到,AI 生成的内容在搜索引擎中的泛滥,使得用户更难找到有价值的信息。
  • 对于 SEO 和生成内容的结合,评论者认为这导致了内容的低质量化,影响了用户体验。
  • 有人认为,尽管存在这些问题,但仍有可能通过手动筛选和高质量网站的推荐来改善网络内容的质量。

Independent directors of 23andMe resign from board #

https://investors.23andme.com/news-releases/news-release-details/independent-directors-23andme-resign-board/

根据 23andMe 公司发布的新闻稿,几位独立董事于 2024 年 9 月 15 日辞去了董事会职务。这一决定是在公司战略调整和治理结构优化的背景下作出的。辞职的董事包括几位在生物制药和消费者健康领域具有丰富经验的专业人士。

公司表示,这一变动旨在增强董事会的有效性和多样性,以更好地支持公司的长期发展目标。23andMe 致力于通过基因组学推动消费者健康和生物制药的创新,董事会的重组将有助于公司在未来的挑战中保持竞争力。

此外,23andMe 还强调了其在基因组学领域的领导地位,并表示将继续致力于为客户提供高质量的基因检测服务和健康解决方案。


HN 热度 594 points | 评论 327 comments | 作者:LarsDu88 | 1 day ago #

https://news.ycombinator.com/item?id=41573034

  • 23andMe 的独立董事因 CEO 的低估收购提议辞职,反映出公司治理问题。
  • CEO 安妮·沃基茨基的管理能力受到质疑,认为她是公司发展的主要障碍。
  • 竞争对手 Ancestry.com 在家谱领域占据主导地位,而 23andMe 在此方面的努力显得不足。
  • 23andMe 的健康产品缺乏吸引力,用户在初次报告后往往不再订阅。
  • 用户对 DNA 亲属功能的兴趣不一,部分人认为其价值有限。
  • 许多人使用这些服务来探索家族历史,尤其是寻找失散亲属。
  • 采用基因检测服务的用户中,有不少人希望通过这些服务找到生物父母或确认亲属关系。
  • 23andMe 的商业模式面临挑战,许多用户对其数据隐私和使用方式表示担忧。
  • 该公司在药物开发方面的潜力被认为未能得到充分利用,市场对其未来持悲观态度。
  • 23andMe 的股价低迷,可能导致其被收购或破产的风险增加。

macOS Sequoia 15 may bypass DNS encryption [fixed] #

https://www.obdev.at/blog/warning-macos-sequoia-15-may-bypass-dns-encryption/

这篇文章讨论了在 macOS Sequoia 15 中,Little Snitch 6.1 版本的 DNS 加密功能可能会出现问题。具体来说,某些 DNS 请求可能会绕过 Little Snitch 的 DNS 代理,直接发送到系统的默认名称服务器,导致这些请求未加密,从而泄露用户的浏览记录。

主要内容摘要: #

  1. DNS 加密的背景

    • 当用户在浏览器中输入网址时,计算机需要将域名转换为 IP 地址,通常这个过程是未加密的,可能被互联网服务提供商或其他监控方看到。
    • Little Snitch 6 引入了 DNS 加密功能,通过注册 DNS 代理来加密所有名称查找请求。
  2. 问题的发现

    • 在调查 macOS 15 Sequoia 中的 DNS 相关问题时,发现某些通过低级遗留 API 发出的 DNS 请求未经过代理,直接发送到默认名称服务器。
    • 这表明 macOS Sequoia 中存在一个 bug,可能影响所有类型的 DNS 代理,而不仅仅是 Little Snitch。
  3. 影响范围

    • 使用 Little Snitch 6 的用户需要注意,某些 DNS 查找可能会绕过代理,直到 Apple 在未来的更新中修复此问题。
    • 通过较高级 API(如 Safari 或 Chrome)进行的 DNS 查找未受影响,但 Firefox 似乎受到影响。
  4. 后续更新

    • 文章更新指出,这个问题仅影响 Little Snitch 6.1,而不是 macOS 中的所有 DNS 代理。
    • Little Snitch 团队已经修复了这个问题,并在 6.1.1 版本中发布了更新。

结论: #

用户在使用 Little Snitch 6.1 时需谨慎,特别是在进行 DNS 加密时,建议关注后续的更新和修复信息。


HN 热度 521 points | 评论 193 comments | 作者:HelenePhisher | 1 day ago #

https://news.ycombinator.com/item?id=41571862

  • macOS Sequoia 15 的 DNS 加密问题主要与 Little Snitch 6.1 相关,而非 macOS 的普遍问题。
  • 有人认为 getaddrinfo()被视为“低级遗留 API”有些奇怪,因为它在 Linux 和 BSD 系统中仍然广泛使用。
  • Apple 推荐使用更高层次的 API 进行 DNS 解析,以便更好地处理连接和性能优化。
  • 有观点认为,Apple 的做法可能是为了避免用户直接干预 DNS 解析,从而提升用户体验。
  • 一些开发者对 Apple 的 API 设计表示不满,认为其限制了开发者的灵活性。
  • 讨论中提到,macOS 的网络 API 与传统的 POSIX 标准存在差异,可能导致兼容性问题。
  • 有人指出,Apple 可能在某些情况下故意不支持传统的 DNS 解析方法,以推动其自有的解决方案。
  • 许多评论者认为,Apple 的做法可能会影响开发者的选择,导致对其平台的依赖性增加。

Scramble: Open-Source Alternative to Grammarly #

https://github.com/zlwaterfield/scramble

该 GitHub 项目名为 Scramble,是一个开源的 Chrome 扩展,旨在为用户提供一个可定制且尊重隐私的写作增强工具,作为 Grammarly 的替代品。以下是该项目的详细摘要:

项目概述 #

  • 名称: Scramble
  • 类型: 开源 Chrome 扩展
  • 功能: 利用 AI 技术直接在浏览器中增强用户的写作能力。

安装步骤 #

  1. 克隆该仓库或下载源代码。
  2. 打开 Chrome 浏览器,访问 chrome://extensions/
  3. 在右上角启用“开发者模式”。
  4. 点击“加载已解压的扩展”,选择扩展目录。
  5. 目前该扩展正在等待 Chrome Web Store 的审核,审核通过后可直接从商店安装。

使用方法 #

  • 在任何网页上高亮文本。
  • 右键点击以打开上下文菜单。
  • 选择“Scramble”并选择文本增强选项。
  • 等待 AI 处理并增强文本。

默认功能 #

Scramble 提供多种预配置的文本增强选项,包括:

  • 修正拼写和语法错误
  • 改进写作风格
  • 使文本更专业
  • 简化文本
  • 摘要文本
  • 扩展文本
  • 转换为要点

API 密钥 #

  • 该扩展需要 OpenAI 的 API 密钥才能正常工作。用户需在扩展设置中提供自己的 API 密钥,可以访问 OpenAI 网站获取。

未来功能 #

计划中的功能包括:

  • 用户自定义提示
  • 支持更多语言模型(LLMs)
  • 增强上下文感知能力
  • 与其他 AI 服务的集成
  • 查看原始文本与改进文本之间的差异
  • 下划线标记语法/拼写问题
  • 本地 LLM,以减少对第三方的依赖

贡献 #

欢迎贡献,用户可以提交 Pull Request。

许可证 #

该项目使用 MIT 许可证。

技术栈 #

  • 主要使用 JavaScript 和 HTML。

Scramble 项目的目标是为用户提供一个更灵活和隐私友好的写作工具,鼓励用户参与开发和改进。


HN 热度 388 points | 评论 155 comments | 作者:zlwaterfield | 20 hours ago #

https://news.ycombinator.com/item?id=41575323

  • 有人对 Scramble 的隐私声明表示怀疑,认为其仍然会将输入发送给 OpenAI。
  • 有评论建议增加本地 AI 选项,以提高隐私保护。
  • 一些用户认为,现有的开源替代品如 LanguageTool 更符合隐私保护的要求。
  • 有人指出,Scramble 的核心功能依赖于 OpenAI 的 API,因此称其为完全开源并不准确。
  • 讨论中提到,许多用户认为 Grammarly 的功能超出了简单的拼写检查,尤其对非母语者有帮助。
  • 有人提到,使用本地模型的效果可能不如预期,尤其在编程任务中。
  • 许多评论者对 Scramble 的用户体验提出了改进建议,包括自动高亮错误和更好的集成。
  • 有人对 Scramble 的开发者表示支持,希望能看到更多本地化的功能。
  • 讨论中提到,使用 AI 工具时,用户需要考虑隐私和数据安全问题。
  • 有评论认为,Scramble 的功能与 Grammarly 相比仍有差距,尤其是在实时反馈方面。

Swift 6 #

https://www.swift.org/blog/announcing-swift-6/

Swift 6 的发布标志着这一编程语言的重大更新,扩展了其在多个平台和领域的应用。以下是该版本的一些主要特点和改进:

  1. 语言和标准库的改进

    • 引入了新的可选语言模式,增强了并发代码的数据竞争安全性,能够将潜在的数据竞争作为编译错误进行诊断。
    • 新增了同步库,提供低级并发 API,包括原子操作和互斥锁 API。
    • 支持函数在其签名中指定抛出的错误类型,增强了错误处理的精确性。
  2. 非可复制类型的支持

    • Swift 6 支持非可复制类型的泛型编程,使得可以在性能敏感的代码中避免不必要的复制。
  3. C++ 互操作性增强

    • 扩展了与 C++ 的双向互操作性,支持 C++ 的移动类型、虚拟方法和默认参数等。
  4. 嵌入式 Swift 的预览

    • 提供了适用于嵌入式软件开发的语言子集和编译模式,支持 ARM 和 RISC-V 的裸机目标。
  5. 新功能和生产力提升

    • 引入了新的调试宏,改善了在 LLDB 中的对象显示方式。
    • 统一了 Foundation 在所有平台上的实现,提供了一致性和可靠性。
  6. Swift Testing 库

    • 新增了 Swift Testing 库,专为 Swift 设计,提供易于使用的 API 和详细的测试输出。
  7. 平台支持的扩展

    • 增强了对 Linux 和 Windows 的支持,包括对更多 Linux 发行版和 Windows 架构的官方支持。
  8. 开发者工具和学习资源

    • 更新了 Swift 编程语言书籍,提供了最新的语法和功能指导。
    • 提供了多种教程,帮助开发者快速上手 Swift。

Swift 6 的发布是 Swift 社区共同努力的结果,标志着这一语言在过去十年中的发展和成熟。开发者可以通过 Swift.org 安装最新的工具链,并参与到 Swift 的未来发展中。


HN 热度 382 points | 评论 324 comments | 作者:todsacerdoti | 1 day ago #

https://news.ycombinator.com/item?id=41571606

  • Swift 在治理结构上存在内在冲突,导致其发展受限,面临技术债务问题。
  • Swift 的字符串处理复杂,Stack Overflow 上的解决方案版本特定且复杂,给新手带来困难。
  • Swift 的结果构建器(result builders)在性能和类型推断上存在问题,影响开发体验。
  • SwiftUI 的设计虽然美观,但在复杂 UI 处理上表现不佳,导致开发者对其未来感到悲观。
  • Swift 的编译速度慢,尤其在中型项目中,影响开发效率。
  • Swift 的开源进程正在进行,逐渐脱离苹果的控制,未来可能会有更多发展空间。
  • 开发者对 Swift 的期待与实际使用体验之间存在差距,尤其在与其他语言的比较中。

GraalPy – A high-performance embeddable Python 3 runtime for Java #

https://www.graalvm.org/python/

GraalVM Python(GraalPy)是一个高性能的可嵌入 Python 3 运行时,专为 Java 环境设计。以下是该项目的详细摘要:

主要特点 #

  1. 高性能:GraalPy 利用 Graal JIT 编译器,将 Python 代码编译为本地代码,提供接近本地速度的执行性能。
  2. 兼容性:支持最新的 Python AI 和数据科学库,确保与 Python 3 的兼容性。
  3. Java 集成:可以直接在 Java 应用中加载和使用 Python 包,增强 Java 应用的功能。
  4. 现代化:为 Jython 用户提供了迁移到现代 Python 的路径,支持更先进的语言特性。
  5. 简单的分发:可以将 Python 应用打包为单个二进制文件,使用 GraalVM 的 Native Image 功能。

开始使用 #

  1. 添加依赖:通过 Maven Central 添加 GraalPy 作为依赖。
    <dependency>
        <groupId>org.graalvm.polyglot</groupId>
        <artifactId>polyglot</artifactId>
        <version>24.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.graalvm.polyglot</groupId>
        <artifactId>python</artifactId>
        <version>24.1.0</version>
        <type>pom</type>
    </dependency>
    
  2. 嵌入 Python 代码:在 Java 中嵌入 Python 代码示例。
    import org.graalvm.polyglot.Context;
    try (Context context = Context.create()) {
        context.eval("python", "print('Hello from GraalPy!')");
    }
    
  3. 可选插件:可以添加 GraalPy 插件以支持额外的 Python 包。

数据科学库 #

GraalPy 使得在 Java 应用中使用 Python 数据科学库(如 NumPy、SciPy、Matplotlib)变得更加容易,并且提供了良好的性能。GraalVM 还支持沙箱选项,以便在受管理的 Java 应用中运行 Python 本地扩展。

适用平台 #

GraalVM Python 可在 Linux、macOS 和 Windows 平台上使用,适合需要高性能和多语言支持的开发者。

结论 #

GraalPy 为 Java 开发者提供了一个强大的工具,能够利用 Python 的优势,同时保持与 Java 的良好互操作性,适合需要高性能和现代化特性的应用场景。


HN 热度 314 points | 评论 128 comments | 作者:fniephaus | 1 day ago #

https://news.ycombinator.com/item?id=41570708

  • GraalPy 在性能上相较于 CPython 有显著提升,但具体表现依赖于工作负载和依赖项。
  • 使用标准化的基准测试可以更公平地比较不同语言实现的性能。
  • GraalPy 在大型项目中可能面临兼容性问题,尤其是与现有依赖项的集成。
  • 对于小型项目,GraalPy 的性能和功能可能更具吸引力。
  • Python 的生态系统和科学计算库的丰富性使其在数据科学领域占据重要地位。
  • Python 的设计哲学和灵活性使其在多种应用场景中得到广泛使用。
  • 尽管 Python 有一些性能瓶颈,但其易用性和社区支持使其仍然受到欢迎。
  • GraalPy 的未来发展可能会改善与其他语言的互操作性和性能问题。

Krazam: High Agency Individual Contributor [video] #

https://www.youtube.com/watch?v=dLTUqPue9sQ

视频标题为《High Agency Individual Contributor》,主要内容围绕个人在团队或组织中发挥高效能的能力。视频由 Lumos 合作制作,主要特邀嘉宾包括 Brian Park 和 Matthew Saucedo,摄影由 Alex Moudgil 负责。

视频强调了“高效能个人贡献者”的重要性,探讨了如何在工作中展现出色的个人能力和影响力。它可能涉及个人如何在团队中发挥作用、提升工作效率以及实现个人与团队目标的策略。

此外,视频还提供了独家删除场景的访问链接,鼓励观众深入了解内容。

如果你需要更具体的细节或主题分析,请告诉我!


HN 热度 261 points | 评论 53 comments | 作者:asimpletune | 1 day ago #

https://news.ycombinator.com/item?id=41571454

  • 许多评论者对 Krazam 视频的制作过程表示赞赏,认为其创作投入了大量心血和创意。
  • 有人提到视频中对“微服务”的幽默表现,认为其对技术行业的讽刺非常到位。
  • 评论中提到,视频反映了现代职场中普遍存在的手动流程与自动化之间的矛盾。
  • 一些评论者分享了自己在工作中遇到的类似困境,表示视频内容引起了共鸣。
  • 对于视频中的角色和情节,评论者们进行了深入分析,探讨了其背后的职场文化和管理问题。
  • 有人指出,视频中的幽默和讽刺揭示了企业在面对效率提升时的无奈和复杂性。
  • 评论中提到,视频的结尾让人感到真实且 relatable,反映了职场中的常见挑战。

CUNY paid Oracle $600M for its HR software (2013) #

http://pscbc.blogspot.com/2013/03/cuny-first-computer-system-to-aid.html

该博客文章讨论了 CUNYFirst 系统的实施及其对大学管理的影响。以下是详细摘要:

  1. CUNYFirst 的初衷:CUNYFirst 旨在建立一个统一的企业级系统,以整合所有大学的业务流程,理论上可以减少维护多个独立系统的开支,并为管理层、员工、教师和学生提供信息访问。
  2. CUNY Central 的动机:文章指出,CUNY Central 追求 CUNYFirst 的主要目的是为了对所有学院活动,包括课程设置,进行绝对控制。这种控制使得 CUNY Central 能够强制推行其教育政策(如 Pathways),并获取各学院的可支配资金。
  3. 项目谈判的失败:CUNYFirst 的采购过程存在严重问题,项目预算高达十亿美元,但 CUNY Central 提供的资金远低于此,导致大多数投标者退出。最终,Oracle-PeopleSoft 同意参与,但仅提供配置服务而非定制,意味着大学的业务流程必须适应 Oracle 系统。
  4. 系统实施的后果:CUNY 已在该系统上花费约 6 亿美元,但结果是效率下降,导致需要更多员工来完成以前自动化的任务。许多教职员工不得不加班而没有补偿,影响了大学的日常运作。
  5. 系统的实际表现:尽管 CUNYFirst 能够运行,但其表现不佳,界面过时,安全模型不适合 CUNY 的需求,导致数据访问权限管理混乱。
  6. 适应与调整:尽管面临挑战,布鲁克林学院及其他院校将努力适应这一系统,但预计将失去许多原有的附加系统和功能。
  7. 测试过程的问题:文章提到早期测试过程中,系统多次失败,Oracle 的工程师需要频繁调整,显示出系统实施的混乱。
  8. 总结:尽管 CUNYFirst 对教职员工造成了负面影响,但对于 CUNY Central 来说,该系统的实施是成功的,因为它实现了对大学活动的更大控制。

这篇文章由布鲁克林学院的计算机与信息科学教授 David Arnow 撰写,反映了对 CUNYFirst 系统的批评和对其实施后果的担忧。


HN 热度 252 points | 评论 186 comments | 作者:jer0me | 7 hours ago #

https://news.ycombinator.com/item?id=41581687

  • CUNY 急于实现集中管理信息系统,忽视了 Oracle 软件的局限性,导致业务流程需适应软件。
  • 有观点认为,适应现成工具的流程通常比定制开发更有效,尤其是在合规性方面。
  • 也有人反对这一观点,认为适应现成工具往往导致用户体验不佳,定制开发能更好满足独特需求。
  • 讨论中提到,商业软件的技术债务和局限性常常导致长期成本增加。
  • 有人指出,商业软件制造商与用户之间存在隔阂,导致用户需求未能得到有效满足。
  • 许多评论者认为,教育行业在技术投资上存在浪费,尤其是在大型项目中。
  • 对于 CUNY 支付的 600M 美元费用,有人质疑其真实性,认为可能是多年的总和。
  • 有评论提到,政府和教育机构在软件采购中常常面临不合理的预算和决策过程。
  • 讨论中提到,许多大学在 IT 决策上缺乏透明度,导致实施不当。
  • 最后,有人认为,教育行业的技术投资应更注重实际需求,而非依赖大品牌。

A Friendly Introduction to Assembly for High-Level Programmers #

https://shikaan.github.io/assembly/x86/guide/2024/09/08/x86-64-introduction-hello.html

该网页是关于 x86-64 汇编语言的入门指南,特别适合有高层编程经验的开发者。以下是内容的详细中文摘要:

1. 引言 #

  • 汇编语言可能对来自 JavaScript、Rust、C 等高层语言的程序员来说显得复杂和陌生。
  • 本文旨在帮助读者理解汇编语言的基本概念,并能够编写简单的程序。

2. x86-64 汇编语言 #

  • 汇编语言并不是单一的语言,而是一系列与机器代码紧密对应的语言。
  • 本文使用 x86-64 汇编语言,适用于大多数个人计算机。
  • 汇编语言有两种主要语法:Intel 和 AT&T,本指南采用 Intel 语法。

3. 指令的构成 #

  • 指令是告诉 CPU 执行操作的基本单位,通常由助记符(mnemonic)和操作数(operands)组成。
  • 例如,mov 指令用于移动数据,操作数可以是寄存器。

4. 寄存器 #

  • 寄存器是 CPU 内部的存储空间,访问速度极快。
  • x86-64 有 16 个通用寄存器,每个寄存器宽度为 64 位,可以通过不同的名称访问不同的部分。

5. 汇编文件结构 #

  • 汇编文件通常以 .s.asm 为扩展名,分为数据段(.data)和代码段(.text)。
  • 数据段用于定义常量和初始化变量,代码段则包含实际的指令。

6. 编写“Hello World”程序 #

  • 本文的第一个示例程序是“Hello World”,使用系统调用 sys_write 打印字符,并通过 exit 终止程序。
  • 程序的执行从 _start 标签开始,使用 mov 指令和系统调用来实现功能。

7. 结论 #

  • 本文介绍了汇编语言的基本概念和语法,读者已经能够编写简单的汇编程序,并与操作系统进行交互。
  • 后续文章将深入探讨更复杂的程序结构和功能。

通过这篇文章,读者可以获得对汇编语言的基本理解,并能够开始编写和运行简单的汇编程序。


HN 热度 248 points | 评论 51 comments | 作者:shikaan | 1 day ago #

https://news.ycombinator.com/item?id=41571971

  • 有人建议在学习现代 x86 之前,先学习 32 位 MIPS,因为 MIPS 的指令集更适合教学。
  • 另有评论推荐 RISC-V,认为其比 MIPS 更一致,已在许多大学取代 MIPS 作为教学语言。
  • 有人指出 MIPS 的加载存储架构和分支延迟槽使其对初学者来说复杂,建议学习 68000 或 6502 等更简单的架构。
  • 也有人提到学习 68HC11 对理解编程有很大帮助,认为小型指令集更易于学习。
  • 讨论中提到,学习编程语言应以实际需求为导向,避免先学习无实际用途的“干净”语言。
  • 有人认为编程与语言学习的比较不恰当,编程的学习目标与语言学习不同。
  • 认为学习现代汇编语言时,应该关注实际硬件而非模拟器,以便更好地理解。
  • 也有评论者提到,现代汇编语言的复杂性让他们感到困惑,期待有更全面的现代教程。
  • 有人分享了在不同架构(如 6502、Z80、ARM 等)学习汇编的经历,认为小型架构更易上手。
  • 讨论中提到,学习 PDP11 汇编也很有价值,因为它与高级编程语言的概念相符。
  • 还有人提到,8 位微控制器(如 AVR 或 PIC)汇编语言易于入门,适合初学者。
  • 最后,有评论者对文章的写作质量表示赞赏,期待更多类似的内容。