About

一直在网上看到有说 Lisp Machine 时代有多么的美妙, 所以对 Symbolics 的 Genera 比较好奇, 非常想要玩玩看.

/_img/lisp/misc/opengenera/Ryo-genera.png

但是因为历史原因, 大部分这些都是一些过时的信息, 或者是有一些落后的数据没有得到更新. 于是在折腾了快两天之后 (没错, 这就是周末消失术), 我终于得到了一个跑起来的 Open Genera 2 了. 然后又经过了快一天的时间, 我把它自动化了, 现在你可以直接使用 cloud-init (也就是 cidata.iso (github repo release)), 配合 Ubuntu Cloud Image 来自动化地安装一个镜像.

简单的概要

感觉跑通了之后就会觉得, 啊, 好像不是很难的感觉.

(实际上还是有很多的坑的… 之后用的过程中估计还得手动修一修. )

这里是大概的一些概念:

  • INETD: 用来为 Genera 提供时间, 如果你在启动的时候发现什么都没有, 只有一段文字在问你设置时间, 那么大概就是它挂了, 可以检查的点有:
    1. 是否安装了 inetutils-inetd
    2. /etc/inetd.conf 中是否有信息:
      daytime stream tcp nowait root internal
      daytime dgram udp wait root internal
      time stream tcp nowait root internal
      time dgram udp wait root internal
              
  • NFS-KERNEL-SERVER: 用来提供 NFS 网络服务, 如果在 login 的时候, 出现无法访问文件的提示, 估计是它挂了, 可以检查的点有:
    1. 是否安装了 nfs-kernel-server
    2. /etc/exports 中是否有信息:
      /       genera(rw,sync,no_subtree_check,all_squash,anonuid=0,anongid=0)
              
    3. /var/lib/symbolics/.VLM 中的 genera.network 是否正确设置
    4. ip tap0 中是否可以找到 tap0 (当前是做了一个 tap0 用来接入)
    5. 实在想不出来了… 现在我还卡在那个地方呢… 解决后再来更新一下, 不过好消息是也不是不能用…
  • xxx.vlod: 是一个 Genera 的核心的 dump, 类似于虚拟机快照的东西, 这里使用的是一个带 NFSv3 patch 的镜像
  • .VLM, 用于配置 vlm 启动的时候的行为

After

之后会再更新一下使用的部分的体验… 不过我还是更想要一个移植的 linux-vlm, 估计会好很多…

虽然… Lisp Machines are something that you think is really cool when you first learn about them, then you come to the realization that pining for them is a waste of time.

就酱先.

OpenGenera Fonts on macOS

参考 Genera X11 Fonts on Mac, 可以在 sys.sct/x11/fonts/bdf/genera 中找到形为 *.bdf.~*~BDF 形式的字体. 可以使用 FontForge 来进行转换:

for i in *;
do
    fontforge -c "open(argv[1]).generate(argv[2], 'dfont')" $i $i:r:r
done

转换为 Apple 的 dfont 的格式, 就可以添加到 macOS 的字体中去了. 不过实际会发现, 里面有一部分是用来表示一些特殊符号的, 比如 GENERA-ARROW 之类的.

并且也不是所有的字体都适合用来作为写代码的字体… 不过要是点阵字体真有那么好的话, 估计也不会有人想要做矢量字体了吧.

(哦, 实际发现使用的效果貌似字间距有些问题, 在 Emacs 上测试是没有问题的, 但是在其他正常的显示里面会有问题… 感觉还是需要一些修正.)