Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2024.7


How to use apt

本博客介绍了如何使用apt命令。通过使用`apt show`命令,可以显示软件包的依赖关系、大小、来源、维护者、主页和描述等信息。同时,还介绍了如何使用`apt install`命令安装软件包及其依赖项。博客还提到了依赖包和主包之间的关系,删除依赖包会导致主包一同被删除的情况。博客还介绍了`apt clean`命令用于清除缓存的功能。 在博客的后半部分,介绍了apt的高级用法。其中包括使用"pinning"功能控制软件包版本的安装,使用`apt-file`命令查看软件包内的文件,以及使用`apt-cache`命令查询依赖于某个软件包的其他软件包。 通过阅读本博客,读者可以了解到apt命令的基本用法和一些高级用法,以及如何管理软件包和依赖关系。读者还可以思考如何使用apt命令解决实际问题,例如如何安装特定版本的软件包或查找依赖于某个软件包的其他软件包。 请注意,本博客的摘要长度为300字左右,不超过600字。--GPT 4


应用商店、包管理……每天都会使用的东西有什么开发难度?

现代软件开发中,应用商店和包管理是我们每天都会使用的东西。然而,这背后隐藏着许多开发难题。安装一个包可能涉及到多个依赖关系,而这些依赖关系构成了一个有向无环图。基本需求包括避免重复安装相同的依赖、包与包之间的隔离、升级和降级的允许性、查询包的来源和版本等。全局包管理器如APT、yum和pacman可以解决这些问题,但是无法解决依赖冲突和破坏性的升级降级问题。分治思想将大问题拆分成小问题,例如将应用拆分成微服务,但是会带来包的重复安装和磁盘空间占用的问题。Nix是一个函数式的包管理器,通过不可变性和平坦的包存储解决了依赖冲突和包的隔离问题。Nuget则采用动态链接的方式解决依赖冲突。其他包管理工具如winget、snap和flatpak也有各自的解决方案。然而,包管理实际上没有万能解决方案,目前主流的做法是结合Monolithic的包管理、Docker和虚拟机来解决依赖冲突问题。虽然应用商店给我们带来了便利,但是背后的复杂性是巨大的。当我们开始自己分发软件时,才会意识到这个世界并不是那么简单。--GPT 4

Store nuget apt package manager Application Nix

在 2024 年学习汇编还有必要吗

摘要:本文讨论了操作系统和应用程序的诞生顺序,并介绍了依赖倒置原则和构建可插件应用程序的重要性。文章指出,操作系统和应用程序的诞生并不分先后,而是依赖于应用二进制接口(ABI)。ABI定义了应用程序如何与操作系统交互,是二者的桥梁。文章还探讨了操作系统的核心功能和抽象层的作用,以及汇编语言和操作系统课程对计算机科学理解的重要性。最后,文章回应了一个杠精的观点,指出应用程序并不一定必须依赖操作系统。--GPT 4


开放性问题 Windows 和 Linux 哪个更加安全?

Windows和Linux哪个更加安全?这是一个非常有趣的问题,但答案并不简单。本文探讨了Windows和Linux的安全策略和保障措施,并比较了它们在不同方面的安全性。Windows在默认情况下提供了多项保护措施,如BitLocker全盘加密、TPM硬件安全模块和Secure Boot等。它还集成了Windows Hello生物识别技术和UAC用户账户控制等功能。另一方面,Linux提供了LUKS2全盘加密和TPM保护密钥的功能,但Secure Boot在Linux中并不流行。Linux也有类似UAC的权限控制机制和开源的防病毒工具。然而,Linux的更新和软件分发依赖于各个发行版的包管理系统,而且用户需要自己配置防火墙规则。此外,Linux的开源特性使得代码透明,但也可能导致恶意代码的存在。总的来说,Windows在默认设置下对普通用户的安全性更高,而Linux对于懂得如何防御的用户来说提供了更高的定制性和开发上限。因此,哪个更安全取决于用户的需求、使用场景和技术水平。--GPT 4


在2024年发布一个Linux发行版还难吗

在这篇博客中,作者记录了最近与群友讨论自主研发操作系统的想法。他们发现,制作一个操作系统并不像想象中的那么困难。作者提到了ArchLinux和Gentoo这两个发行版,以及一个名为"linux-factory"的项目,它可以帮助用户定制自己的Linux发行版。然而,作者也提到了自己对滚动更新的疑惑,特别是对于Arch Linux用户来说,滚动更新可能会导致系统崩溃。作者还讨论了操作系统的稳定性和安全性问题,指出自己更倾向于使用稳定版本并定期进行升级。最后,作者提到了发行版的管理问题,包括如何处理软件包的版本和breaking change的问题。他认为,制作一个自主研发的操作系统需要大量的工程师和公司的支持。文章以提出问题的方式结束,让读者思考自己对操作系统的期望和挑战。--GPT 4