GNU Project Introduction From: LinuxAid)

Source: Internet
Author: User

1. Project GNU Introduction

The origin of Project GNU, from Richard Stallman a decade ago, is currently the Project GNU program host, an article in the web discussion area (http://www.cs.pdx.edu /~ Trent/gnu/begin, 10 years ago on Internet ). Richard Stallman explained in this article why he initiated the plan. This article is the subsequent GNU Manifesto and GNU declaration. For more detailed background information, see the introduction in the last chapter of the UNIX User Manual of the institute of technology and technology Yang jingxiang. Richard Stallman is a lifelong volunteer of FSF to set up the Free Software Foundation and devote all his efforts to the Project GNU.

GNU is short for GNU's Not Unix. In Manifesto, Stallman mentioned that although UNIX is Not the best operating system, it is at least Not bad, and he is confident that he can complete the UNIX deficiency, make it a good job system, that is, the GNU job system.

The policy of GNU was to first develop existing UNIX programs. (Because it is determined that GNU will be a UNIX-compatible system, and the standard interfaces under UNIX are quite complete, as long as the program is completed according to the standard, in the future, after GNU Kernel (Note 1) is completed, all UNIX utilities will be available immediately. Therefore, utility such as emacs and gcc will be available first. Among them, gcc is the main force for Project GNU to be self-reliant (it does not need to rely on Non-Free Software to generate/compile itself). Now the program development tools are mature, so let's take a look, that is, GNU Kernel, or Hurd. Once Hurd is completed, GNU is a set of operating systems capable of self-starting, truly self-sufficient, and complete.

Note 1: a set of OS is the peripheral public program plus a kernel, that is, the system resource management program.

Hurd is the core of the job system structured on the micro kernel of Mach. Micro kernel originated from the Development of BSD (UNIX) to the end. The larger the number of Kernel writes, the more new features you need to replace and reboot the system each time, there is no elasticity. The concept of Micro kernel has also emerged. The goal is to extract the most basic and hardware-related parts of the kernel to form a micro kernel. Other parts are reduced to the user program level, which is called server. Micro kernel ABSTRACTS/encapsulates hardware to form a virtual machine, and the server runs on this virtual machine to provide the functions that traditional OS should provide. There are two types of Server: Si ngle Server and MultiServer.

A Single Server is a Server that completes all the functions provided by the OS kernel. CMU Carnegie Al University's original micro kernel plan is to split 4.3 BSD into two parts, one micro kernel (Mach) and one Single Server. Because many servers can be executed for one micro kernel, this is indeed a very big step. After the OS is modified, another Server can be executed to observe the results. You do not need to reboot the entire system every time. However, there is still a blind spot in this design, that is, to change the active kernel, or to terminate (shutdown) the Server and then execute the new Server. At best, it is just a portable OS. Therefore, the Multi Server must be run. The MS splits the kernel into several small units and cooperates with each other. For example, a network server is used to process TCP/IP networks, file system server, and exec server for program execution. In this way, elasticity can be increased. For example, an exec server can execute binary in Linux. One binary that can be executed (loaded) FreeBSD and several file system servers can process different file systems, and reduce the chance of replacing the server with reboot. Hurd is such a group of servers (s) (for details, see Toward a New Strategy of OS Design, http://www.cs.pdx.edu /~ Trent/gnu/hurd-paper.html)

Currently, Hurd uses i386 PC as the development platform and CMU as the micro kernel. However, in the future, it will use Mach4 of Utah (Utah) University, that is, flexmach as the micro kernel, flexmach is fast & flexible. Micro kernel has introduced a lot of overhead. Flexmach introduces some new idea, so that micro kernel is not only convenient, but also has good performance. Because Hurd is mounted on mach, as long as the Mach can run on those machines, Hurd can quickly suppport the hardware architecture. In other words, GNU can be the OS of the computer of this model.

Hurd is actually not UNIX. It really makes programmers feel that Hurd is UNIX. It is its Library, glibc -- Hurd's C Library. Hurd's glibc is used to provide/process UNIX-compatible system calls and convert them into Hurd system calls, making users feel that Hurd is UNIX, which follows the UNIX standard (IEEE 1003.1, POSIX.1)

Gcc is one of the most famous FSF programs and is currently a three-in-one compiler of C, C ++. Pbkectove C. The gcc practice is to have a front end program that converts the syntax of C, C ++, and Objective C into an internal type (a higher-order combination language similar to lisp, it is called RTL, or first converts a high-level language into an imaginary CPU combination language). Then, the backend optimizes the virtual combination language and generates the target CPU (target) the combination language code (UNIX philosophy is that compiler generates the combination language code, and then the operator generates the machine code). In this architecture, you only need to write the frontend of a new language, since gcc backend supports many architectures, this language can be immediately compiled and executed on machines in many different architectures. With a new type of CPU, as long as the virtual ASM is converted into the real asm part, there will be a multi-language optimization compiler immediately. In addition to the C family, gcc also has the frontend of Fortran 90, ada9x, and Pascal. Among them, Fortran is the latest frontend with the version code 0.5.

The GUI of Project GNU is structured on mit x Window. Since Next released the OpenStep standard and published its Next Step OS API, it has aroused interest of a group of people and decided to develop a more complete GUI interface for GNU, that is, the GNU Step should be able to confirm that it complies with OpenStep standards through OpenStep test suite of Next company. Since giving up the hardware business, Next has become a professional system software company, the original operating system has been port (transplanted) to iron, HP-PA, the GUI interface also has a plan to port to Solaris, OSF/1, NT, and Window 95. In short, OpenStep is an object-oriented application interface that is unrelated to OS in NextStep.

OpenStep consists of three parts: Display Postscript, Foundation Kit, and AppKit. The GNU Step program modifies ghostscript to complete the Display Postscript function. PostScript was originally used in a drawing language of the printer. DPS enables PostScript commands to work on the screen for drawing. Display and Printing use the same code to achieve What You See Is What You Get.

The NextStep/OpenStep development environment uses Objective C, another object-oriented language based on C. The ObjC code in gnu c Compiler is contributed after the development of the company NeXT. In addition to fully defined syntaxes and compilers, a language requires a general standard library to facilitate writing. This is the Foundation Kit in OpenStep. The content of the Foundation Kit is necessary for ObjC to process objects. The GNU Step approach is to expand the libobject library to achieve the goal.

The most important part of OpenStep is AppKit. The most important thing to write a GUI Application is to have a useful Library. AppKit is the most attractive part of OpenStep and is a pretty good Library Architecture. GNU Step already has a prototype in this regard, that is, objcX. ObjcX is currently written using Motif widgets. Because Motif is not free software, it will be replaced by other methods in the future.

2. GPL -- General Public License

The spirit of GNU is explained in GNU Manifesto, that is, the original code of the software should be freely circulated. What the software company should do should not take the original code as its own, it is just the cost of integration and service, because the software with the free circulation of the original code can improve the quality of the software, this allows a software program designer to freely exchange experiences with others without the constraints of intellectual property rights. However, the actual environment is harsh. to fear the good guys who take free-flowing software as their own, FSF's GPL first obtains the intellectual property rights of the software according to the copyright method, then release this power through GPL to the public: as long as you keep the GPL and do not take the original code and your modifications to the original code as your own, you have the right to use the GPL software. GPL regulations are not applicable to libraries (too strict, some people do not agree). To encourage more people to use the GNU software, FSF also sets LGPL-Library GPL, the limit is a little loose.

GNU maniesto/GNU General Public License/Libray GPL can all be found in GNU mirror sites (GPL is placed in the file named COPYING, and LGPL is in COPYING. LIB ). In addition, FSF regularly publishes a file named GNU bulletten every January and July each year to describe the current situation and status of FSF. The GNU bulletin electronic version is only published on gnu. announce.

3. Non-fast customers ~ Linux

1992 (end of 1991 ?) Linus Torvards, a Finnish young information student, bought his first 486 PC for his internship using Mr. Andrew S. Tanenbaum's MINIX operating system. However, he found that MINIX lacked many features he wanted, so he started his great career-writing a job system in protection mode. At the beginning, Linus was in the USENET Forum, comp. OS. minix calls a friend's companion, and then the baby's operating system (named Linux) is making a correction version twice a week, the discussion area also covers the original parasitic comp. OS. minix becomes a non-mainstream alt. OS. linux, and the name is comp. OS. linux. Since there are many users, the discussion area is further subdivided into comp. OS. linux .*. Linux is so popular that it has become the successor of orthodox UNIX.

In earlier versions of Linux, developers were afraid that their programs would be stolen by unscrupulous vendors, so they used a very strict copyright statement to prohibit all business operations. Because we hope someone can press Linux into a CD-ROM, promote Linux, and benefit those friends who are not convenient to the Internet FTP, so the copyright is changed to GPL. Since then, Linux is recognized as the GNU operating system.

The GNU kernel mentioned above will be Hurd. However, the rise of Linux in just a few years, and the use of the GNU copyright statement, has replaced the Hurd trend. Many people even think that Hurd should stop developing because Linux is mature. GNU can actually use Linux as a kernel and is also a complete system. FSF also admitted that if Linux appeared in early years, it may not need to develop Hurd. But Linux is still a little late. Hurd has been planning for a long time, and it is a very avant-garde design. There are more machines to support than Linux, which is a pity. In November 1994, the first snapshot of Hurd was published; In April 1995, the second snapshot was also published. Within a few snapshots, Hurd can be packaged into a simple self-boot installation kit. Then repeat the Linux history. Of course, it should be emphasized that Hurd and Linux are not in a hostile relationship. No one will replace each other because they have different markets and their respective positioning is different.

In fact, FSF has released a Linux-centered GNU system program. This plan is the Debian Linux strongly supported by FSF. Debian Linux is the most thorough integration of GNU software (and public domain software) in recent years (that is, a complete set of systems that are fully supported by GNU and PD, and have a very cial OS level ). The significance of Linux is to make up for the vacuum before Hurd is completed, and combine the power of GNU and PD software to build the foundation of the GNU system. In the future, hurd386 can also execute the binary program of linux386 and complement each other.

4. Change silkworms-BSD

Berkerley's bsd unix has evolved to Ver. after 4.4, DARPA (National Defense Advanced Research Project Agency) no longer supported the project, so there was a call to stop, called the last BSD. In addition, at&t accused BSD of containing its code, making 4.4 of the original code too late to be disclosed.

Almost the same as the development of Linux, Mr William Jolitz also began to use BSD4.3 as the basis (specifically, the Net/2 published by Berkerley) to move BSD to 386 of PCs, as a continuation of the BSD program, and to make it easier for operating system researchers to continue using BSD as the basis for OS research. This is ipvbsd. At the beginning, the growth speed of ipvbsd was too slow, resulting in variations. Almost at the same time, two groups of people published their own enhanced ipvbsd, namely NetBSD and FreeBSD. NetBSD is mainly used for OS research and was quickly transplanted back to the original BSD-supported machine. FreeBSD is mainly used for practical purposes. The purpose is to make the BSD package beautiful and easy to get started with and install the system.

These BSD families can be said to have all developed in the case of Berkerley vs AT&T. After the lawsuit ends, Berkerley issued BSD4.4Lite In accordance with the decision, a BSD source code that did not infringe AT&T's copyright, updated to the base of 4.4 Lite, which is truly getting rid of the shadow of AT&T.

Copyright Notice used by BSD and GPL copyright court. We can say that the BSD team belongs to the self-dispatching team and they do not think that the public program should be put into any restrictions, even if others change the source code, it doesn't matter if you take possession of yourself, as long as you don't wipe out their offering. This is generally recognized as the definition of PD (Public Domain. For this reason, FSF and PD software are usually at a distance, and they prefer to rewrite some programs that are originally available in PD to prevent the issue from being identified by PD and GPL. To put it simply, GPL restricts the processing products of code and code to be GPL and must be freely circulated. In the case of PD, the parts that allow private modification and processing are not PD. In this case, GPL and PD are better than each other.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.