1、The Concept and Development History of Open Source
Open Source refers to “Open Source Software” (Open Source), under the terms of the open source license, the “use, modification, and distribution” of open source software are unrestricted. Compared to closed source, the difference lies in the way information is shared. Open source is often indiscriminately equated with free, while closed source is typically presented with copyright, requiring payment for purchase, and users cannot access the source code. For example, regarding operating systems, Linux is open source, while Windows is closed source.
The authoritative definitions and standards of open source can be found on the OSI website (OSI stands for Open Source Initiative), which was established in 1998 by the leaders of the free software movement, Perens and Raymond. The vision of this association is to create a community environment for software developers to co-build an open source software ecosystem, as referenced in the screenshot below.
OSI Vision :The OSI supports institutions and individuals working together to create communities of practice in which the healthy open source ecosystem thrives.
OSI Website : https://opensource.org/

When it comes to the “open source spirit,” we must mention the famous programmer Eric S Raymond, who is the main creator of the INTERCAL programming language, the author of the Fetchmail program, and has contributed to the EMACS editor. His famous quote, “Given enough eyeballs, all bugs are shallow” has had a significant impact on the open source code movement. Raymond’s book, The Cathedral and the Bazaar, is regarded by programmers as the bible of open source culture, systematically explaining the production of open source software, the advantages of open source development, and the inheritance of open source software. Raymond and his book are referenced in the screenshot below.
It can be said that the hacker culture (Hacker Culture) has driven the development of open source technology. The early open source advocates believed that open source, sharing, and crowdfunding could provide programmers with a higher sense of achievement and lead to greater productivity. Open source has developed strongly with the stance of “free + open,” with waves of programmers immersing themselves in the open source community, contributing code, writing documentation, and promoting projects. “Open source” is a disruption to the traditional “closed source” business model, providing another option for many individual and enterprise developers.
2、Advantages of Open Source
There are three different roles in open source projects. The project’s “operators” are the core members of the open source project, reviewing code and submitting it to ensure the quality of the open source project’s code, promoting their project to more developers, and providing support and assistance to new developers. The project’s “contributors” propose issues or PRs, or merge other PRs into the main branch, contributing useful value to the project; the “users” are the “end users” of the open source project, who provide feedback and report bugs during usage.
The value of open source software for “users” includes improving the development efficiency of software products, expanding the freedom of solution choices, and enhancing the reliability of software systems.
-
Improving software product development efficiency:Compared to closed source software, open source software can be “directly used,” saving development costs and shortening development time, which is of great value for small enterprises and innovative projects. Additionally, many open source software have good code standards, making it easy for developers to get started.
-
Expanding the freedom of solution choices: Various open source projects and the “ready-to-use” model allow developers to flexibly experiment with choices before finalizing a solution, without restrictions. Compared to the strong constraints of closed source software, using open source software gives developers a higher degree of autonomy.
-
Enhancing the reliability of software systems: As Raymond said, “Given enough eyeballs, all bugs are shallow.” The publicly available source code allows more users to participate in inspection and verification, enabling many bugs to be quickly discovered. The maintainers of open source projects continuously fix issues with the help of developers, improving the reliability of the code.
3、Protocols to Follow for Open Source
While open source greatly enhances the freedom of developers, it does not mean that using open source project’s code allows for “doing as one pleases.” Users must accept a license agreement (Open Source License) when using open source software. The open source license affects how people use, learn, modify, and distribute software. Currently, there are approximately hundreds of open source licenses, with common ones including LGPL, Mozilla, GPL, BSD, MIT, and Apache. Among them, the licenses that cannot be closed source include GPL, LGPL, and Mozilla, as referenced in the classification in the following image, while licenses that can be closed source include BSD, MIT, and Apache.

(1)Licenses that cannot be closed source: include GPL, LGPL, Mozilla
-
GPL License (General Public License)
The GPL’s starting point is the open source/free use and citation/modification/derivation of code, but it does not allow modified and derived code to be released and sold as closed source commercial software. For example, the Linux system uses the GPL license.
-
LGPL License (Lesser General Public License)
LGPL is a derivative version of GPL, also known as GPL V2, and this license is primarily designed for library-based open source projects. Unlike GPL, which requires any software using/modifying/deriving from GPL libraries to adopt the GPL license, LGPL allows commercial software to use LGPL libraries through linking without needing to open source the commercial software’s code. This means that open source code under the LGPL license can be referenced by commercial software as a library and published and sold. LGPL-licensed open source code is well-suited to be referenced as third-party libraries by commercial software but is not suitable for commercial software aiming to base itself on LGPL-licensed code for secondary development through modification and derivation.
(2)Licenses that can be closed source: include BSD, MIT, Apache, etc.
-
BSD License (Berkeley Software Distribution)
The BSD open source license gives users a lot of freedom. Users can freely use and modify the source code, and can also re-release the modified code as open source or proprietary software. When you release software that uses BSD-licensed code, or develop your own product based on BSD-licensed code, you must meet three conditions: If the released software includes source code, the source code must continue to adhere to the BSD license; If the released software only contains binary programs, the related documentation or copyright files must state that the original code adheres to the BSD license; It is not allowed to use the original software’s name, author’s name, or organization name for marketing purposes.
-
Apache License (Apache License Version)
Similar to BSD, Apache is also applicable to commercial software. The Apache license provides copyright and patent licenses to developers while allowing users the freedom to modify and re-release the code. Developers of software under this license must strictly adhere to the following four conditions: The software and its derivatives must continue to use the Apache license; if the source code is modified, it must be declared in the documentation; If the software is based on someone else’s source code, the original code’s license, trademark, patent statements, and other original author declarations must be retained. If there are declaration files in the released software, the Apache license and other licenses must be indicated in these files. Popular projects like Hadoop, Apache HTTP Server, and MongoDB are all developed based on this license.
4、Misunderstandings of Open Source and Existing Problems
(1)Open source does not equal just opening the source code
For open source projects, opening the source code is just the beginning, not the end. If an open source project is “managed but not maintained,” it is likely to have weak vitality. Projects may cease due to environmental changes, so as initiators of open source projects, to ensure the subsequent development of the project, they should develop their core maintenance team; as users of open source projects, they should participate in project maintenance when possible.
(2)Open source is not a given
Years ago, an article titled “Why Over 80% of Open Source Developers Struggle at the Poverty Line?” circulated in the programmer community, discussing based on statistical data from large open source communities how “open source developers should survive?”. Too many developers are enthusiastic about being Free-riders from open source projects, but have no interest or motivation to give back to the open source community. Although open source projects attempt to maintain operations by expanding different profit models, including open source free + enterprise version paid, open source free + service fee, open source free + advertising or sponsorship, etc., most open source projects exist in a “freeloader” state. For some projects’ closed-source parts, they may be morally coerced with “Why don’t you open source?” which leaves operators speechless, and they may inwardly retort, “Is this brother freeloading while acting like a master?!”. Over time, it is difficult for the open source community to develop healthily and sustainably.
5、Ways to Approach Open Source
Open source greatly helps small companies like us, enriching our solution choices during the innovation phase and reducing our trial-and-error costs, especially in the currently hot field of artificial intelligence embedded systems. In specific projects, the steps we adopt are:
-
Project Innovation and Validation Stage: Using open source projects for prototype validation, trying new technologies, and reducing human input during the solution selection phase.
-
Project Bulk Delivery Stage: Based on the final delivery goals, list core software function modules, and analyze whether the licenses of the currently borrowed open source modules have any impact, formulate self-research plans for these software modules, and execute software project development and validation.
“Innovative borrowing of open source resources, stable delivery built on closed source”, balancing efficiency and stability while ensuring project autonomy. Additionally, we are also trying open source projects in the field of artificial intelligence embedded hardware, such as the hardware design solutions of Huashan School, which are completely open.
Learn more about RISC-V + Artificial Intelligence Embedded Knowledge by scanning the QR code to enter the course
