2024-04-20 20:00:25 +08:00
<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns= "http://www.w3.org/2005/Atom" xml:lang= "en" >
<title > Dich' blog</title>
<subtitle > 用电子罗盘,转赛博核桃,勘电磁风水,寻网络龙脉</subtitle>
<link rel= "self" type= "application/atom+xml" href= "https://blog.dich.ink/atom.xml" />
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink" />
<generator uri= "https://www.getzola.org/" > Zola</generator>
2024-04-21 14:45:32 +08:00
<updated > 2024-04-02T00:00:00+00:00</updated>
2024-04-20 20:00:25 +08:00
<id > https://blog.dich.ink/atom.xml</id>
2024-04-21 14:45:32 +08:00
<entry xml:lang= "en" >
<title > Docker学习笔记(九)</title>
<published > 2024-04-02T00:00:00+00:00</published>
<updated > 2024-04-02T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-9/" />
<id > https://blog.dich.ink/docker-learn-9/</id>
<summary type= "html" > < p> 前言 Docker CLI( 命令行界面) 是一个强大的工具, 允许您与 Docker 容器、映像、卷和网络进行交互和管理。它为用户提供了广泛的命令,用于在开发和生产工作流中创建、运行和管理 Docker 容器和其他 Docker 资源。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > Docker学习笔记(八)</title>
<published > 2024-04-01T00:00:00+00:00</published>
<updated > 2024-04-01T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-8/" />
<id > https://blog.dich.ink/docker-learn-8/</id>
<summary type= "html" > < p> 前言 容器安全是实现和管理容器技术(如 Docker) 的关键方面。它包含一组实践、工具和技术, 旨在保护容器化应用程序及其运行的基础结构。在本节中, 我们将讨论一些关键的容器安全注意事项、最佳做法和建议。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > Docker学习笔记(七)</title>
<published > 2024-03-31T00:00:00+00:00</published>
<updated > 2024-03-31T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-7/" />
<id > https://blog.dich.ink/docker-learn-7/</id>
<summary type= "html" > < p> 前言 容器镜像仓库是 Docker 容器镜像的集中存储和分发系统。它允许开发人员以这些映像的形式轻松共享和部署应用程序。容器镜像仓库在容器化应用程序的部署中起着至关重要的作用,因为它们提供了一种快速、可靠且安全的方式来跨各种生产环境分发容器映像。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > Docker学习笔记(六)</title>
<published > 2024-03-30T00:00:00+00:00</published>
<updated > 2024-03-30T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-6/" />
<id > https://blog.dich.ink/docker-learn-6/</id>
<summary type= "html" > < p> 前言 容器映像是可执行包,其中包含运行应用程序所需的所有内容:代码、运行时、系统工具、库和设置。通过构建自定义映像,您可以在任何 Docker 支持的平台上无缝部署应用程序及其所有依赖项。< / p>
</summary>
</entry>
2024-04-20 20:49:15 +08:00
<entry xml:lang= "en" >
2024-04-20 20:50:23 +08:00
<title > Docker学习笔记(五)</title>
<published > 2024-03-29T00:00:00+00:00</published>
<updated > 2024-03-29T00:00:00+00:00</updated>
2024-04-20 20:49:15 +08:00
<author >
<name >
Unknown
</name>
</author>
2024-04-20 20:50:23 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-5/" />
<id > https://blog.dich.ink/docker-learn-5/</id>
2024-04-20 20:49:15 +08:00
2024-04-20 20:50:23 +08:00
<summary type= "html" > < p> 前言 第三方映像是预构建的 Docker 容器映像,可在 Docker Hub 或其他容器注册表上使用。这些映像由个人或组织创建和维护,可用作容器化应用程序的起点。< / p>
2024-04-20 20:49:15 +08:00
</summary>
</entry>
<entry xml:lang= "en" >
2024-04-20 20:50:23 +08:00
<title > Docker学习笔记(四)</title>
2024-04-20 20:49:15 +08:00
<published > 2024-03-28T00:00:00+00:00</published>
<updated > 2024-03-28T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
2024-04-20 20:50:23 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-4/" />
<id > https://blog.dich.ink/docker-learn-4/</id>
2024-04-20 20:49:15 +08:00
2024-04-20 20:50:23 +08:00
<summary type= "html" > < p> 前言 Docker 使您能够运行与主机操作系统分离的隔离代码段( 包括应用程序及其依赖项) 的容器。默认情况下, 容器是临时的, 这意味着容器中存储的任何数据一旦终止就会丢失。为了克服这个问题并跨容器生命周期保留数据, Docker 提供了多种数据持久化方法。< / p>
2024-04-20 20:49:15 +08:00
</summary>
</entry>
2024-04-20 20:22:58 +08:00
<entry xml:lang= "en" >
<title > Docker学习笔记(三)</title>
<published > 2024-03-27T00:00:00+00:00</published>
<updated > 2024-03-27T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-3/" />
<id > https://blog.dich.ink/docker-learn-3/</id>
<summary type= "html" > < p> 前言 Docker 是一个平台,可简化在轻量级、可移植容器中构建、打包和部署应用程序的过程。在本节中,我们将介绍 Docker 的基础知识、其组件以及入门所需的关键命令。< / p>
</summary>
</entry>
2024-04-20 20:12:46 +08:00
<entry xml:lang= "en" >
<title > Docker学习笔记(二)</title>
<published > 2024-03-26T00:00:00+00:00</published>
<updated > 2024-03-26T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-2/" />
<id > https://blog.dich.ink/docker-learn-2/</id>
<summary type= "html" > < p> 前言 了解支持 Docker 的核心技术将有助于更深入地了解 Docker 的工作原理,并更有效地使用该平台。< / p>
</summary>
</entry>
2024-04-20 20:00:25 +08:00
<entry xml:lang= "en" >
<title > Docker学习笔记(一)</title>
<published > 2024-03-25T00:00:00+00:00</published>
<updated > 2024-03-25T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/docker-learn-1/" />
<id > https://blog.dich.ink/docker-learn-1/</id>
<summary type= "html" > < p> 前言 Docker 是一个开源平台,通过将应用程序隔离到轻量级、可移植的容器中,自动执行应用程序的部署、扩展和管理。容器是独立的可执行单元,它封装了应用程序在各种环境中一致运行所需的所有必要依赖项、库和配置文件。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 垃圾清理的艺术</title>
<published > 2024-03-19T00:00:00+00:00</published>
<updated > 2024-03-19T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/junk-cleanup/" />
<id > https://blog.dich.ink/junk-cleanup/</id>
<summary type= "html" > < p> 前言 在从前的机械硬盘时代,由于硬盘空间小,且没有时常清理垃圾文件,常常导致硬盘空间严重不足;特别是在以 Windows 平台为代表的 C/ D盘 体系下。那么,我们常说的垃圾清理,释放硬盘空间,到底是在清理什么?哪些文件可以被清理?< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > Git使用简明手册</title>
<published > 2024-03-15T00:00:00+00:00</published>
<updated > 2024-03-15T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/git/" />
<id > https://blog.dich.ink/git/</id>
<summary type= "html" > < p> 前言 Git, 作为现代软件开发中不可或缺的版本控制工具, 常常让初学者感到困惑。本文旨在介绍 Git 的全流程安装和基本使用,希望能够帮助新手更轻松地理解和掌握 Git 的基本概念和操作。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > BIOS-UEFI-MBR-GPT-GRUB</title>
<published > 2024-03-15T00:00:00+00:00</published>
<updated > 2024-03-15T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/talk-bios-uefi-mbr-gpt-grub/" />
<id > https://blog.dich.ink/talk-bios-uefi-mbr-gpt-grub/</id>
<summary type= "html" > < p> 前言 在计算机领域, 系统引导和磁盘分区是至关重要的。本文将介绍BIOS与UEFI, MBR与GPT, 以及它们之间的异同点。此外, 我们还会讨论与这些概念密切相关的引导加载程序——GRUB。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > Terminal, Console and Shell</title>
<published > 2024-03-12T00:00:00+00:00</published>
<updated > 2024-03-12T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/terminal-console-shell/" />
<id > https://blog.dich.ink/terminal-console-shell/</id>
<summary type= "html" > < p> 前言 在linux的学习过程中, 我们常常遇到诸如 Terminal, Console, bash,zsh,shell,tty 等概念,这些概念常常被混淆,似乎都和命令行相关。本文从历史角度出发介绍它们的前世今生。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > Personal Blog</title>
<published > 2024-03-12T00:00:00+00:00</published>
<updated > 2024-03-12T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/zola-blog/" />
<id > https://blog.dich.ink/zola-blog/</id>
<summary type= "html" > < p> 前言 个人博客的搭建有诸多框架的选择。本文以Zola框架为例, 介绍如何部署该静态站点, 并将其托管到Paas平台上。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
2024-04-21 22:03:25 +08:00
<title > 开源世界:常用跨平台开源软件</title>
2024-04-20 20:00:25 +08:00
<published > 2024-03-04T00:00:00+00:00</published>
<updated > 2024-03-04T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
2024-04-21 22:27:50 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/common-misconceptions-about-open-source/" />
<id > https://blog.dich.ink/common-misconceptions-about-open-source/</id>
2024-04-21 22:03:25 +08:00
<summary type= "html" > < p> 前言 本文旨在介绍一些常用的跨平台开源软件,涵盖了多个领域,包括办公、开发工具、多媒体处理等。这些软件不仅在功能上具有优势,而且秉承着开放、自由的精神,是上上之选。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 开源世界:开源软件与协议</title>
<published > 2024-03-03T00:00:00+00:00</published>
<updated > 2024-03-03T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
2024-04-20 20:00:25 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/opensourcesoftware-licenses/" />
<id > https://blog.dich.ink/opensourcesoftware-licenses/</id>
<summary type= "html" > < p> 前言 本文旨在介绍开源软件许可证,这些许可证规定了使用、修改和分发开源软件的条件。通过了解不同类型的开源许可证及其特点,读者将能够更好地理解在开发和使用开源软件时的法律和道德责任。< / p>
</summary>
2024-04-21 22:27:50 +08:00
</entry>
<entry xml:lang= "en" >
2024-04-21 22:30:10 +08:00
<title > 开源世界:有关开源的误区</title>
2024-04-21 22:27:50 +08:00
<published > 2024-03-02T00:00:00+00:00</published>
<updated > 2024-03-02T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/open-source-cross-platform-softs/" />
<id > https://blog.dich.ink/open-source-cross-platform-softs/</id>
<summary type= "html" > < p> 前言 在当今的软件开发领域,开源软件已经成为推动技术创新和知识共享的重要力量。尽管开源软件的理念和实践已经深入人心,但围绕它的一些误解和误区依然存在。本文旨在深入探讨和澄清这些常见的开源误区,帮助读者更全面、更准确地理解开源软件的本质、价值和实践方式。< / p>
</summary>
2024-04-21 22:03:25 +08:00
</entry>
<entry xml:lang= "en" >
<title > 开源世界:什么是开源</title>
<published > 2024-03-01T00:00:00+00:00</published>
<updated > 2024-03-01T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/open-source-what/" />
<id > https://blog.dich.ink/open-source-what/</id>
<content type= "html" xml:base= "https://blog.dich.ink/open-source-what/" > < p> 前言 「开源」一词对应英文 Open Source, 最初起源于软件开发领域, 因此也称为「开放源代码」, 对应的软件则称为开源软件( Open Source Software, 简称 OSS) 。< / p>
< h2 id=" kai-yuan-de-gai-nian" > 开源的概念< / h2>
< p> 「开源」一词对应英文 Open Source, 最初起源于软件开发领域, 因此也称为「开放源代码」, 对应的软件则称为开源软件( Open Source Software, 简称 OSS) 。除了我们熟知的开源软件以外, 开源的表现形式还有很多, 例如开源硬件( Open Source Hardware) 、开放设计( Open Design) 、开放文档( Open Document) 等等。开源的目的是分享共享、加速创新, 可以说开源已经成为一种超越软件生产界限的运动和工作方式。< / p>
< h2 id=" kai-yuan-ruan-jian" > 开源软件< / h2>
< p> 我们先来看看开源软件的概念,很多人可能会认为只要把源代码公开了就是开源软件。实际上这种理解是不充分的,按照 OSI 组织 (opens new window)( Open Source Initiative Association) 给出的 OSD 定义 (opens new window),除了公开源代码,开源软件的发行条款还必须符合以下十个条件。< / p>
< pre style=" background-color:#151515;color:#e8e8d3;" > < code> < span> Free Redistribution 允许自由地再发布软件
< / span> < span> Source Code 程序必须包含所有源代码
< / span> < span> Derived Works 可以修改和派生新的软件
< / span> < span> Integrity of The Author& #39;s Source Code 发布时保持软件源代码的完整性
< / span> < span> No Discrimination Against Persons or Groups 不得歧视任何个人或团体
< / span> < span> No Discrimination Against Fields of Endeavor 不得歧视任何应用领域(例如商业)
< / span> < span> Distribution of License 许可证的发布具有延续性
< / span> < span> License Must Not Be Specific to a Product 许可证不能针对于某一个产品
< / span> < span> License Must Not Restrict Other Software 许可证不能限制其他软件
< / span> < span> License Must Be Technology-Neutral 许可证必须是技术中立的
< / span> < / code> < / pre>
< p> 通过了解这些条件约束,我们可以得出开源软件的定义:开源软件是一种技术和立场中立的使用许可证约束的开放源代码的软件。< / p>
< p> 开源软件需要保持开放的心态, 对任何技术和立场都保持客观公正的态度, 而且在开放源代码时, 还需要遵循开源许可协议, 允许任何人使用、拷贝、修改以及重新发布。开源许可协议主要分为宽松许可协议( Apache、BSD、MIT 等) 和严格许可协议( GPL、GPL v3、LGPL、Mozilla 等)两大类。除此之外,一个优秀的可持续发展的开源软件,还需要公开发布项目技术文档和其他材料、二进制文件(可选)等,以及拥有一个开放性的社区,接收用户和开发者的反馈,共同探讨开源软件的发展。< / p>
< h2 id=" kai-yuan-ying-jian" > 开源硬件< / h2>
< p> 通过前面的介绍,我们知道了什么是开源软件,那么什么是开源硬件呢?< / p>
< p> 类比开源软件,你可能会误以为开源硬件是可以免费获得、自由修改并再分发的硬件。如果你这么想,你就大错特错了,毕竟硬件是有形的,是看得见摸得着的。我们先来简单看一下 开源硬件协会 (opens new window)( Open Source Hardware Association) 对开源硬件的描述: < / p>
< p> 开源硬件是可以通过公开渠道获得的硬件设计,任何人可以对已有的设计进行学习,修改,发布,制作和销售。硬件设计的源代码的特定的格式可以为其他人获得,以方便对其进行修改。理想情况下,开源硬件使用随处可得的电子元件和材料,标准的过程,开放的基础架构,无限制的内容和开源的设计工具,以最大化个人利用硬件的便利性。开源硬件提供人们在控制他们的技术自由的同时共享知识并鼓励硬件设计开放交流贸易。< / p>
< p> 这里要划重点了, OSHWA 在描述开源硬件时使用的是硬件设计而不是硬件本身。开源硬件的定义是在开源软件的基础上进行的,这里不再赘述,感兴趣的读者可以在 OSHWA 官网找到开源硬件的完整 定义 (opens new window)。< / p>
< p> 目前比较有名的开源硬件有 Arduino (opens new window)、树莓派( Raspberry Pi) (opens new window)、BeagleBone (opens new window)等等。< / p>
< h2 id=" kai-yuan-she-ji" > 开源设计< / h2>
< p> 开源设计是开源项目的另一表现形式, 开源设计的定义是遵循开源许可的可以通过公开渠道获得的设计类项目, 主要指的是非源代码类型的项目, 比如: icon、UI、画稿、图纸等。这些项目也需要遵守开源协议, 并且享受协议规章的保护。< / p>
< h2 id=" kai-yuan-wen-dang" > 开源文档< / h2>
< p> 开源文档在开源项目中非常常见,开源文档的定义是遵循开源许可的可以通过公开渠道获得的文档类项目,开源文档存在于各种项目中,种类覆盖广泛,像博客、百科、菜谱、冷知识、项目说明文档等都可以作为开源文档进行分享。开源文档常见的开源协议也有很多,比如我们《开源指北》使用的 CC BY-SA 4.0 协议。< / p>
< h2 id=" kai-yuan-de-li-shi" > 开源的历史< / h2>
< p> < strong> UNIX< / strong>
提及开源的历史,不得不从 Unix 说起。< / p>
< p> 在 1965 年前后, 贝尔实验室( Bell) 、麻省理工学院( MIT) 及通用电气公司( GE) 曾共同发起了 Multics 项目,旨在开发一个全面的、通用的分时操作系统,实现让大型主机可以同时提供 300 台以上的终端机连接使用的目标。然而,到了 1969 年,由于项目进度落后、资金短缺,在认为 Multics 项目不可能成功之后,贝尔实验室退出了该项目的研究工作。虽然 Multics 项目没有取得成功, 但是培养出了很多优秀的人才, 其中就包括肯·汤普森( Ken Thompson) 和丹尼斯·里奇( Dennis Ritchie) 。< / p>
< p> 回到贝尔实验室后,以肯·汤普森为首的研究人员吸取了 Multics 项目失败的经验教训,将 Multics 庞大而复杂的系统进行简化,实现了一种分时操作系统的雏形,并将其取名为 UNIX。此后十年, UNIX 在学术机构和大型企业中得到了广泛的应用,当时的 UNIX 拥有者 AT& amp;T 公司以低廉甚至免费的许可将 UNIX 源码授权给学术机构做研究或教学之用,许多机构在此源码基础上加以扩充和改进。< / p>
< p> 由于早期 AT& amp;T 为避免美国司法部起诉它违反《反垄断法》而签订了和解协议,同意不进入计算机行业,不销售任何与计算机有关的产品。因此从 UNIX 诞生起的前十五年, 学术机构和黑客们自由地共享源码,以分散的方式共同合作开发 UNIX 系统。为后来的自由和开源软件的意识形态和社区诞生过程中起到了奠基性的作用。< / p>
< p> 转折发生在 1984 年,由于对 AT& amp;T 的限制法令被解除, AT& amp;T 开始以能获利的价格销售 UNIX。UNIX 的源码依然可用,但 AT& amp;T 将 UNIX 从研究性质的项目转变为一个商业项目,这在 UNIX 黑客社区里产生了危机,他们开始寻找一个可替代的类 UNIX 系统。< / p>
< p> < strong> GNU< / strong>
实际上,在 UNIX 变成一个商业项目之前, 由于硬件价格的不断下跌, 制造商已经开始期望软件能够带来额外的收入。于是, 开始出现种种保护软件、对其收费的措施, 越来越多的厂商开始单独销售软件, 也不再提供软件的源代码, 软件工业开始独立出来了。1976 年,比尔·盖茨就曾发表《致计算机爱好者的公开信 (opens new window)》, 明确提出了软件版权( CopyRight) 的理念。< / p>
< p> 1983 年, 由于私有软件的增长和对不再能自由使用计算机程序的担忧, MIT 的理查德·斯托曼( Richard Stallman) 开始倡导自由软件运动, 并发起了 GNU 计划。GNU 是「GNU is NOT UNIX」的无穷递归缩写, 其目标是构建一整套完全由自由软件构成的 UNIX OS 体系。GNU 起初进展很顺利,开发出 GLibc、GCC、GDB 等一系列操作系统必备软件。< / p>
< p> 随着推动自由软件发展和成熟的愿景日益强烈,理查德·斯托曼意识到仅通过编写和分享 GNU 代码是远远不够的。于是,在 1985 年创建了自由软件基金会( Free Software Foundation, 简称 FSF) , 其主要工作是运行 GNU 计划, 开发更多的自由软件。同时, FSF 还创建了保护 GNU 和其他自由软件项目的法律和制度框架,提出了与 CopyRight 理念针锋相对的 CopyLeft( 许可复制权) 理念, 其表现形式为 GPL, 即公共许可证( General Pubic License) 。< / p>
< p> < strong> Linux< / strong>
1991 年, 林纳斯·托瓦兹( Linus Torvalds) 公开发布了一个类 UNIX 操作系统内核 —— Linux, 并接受 CopyLeft 理念。从 Linux 0.12 版本起, Linux 内核开始采用 GPL 许可证的新版权声明。虽然 Linux 内核并不是 GNU 计划的一部分,但由于 HURD 内核进展缓慢,使得 Linux 得到广泛关注并得以快速发展。GNU 与 Linux 的发展,可以说是相辅相成,因此 我们通常把使用 Linux 内核并且大量使用 GNU 组件的操作系统发行版称为 GNU/ Linux。< / p>
< p> 正是 Linux 的出现,使得自由软件运动有了自己可以与 Microsoft 的 Windows 相抗衡的操作系统。自由软件运动初战告捷。但是,自由软件运动关于自由的追求,毕竟和现实的商业氛围格格不入,带有着过于理想化的色彩。这种反商业的信条,让一些本来也反对私有软件的人士对自由软件敬而远之。正是在这种背景下,一部分原有自由软件运动人士,开始尝试将理想的自由软件与现实的商业氛围进行某种衔接。< / p>
< h2 id=" zi-you-ruan-jian-he-kai-yuan-ruan-jian" > 自由软件和开源软件< / h2>
< p> 1998 年, 埃里克·雷蒙德( Eric Raymond) 等人成立了一个名为开源促进会( Open Source Initiative, 简称 OSI) 的组织。为了减少意识形态上的沟壑, 以及「自由( Free) 」一词造成免费软件的误解。OSI 组织决定从「自由软件」中去掉了「自由」一词, 使用「开源软件」( Open Source Software) 作为共通名称, 并创建了自己的开放源码的定义, 以及自己的一套许可证。< / p>
< p> 正因如此,自由软件运动和开源软件运动有着密不可分的关系,两者的根本差别在于它们看待世界的方法。开源软件运动的理念更倾向于解决实际问题,既抓住了私有软件的痛点,又实现了与商业的融合。< / p>
< h2 id=" kai-yuan-githe-dai-ma-tuo-guan-ping-tai" > 开源、Git和代码托管平台< / h2>
< p> 前面提到,开源软件是允许自由复制和重新分发的,那么分散的开发者之间是如何协作的呢?尤其是 Linux 这样依靠全世界热心的志愿者参与的项目。其实早年( 1991-2002 年间)世界各地的志愿者是通过 diff 的方式把源代码补丁发给 Linus, 然后由 Linus 本人通过手工方式合并代码。直到 2002 年, Linux 项目组才开始启用一个专有的分布式版本控制系统 BitKeeper 来管理和维护代码。< / p>
< p> 但好景不长, 2005 年,开发 BitKeeper 的商业公司结束了与 Linux 内核开源社区的合作。于是 Linux 开源社区(特别是 Linux 的缔造者 Linus Torvalds) 决定开发自己的版本控制系统 —— Git (opens new window)。很快, Linux 内核的源码已经由 Git 全面管理了。Git 是完全分布式的,同时拥有强大的代码管理能力,支持离线操作和非线性分支管理,使用 Git 可以让散布各地的开发者更加高效地协同工作, 可以说, Git 的出现极大地推动了开源的发展。< / p>
< p> 2008 年, GitHub 网站上线了,它为开源项目免费提供 Git 存储,无数开源项目开始迁移至 GitHub。GitHub 的出现让开源的工作方式变得更简单和有趣了。如今,每天都有无数来自世界各地的开发者在 GitHub 上进行交流, Github 已经成为一个包含问题追踪和版本控制的特殊社交网络。< / p>
< p> 初学者容易混淆 Git 和代码托管平台的概念。Git 是版本控制系统,开发者可以通过 Git 在本地工作空间建立项目仓库,每一个 Git 仓库都会包含一个 .git 目录, 里面存储了该项目的每一次源代码的提交日志, 可以方便地回退到过去的任意一个提交的版本与过去的代码进行比对。毫不夸张地说, Git 仓库就像是一个具有魔法的文件系统, Git 则帮我们记录该仓库下所有的读写信息,并在工作空间、暂存区、本地仓库之间随意切换。< / p>
< p> 而代码托管平台,比如 GitHub (opens new window)、GitLab (opens new window)、Bitbucket (opens new window)、Gitee (opens new window)等,则是基于 Git 的代码托管平台,通过网络为用户提供 Git 仓库托管服务。得益于 Git 分布式的特性, Git 代码托管平台上的仓库通常充当远程仓库的角色, 便于多个开发者之间的同步。在此基础之上, 代码托管平台还提供了许多协作功能, 将版本管理、Bug 跟踪、代码审查、邮件列表、IRC 等众多功能组合在一起,以实现更高效的协同开发。简单来说,代码托管平台不仅仅提供代码托管服务,还有项目管理,甚至社交等功能。< / p>
< p> 总的来说, Git 和代码托管平台有直接关联,但又有许多不同的地方。关于 Git 和代码托管平台的操作,将在后续章节展开描述。< / p>
< h2 id=" xiao-jie" > 小结< / h2>
< p> 不会写代码也可以参与开源吗?相信你在读完这篇文章后,在自己心中应该有了答案。< / p>
< p> 当然,答案是肯定的。< / p>
< p> 从自由软件运动和开源文化的发展来看,我们会发现其实它是一场社会运动,是一种生产方式的革新。开源运动旨在利用开源软件的价值和分散的生产模型,为其社区和行业的问题寻找新的解决方式。之所以首先出现在软件领域,是因为软件作为一个新兴领域,所受阻力相对较小,同时软件可以依托网络进行异步协作和分发,大大减少了时间和空间的差异以及获取成本。但从涉猎范围来看,开源除了适用于软件领域以外,在开源硬件、开源设计、开源文档等领域也有足够的发挥空间。< / p>
< p> 时至今日,开源已经成为一种超越软件生产界限的运动和工作方式。「源」的含义也从「源代码」扩展到各类「资源」。像文中提到的硬件领域,随着 Arduino 和树莓派的流行,如今我们对「开源硬件」一词已经不陌生了。还有许多与软件源代码具有相同传播属性的各类设计文档,比如书籍、博客、食谱、配方、照片、音频和视频制品等资料。非营利性组织 Creative Commons 的 CC 许可协议就是专门应用于此类著作权法的保护。< / p>
< p> 而且,开源协议实质是权利人将其复制权、发行权、修改权等附条件地许可给不特定公众的著作权许可使用合同。开源软件许可证的法律性质是司法保护中最核心的问题,尤其是近年来多变的国际形势下,开源安全、开源治理、开源合规等问题愈发突出,这就意味着需要更多专业人才的参与。同时,开源社区的构建和运营对于开源软件生态发展和影响力非常重要,也需要相关人才参与。< / p>
< p> 总之,开源与我们息息相关,即便你不写代码,也能为开源事业贡献一份力量。当然,我们也期望更多开发者能够参与开源(强烈建议)!愿你在开源领域乘风破浪,所向无前!< / p>
</content>
2024-04-20 20:00:25 +08:00
</entry>
<entry xml:lang= "en" >
<title > 路由器原理与组网</title>
<published > 2024-02-19T00:00:00+00:00</published>
<updated > 2024-02-19T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/routing/" />
<id > https://blog.dich.ink/routing/</id>
<summary type= "html" > < p> 前言 所谓无线路由,就是具备无线覆盖的路由器,即我们常用的有天线的家用路由器。而家庭组网中,除了选择一个最合适的上网方案,一部好的路由器也是非常重要;那么,如何科学的选购路由器呢?< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > MJJ入门: 国内至国际骨干ISP线路整理</title>
<published > 2024-02-10T00:00:00+00:00</published>
<updated > 2024-02-10T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/local-isps-to-cn-report/" />
<id > https://blog.dich.ink/local-isps-to-cn-report/</id>
<summary type= "html" > < p> 前言 本文主要探讨的是IPv4网络, 国际出口线路的质量分析以及各大ISP的介绍。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
2024-04-21 21:33:22 +08:00
<title > 搭建个人信息流:播客收听指北</title>
2024-04-20 20:00:25 +08:00
<published > 2024-01-20T00:00:00+00:00</published>
<updated > 2024-01-20T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/podcast-use/" />
<id > https://blog.dich.ink/podcast-use/</id>
<summary type= "html" > < p> 前言 讲起播客,许多人第一反应是喜马拉雅,但其实播客的订阅和收听有许多种方式。本文带你了解订阅播客的各种方式,并告诉你市面上有哪些不错的播客客户端可供选择。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
2024-04-21 21:33:22 +08:00
<title > 搭建个人信息流:RSS阅读指南</title>
2024-04-20 20:00:25 +08:00
<published > 2024-01-20T00:00:00+00:00</published>
<updated > 2024-01-20T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/rss-read/" />
<id > https://blog.dich.ink/rss-read/</id>
<summary type= "html" > < p> 前言 RSS 提供了一种数据格式,以 XML( 可扩展标记语言) 的形式组织信息, 包括文章标题、摘要、链接和发布日期等。这些信息形成了所谓的“订阅源”( Feed) , 用户可以使用RSS阅读器( Feed Reader) 来订阅这些源。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 如何高效地向 ChatGPT 提问</title>
<published > 2024-01-07T00:00:00+00:00</published>
<updated > 2024-01-07T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/chatogpt/" />
<id > https://blog.dich.ink/chatogpt/</id>
<summary type= "html" > < p> 前言 本文翻译自《The Art of Asking ChatGPT for High-Quality Answers A Complete Guide to Prompt Engineering Techniques》< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 搜索引擎与爬虫</title>
<published > 2024-01-07T00:00:00+00:00</published>
<updated > 2024-01-07T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/searching/" />
<id > https://blog.dich.ink/searching/</id>
<summary type= "html" > < p> 前言 搜索引擎原理可以简单分为三个过程:爬行,索引,排名。< / p>
</summary>
2024-04-21 20:17:06 +08:00
</entry>
<entry xml:lang= "en" >
2024-04-21 20:21:07 +08:00
<title > 应届生工作指南</title>
<published > 2023-12-27T00:00:00+00:00</published>
<updated > 2023-12-27T00:00:00+00:00</updated>
2024-04-21 20:17:06 +08:00
<author >
<name >
Unknown
</name>
</author>
2024-04-21 20:21:07 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/about-working/" />
<id > https://blog.dich.ink/about-working/</id>
2024-04-21 20:17:06 +08:00
2024-04-21 20:21:07 +08:00
<summary type= "html" > < p> 前言 什么是“五险一金”?工资到底由那些部分组成?劳动合同怎么签?不仅仅是应届生,很多工作了几年的职场人,也不十分清楚。因此,在这里笔者打算帮助大家彻底把这些事情搞明白。< / p>
2024-04-21 20:17:06 +08:00
</summary>
2024-04-20 20:00:25 +08:00
</entry>
<entry xml:lang= "en" >
2024-04-21 20:21:07 +08:00
<title > 电子邮件是如何工作的:POP3/ IMAP/ SMTP</title>
<published > 2023-12-25T00:00:00+00:00</published>
<updated > 2023-12-25T00:00:00+00:00</updated>
2024-04-20 20:00:25 +08:00
<author >
<name >
Unknown
</name>
</author>
2024-04-21 20:21:07 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/how-email-works-2/" />
<id > https://blog.dich.ink/how-email-works-2/</id>
2024-04-20 20:00:25 +08:00
2024-04-21 20:21:07 +08:00
<summary type= "html" > < p> 前言 POP3、IMAP 和 SMTP 是用于电子邮件传输的常见协议和服务,这些协议共同构成了电子邮件系统的基础,允许用户接收、发送和管理电子邮件。< / p>
2024-04-20 20:00:25 +08:00
</summary>
</entry>
<entry xml:lang= "en" >
2024-04-21 20:17:06 +08:00
<title > 电子邮件是如何工作的:SPF/ DKIM/ DMARC</title>
2024-04-20 20:00:25 +08:00
<published > 2023-12-24T00:00:00+00:00</published>
<updated > 2023-12-24T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
2024-04-21 20:17:06 +08:00
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/how-email-works-1/" />
<id > https://blog.dich.ink/how-email-works-1/</id>
2024-04-20 20:00:25 +08:00
<summary type= "html" > < p> 前言 在互联网的日常使用中,电子邮件作为一项基础服务扮演着重要的角色。尽管在过去几十年里出现了各种新型的通讯方式,但电子邮件仍然保持着其不可替代的地位。了解电子邮件的工作原理,有助于更好地理解这一基础服务是如何运作的。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 机械革命键盘失灵拯救记</title>
<published > 2023-09-04T00:00:00+00:00</published>
<updated > 2023-09-04T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/mechrev-keyboard/" />
<id > https://blog.dich.ink/mechrev-keyboard/</id>
<summary type= "html" > < p> 前言 机械革命作为一款极高性价比的笔记本,其优惠的力度和问题不断的故障让玩家们爱恨交织;作者在其上安装 Linux 时遇到了键盘失灵的问题,为了避免更多人踩坑,故写本文。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
2024-04-21 22:30:10 +08:00
<title > Windows恢复单级菜单,设置开机启动及彻底关闭更新</title>
2024-04-20 20:00:25 +08:00
<published > 2023-08-26T00:00:00+00:00</published>
<updated > 2023-08-26T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/windows-secondary-menu-recovery-and-settings-boot-startup/" />
<id > https://blog.dich.ink/windows-secondary-menu-recovery-and-settings-boot-startup/</id>
<summary type= "html" > < p> 前言 Windows操作系统作为全球最为普及的桌面操作系统之一, 其用户界面的设计非常经典; 而win11中的二级菜单令人感到无语, 本文教你回到一级菜单。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 常见发音错误术语集合</title>
<published > 2023-08-25T00:00:00+00:00</published>
<updated > 2023-08-25T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/accurate-pronunciation/" />
<id > https://blog.dich.ink/accurate-pronunciation/</id>
<summary type= "html" > < p> 前言 中文和英语发音习惯不同,容易引起误解。本文旨在帮助您准确发音常见的科技术语,欢迎随时补充。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 流量卡购买与套路</title>
<published > 2023-08-24T00:00:00+00:00</published>
<updated > 2023-08-24T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/calling-cards/" />
<id > https://blog.dich.ink/calling-cards/</id>
<summary type= "html" > < p> 前言 由于临近升学,校园网不尽人意,因此许多小伙伴有了买一张流量卡的计划。本文以三大运营商为例,说明常见流量卡的套路与选择。< / p>
</summary>
</entry>
<entry xml:lang= "en" >
<title > 快过年了笑话大全</title>
<published > 2023-08-23T00:00:00+00:00</published>
<updated > 2023-08-23T00:00:00+00:00</updated>
<author >
<name >
Unknown
</name>
</author>
<link rel= "alternate" type= "text/html" href= "https://blog.dich.ink/kgnl/" />
<id > https://blog.dich.ink/kgnl/</id>
<summary type= "html" > < p> 前言 快过年了系列笑话常常于过年期间在各大平台传播, 反应了各技术人士的爱好与工作。本文收集了24个该系列的笑话, 欢迎补充。< / p>
</summary>
</entry>
</feed>