Anduin Xue
Anduin Xue

Anduin's Tech Blog

All Posts in 2024


Some quick Docker tips

# 一些快速的Docker技巧 这篇博客介绍了一些有用的Docker技巧,包括: 1. 按资源使用情况排序容器:通过命令`sudo docker stats`可以按照内存使用、CPU使用和镜像大小等指标对容器进行排序,帮助性能调优和资源管理。 2. 获取磁盘空间使用情况:使用命令`sudo docker system df`可以查看Docker镜像、容器和卷占用的磁盘空间。 3. 删除无用的镜像和容器:通过命令`sudo docker system prune -a --volumes -f`可以清理无用的镜像、停止的容器和卷,释放磁盘空间。 4. 浏览镜像内容:使用命令`sudo docker run -it --entrypoint sh image_name`可以以交互模式运行容器,并浏览镜像的文件系统,有助于调试和了解镜像内容。 5. 输出密钥值:提供了一个函数`get_docker_secret()`,用于获取Docker密钥的值,并且可以通过临时创建一个Docker服务来实现。 6. 在Dockerfile中安装`tzdata`:通过在Dockerfile中添加相应的命令,可以安装`tzdata`包并设置正确的时区。 7. 在Docker容器中安装GUI应用程序:介绍了如何在Docker容器中安装GUI应用程序的步骤,并以安装WeChat为例进行了演示。 这些技巧可以帮助你更好地使用Docker,并提高开发和测试的效率。阅读全文,了解更多细节,并尝试应用到实际场景中。 问题:你在使用Docker时遇到了哪些挑战?你是如何解决这些问题的?--GPT 4

bash Linux Docker

我为什么构建了 Anduin OS

Anduin OS 1.0 is a Linux distribution that aims to provide a user-friendly and stable operating system. The author initially attempted to modify Ubuntu server to create their own distribution, but encountered difficulties with the installation process. They then decided to build their system from scratch using Debian tools and combining them with popular and stable Ubuntu software sources. The author discusses the challenges they faced in creating an installer and the need to differentiate between the installer and the main system. They also explore the design philosophy behind Anduin OS, which draws inspiration from Windows 11 UI elements. The author reflects on the importance of a reliable application store and the challenges of implementing a package management system. Ultimately, they decide to let users choose their preferred package management method. The blog post also touches on the topic of secure boot. Overall, Anduin OS 1.0 offers a unique approach to creating a Linux distri...--GPT 4

AnduinOS Introduction Story Release

How to share a big file via BitTorrent

# 如何通过BitTorrent分享大文件 首先,您需要购买一个服务器。 服务器必须有良好的互联网连接和公共IP地址。 ## 准备服务器 假设您有一个安装了Ubuntu 22.04的服务器。 首先,安装`aria2`,`tmux`和`mktorrent`。 ```bash sudo apt install -y mktorrent aria2 ``` ## 获取追踪器列表 接下来,获取追踪器列表。有一些流行的追踪器可供使用。例如:[https://github.com/ngosang/trackerslist?tab=readme-ov-file](https://github.com/ngosang/trackerslist?tab=readme-ov-file)。 ```bash udp://tracker.opentrackr.org:1337/announce udp://open.tracker.cl:1337/announce udp://open.demonii.com:1337/announce udp://open.stealth.si:80/announce udp://exodus.desync.com:6969/announce udp://tracker.torrent.eu.org:451/announce udp://tracker1.bt.moack.co.kr:80/announce udp://tracker-udp.gbitt.info:80/announce udp://explodie.org:6969/announce https://tracker.tamersunion.org:443/announce udp://tracker.tiny-vps.com:6969/announce udp://tracker.dump.cl:6969/announce udp://tracker.ccp.ovh:6969/announce udp://tracker.bittor.pw:1337/announce udp://run.publictracker.xyz:6969/announce udp://retracker01-msk-virt.corbina.net:80/announce udp://pub...--GPT 4

Download Share aria2c bittorrent torrent

Run Windows on Linux for best experience

在Linux上运行Windows以获得最佳体验 这篇博客介绍了如何在Linux上运行Windows以获得最佳体验。首先,你需要解绑PCIe设备并将其离线以便通过。博客提供了一个脚本,让你可以轻松地完成这个过程。然后,你需要更新initramfs并重新启动系统。为了确保PCIe设备已经离线并准备好进行传递,你可以运行一个命令来验证隔离状态。此外,博客还提到了当你只有一个GPU时,离线GPU可能会导致显示变黑的问题,所以在离线GPU之前要确保你可以远程连接到机器。 博客还介绍了如何为虚拟机启用安全启动和模拟TPM。对于启用安全启动,你需要在虚拟机的XML配置中添加一些行。对于启用模拟TPM,你需要安装swtpm并在虚拟机的XML配置中添加一些行。 如果你在使用Windows虚拟机,博客还提供了如何安装VirtIO驱动程序以提高虚拟机的性能。你需要从官方网站下载VirtIO驱动程序,并将其添加到虚拟机的存储中进行安装。 最后,博客还提到了如何调整Windows虚拟机以获得更好的性能。通过在虚拟机的XML配置中添加一些行,你可以启用某些性能功能。 通过阅读这篇博客,你将了解如何在Linux上运行Windows以获得最佳体验,并学习到了一些有关虚拟化和性能优化的技巧。你可能会思考如何进一步优化虚拟机的性能,以及在使用虚拟机时可能遇到的一些挑战。 你是否想过如何在只有一个GPU的情况下离线GPU而不影响显示?你是否尝试过在虚拟机中启用安全启动或模拟TPM?如何进一步优化虚拟机的性能?这些问题将激发你对博客内容的思考,并引导你进一步探索和学习。--GPT 4

Linux Windows qemu virt manager

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


Using SwinIR for Image Super-Resolution Reconstruction

使用SwinIR进行图像超分辨率重建 本文介绍了如何使用SwinIR进行图像超分辨率重建。SwinIR是基于Swin Transformer的图像恢复模型,在经典/轻量/实用的图像超分辨率、灰度/彩色图像降噪和JPEG压缩伪影去除等任务中实现了最先进的性能。以下是使用SwinIR进行图像超分辨率重建的步骤: 1. 购买一块显卡:强烈建议在开始之前购买一块显卡,Nvidia GeForce RTX 4090是一个不错的选择。 2. 配置基本容器:编写一个基本的Dockerfile,包括Pytorch和相关依赖项。 3. 配置SwinIR容器:基于基本镜像配置一个SwinIR容器,并安装SwinIR的依赖项和模型。 4. 运行容器:将要处理的图像放入输入文件夹,并运行容器进行图像超分辨率重建。 使用SwinIR进行图像超分辨率重建可以恢复老照片、增强低分辨率图像甚至改善监控视频的质量。通过这项技术,您可以获得更清晰、更详细的图像。--GPT 4

NVIDIA Ai CUDA Docker Resolution Image SwinIR Restore

Setting up your own Docker image mirror

本文介绍了如何设置自己的Docker镜像镜像。首先,需要运行一个脚本来拉取和推送镜像到镜像镜像。然后,可以通过自己的镜像镜像来拉取镜像,而不是从源拉取。此外,还介绍了如何保护Docker镜像仓库,以防止未经授权的推送。最后,总结了通过设置自己的Docker镜像镜像所带来的好处,包括加快镜像拉取速度、降低存储需求和增加效率。通过使用私有镜像仓库,在中国境内可以快速、可靠地拉取镜像。--GPT 4

Caddy Docker Container Mirror Docker Hub

Run Linux Desktop experience in Docker container

在本教程中,您学习了如何在Docker容器中运行Linux桌面环境。这是一种简单的方法,可以在不在本地机器上安装Linux桌面环境的情况下尝试它。 首先,您需要安装Docker。无论您使用的是哪个操作系统(支持Windows、Linux、MacOS),您都需要在本地机器上安装Docker。您可以按照[官方Docker网站](https://docs.docker.com/get-docker/)上的说明进行安装。 然后,您可以选择从Docker Hub上拉取我构建的带有Linux桌面环境的Docker镜像,或者自己构建镜像。 如果您选择从Docker Hub上拉取镜像,可以使用以下命令: ```bash docker pull hub.aiursoft.cn/aiursoft/internalimages/remote-desktop:latest ``` 然后,您可以使用以下命令运行容器: ```bash docker run -d -p 33900:3389 --name remote-desktop hub.aiursoft.cn/aiursoft/internalimages/remote-desktop:latest ``` 现在,您可以使用远程桌面客户端连接到`localhost:33900`以访问Linux桌面环境。 如果您选择自己构建镜像,可以编写一个新的`Dockerfile`,内容如下: ```Dockerfile FROM ubuntu:22 EXPOSE 3389/tcp ARG USER=test ARG PASS=1234 ARG X11Forwarding=false ... ``` 然后,使用以下命令构建镜像: ```bash docker build -t remote-desktop . ``` 并使用以下命令运行容器: ```bash docker run -d -p 33900:3389 --name remote-desktop remote-desktop ``` 最后,您可以使用远程桌面客户端连接到`localhost:33900`以访问Linux桌面环境。 在Linux桌面环境中,您可以安装浏览器。使用以下命令: ```bash wget https://dl-ssl.google....--GPT 4

Ubuntu Remote Management Gnome Docker desktop

How to use C# to manage InfluxDB data

如何使用C#管理InfluxDB数据 本博客介绍了如何使用C#来管理InfluxDB数据。InfluxDB是一个专为处理高写入和查询负载而设计的时间序列数据库,是TICK堆栈的重要组成部分。InfluxDB适用于任何涉及大量时间戳数据的用例,包括DevOps监控、应用程序指标、物联网传感器数据和实时分析。 首先,您需要安装InfluxDB。可以按照官方网站上的说明进行安装,或者使用Docker运行InfluxDB。安装完成后,您可以通过`http://localhost:8086`访问InfluxDB UI,并使用启动InfluxDB时设置的用户名和密码登录。 接下来,您可以使用C#来管理InfluxDB数据。首先创建一个新的控制台应用程序,并添加InfluxDB客户端库。然后,您可以使用提供的代码来管理InfluxDB数据,包括配置InfluxDB连接、创建存储桶、写入日志和查询数据。 最后,您还可以在网页上查询数据。提供了一个Flux查询示例,您可以使用该查询在网页上查询数据。 通过阅读本博客,您将学会如何使用C#来管理InfluxDB数据。快来尝试吧! 问题:您如何使用C#来管理InfluxDB数据?您还可以在网页上查询数据吗? 注意:本摘要根据原始博客内容编写,不含作者信息。--GPT 4

C# Database Docker InfluxDB

How to setup CUDA environment for Docker on Ubuntu?

如何在Ubuntu上为Docker设置Nvidia环境? 本文介绍了如何在Ubuntu上设置Nvidia环境以便在Docker中使用GPU。首先,您需要确认系统是否检测到Nvidia GPU。然后,安装适合您的设备的Nvidia驱动程序。接下来,安装Docker并添加Nvidia Container Toolkit以实现在Docker中使用GPU。最后,您可以使用一个示例来测试GPU设置是否成功。 通过执行命令`sudo lspci | grep NVIDIA`,您可以确认系统是否检测到Nvidia GPU。然后,您可以使用`sudo ubuntu-drivers list`或`sudo ubuntu-drivers list --gpgpu`命令列出可用的驱动程序。根据您的需求,您可以选择自动安装或手动安装驱动程序。安装完成后,您需要重新启动系统并使用`nvidia-smi`命令验证驱动程序的安装情况。 安装完驱动程序后,您可以使用以下命令安装Docker: ```bash curl -fsSL get.docker.com -o get-docker.sh CHANNEL=stable sh get-docker.sh rm get-docker.sh ``` 接下来,您需要安装Nvidia Container Toolkit。您可以按照Nvidia官方文档提供的步骤添加Nvidia Container Toolkit的存储库并进行安装。 最后,您可以通过运行一个带有GPU burn测试的Docker映像来测试GPU设置是否成功。您可以克隆`gpu-burn`存储库,构建Docker映像,并运行GPU burn测试。 除了测试GPU设置,您还可以使用Docker-Compose共享GPU。您可以创建一个`docker-compose.yml`文件来配置共享GPU的Docker服务。 本文提供了一个示例CUDA应用程序的Dockerfile和源代码。您可以根据需要自定义这些文件。 通过本文,您将了解如何在Ubuntu上为Docker设置Nvidia环境,并且可以使用GPU进行加速计算。阅读全文以获取更多详细信息,并开始在Docker中使用Nvidia GPU吧! 问题:您如何在Ubuntu上为Docker设置Nvidia环境?如何测试GPU设置...--GPT 4

NVIDIA CUDA GPU Docker

第三届Anduin编程大赛

本文介绍了第三届Anduin编程大赛的竞赛题目:初级文件系统与Raid。参赛者需要使用C\C++\Rust\Go\Erlang\C#\Java语言编写,使用FUSE实现文件系统,并支持SATA、NVME、USB、SD卡等设备。实现的文件系统需要支持文件的创建、删除、读取、写入、扩增、截断、权限控制,以及软件Raid0、Raid1、Raid5。评分标准包括性能、事故的恢复能力、Raid0的速度增益、能否作为系统盘等。文章还推荐了几个库供参赛者参考。--GPT 4


Web 应用开发检查单

这篇博客提供了一个 Web 应用开发检查单,旨在确保你的业务系统是安全、稳定、快速、可扩展、自动化的。检查单包括了网络配置、权限配置、运维策略、DevOps、容器化、应用开发、应用体验和合规性等方面。它可以帮助你确保服务器的网络安全和性能,减小权限,快速恢复业务,自动化部署和容器化,代码是否存在各种攻击的风险,以及是否符合各种合规性。该检查单详细介绍了每个方面的最佳实践,并提供了一些有趣的问题来启发读者思考,如:你的应用是否支持黑色主题和大字体?你的代码是否可能产生违反 GDPR 或 CCPA 的行为?该检查单可以帮助你确保你的业务系统是符合最佳实践的,从而提高你的业务系统的质量和可靠性。--GPT 4

Web Linux Cloud Server Container Service Development

Ubuntu 22.04 Network Diagnostic Handbook

This article provides a comprehensive guide on how to diagnose network interfaces in Ubuntu 22.04. It covers various methods, such as using the `ip` command, checking the routing table, and testing HTTP connections. The article also introduces the `networkctl` command, which supports various operations like renewing DHCP leases and bringing interfaces up or down. The author provides step-by-step instructions and examples to help readers follow along. Overall, this article is a useful resource for Ubuntu users who need to troubleshoot network issues.--GPT 4

Linux Ubuntu Network NetworkManager Networkd Netplan

Mirror YouTube channel to watch videos with best experience

This article explains how to mirror YouTube channels to watch videos without ads and interruptions, using the command-line tool youtube-dl. The author provides a script that downloads videos from a list of YouTube channels and saves them to a local folder, which can be added to the media library of a media server like Jellyfin. The article also explains how to expose the video folder to the internet via a web server and play the videos using other players like VLC. The step-by-step instructions are detailed and easy to follow, making it a great guide for anyone who wants to watch YouTube videos without ads.--GPT 4

Web Linux Ubuntu Python Youtube Jellyfin VLC

Setup a Ubuntu apt mirror server

This blog post provides a comprehensive guide on how to set up an Ubuntu apt mirror server. The process begins with installing the `apt-mirror` package and configuring the `mirror.list` file to specify the source you want to mirror. The author then explains how to start mirroring and where the downloaded files will be stored. The next step involves configuring a web server using Aiursoft.Static, including modifying permissions for accessibility and creating a systemd service for automatic startup. The guide continues with instructions on how to configure a reverse proxy using Caddy and finally, how to configure your client to use your mirror source. The author concludes by stating the benefits of setting up an Ubuntu mirror, such as bandwidth saving and faster software package downloads. Would it be possible to further optimize this process? How secure is this setup?--GPT 4

Web Linux Ubuntu Cache Server apt Mirror

基于 Docker Swarm Mode 建设你家里的数据中心!

在这篇博客中,我们将深入探讨如何使用 Docker Swarm Mode 建设家庭数据中心。文章首先介绍了 Docker Swarm Mode 的基本概念,包括其特性、优势以及与其他技术如 Kubernetes 的对比。接下来,我们详细阐述了如何在家庭环境中配置和使用 Docker Swarm Mode,包括网络设置、数据存储、服务管理等关键步骤。 在文章中,我们还讨论了使用 Docker Swarm Mode 建设数据中心的一些潜在问题和挑战,例如网络安全、数据备份、系统稳定性等。同时,我们也提供了一些实用的解决方案和建议,帮助读者在实际操作中避开这些问题。 文章最后,我们展望了 Docker Swarm Mode 在家庭数据中心建设中的未来发展,包括可能的新特性、技术趋势以及对现有架构的影响。我们相信,随着 Docker Swarm Mode 的不断发展和完善,它将成为家庭数据中心建设的理想选择。 这篇文章能否启发你思考如何利用现有的技术和资源,打造你自己的家庭数据中心?Docker Swarm Mode 又有哪些潜力和可能性等待你去探索和发掘?希望你在阅读本文后,能找到你自己的答案。--GPT 4

bash Linux Server Docker Container Docker Swarm Cluster Swarmpit