Linux development model and operating mechanism

  
 

The emergence of free software has changed the traditional company-based closed software development model. An open and collaborative development model is used to provide source code free of charge, allowing anyone to obtain, modify, and republish source code for free software. This development model has inspired the enthusiasm and enthusiasm of software developers around the world. A large number of software developers have invested in the development of free software. The collective wisdom of software developers is fully utilized, which greatly reduces unnecessary duplication of effort and enables the vulnerability of free software to be discovered and overcome in time. It is impossible for any company to invest such a powerful manpower to develop and test commercial software. This development model gives free software a strong vitality.

In the development of commercial Unix, the development of the entire system must have strict quality assurance measures, complete documentation, complete source code, comprehensive test reports and corresponding solutions. Developers are not free to add features to the program and modify the key parts of the code. If you want to modify the code, they have to write it into the error report to make it valid, and then receive the source code control system check. If the modification is found to be inappropriate, Modifications may also be void. Each developer designs one or several parts of the system code, and the developer can only change the code during the program check. The Quality Assurance department conducts rigorous regression testing of the new operating system
internally and reports the problems found, and the developer is responsible for resolving the reported problems. The Quality Assurance department uses a sophisticated statistical analysis system to ensure that a few percent of the program errors have been modified at the next release.

In short, the commercial Unix development process makes the code very complicated. Therefore, in order to guarantee the revision quality of the next operating system, the company has to collect and statistically analyze the performance of the operating system. Developing a commercial Uinx is a big project, often involving hundreds of programmers, testers, snipers, and system administrators.

For Linux, you can throw away the concept of the entire organization development, source code control system, structured error reporting, statistical analysis and so on.

Linux was originally developed by a group of volunteers from all over the world via the Internet. Through the Internet and other means, anyone has the opportunity to assist in the development and debugging of Linux kernels, linking new software, writing documentation or helping new users. In fact, there is no separate organization responsible for developing this system, and the Linux community mostly communicates with the USENET message group via the mailing list. Many agreements have skipped the development process. If you want to include your own code in the "official" kernel, just send an email to Linus Torvalds, and he will test it and include it in the kernel (as long as the code does not make the kernel Crash and not contradict the overall system design, Linus is happy to include it).

The Linux system itself is designed with a completely open, feature-focused approach. The general rule is to release a new version of the Linux kernel in about a few months. Of course, the release cycle also depends on other factors, such as the number of program failures, the number of user test pre-releases, and the workload of Linux.

It can be said that during the two releases, not every fault has been eliminated, and each problem has been solved. As long as the system does not appear very picky or obvious failure, it is considered to be stable and a new version can be released. The motivation for Linux development is not to pursue perfection and trouble-free, but to develop a free implementation of Unix.

If you want to add new features or applications to your system, you'll have to go through an "initial" phase. The so-called "initial" phase is a phase of constant testing by users who want to pick out problems with new code. Since the Linux community is mostly on the Internet, the "initial" software is usually installed on one or more LinuxFTPs, and a message on how to get and test its code is posted on the LinuxUSENET message group, so that the download and test "initial" & rdquo; Users of the software can report the results, failures or problems to the author.

After the problem in the initial code is resolved, the code enters the "second" phase: the work is stable but not yet complete (ie, it works, but may not have all the features). Of course, it may also enter the "last" stage, that is, the software is complete and usable. For kernel code, once it's complete, developers can let Linus include it in the standard kernel, or as an add-on option to the kernel.

Note that these are only agreements and no rules are formed. Many people don't have to release their software for the initial & rdquo; or beta version, so which version is released is based on the developer's decision.

You may be surprised at how a group of volunteers can actually write and debug a complete Unix system. The entire Linux kernel is patched together, no patented source code is used, and a lot of work is done by volunteers. They port the free software under GNU to the Linux system, and develop the library, file system and general device hardware drivers. Programs, etc.

In fact, the Linux kernel development team led by Linus around the world is still moving at a high speed. The 2.4.x version of the current stable Linux kernel fully demonstrates the extraordinary creativity of the Linux development team and the value of collaborative development models.

Copyright © Windows knowledge All Rights Reserved