Linux và dự án GNU

Thứ hai - 11/08/2008 06:44
Linux and the GNU Project

by Ric-hard Stallman

For more information see also the GNU/Linux FAQ, and Why GNU/Linux?

Theo: http://www.gnu.org/gnu/linux-and-gnu.html

Bài được đưa lên Internet ngày: 29/03/2008

Lời người dịch:

  1. Chúng ta vẫn nói “Hệ điều hành Linux” để ám chỉ các hệ điều hành tự do nguồn mở. Tuy nhiên, đó là một cách nói thông thường và hoàn toàn không chính xác, mà phải nói: HỆ ĐIỀU HÀNH GNU/LINUX, vì Linux chỉ là nhân của hệ điều hành GNU.

  2. Trong số các phát tán hệ điều hành GNU/Linux ngày nay, hầu hết đều không phải là TỰ DO, mà là NGUỒN MỞ. Hầu như chỉ có 2 phát tán là các hệ điều hành đúng theo nghĩa TỰ DO là Ututo và gNewSense.

  3. Bên cạnh các hệ điều hành có nguồn gốc từ GNU như GNU/Linux, còn có các hệ điều hành GNU/*BSD nữa. Khác biệt rõ ràng nhất của các hệ điều hành GNU/*BSD là chúng không có nhân Linux mà vẫn sử dụng nhân từ hệ điều hành GNU.

Nhiều người sử dụng máy tính chạy hàng ngày một phiên bản được chỉnh sửa của hệ thống GNU mà không hề nhận biết được điều này. Thông qua một vòng các sự kiện đặc biệt, phiên bản GNU này ngày nay được sử dụng một cách rộng rãi và thường được gọi là “Linux”, và nhiều người sử dụng của nó không nhận thức được rằng đây cơ bản là một hệ thống GNU, được phát triển bởi dự án GNU.

Thực sự có một Linux, và những người này đang sử dụng nó, nhưng đây chỉ là một phần của hệ thống mà họ sử dụng. Linux là nhân: chương trình mà trong hệ thống nó nằm ở các tài nguyên máy tính cho những chương trình khác mà bạn chạy. Nhân này là một phần cơ bản của một hệ điều hành, nhưng bản thân nó sẽ là vô dụng; nó chỉ có thể hoạt động trong ngữ cảnh của một hệ điều hành hoàn chỉnh. Linux thường được sử dụng trong sự phối hợp với hệ điều hành GNU: toàn bộ hệ thống này về cơ bản là GNU với Linux được bổ sung vào, hoặc GNU/Linux. Tất cả cái gọi là các phát tán “Linux” thực sự là GNU/Linux.

Nhiều người sử dụng không hiểu sự khác biệt giữa nhân, mà là Linux, với toàn bộ hệ điều hành, mà họ cũng gọi là “Linux”. Việc sử dụng một cách nhập nhằng về tên này không giúp cho mọi người hiểu ra. Những người sử dụng này thường nghĩ rằng Linus Torvalds đã phát triển toàn bộ hệ điều hành vào năm 1991, với một chút trợ giúp. Những người lập trình thường biết rằng Linux là một nhân. Nhưng họ cũng thường nghe về toàn bộ hệ thống được gọi là “Linux”, họ thường nhìn thẳng vào lịch sử rằng có thể xác minh việc đặt tên cho toàn bộ hệ thống sau nhân đó. Ví dụ, nhiều người tin rằng một khi Linus Torvalds hoàn tất việc viết Linux, cái nhân đó, những người sử dụng nó đã nhìn xung quanh tìm kiếm các phần mềm tự do khác để đi cùng với nó, và đã thấy chúng (vì một lý do cụ thể nào đó) hầu hết mọi thứ cần thiết để làm nên một hệ điều hành như Unix đã là có sẵn.

Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, the version of GNU which is widely used today is often called “Linux”, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.

There really is a Linux, and these people are using it, but it is just a part of the system they use. Linux is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. Linux is normally used in combination with the GNU operating system: the whole system is basically GNU with Linux added, or GNU/Linux. All the so-called “Linux” distributions are really distributions of GNU/Linux.

Many users do not understand the difference between the kernel, which is Linux, and the whole system, which they also call “Linux”. The ambiguous use of the name doesn't help people understand. These users often think that Linus Torvalds developed the whole operating system in 1991, with a bit of help.

Programmers generally know that Linux is a kernel. But since they have generally heard the whole system called “Linux” as well, they often envisage a history that would justify naming the whole system after the kernel. For example, many believe that once Linus Torvalds finished writing Linux, the kernel, its users looked around for other free software to go with it, and found that (for no particular reason) most everything necessary to make a Unix-like system was already available.

Những gì họ đã tìm thấy không phải là ngẫu nhiên – nó đã là một hệ thống GNU còn chưa thật hoàn thiện. Những phần mềm tự do có sẵn đã bổ sung thêm vào một hệ thống hoàn chỉnh vì dự án GNU đã được làm việc từ 1984 để làm nên một hệ điều hành. Trong tuyên ngôn của GNU chúng tôi đã thiết lập trước mục tiêu để phát triển một hệ điều hành tự do giống như Unix, được gọi là hệ điều hành GNU. Tuyên bố ban đầu này của dự án GNU cũng phát thảo một số kế hoạch ban đầu cho hệ điều hành GNU. Tại thời điểm Linux được bắt đầu, GNU đã gần như hoàn chỉnh.

Hầu hết các dự án phần mềm tự do có mục tiêu để phát triển một chương trình cụ thể nào đó cho một công việc cụ thể nào đó. Ví dụ, Linus Torvalds đã viết một nhân giống như Unix (Linux): Donald Knuth đã viết một trình soạn thảo văn bản (TeX); Bob Scheifler đã phát triển một hệ thống cửa sổ (Hệ thống cửa sổ X Windows). Nó là bẩm sinh để đánh giá sự đóng góp của dạng các dự án này của những chương trình cụ thể nào đó mà chúng tới từ dự án (GNU) này.

Nếu chúng ta cố gắng đo đếm sự đóng góp của dự án GNU theo cách này, thì những gì chúng ta có thể đưa vào nhỉ? Một nhà cung cấp một đĩa CD-ROM đã thấy rằng trong “phát tán Linux” của họ, các phần mềm GNU là sự tình cờ duy nhất lớn nhất, khoẳng 28% tất cả các mã nguồn, và điều này được đưa vào một vài thành phần cơ bản chủ chốt mà không có nó có thể sẽ không có hệ điều hành luôn. Bản thân Linux là khoảng 3%. (Tỷ lệ này trong năm 2008 là tương tự: trong kho “chính” của gNewSense, các gói Linux là 1,5% và GNU là 15%). Vì thế nếu bạn định chọn một cái tên cho hệ điều hành dựa trên người đã viết các chương trình đó trong hệ thống, thì lựa chọn duy nhất phù hợp nhất có lẽ là “GNU”.

What they found was no accident—it was the not-quite-complete GNU system. The available free software added up to a complete system because the GNU Project had been working since 1984 to make one. In the The GNU Manifesto we set forth the goal of developing a free Unix-like system, called GNU. The Initial Announcement of the GNU Project also outlines some of the original plans for the GNU system. By the time Linux was started, GNU was almost finished.

Most free software projects have the goal of developing a particular program for a particular job. For example, Linus Torvalds set out to write a Unix-like kernel (Linux); Donald Knuth set out to write a text formatter (TeX); Bob Scheifler set out to develop a window system (the X Window System). It's natural to measure the contribution of this kind of project by specific programs that came f-rom the project.

If we tried to measure the GNU Project's contribution in this way, what would we conclude? One CD-ROM vendor found that in their “Linux distribution”, GNU software was the largest single contingent, around 28% of the total source code, and this included some of the essential major components without which there could be no system. Linux itself was about 3%. (The proportions in 2008 are similar: in the “main” repository of gNewSense, Linux is 1.5% and GNU packages are 15%.) So if you were going to pick a name for the system based on who wrote the programs in the system, the most appropriate single choice would be “GNU”.

Nhưng đó là không phải cách sâu sắc nhất để xem xét câu hỏi này. Dự án GNU đã không, đang không, là một dự án để phát triển các gói phần mềm đặc chủng nào cả. Nó đã không phải là một dự án để phát triển một trình biên dịch C, mặc dù chúng tôi đã làm ra nó. Nó đã không phải là một dự án để phát triển một trình soạn thảo văn bản, mặc dù chúng tôi đã phát triển nó. Dự án GNU là để phát triển một hệ điều hành hoàn toàn tự do giống như Unix: GNU.

Nhiều người đã có đóng góp chính cho các phần mềm tự do trong hệ thống này, và họ tất cả xứng đáng với lòng tin cậy cho các phần mềm của họ. Nhưng lý do nó là một hệ thống tích hợp – và không chỉ là một bộ sưu tập các chương trình hữu dụng – vì dự án GNU là để làm ra nó. Chúng tôi đã lập một danh sách các chương trình cần thiết để tạo ra một hệ điều hành tự do hoàn toàn, và chúng tôi, một cách có hệ thống, đã thấy, đã viết, đã tìm ra những người viết mọi thứ trong danh sách này. Chúng tôi đã viết những thành phần cơ bản (Xem số 1 bên dưới) nhưng không hứng thú vì bạn không thể có một hệ thống mà thiếu chúng. Một vài thành phần hệ thống của chúng tôi, các công cụ lập trình, đã trở nên thông dụng đối với bản thân chúng giữa những người lập trình, mà chúng tôi còn viết nhiều thành phần mà chúng không phải là các công cụ (Xem số 2 bên dưới). Chúng tôi đã còn phát triển một trò chơi, cờ GNU, vì một hệ điều hành hoàn chỉnh cần cả các trò chơi nữa.

But that is not the deepest way to consider the question. The GNU Project was not, is not, a project to develop specific software packages. It was not a project to develop a C compiler, although we did that. It was not a project to develop a text editor, although we developed one. The GNU Project set out to develop a complete free Unix-like system: GNU.

Many people have made major contributions to the free software in the system, and they all deserve credit for their software. But the reason it is an integrated system—and not just a collection of useful programs—is because the GNU Project set out to make it one. We made a list of the programs needed to make a complete free system, and we systematically found, wrote, or found people to write everything on the list. We wrote essential but unexciting (1) components because you can't have a system without them. Some of our system components, the programming tools, became popular on their own among programmers, but we wrote many components that are not tools (2). We even developed a chess game, GNU Chess, because a complete system needs games too.

Tới đầu những năm 90 chúng tôi đã đặt toàn bộ hệ thống này bên cạnh nhân. Chúng tôi cũng đã bắt đầu một nhân, GNU Hurd, mà nó chạy trên Mach. Việc phát triển nhân này đã gặp nhiều khó khăn hơn chúng tôi tưởng: GNU Hurd đã bắt đầu làm việc một cách đáng tin cậy vào năm 2001, nhưng nó là một con đường dài tới lúc sẵn sàng cho mọi nguời để sử dụng nói chung.

May mắn thay, chúng tôi đã không phải chờ đợi Hurd, vì Linux. Khi Torvalds viết Linux, nó khớp vwosi những quảng hở chính trong hệ điều hành GNU. Mọi người có thể sau đó kết hợp Linux với hệ điều hành GNU để tạo ra một hệ điều hành tự do hoàn toàn: một phiên bản dựa trên Linux của hệ điều hành GNU; ngắn gọn, hệ điều hành GNU/Linux.

Làm cho nó làm việc tốt cùng với nhau không phải là một công việc tầm thường. Một vài thành phần (Xem số 3 ở bên dưới) cần thay đổi đáng kể để làm việc được với Linux. Việc tích hợp một hệ điều hành hoàn chinyhr như một phát tán mà có thể làm việc được “bên ngoài cái hộp” cũng là một công việc khổng lồ. Nó đòi hỏi tập trung giải quyết vấn đề làm thế nào để cài đặt và khởi tạo hệ thống – một vấn đề mà chúng tôi đã không giải quyết được, vì chúng tôi đã chưa đạt được tới điểm đó. Vì thế, mọi người mà đã phát triển một loạt các phát trán hệ điều hành đã làm nhiều công việc cơ bản. Nhưng nó đã là công việc mà, về nguồn gốc, chắc chắn sẽ phải được làm xong bởi ai đó.

By the early 90s we had put together the whole system aside f-rom the kernel. We had also started a kernel, the GNU Hurd, which runs on top of Mach. Developing this kernel has been a lot harder than we expected; the GNU Hurd started working reliably in 2001, but it is a long way f-rom being ready for people to use in general.

Fortunately, we didn't have to wait for the Hurd, because of Linux. Once Torvalds wrote Linux, it fit into the last major gap in the GNU system. People could then combine Linux with with the GNU system to make a complete free system: a Linux-based version of the GNU system; the GNU/Linux system, for short.

Making them work well together was not a trivial job. Some GNU components(3) needed substantial change to work with Linux. Integrating a complete system as a distribution that would work “out of the box” was a big job, too. It required addressing the issue of how to install and boot the system—a problem we had not tackled, because we hadn't yet reached that point. Thus, the people who developed the various system distributions did a lot of essential work. But it was work that, in the nature of things, was surely going to be done by someone.

Dự án GNU hỗ trợ các hệ điều hành GNU/Linux cũng như hệ điều hành GNU. Tổ chức Phần mềm Tự do FSF đã cung cấp tài chính để viết lại những mở rộng liên quan tới Linux cho thư viện C của GNU, vì thế bây giờ chúng đã được tích hợp tốt, và các hệ điều hành GNU/Linux mới nhất sử dụng phiên bản thư viện hiện hành này mà không có thay đổi. FSF cũng cung cấp tài chính thời kỳ đầu để phát triển Debian GNU/Linux.

Ngày này có nhiều phát tán khác nhau của hệ điều hành GNU/Linux (thường được gọi là các “distro”). Hầu hết chúng đều không phải là các phần mềm tự do – các nhà lập trình phát triển của chúng tuân theo triết lý có liên quan tới Linux hơn là GNU. Nhưng cũng có những phát tán GNU/Linux hoàn toàn tự do. FSF hỗ trợ các phương tiện máy tính cho 2 trong số các phát tán đó, Ututo và gNewSense.

Việc tạo ra một phát tán GNU/Linux tự do không là vấn đề của việc hạn chế hàng loạt các chương trình không tự do.

Ngày nay, phiên bản thường dùng của Linux cũng chứa các chương trình không tự do. Các chương trình này có mong muốn được đưa vào các thiết bị đầu ra đầu vào I/O khi hệ điều hành khởi động, và chúng được đưa vào, cùng với một loạt các số, trong “mã nguồn” của Linux. Vì thế, việc duy trì các phát tán GNU/Linux tự do bây giờ cũng đòi hỏi việc duy trì một phiên bản tự do của Linux.

The GNU Project supports GNU/Linux systems as well as the GNU system. The FSF funded the rewriting of the Linux-related extensions to the GNU C library, so that now they are well integrated, and the newest GNU/Linux systems use the current library release with no changes. The FSF also funded an early stage of the development of Debian GNU/Linux.

Today there are many different variants of the GNU/Linux system (often called “distros”). Most of them include non-free software—their developers follow the philosophy associated with Linux rather than that of GNU. But there are also completely free GNU/Linux distros. The FSF supports computer facilities for two of these distributions, Ututo and gNewSense.

Making a free GNU/Linux distribution is not just a matter of eliminating various non-free programs. Nowadays, the usual version of Linux contains non-free programs too. These programs are intended to be loaded into I/O devices when the system starts, and they are included, as long series of numbers, in the "source code" of Linux. Thus, maintaining free GNU/Linux distributions now entails maintaining a free version of Linux too.

Liệu bạn có sử dụng GNU/Linux hay không, xin đừng lần lẫn khi mọi người gọi tên “Linux” một cách mơ hồ. Linux là nhân, một trong những thành phần cơ bản của hệ điều hành. Hệ điều hành một cách toàn bộ cơ bản là hệ thống GNU, với Linux được bổ sung vào. Khi bạn nói về tập hợp này, xin hãy gọi nó là “GNU/Linux”.

Nếu bạn muốn làm một liên kết về “GNU/Linux” cho việc tham chiếu tiếp sau, thì trang http://www.gnu.org/gnu/the-gnu-project.html là một lựa chọn tốt. Nếu bạn nhắc tới Linux, cái nhân, và muốn bổ sung một liên kết cho việc tham khảo tiếp sau, thì trang http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux là một URL tốt để sử dụng.

Bổ sung thêm: Bên cạnh GNU, một dự án khác đã tạo ra một cách độc lập một hệ điều hành tự do giống như Unix khác. Hệ điều hành này là BSD, và nó đã được phát triển tại UC Berkeley. Nó không phải là tự do trong những năm 80, nhưng đã trở thành tự do vào đầu những năm 90. Một hệ điều hành tự do mà nó tồn tại ngày hôm nay (Xem số 4 ở bên dưới) hầu hết hoặc chắc chắn là một phương án của hệ điều hành GNU, hoặc một dạng của hệ điều hành BSD.

Mọi người đôi khi hỏi liệu BSD có cũng là một phiên bản của GNU, giống như GNU/Linux hay không. Những người lập trình phát triển BSD đã có cảm hứng làm ra các phần mềm tự do mã nguồn của họ bởi ví dụ từ dự án GNU, và rõ ràng kêu gọi từ những người hoạt động chính trị xã hội tích cực của GNU trợ giúp thuyết phục họ, nhưng mã nguồn đã có chút ít trùng lắp với GNU. Các hệ điều hành BSD ngày nay sử dụng một số chương trình của GNU, như hệ điều hành GNU và các phương án của nó sử dụng một số chương trình BSD; tuy nhiên, tổng thể mà nói, chúng là 2 hệ điều hành khác nhau mà chúng tiến hoá một cách riêng rẽ. Các nhà lập trình phát triển BSD đã không viết ra một nhân nào và bổ sung nó vào hệ điều hành GNU, và một cái tên như GNU/BSD có thể không phù hợp với hiện trạng này (Xem số 5 ở bên dưới).

Whether you use GNU/Linux or not, please don't confuse the public by using the name “Linux” ambiguously. Linux is the kernel, one of the essential major components of the system. The system as a whole is basically the GNU system, with Linux added. When you're talking about this combination, please call it “GNU/Linux”.

If you want to make a link on “GNU/Linux” for further reference, this page and http://www.gnu.org/gnu/the-gnu-project.html are good choices. If you mention Linux, the kernel, and want to add a link for further reference, http://foldoc.doc.ic.ac.uk/foldoc/foldoc.cgi?Linux is a good URL to use.

Addendum: Aside f-rom GNU, one other project has independently produced a free Unix-like operating system. This system is known as BSD, and it was developed at UC Berkeley. It was non-free in the 80s, but became free in the early 90s. A free operating system that exists today(4) is almost certainly either a variant of the GNU system, or a kind of BSD system.

People sometimes ask whether BSD too is a version of GNU, like GNU/Linux. The BSD developers were inspired to make their code free software by the example of the GNU Project, and explicit appeals f-rom GNU activists helped persuade them, but the code had little overlap with GNU. BSD systems today use some GNU programs, just as the GNU system and its variants use some BSD programs; however, taken as wholes, they are two different systems that evolved separately. The BSD developers did not write a kernel and add it to the GNU system, and a name like GNU/BSD would not fit the situation.(5)

Notes:

Lưu ý:

  1. Những thành phần không hứng thú nhưng cơ bản này bao gồm chương trình dịch mà GNU, GAS và trình liên kết, GLD, cả 2 bây giờ là một phần của gói GNU Binutils, GNU tar, và hơn thế nữa.

  2. Ví dụ, The Bourne Again SHell (BASH), trình dịch PostScript Ghostscript, và thư viện GNU C không phải là các công cụ lập trình. Cũng không phải đối với GNUCash, GNOME, và GNU Chess.

  3. Ví dụ, thư viện GNU C.

  4. Khi mà điều này được viết, một hệ điều hành như Windows gần như tự do hoàn toàn đã được phát triển, nhưng về mặt kỹ thuật tất cả đều không giống như GNU hay Unix, nên nó không thực sự ảnh hưởng tới vấn đề này. Hầu hết nhân của Solaris đã trở thành tự do, nhưng nếu muốn để làm thành một hệ điều hành tự do từ đó, bên cạnh việc phải thay thế các phần bị mất từ nhân, bạn cũng có thể đặt nào vào GNU hoặc BSD.

  5. Mặt khác, trong những năm khi bài viết này được viết, thư viện GNU C đã được đưa lên nhân của FreeBSD, mà nó đã làm cho nó có khả năng kết hợp với hệ điều hành Gnu với nhân đó. Chỉ với GNU/Linux, những thứ này quả là những phương án của GNU, và vì thế được gọi là GNU/kFreeBSD và GNU/kNetBSD phụ thuộc vào nhân của hệ điều hành. Những người sử dụng thông thường trên các máy tính để bàn thông thường có thể khó mà phân biệt được giữa GNU/Linux và GNU/*BSD.

      1. These unexciting but essential components include the GNU assembler, GAS and the linker, GLD, both are now part of the GNU Binutils package, GNU tar, and more.

      2. For instance, The Bourne Again SHell (BASH), the PostScript interpreter Ghostscript, and the GNU C library are not programming tools. Neither are GNUCash, GNOME, and GNU Chess.

      3. For instance, the GNU C library.

      4. Since that was written, a nearly-all-free Windows-like system has been developed, but technically it is not at all like GNU or Unix, so it doesn't really affect this issue. Most of the kernel of Solaris has been made free, but if you wanted to make a free system out of that, aside f-rom replacing the missing parts of the kernel, you would also need to put it into GNU or BSD.

      5. On the other hand, in the years since this article was written, the GNU C Library has been ported to the FreeBSD kernel, which made it possible to combine the GNU system with that kernel. Just as with GNU/Linux, these are indeed variants of GNU, and are therefore called GNU/kFreeBSD and GNU/kNetBSD depending on the kernel of the system. Ordinary users on typical desktops can hardly distinguish between GNU/Linux and GNU/*BSD.

Dịch tài liệu: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Tổng số điểm của bài viết là: 0 trong 0 đánh giá

Click để đánh giá bài viết

  Ý kiến bạn đọc

Những tin mới hơn

Những tin cũ hơn

Về Blog này

Blog này được chuyển đổi từ http://blog.yahoo.com/letrungnghia trên Yahoo Blog sang sử dụng NukeViet sau khi Yahoo Blog đóng cửa tại Việt Nam ngày 17/01/2013.Kể từ ngày 07/02/2013, thông tin trên Blog được cập nhật tiếp tục trở lại với sự hỗ trợ kỹ thuật và đặt chỗ hosting của nhóm phát triển...

Bài đọc nhiều nhất trong năm
Thăm dò ý kiến

Bạn quan tâm gì nhất ở mã nguồn mở?

Thống kê truy cập
  • Đang truy cập201
  • Máy chủ tìm kiếm3
  • Khách viếng thăm198
  • Hôm nay33,171
  • Tháng hiện tại512,797
  • Tổng lượt truy cập31,991,123
Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây