Hacker News 中文摘要

RSS订阅

Unix可执行文件作为Smalltalk方法[pdf] -- The Unix Executable as a Smalltalk Method [pdf]

文章摘要

文章探讨了Unix可执行文件与Smalltalk方法之间的相似性,提出将两者等同看待的观点。作者认为这种对应关系有助于在Unix系统中实现Smalltalk的优势,而无需将其封闭在独立的虚拟机环境中。尽管Unix进程的高开销可能影响实际应用,但仍存在多种解决方案。这一思路为Unix与Smalltalk的融合提供了新的可能性。

文章总结

《Unix可执行文件作为Smalltalk方法及其对Unix-Smalltalk统一的意义》

摘要

Unix与Smalltalk在细节上差异显著,但在宏观架构上存在有趣的相似性。本文提出将Unix可执行文件视为Smalltalk方法,并探讨这一假设如何通过文件系统实现Smalltalk虚拟机(VM)。尽管Unix进程的高开销可能阻碍其实际应用,但通过优化手段(如FUSE虚拟化)有望解决性能问题。这一关联为在Unix中实现Smalltalk的持久性、动态软件更新、统一性和GUI开放性等优势提供了可能,而无需依赖封闭的VM环境。

核心观点

  1. 概念映射

    • 文件即对象:Unix文件与Smalltalk对象具有相似性,均作为基础数据单元。
    • 可执行文件即方法:Unix进程对应Smalltalk方法激活,进程内存的临时性类似于方法局部变量。
  2. Smalltix系统构想

    • 通过将Smalltalk方法拆分为微型Unix进程,对象结构映射为目录树,实现语言无关的编程模型。
    • 示例:用Bash脚本模拟Smalltalk方法调用链,展示跨语言协作的可行性。
  3. 性能挑战与优化

    • 进程开销:大量微型进程的创建和切换成本高昂,需依赖轻量级线程或专用运行时优化。
    • 文件系统虚拟化:通过FUSE实现高效的对象存储,避免传统文件系统的性能瓶颈。
  4. Smalltalk优势的Unix实现

    • 持久性:文件系统天然支持数据持久化,但需解决临时对象的垃圾回收问题。
    • 动态更新:通过替换可执行文件实现方法级热更新,类似Smalltalk的即时编译。
    • 统一性:目录结构提供全局命名空间,减少数据格式碎片化。
    • GUI开放性:将GUI组件建模为持久化目录,支持跨进程访问和组合。
  5. 未来方向

    • 结合liballocs项目实现进程内存的标准化访问,或通过Plan 9风格的“文件即目录”扩展接口统一性。

结论

通过重新定义Unix基础组件的角色,可在保留其多语言生态的同时,吸收Smalltalk的设计哲学。尽管性能问题仍需突破,这一路径为操作系统与编程环境的融合提供了新思路。

评论总结

以下是评论内容的总结:

  1. 关于ICFP/SPLASH会议的信息分享

    • 评论1提供了ICFP/SPLASH会议的程序链接和视频播放列表,方便读者查阅相关论文和观看会议内容。
    • 引用:"The ICFP/SPLASH papers are now starting to find their way to HN."
    • 引用:"Streams from the sessions will also show up here^2."
  2. 对论文的积极评价与个人项目灵感

    • 评论2的作者表示对论文非常感兴趣,并计划将其理念应用到自己的操作系统项目中。
    • 引用:"I'm very inspired; I'm looking forward to reading it in depth."
    • 引用:"I've been dreaming about building a modern operating system that is highly malleable."
  3. 对论文的批评与改进建议

    • 评论3认为论文节奏较慢,并指出了一些技术上的不足,如FUSE的效率问题。
    • 引用:"But to my taste it's a bit slow-paced, taking 10 pages to start getting to the point."
    • 引用:"There are several factual errors in the paper, but I think the only consequential one is the assertion that FUSE makes it possible to implement files as efficiently as Smalltalk objects."
  4. 对论文创新性的质疑

    • 评论4认为论文只是对Woosh的重新发明,缺乏原创性。
    • 引用:"Once you cut through all the verbiage, this is just a re-invention of Woosh."
  5. 对历史背景的补充

    • 评论5提到了Xerox PARC在UNIX环境中的早期尝试,并指出NeXTSTEP和macOS是这些理念的现代体现。
    • 引用:"I think it worthwhile pointing out Xerox PARC efforts to bring their programming environments to UNIX."
    • 引用:"NeXTSTEP and macOS are only thing left from those ideas in modern systems."
  6. 对Smalltalk/Lisp理念的反思

    • 评论6指出文件系统现在实现了Smalltalk/Lisp社区中持久内存映像的理念。
    • 引用:"Funny, and the persistent memory-image everyone outside the Smalltalk/Lisp community seems to hate, it's your normal filesystem now."
  7. 相关演讲的推荐

    • 评论7推荐了Stephen Kell关于Smalltalk与Unix结合的演讲。
    • 引用:"Reminds me of the 'Liberating the Smalltalk lurking in C and Unix' talk by Stephen Kell."
  8. 对面向对象编程的重新定义

    • 评论8提到Alan Kay的观点,认为“面向对象编程”应更准确地称为“面向消息编程”。
    • 引用:"A better description of what they were getting at was message oriented programming."

总结:评论内容涵盖了从会议信息分享、论文评价、技术批评、历史背景到理念反思等多个方面,既有对论文的积极认可,也有对其不足和改进建议的讨论,同时还补充了相关的历史和技术背景。