十年老GPS,开源逆向工程续命记
作者以10欧元淘到一台2015年生产的Navman Bike 1000自行车电脑,发现其地图更新已停止,属于典型的计划报废。但作者通过逆向工程发现设备运行Windows CE 6.0系统,并利用Total Commander和开源导航软件NaVeGIS,结合OpenStreetMap数据,成功为其安装了最新的地图,甚至还运行了DOOM游戏。这篇文章展现了开源软件和逆向工程的强大力量,让过时设备焕发新生,并引发了对电子产品计划报废和可持续性的思考。
阅读更多
作者以10欧元淘到一台2015年生产的Navman Bike 1000自行车电脑,发现其地图更新已停止,属于典型的计划报废。但作者通过逆向工程发现设备运行Windows CE 6.0系统,并利用Total Commander和开源导航软件NaVeGIS,结合OpenStreetMap数据,成功为其安装了最新的地图,甚至还运行了DOOM游戏。这篇文章展现了开源软件和逆向工程的强大力量,让过时设备焕发新生,并引发了对电子产品计划报废和可持续性的思考。
阅读更多
本文介绍了如何在Kubernetes上使用Eclipse Mosquitto搭建高可用MQTT代理。该方案利用Deployment、Service、ConfigMap和RBAC等核心Kubernetes组件,以及Traefik IngressRouteTCP实现外部MQTT流量的暴露。通过主从两个Mosquitto Broker,以及自定义的故障转移控制器,实现了轻量级、自愈的故障转移机制,将停机时间缩短至5秒,保证消息的持续可用性。即使主节点宕机,次要Broker也能够快速接管,保证消息的无缝传递。
阅读更多
历经47年,支持4种不同CPU架构的OpenVMS操作系统终于迎来了自己的包管理器VSP!虽然目前仍处于Beta阶段,存在依赖关系解析不完整、缺乏更新管理和私有仓库支持等不足,但它已能显著简化软件安装流程,节省大量时间。VSP通过简单的命令即可搜索、下载和安装软件,彻底告别手动下载、解压和安装的繁琐步骤。未来改进方向包括自动化依赖处理、更新升级功能以及私有仓库支持,以媲美现代包管理器(如APT、YUM、DNF)。
阅读更多
本文介绍了一种利用 GCC 运行时插桩来记录 C++ 析构函数的方法,以便于在大型多线程代码库中处理关机问题。文章指出,在应用程序无法正常关闭,出现段错误或无异常终止的情况下,传统的内存泄漏检测工具 Valgrind 无法使用。作者通过记录所有析构函数并在代码停止后触发 SIGTRAP 以使用 GDB 进行调试,最终解决了问题。
阅读更多
本文记录了作者在OpenVMS x86系统上编译1992年版本的俄罗斯方块游戏的过程。由于代码过于古老,作者需要解决代码中的类型定义、数组越界等问题,并为链接器指定X11库的位置。最终,作者成功编译并运行了游戏。
阅读更多
本文介绍了如何在 3 台 Orange Pi Zero 3 上搭建 k3s Kubernetes 集群,包括安装 Dashboard UI、部署 Hello World 应用程序以及测试故障转移等内容。作者详细讲解了搭建过程中遇到的问题及解决方法,并分享了用于 ARM64 架构的 YAML 文件。
阅读更多
本文介绍了如何在2024年使用VoIP技术拨打1965年的荷兰转盘电话(T65)。由于T65使用脉冲拨号,与现代设备不兼容,作者尝试了多种硬件转换器,包括DialGizmo、GrandStream HT502和PicBasic 141101,将脉冲拨号转换为DTMF信号,成功实现了使用转盘电话拨打电话。
阅读更多