This article is selected from Gitee, inviting all open source enthusiasts to participate in the compilation of open source encyclopedia project “Open Source refers to north”, check out more open source encyclopedia can visit Gitee open source refers to North warehouse: gitee.com/gitee-commu…

Open Source concept

The word “Open Source” corresponds to The English Open Source, originally originated in the field of Software development, so it is also called “Open Source”, and the corresponding Software is called Open Source Software. In addition to the well-known Open Source software, the forms of Open Source include Open Source Hardware, Open Design and Open Document.

Open source software

Is open source software open source software?

Actually it’s not. According to the OSD defined by the Open Source Initiative Association (OSI), in addition to the Open Source code, the distribution terms of Open Source software must meet the following 10 conditions:

The serial number The terms of Simple instructions
1 Free Redistribution Allow free redistribution of software
2 Source Code The program must contain all source code
3 Derived Works You can modify and derive new software
4 Integrity of The Author’s Source Code Maintain software source code integrity when distributing
5 No Discrimination Against Persons or Groups Do not discriminate against any person or group
6 No Discrimination Against Fields of Endeavor Do not discriminate against any application field (e.g. business)
7 Distribution of License There is continuity in the issuance of licenses
8 License Must Not Be Specific to a Product The license cannot be specific to one product
9 License Must Not Restrict Other Software The license does not restrict other software
10 License Must Be Technology-Neutral The license must be technology neutral

You can learn about common Open Source licenses by consulting the Open Source Initiative’s catalog of OSI official licenses.

By understanding these constraints, we can arrive at the definition of open source software: open source software is technically and statically licensed open source software.

Open source software needs to keep an open mind, be objective and impartial about any technology and position, and be open source under an open source license for anyone to use, copy, modify, and redistribute. Open source license agreements are mainly divided into two categories: lax license agreements (Apache, BSD, MIT, etc.) and strict license agreements (GPL, GPL V3, LGPL, Mozilla, etc.). In addition, a good sustainable open source software also requires the public release of project technical documents and other materials, binary files (optional), and an open community to receive feedback from users and developers to discuss the development of open source software.

Open source hardware

We’ve had a brief introduction to open source software, but what is open source hardware?

By analogy with open source software, you might mistakenly think of open source hardware as hardware that is freely available, modified, and redistributed. If you think so, you are wrong, after all, hardware is physical, you can see and touch. Let’s start with a quick look at what the Open Source Hardware Association says about Open Source Hardware:

Open source hardware is a hardware design that is publicly available and can be studied, modified, published, produced, and sold by anyone. The specific format of the source code for the hardware design is available for others to modify. Ideally, open source hardware uses widely available electronics and materials, standard processes, open infrastructure, unlimited content, and open source design tools to maximize the ease with which individuals can utilize the hardware. Open source hardware offers people the freedom to control their technology while sharing knowledge and encourages an open exchange of trade in hardware design.

An important point here is that OSHWA describes open source hardware in terms of hardware design rather than hardware itself. The definition of open source hardware is based on open source software, which will not be described here. Interested readers can find the full definition of open source hardware on the OSHWA website.

At present, well-known open source hardware includes Arduino, Raspberry Pi, BeagleBone and so on.

Open source design

Open source design is another form of open source projects. Open source design is defined as the design projects that can be obtained through open channels under the open source license, mainly referring to non-source type projects, such as icon, UI, drawing, and so on. These projects also need to comply with the open source agreement and enjoy the protection of the agreement’s regulations.

Here is an icon design for your reference.

  • Open Source and Open Design – Make Icons Witch Sketch

Open source document

Open source document is very common in the open source project, the definition of open source document is to follow the open source license can be gained through public channels document class project, open source document exists in various projects, the kinds of wide coverage, like blog, wiki, recipes, cold knowledge, project documentation can be used as a source document sharing. There are many common open source protocols in open source documentation, such as the cc-BY-NC-SA protocol used in Open Source North.

History of Open Source

UNIX

When it comes to the history of open source, we have to start with Unix.

Around 1965, Bell LABS (Bell), MIT (MIT), and GENERAL Electric (GE) jointly initiated the Multics project to develop a comprehensive, universal time-sharing operating system that could be used by more than 300 terminals at the same time on a mainframe. However, in 1969, bell LABS withdrew from the Multics project after deciding it was impossible to succeed because the project was behind schedule and short of money. The Multics program didn’t work out, but it produced a lot of great people, including Ken Thompson and Dennis Ritchie.

Figure 1.1 Ken Thompson (seated) and Dennis Ritchie working in front of the PDP-11

Back at Bell LABS, researchers led by Ken Thompson learned from the failure of the Multics project and simplified Multics’ large and complex system to create a prototype time-sharing operating system, which they named UNIX. During the next decade, UNIX was widely used in academic institutions and large enterprises. AT&T, the owner of UNIX at the time, licensed UNIX source code to academic institutions for research or teaching purposes at low or no cost, and many organizations expanded and improved on the source code.

AT&T agreed not to enter the computer business and sell any computer-related products in an early settlement to avoid being sued by the Department of Justice for violating antitrust laws. Thus, for the first 15 years of UNIX’s existence, academic institutions and hackers freely shared source code and worked together to develop UNIX systems in a decentralized manner. It served as a foundation for the ideological and community birth of foSS.

The turning point came in 1984, when the restrictions on AT&T were lifted and AT&T began selling UNIX at profitable prices. The source code for UNIX was still available, but AT&T’s transformation of UNIX from a research project to a commercial one created a crisis in the UNIX hacker community, which began searching for an alternative Unix-like system.

GNU

In fact, even before UNIX became a commercial project, manufacturers began to expect additional revenue from software because of falling hardware prices. As a result, there began to be various measures to protect software and charge for it. More and more manufacturers began to sell software separately and no longer provide the source code of software. The software industry began to be independent. In 1976, Bill Gates published an Open Letter to Computer Enthusiasts, explicitly proposing the concept of software CopyRight.

Figure 1.2 Richard Stallman

In 1983, due to the growth of proprietary software and concerns that computer programs could no longer be freely used, Richard Stallman of MIT began to advocate the free software movement and launched the GNU Project. GNU is an infinite recursive abbreviation for “GNU is NOT UNIX” and its goal is to build a UNIX OS made entirely of free software. GNU did well at first, developing GLibc, GCC, GDB and other essential software for operating systems.

As the vision for free software grew and matured, Richard Stallman realized that writing and sharing GNU code was not enough. Thus, in 1985, the Free Software Foundation (FSF) was created to run the GNU project and develop more Free Software. At the same time, the FSF created the legal and institutional framework for protecting GNU and other free software projects, and developed the antithesis of CopyRight ideas known as CopyLeft, in the form of the GPL, or General Pubic License.

Linux

In 1991, Linus Torvalds publicly released a Unix-like operating system kernel, Linux, and embraced CopyLeft ideas. As of Linux version 0.12, the Linux kernel has adopted a new copyright notice under the GPL license. Although the Linux kernel was not part of the GNU project, the slow progress of the HURD kernel led to the widespread attention and rapid development of Linux. The development of GNU and Linux can be said to complement each other, so we usually refer to operating system distributions that use the Linux kernel and use GNU components extensively as GNU/Linux.

Figure 1.3 Linus Torvalds

It was Linux that gave the free software movement its own operating system to rival Microsoft’s Windows. The free software movement had its first success. However, the free software movement on the pursuit of freedom, after all, and the reality of the business atmosphere, with too idealistic color. This anti-business doctrine has led some people who are also opposed to proprietary software to stay away from free software. It was in this context that some former free software activists began to try to connect the ideal of free software with the real business atmosphere.

Free software and open source software

In 1998, Eric Raymond and others formed a group called the Open Source Initiative, or OSI. To reduce ideological gaps, the word “Free” was misinterpreted as Free software. The OSI organization decided to drop the word “free” from “free Software,” use “Open Source Software” as the common name, and create its own definition of Open Source, along with its own set of licenses.

Figure 1.4 1998 Open Source Summit

This is why the free software movement and the open source software movement are inextricably linked. The fundamental difference between the two is their way of looking at the world. The idea of the open source software movement is to solve practical problems, to grasp the pain points of proprietary software, and to achieve integration with business.

Open source, Git, and code hosting platforms

As mentioned earlier, open source software is freely copied and redistributed, so how do decentralized developers collaborate? Especially a project like Linux that relies on enthusiastic volunteers from all over the world. In the early years (1991-2002), volunteers around the world sent code patches to Linus via Diff, and Linus then manually merged the code. It wasn’t until 2002 that the Linux project team started implementing a proprietary distributed version control system, BitKeeper, to manage and maintain code.

In 2005, the commercial company that developed BitKeeper ended its relationship with the Linux kernel open source community. So the Linux open source community (and in particular Linus Torvalds, the creator of Linux) decided to develop its own version control system, Git. Soon, the source code for the Linux kernel was fully managed by Git. Git is completely distributed, and has powerful code management capability, supporting offline operation and nonlinear branch management. Using Git can make the developers scattered around work together more efficiently. It can be said that the emergence of Git has greatly promoted the development of open source.

GitHub founders P.J. Hyett, Tom Preston-Werner, and Chris Wanstrath

In 2008, GitHub launched to provide free Git storage for open source projects, and countless open source projects began migrating to GitHub. GitHub has made the way open source works easier and more fun. GitHub has become a special social network for issue tracking and version control, with countless developers from all over the world communicating on a daily basis.

It’s easy for beginners to confuse Git with code hosting platforms. Git is a version control system, developers can use Git to establish project repositories in the local workspace, each Git repository will contain a. Git directory, which stores the project every time the source code submission log, you can easily go back to any version submitted in the past and compare with the past code. A Git repository is literally a magical file system. Git keeps track of all read and write information in the repository and switches between the workspace, staging area, and local repository.

And code hosting platforms, such as GitHub, GitLab, Bitbucket, Gitee, etc., are git-based code hosting platforms, providing users with Git repository hosting services through the network. Thanks to Git’s distributed nature, repositories on Git code hosting platforms often act as remote repositories for easy synchronization between multiple developers. On top of that, the code hosting platform provides collaboration capabilities that combine versioning, Bug tracking, code review, mailing lists, IRC, and many more for more efficient collaborative development. Simply put, code hosting platforms not only provide code hosting services, but also project management and even social functions.

In general, Git is directly related to code hosting platforms, but there are many differences. The operation of Git and code hosting platforms will be described in subsequent chapters.

summary

Can you participate in open source without writing code? I believe you should have the answer in your mind after reading this article.

The answer, of course, is yes.

From the development of free software movement and open source culture, we will find that it is actually a social movement and an innovation of production mode. The open source movement seeks to harness the value of open source software and a decentralized production model to find new solutions to the problems of its communities and industries. The reason why it first appeared in the field of software is that software, as an emerging field, is subject to relatively little resistance, and software can rely on the network for asynchronous collaboration and distribution, which greatly reduces the difference in time and space and acquisition cost. However, in terms of scope, open source is not only applicable to the software field, but also has enough space to play in the fields of open source hardware, open source design and open source documents.

Today, open source has become a movement and a way of working beyond the boundaries of software production. The meaning of “source” also extends from “source code” to “resources”. In hardware, for example, with the popularity of Arduino and raspberry PI, the term “open source hardware” has become familiar. There are also many design documents that share the same dissemination properties as software source code, such as books, blogs, recipes, recipes, photos, audio and video artifacts, and so on. Creative Commons, a non-profit organization, has a CC license designed specifically for such copyright law protection.

Open source is relevant to us, and even if you don’t write code, we expect you to participate in open source (strongly recommended)! May you ride the wind and waves in the open source field.

The resources

  • The Open Source Definition
  • Open Source Summit Trip Report by Guido van Rossum
  • Why Open Source misses the point of Free Software by Richard Stallman
  • The Cathedral and the Fair by Eric S. Raymond, Jianfan Wei (translation)
  • If We Are Free, Sam Williams, Nan Deng/Fanxi Li (translation)
  • Just For Fun by Linus Torvalds/David Diamond
  • Hackers and Painters, Paul Graham and Nguyen Yifeng (translation)
  • The Authoritative Guide to Git by Jiang Xin
  • Introduction and Practice of GitHub by Hiroki Otsuka, Peng Hao Zhi/Bin Liu
  • Open Source Hardware Association
  • Open-source hardware
  • The history of FOSS
  • GNU/Linux Q&A by Richard Stallman

Contributors to this section

Akimidong, Snow Mountain Ling Fox, Nicholas Zhan, MY name is XXX, WhitePaper, Brycen, Taotieren, Khiko

Find errors in content? Or do you want to add more content that fits the theme? Open Source north welcomes you to contribute. Click on the contribution guide to learn how to contribute.