This article is reproduced from the public account: Open Source Rainforest
Author: Xu Liang
open source OS distribution
Open source OS distributions, also commonly referred to as GNU/Linux distributions, are the integration point of many basic open source software, and their special position in the ecosystem makes them play an important connecting role in technical direction, interpersonal relationships, etc. At the same time, the integrated products are provided to end users to form a closed loop with the business logic and ecological logic behind them.
A typical OS distribution community can be divided into two parts: community and product. The community part carries its philosophical system, project process, documentation, technical perspective and social relations; the product part is the common integration results built on the basis of GNU basic system software, Linux kernel, upper-level applications, and function libraries, which run through the entire integration. It is its package management system.
What are the ecological roles of open source OS distributions
Open Source Philosophy
The OS distribution is an evergreen tree in the open source community. A mature distribution community often has the most senior open source theory practitioners in the entire open source community, and is an important component of the development and construction of the open source philosophy system. For example, the "Open Source Software Definition" recommended by the more commonly used Open Source Initiative is derived from the Debian Free Software Guidelines (DFSG).
Early assessment of basic software engineering capabilities
Because distributions include a large amount of open source software, often with continuous development and integration at a relatively fast pace, they are ideal for basic software testing grounds. For example, before the major version update of GCC, Fedora and Ubuntu will plan to compile and test the full code for the new version, various compilation options, and different hardware architectures, while Debian maintains support for about 20 kinds of hardware/ABI. It can provide data reference for improvements in security, performance, developer affinity, etc. In addition to new functional features, the early adoption of basic software is also inseparable from the support of new hardware, such as new processor architecture porting, new processor instructions, architecture updates, and optimizations related to the above.
Engineering Capability
As an important integration point of open source basic software, the main workload in the development of OS distribution comes from the selection, integration and testing of thousands of open source software, as well as the design and development to better drive these work. tools, platforms and other infrastructure. Common OS distributions have a certain mechanism, which can quickly incorporate new upstream versions and new functions in a rolling development version, and conduct feature-level integration and joint debugging of all components of the entire distribution.
为了支持这些集成、测试、合规、安全等方面的工作,发行版社区形成了较为丰富的工程能力理论和工具体系,与此同时发行版的实践过程也表明,工具的研发迭代能够极大地提升生产效率、提高产品质量,与此同时每个具体开发者的个人素质发展,对社区和社区产品仍然至关重要。
Human Connections
Due to the large number of open source software involved and the diverse interest groups, as developers integrate and test basic software day after day, and in accordance with good community habits, they will generate continuous feedback on upstream independent open source projects, Interaction, and even more in-depth contributions; this kind of influence accumulated through long-term technical contributions in accordance with community best practices makes the distribution community often have extremely rich interpersonal connections in the industry.
User and partner system
The OS distribution is provided to users and partners in the form of integrated products, which is also a direct step for the distribution community to form a closed loop of business and ecological logic. In addition to end users, this system also includes hardware manufacturers, software ISVs, downstream derivatives, etc. that are developed based on this release.
Commercial distributions and community distributions usually have very different user and partner systems: commercial distributions often choose their direction of development based on cash flow and market potential; community distributions pay more attention to the needs of contributors and existing user groups. This system itself will have a profound impact on the community direction and product strategy. It is the community gene of an OS distribution, so that it will form some solid impressions of this OS distribution in the society.
common package management system and release strategy
Package Management System
The package management system (including system configuration management) is the thread that runs through the OS distribution integration process, including the overall system architecture design and the set of basic tools. All integrated development work, upper-level tools and platforms in the community take this as a starting point. There are two main types of package management systems: binary distributions and source code distributions.
binary distribution
It is mainly in the form of directly providing precompiled binary software packages to users, and users can directly install the compiled binary files, which is also the most common distribution form in OS distributions. There are two traditional binary package management systems: DEB and RPM. The former is mainly used by Debian and Ubuntu, and the latter is mainly used by Redhat and SUSE. In addition, there are new concept package management systems such as Flatpak, Snap, and Nix. The package management of binary distribution still has a certain degree of source code package management capability, which is usually only used in limited scenarios such as dynamic kernel modules.
Source Distribution
It is mainly in the form of providing source code to users, assisting users to compile and install software locally according to their needs. Under the source code distribution-based package management system, users can install some precompiled binary packages. For example, Gentoo provides Stage 3 binary packages as the initial environment, and Archlinux provides binary versions for all core packages, but both are favored by their respective users for their flexible compilation and installation management capabilities.
two types of release strategy
The release of a new version is one of the most important product events of an OS release. "Release" itself is an important driving force for product development and evolution. Release goals and release strategies will have a profound impact on daily development activities. The formulation of product release strategies is generally determined based on the needs of users and partners in the community, combined with technical positioning, business and ecological positioning. The more popular two types of release strategies are quality-based and time-based, and more and more quality-based release communities are turning to a hybrid release strategy based on quality and time.
based on quality release – release when ready
This is a release mode with a long history, and it is also the earliest release strategy adopted by many OS distributions. In short, the quality-based release strategy is that only when the preset release conditions are met (for example, the number of known issues of a certain severity level is less than a certain value, and some testing actions have been completed), there will be a new version release event. .
▏Advantages: The product release process is meticulous, and the quality of the release moment is high.
▏ Disadvantages: The iteration speed is limited, and the slower the release, the more serious the problem of being out of touch with new technologies and new products in the community.
– release just in time
This is a release model that actually has a strong combination with ecological needs. The earliest adopter of OS distributions is Ubuntu. Under the time-based release strategy, both R&D arrangements and release events are driven by time nodes, and the error tolerance is calculated on a daily basis.
▏Advantages: Fast iteration speed, agile integration into the new version of the community, attractive to users and developers.
▏ Disadvantages: Even the long-term support version has many remaining problems in the early stage of release, and the quality will continue to improve within a certain period of time after the release.
Summary
community not to pay for all the products for the purpose of
The open source OS community is a large collaborative platform driven by the product development process to solve complex system integration problems.
The meaning of the integrated community is to integrate and connect
Connectivity in open source and make the integrated product available to end users.
Only when it has a profound impact on the upstream and downstream can the community be evergreen
It is not difficult to create an OS product, and it is relatively easy to provide value to specific users; however, the open source OS community that has been recognized for a long time today has its own unique positioning in the public domain, and based on this positioning, upstream and downstream supply chain has had a profound impact.
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。