Tài liệu Ppnckh quá trình hình thành và phát triển của gnulinux

  • Số trang: 21 |
  • Loại file: PDF |
  • Lượt xem: 168 |
  • Lượt tải: 0
tailieuonline

Đã đăng 39894 tài liệu

Mô tả:

CH K6 - 2011 Quá trình hình thành và phát triển của GNU/Linux Môn học: Phương pháp nghiên cứu khoa học trong tin học Hướng dẫn: GS. TSKH. Hoàng Kiếm Thực hiện: Nguyễn Hữu Việt Long 4/14/2012 CH1101101 Quá trình hình thành và phát triển của GNU/Linux Mục lục I. Sự ra đời của Unix ...................................................................................................................... 2 II. Lịch sử hình thành của GNU ..................................................................................................... 3 1. Richard Stallman và cộng đồng chia sẻ phần mềm đầu tiên.................................................. 3 2. Sự sụp đổ của cộng đồng ......................................................................................................... 4 3. Dự án GNU .............................................................................................................................. 5 a. Những chương trình đầu tiên .............................................................................................. 5 b. Giấy phép GPL................................................................................................................... 7 c. Quỹ tài trợ phần mềm tự do FSF ............................................................................................ 8 d. Những mục tiêu về công nghệ ............................................................................................. 9 e. Danh sách các công việc của GNU ...................................................................................... 10 f. GNU Library GPL ............................................................................................................... 10 III. Hệ điều hành GNU/Linux ...................................................................................................... 11 1. Hệ điều hành GNU ................................................................................................................. 11 2. Linux và GNU/Linux .............................................................................................................. 11 3. Biến đổi theo hướng chuyên nghiệp ...................................................................................... 14 a. Vòng quay liên tục ............................................................................................................ 14 b. Linux và những thách thức không nhỏ .............................................................................. 16 4. Một vài điều về GNU/Linux .................................................................................................. 16 a. Linux là gì? ...................................................................................................................... 16 b. Linux - cơn ác mộng của Microsoft ................................................................................... 17 IV. Kết luận.................................................................................................................................. 18 V. Tài liệu tham khảo.................................................................................................................... 20 1 Quá trình hình thành và phát triển của GNU/Linux I. Sự ra đời của Unix Giữa năm 1960, AT&T Bell Laboratories và một số trung tâm khác tham gia vào một dự án nhằm tạo ra một hệ điều hành mới được đặt tên là Multics (Multiplexed Information and Computing Service). Đến năm 1969, chương trình Multics bị bãi bỏ vì đó là một dự án quá nhiều tham vọng và do đó không khả thi. Thậm trí nhiều yêu cầu đối với Multics thời đó đến nay vẫn chưa có được trên các Unix mới nhất. Nhưng Ken Thompson, Dennis Ritchie, và một số đồng nghiệp của Bell Labs đã không bỏ cuộc. Thay vì xây dựng một hệ điều hành làm nhiều việc một lúc như Multics, họ quyết định phát triển một hệ điều hành đơn giản chỉ làm tốt một việc là chạy chương trình (run program). Hệ điều hành sẽ có rất nhiều các công cụ (tool) nhỏ, đơn giản, gọn nhẹ (compact) và chỉ làm tốt một công việc. Bằng cách kết hợp nhiều công cụ lại với nhau, họ sẽ có một chương trình thực hiện một công việc phức tạp. Đó cũng là cách thức người lập trình viết ra chương trình. Peter Neumann đặt tên Unix cho hệ điều hành "đơn giản" này. Vào năm 1973, sử dụng ngôn ngữ C của Ritchie, Thompson đã viết lại toàn bộ hệ điều hành Unix và đây là một thay đổi quan trọng của Unix, vì nhờ đó Unix từ chỗ là hệ điều hành cho một máy PDP-xx trở thành hệ điều hành của các máy khác với một cố gắng tối thiểu để chuyển đổi. Khoảng 1977 bản quyền của UNIX được giải phóng và hệ điều hành UNIX trở thành một thương phẩm. Kiến trúc của Unix 2 Quá trình hình thành và phát triển của GNU/Linux Các lập trình viên của Bell Labs: Ken Thompson (trái) và Dennis Ritchie (phải) * Nhận xét: Ở đây ta thấy Ken Thompson, Dennis Ritchie và đồng nghiệp đã áp dụng một số nguyên tắc sáng tạo sau:  Nguyên tắc tách khỏi: tách phần duy nhất cần thiết ra khỏi đối tượng. Họ đã xác định những cái cần thiết và phát triển một hệ điều hành đơn giản chỉ làm tốt một công việc là chạy chương trình thay cho dự án ban đầu quá nhiều tham vọng và họ đã tạo ra được hệ điều hành Unix đầu tiên.  Nguyên tắc phân nhỏ: Chia đối tượng thành các phần độc lập, làm cho đối tượng trở nên tháo lắp được. Hệ điều hành của họ sẽ có rất nhiều công cụ nhỏ, đơn giản, gọn nhẹ và chỉ làm tốt một công việc.  Nguyên tắc kết hợp: Bằng cách kết hợp những công cụ độc lập với nhau, họ có một chương trình thực hiện một công việc phức tạp. II. Lịch sử hình thành của GNU 1. Richard Stallman và cộng đồng chia sẻ phần mềm đầu tiên Trong quyển sách biên khảo "Hacker: Những người hùng của cuộc cách mạng máy tính" (1984), nhà báo kỳ cựu Steven Levy gọi Richard Stallman là "người cuối cùng của cộng đồng hacker chân chính". Gặp lại Stallman đầu năm 2010, Levy nhận thấy Stallman ngày càng cô độc hơn trong thế giới hiện đại xa lạ với lý tưởng sống của ông. Những hacker mà Levy nhắc đến thuộc về cộng đồng những chuyên viên máy tính ở thời kỳ hình thành mạng Internet và hệ điều hành Unix trong hai thập niên 1960 và 1970, những 3 Quá trình hình thành và phát triển của GNU/Linux người đam mê phân giải hệ thống máy tính phức tạp và tạo ra những chức năng mới, biến điều không thể thành có thể. Hacker rất ghét hành động "giấu nghề", xem sự chia sẻ mã nguồn phần mềm để học hỏi lẫn nhau là nguyên tắc đạo đức cơ bản của cộng đồng. Hacker rất ghét sự phân biệt đối sử dựa vào bằng cấp hoặc chức vụ, chống lại việc ban quyền ưu tiên sử dụng hệ thống máy tính cho một số người "bề trên", xem sự bình đẳng trong việc sử dụng hệ thống máy tính là một phần của nhân quyền. Điều này có thể khó hiểu đối với thế hệ lớn lên sau thời kỳ bùng nổ máy tính cá nhân. Trong thập niên 1980, giới truyền thông tùy tiện dùng từ hacker để chỉ những kẻ "bẻ khóa" (cracker), xâm nhập bất hợp pháp các hệ thống máy tính để đánh cắp thông tin hoặc chỉ đơn thuần thỏa mãn sở thích bệnh hoạn. Hacker chân chính luôn dùng tên thật, kể cả khi vô hiệu hóa những biện pháp an ninh để chứng minh nhược điểm của hệ thống hoặc để khẳng định quyền tự do của mình. Hacker luôn khinh miệt cracker. Thế nhưng ngày nay nghĩa gốc của từ hacker đã trở thành nghĩa hiếm. Khi Stallman bắt đầu làm việc tại phòng thí nghiệm Trí tuệ nhân tạo (AI Lab) của học viện MIT năm 1971, ông bắt đầu trở thành một thành viên của cộng đồng chia sẻ phần mềm đã tồn tại mấy năm trước đó. Sự chia sẻ phần mềm không chỉ giới hạn trong cộng đồng đặc biệt của họ, bất cứ khi nào có người ở một trường đại học hoặc ở một công ty khác muốn chuyển hoặc sử dụng một chương trình, họ đều vui vẻ cho phép. Nếu bạn thấy ai đó sử dụng một chương trình là lạ hay thú vị, bạn đều có thể hỏi xem mã nguồn của nó, vì thế bạn có thể đọc nó, thay đổi nó, hoặc mổ xẻ một phần của nó để làm nên một chương trình mới. * Nhận xét: Những lập trình viên đầu tiên cùng cộng đồng đã áp dụng các nguyên tắc chia sẻ, nguyên tắc sao chép để chia sẻ những phần mềm do họ làm ra để cùng nhau họ hỏi, trao đổi kinh nghiệm để cùng nhau phát triển. 2. Sự sụp đổ của cộng đồng Tình hình thay đổi một cách mạnh mẽ vào những năm đầu thập kỉ 80, khi ngành công nghiệp máy tính hình thành và phát triển mạnh mẽ. Các công ty công nghệ ra đời hàng loạt, cùng với đó là những luật lệ về sở bản quyền hữu trí tuệ ra đời. Những chiếc máy tính của thời đại mới, như là VAX hoặc 68020, đều có hệ điều hành cho chính nó, nhưng không cái nào là phần mềm tự do cả: bạn buộc phải kí một hợp đồng để có một bản copy sử dụng được. Chủ của những phần mềm có đăng kí độc quyền đã tạo ra luật lệ là: "Nếu bạn chia sẻ nó cho hàng xóm, bạn là người vi phạm bản quyền. Nếu bạn muốn bất kì một thay đổi nào, hãy nói với chúng tôi." Cộng đồng hacker của phòng thí nghiệm Trí tuệ nhân tạo cũng sụp đổ, trước đó không lâu. Vào năm 1981, the spin_off company Symbolics đã thuê gần hết các hacker của phòng thí nghiệm, và cộng đồng thưa thớt dần đã không thể tồn tại lâu hơn. Trong hoàn cảnh đó, Stallman đặt ra 3 lựa chọn cho mình: - Lựa chọn dễ dàng là tham gia vào thế giới phần mềm độc quyền, kí những hợp đồng mà ông cho là không rõ ràng và hứa sẽ không giúp đỡ chiến hữu của ông. Rất có khả năng là ông sẽ phát triển những phần mềm bán theo những hợp đồng và kiếm được nhiều tiền. - Một sự lựa chọn khác là rời bỏ lĩnh vực máy tính. Theo cách đó tài năng của ông sẽ 4 Quá trình hình thành và phát triển của GNU/Linux không bị lạm dụng nhưng sẽ bị lãng phí. - Lựa chọn thứ 3 là ông có thể viết một hay một vài chương trình nào đó để làm cho cộng đồng chia sẻ phần mềm sống lại một lần nữa. Và đây chính là lựa chọn của Stallman, lựa chọn theo lương tâm của ông. * Nhận xét: Stallman đã áp dụng nguyên tắc linh động: thay đổi các đặc trưng của môi trường bên ngoài sao cho tối ưu trong từng giai đoạn làm việc. Ông đã thay đổi môi trường làm việc của mình, bỏ việc tại MIT và sáng lập ra dự án GNU để thực hiện mong ước của mình là làm cho cộng đồng chia sẻ phần mềm sống lại một lần nữa. 3. Dự án GNU Vào tháng 1 năm 1984, Stallman quyết định bỏ việc tại MIT và sáng lập ra dự án GNU vào năm 1984, với mục đích phát triển một hệ điều hành máy tính miễn phí GNU, cái tên GNU được chọn theo một truyền thống của hacker, là viết tắt đệ qui của "GNU's Not Unix" (GNU không là Unix). Bằng cách này ông đã tặng cho người dùng máy tính sự tự do mà họ chưa hề có được trước đây. a. Những chương trình đầu tiên Stallman bắt đầu làm GNU Emacs vào tháng 9 năm 1984, và vào đầu năm 1985 thì nó bắt đầu sử dụng được. Điều này cho phép ông có thể sử dụng hệ điều hành Unix để soạn thảo, không hứng thú với việc dùng Vi hay Ed, ông đã tự soạn thảo trên các loại máy khác nhau cho đến khi đó. Kiến trúc của Emacs Không lâu trước khi bắt đầu dự án GNU, Stallman có nghe về bộ dịch tự do cho các trường đại học (Free University Compiler Kit), còn gọi là VUCK (từ "tự do" trong tiếng Hà Lan 5 Quá trình hình thành và phát triển của GNU/Linux bắt đầu bằng chữ cái V). Đây là một trình biên dịch thiết kế để có thể xử lí được nhiều ngôn ngữ, gồm cả C và Pascal, và để cung cấp cho các máy đa mục đích. Stallman đã đề nghị tác giả cho GNU sử dụng nó nhưng ông ta đã đáp lại một cách chế giễu, tuyên bố rằng trường đại học thì được tự do nhưng GNU thì không. Vì vậy Stallman quyết định rằng chương trình đầu tiên của mình cho dự án GNU sẽ là một trình biên dịch đa tầng và đa ngôn ngữ. Hi vọng tránh việc tự mình viết toàn bộ chương trình dịch, Stallman đã sử dụng mã nguồn cho trình dịch Pastel, một trình dịch đa tầng phát triển tại phòng nghiên cứu Lawrence Livermore. Nó cung cấp, và được viết bằng, một phiên bản mở rộng của Pascal, thiết kế để trở thành ngôn ngữ lập trình hệ thống. Stallman định thêm vào đó phần giao diện ngôn ngữ C, và bắt đầu lập trình nó cho máy tính Motorola 68000. Nhưng ông đã phải từ bỏ nó khi tôi nhận ra rằng trình biên dịchđó cần rất nhiều MB trong không gian ngăn xếp, và hệ điều hành Unix 68000 thì chỉ chấp nhận được 64K. Sau đó Stallman thấy trình dịch Pastel hoạt động bằng cách phân tích toàn bộ đầu vào thành những cây cú pháp, chuyển toàn bộ cây cú pháp này vào mắt xích chỉ dẫn, và sau đó tổng hợp toàn bộ đầu ra, không giải phóng bộ nhớ. Từ đó, ông quyết định sẽ viết một trình biên dịch mới từ đống hỗn tạp đó. Trình biên dịch đó bây giờ được biết đến với tên gọi GCC, không sử dụng tẹo nào từ trình dịch Pastel trong nó cả, nhưng ông đã cố gắng để tương thích và sử dụng giao diện C mà ông đã viết. Kiến trúc của GCC * Nhận xét: Trong quá trình viết những chương trình đầu tiên, Stallman đã sử dụng các nguyên tắc sáng tạo sau:  Nguyên tắc thực hiện sơ bộ: Thực hiện trước sự thay đổi, tác động cần có, hoàn toàn hoặc từng phần đối với đối tượng. Stallman đã chọn viết Emacs và trình biên dịch GCC đầu tiên vì đây là những công cụ lập trình thiết yếu, làm tiền đề xây dựng nên các phần mềm của GNU sau này.  Nguyên tắc sử dụng trung gian: Tạm thời gắn đối tượng cho trước với đối tượng khác, 6 Quá trình hình thành và phát triển của GNU/Linux dễ tách rời sau đó. Để tránh việc tự mình viết toàn bộ chương trình dịch, Stallman đã sử dụng mã nguồn cho trình biện dịch Pastel, thêm phần giao diện bằng ngôn ngữ C. Sau đó nhận thấy Pastel không thích hợp, ông đã tự viết lại một trình biên dịch khác và tận dụng lại phần giao diện đã viết trước đó.  Nguyên tắc tự phục vụ: đối tượng phải tự phục vụ bằng cách thực hiện các thao tác (hoạt động) phụ trợ, sửa chữa. Khi bị từ chối cho sử dụng VUCK, Stallman đã tìm đến Pastel chưa hoàn chỉnh lắm và viết thêm vài bổ sung để sử dụng. Sau khi thấy Pastel không thích hợp, ông đã tự mình viết lại trình biên dịch thỏa mãn yêu cầu của mình, đó là GCC. b. Giấy phép GPL Mục tiêu cuối cùng của GNU là mang lại quyền tự do cho người dùng, chứ không phải để nổi tiếng, vì thế cần sử dụng một điều khoản phân phối có thể ngăn chặn phần mềm GNU bị biến thành phần mềm độc quyền, và giấy phép GPL (GNU Public Lisence) ra đời. Vào năm 1984 hay 1985, Don Hopkins (một anh chàng giàu sức tưởng tượng) đã gửi cho Stallman một bức thư. Trên phong bì, anh ta đã viết một vài câu rất thú vi, bao gồm câu này: "Copyleft -- all rights reversed". Stallman đã sử dụng từ copyleft để đặt tên cho phạm trù phân phối mà ông phát triển vào thời gian đó. Copyleft dùng luật bản quyền (Copyright), nhưng đảo lại để phục vụ cho mục đích đối lập với mục đích thông thường của nó: Thay vì nghĩa cá nhân hóa phần mềm, nó mang nghĩa là giữ cho phần mềm được tự do. Ý tưởng trung tâm của luật copyleft là chúng ta cho mọi người quyền chạy, copy, sửa chữa chương trình và phân phối những phiên bản đã sửa đổi - nhưng không cho phép thêm hạn chế. Vì thế, những quyền tự do chủ yếu của phần mềm tự do sẽ được đảm bảo cho tất cả những ai có bản copy, chúng trở thành những quyền lợi không thể chuyển nhượng. Định nghĩa phần mềm tự do theo quan điểm của Stallman:  Bạn có quyền chạy chương trình với bất kì mục đích nào.  Bạn có quyền sửa chữa chương trình cho phù hợp với nhu cầu của bạn. (Để làm cho chương trình này hữu ích hơn trong thực tế, bạn phải truy cập mã nguồn, vì việc thay đổi một chương trình mà không có mã nguồn là cực kì khó khăn).  Bạn có quyền tự do phân phối lại các bản copy, dù miễn phí hay phải trả tiền.  Bạn có quyền phân phối những bản đã sửa chữa của chương trình, để cộng đồng có thể được lợi từ những nâng cấp của bạn. * Nhận xét: Ở đây ta thấy Stallman soạn thảo giấy phép GPL dựa theo nguyên tắc đảo ngược: Lật ngược đối tượng, lộn trái đối tượng. Các luật trong GPL dựa trên các luật bản quyền truyền thống nhưng tất cả đều bị đảo ngược. copyright --all rights reserved > < copyleft --all rights reversed. 7 Quá trình hình thành và phát triển của GNU/Linux c. Quỹ tài trợ phần mềm tự do FSF Khi nhu cầu dùng Emacs tăng lên, mọi người cũng trở nên quan tâm đến các dự án khác của GNU, và Stallman quyết định đã đến lúc phải tìm kiếm tài trợ. Vì vậy vào năm 1985 họ xây dựng nên quỹ tài trợ phần mềm tự do (FSF - Free Software Foundation), một tổ chức được miễn thuế hỗ trợ phát triển phần mềm tự do. Quỹ FSF tiếp quản luôn việc kinh doanh phân phối băng từ Emacs, sau đó mở rộng bằng cách thêm các phần mềm tự do khác (cả của GNU và không phải GNU) vào băng từ, và cả bán những quyển sách hướng dẫn sử dụng tự do. Quỹ FSF chấp nhận quà tặng, nhưng hầu hết thu nhập của nó là từ việc bán các bản copy của các phần mềm tự do, và các dịch vụ liên quan. Ngày nay nó bán cả các đĩa CD mã nguồn, các đĩa CD ở dạng nhị phân, các sách in hướng dẫn xinh xinh (tất cả đều có quyền tự do phân phối hoặc sửa lại), và các phân phối hạng sang (nơi họ xây dựng một tập hợp các phần mềm để bạn lựa chọn công nghệ cơ sở cho máy tính). Nhân viên của FSF đã viết và bảo trì một số lượng lớn các chương trình phần mềm GNU. Hai phần mềm trứ danh là thư viện C và trình tiện ích. Thư viện C của GNU là một cái thư viện mà bất cứ chương trình nào chạy trên hệ điều hành GNU/Linux cũng dùng để truyền thông với Linux. Nó được phát triển bởi một cán bộ của FSF, Ronald McGrath. Trình tiện ích dùng trên hầu hết các hệ điều hành GNU/Linux là Bash (Bourne Again Shell), thiết kế bởi một nhân viên FSF Brian Fox. Stallman và các nhân viên FSF Bán các bản copy Emacs chính là một loại hình kinh doanh phần mềm tự do. Khi FSF tiếp quản công việc này, Stallman cần một cách khác để kiếm sống. Ông đã tìm thấy nó trong việc bán các dịch vụ liên quan đến những phần mềm mình phát triển. Việc này bao gồm cả dạy 8 Quá trình hình thành và phát triển của GNU/Linux những chủ đề như là sử dụng GNU Emacs như thế nào hay tùy chỉnh GCC ra sao, phát triển phần mềm, nhất là tương thích GCC với những tầng mới. Ngày nay mỗi loại kinh doanh phần mềm tự do đều được rất nhiều tập đoàn thực hiện. Một số phân phối tập hợp các phần mềm tự do trên các đĩa CD, số khác bán phần hỗ trợ theo yêu cầu của khách hàng, sửa lỗi, hay thêm các chức năng mới quan trọng. Thậm chí họ bắt đầu thấy một số công ty chuyên giới thiệu sản phẩm mới. Mạng lưới hoạt động của FSF * Nhận xét: Các nguyên tắc sáng tạo áp dụng ở đây là:  Nguyên tắc quan hệ phản hồi: Thiết lập quan hệ phản hồi. Khi người dùng có nhu cầu sử dụng các phần mềm của GNU mà không có điều kiện truy cập internet hoặc muốn muốn tập hợp đầy đủ các chương trình đi kem hướng dẫn và đóng gói sẵn thì FSF sẽ cung cấp và lấy tiền công vận chuyển và đóng gói phần mềm. Từ đó tạo ra một mô hình kinh doanh phần mềm tự do.  Nguyên tắc “rẻ” thay cho “đắt”: Thay đối tượng đắt tiền bằng bộ các sản phẩm rẻ kém hơn. Đối tượng ở đây là các phần mềm tự do, kém hơn ở đây không có nghĩa là về chất lượng mà là thua thiệt các phần mềm thương mại ở chỗ ra đời sau và thường có giao diện không hào nhoáng (tuy nhiên có thể chấp nhận được). Rẻ là do các phần mềm này không tính phí bản quyền mà chỉ tính phí dịch vụ. Bằng cách đó, các phần mềm tự do đã đến được vơi nhiều người sử dụng. d. Những mục tiêu về công nghệ Mục tiêu cơ bản của GNU là trở thành phần mềm tự do. Cho dù GNU không ưu việt về công nghệ hơn Unix, nó vẫn có lợi ích về mặt xã hội, cho phép người dùng hợp tác, và lợi ích về mặt đạo đức, tôn trọng quyền tự do của người dùng. Nhưng việc áp dụng những tiêu chuẩn phổ biến của thực tiễn vào sản phẩm là rất tự nhiên, ví dụ như, phân loại cấu trúc dữ liệu để tránh các hạn chế kích cỡ định sẵn phát sinh bất ngờ, và xử lí tất cả các mã 8 bit có thể ở bất cứ 9 Quá trình hình thành và phát triển của GNU/Linux chỗ nào dễ hiểu. Thêm vào đó, họ cũng chống lại mục tiêu thu nhỏ kích cỡ bộ nhớ của Unix, bằng quyết định ngừng cung cấp các máy tính 16 bit (hiển nhiên là các máy tính 32 bit sẽ là tiêu chuẩn khi hệ điều hành GNU hoàn thành), và không cố giảm không gian dùng bộ nhớ trừ khi nó vượt quá 1 MB. Trong những chương trình không đòi hỏi xử lí những file cực lớn, họ khuyến khích lập trình viên đọc toàn bộ đầu vào vào lõi, sau đó quét nội dung của nó mà không cần lo lắng gì về vấn đề vào/ra. Những quyết định này làm cho các chương trình GNU vượt trội hơn hẳn các chương trình tương đương của Unix về mặt tin cậy và tốc độ. e. Danh sách các công việc của GNU Khi dự án đang tiến hành, và số lượng các thành phần của hệ điều hành được phát minh hay phát triển ngày một tăng, cuối cùng cũng đến lúc làm một danh sách những thiếu hụt còn lại là một việc có ý nghĩa. GNU sử dụng nó để tuyển chuyên viên thiết kế viết các phần còn thiếu. Danh sách này được biết với cái tên là Danh sách công việc của GNU. Để bổ sung những phần mà GNU còn thiếu, họ liệt kê thêm rất nhiều phần mềm hữu dụng và các dự án tham khảo khác, mà họ nghĩ rằng, một hệ điều hành thứ thiệt nên có. Ngày nay, hiếm có phần nào của Unix còn sót lại trong danh sach công việc của GNU, những việc đó đã hoàn thành xong, trừ một số thứ không cần thiết lắm. Nhưng danh sách thì đầy những dự án mà người ta có thể gọi là những trình ứng dụng. Bất kì chương trình nào hấp dẫn hơn một lớp người dùng hạn hẹp cũng sẽ là một thứ hữu ích để thêm vào hệ điều hành. Thậm chí cả game cũng đang được liệt vào danh sách này và đã được liệt vào ngay từ khi bắt đầu. Unix có game, nên đương nhiên GNU cũng nên có nó. Nhưng tương thích không phải là vấn đề đối với game, vì thế GNU không theo danh sách game của Unix. Thay vào đó, họ liệt kê một dãy các loại game khác nhau mà người dùng có thể thích. f. GNU Library GPL Thư viện C của GNU dùng một loại copyleft đặc biệt gọi là GNU Library General Public License, cho phép liên kết các phần mềm độc quyền với thư viện. Sử dụng LGPL cho thư viện C, hay cho bất kì thư viện nào khác, là một vấn đề chiến lược của GNU. * Nhận xét: Các nguyên tắc sáng tạo được áp dụng chung trong các phần trên là:  Nguyên tắc vạn năng: Đối tượng thực hiện các chức năng khác nhau, do đó không cần sự tham gia của đối tượng khác. Các dự án của GNU đã tạo ra rất nhiều phần mềm với các chức năng khác nhau, bổ sung những khiếm khuyết so với các phần mềm thương mại đã có trước, vì thế ta có thể hoàn toàn sử dụng các phần mềm tự do mà không cần đến các phần mềm thương mại. Thư viện C của GNU cho phép liên kết các phần mềm độc quyền với thư viện này, nhờ đó làm cho nó đa năng hơn.  Nguyên tắc liên tục các tác động có ích: Thực hiện công việc một cách liên tục (các phần của đối tượng luôn làm việc ở chế độ đủ tải). GNU đã hoạt động liên tục không ngừng và bỏ qua những xu hướng không cần thiết (thu nhỏ kích thước bộ nhớ của Unix) 10 Quá trình hình thành và phát triển của GNU/Linux nên các chương trình của GNU đã vượt trội hơn các chương trình tương đương của Unix về mặt tin cậy và tốc độ. III. Hệ điều hành GNU/Linux 1. Hệ điều hành GNU Vào năm 1990, hệ điều hành GNU gần như đã hoàn thành, thành phần chính thiếu duy nhất là một cái nhân. Những người thiết kế quyết định thực hiện cái nhân là một tập hợp các quá trình server chạy trên nền Mach. Mach là một nhân siêu nhỏ được phát triển tại đại học Carnegie Mellon và sau đó là trường đại học Utah. GNU Hurd là một tập hợp các server (hay là "herb of gnus") chạy trên nền Mach, và làm rất nhiều việc của một cái nhân Unix. Thời gian bắt đầu dự án đã bị hoãn lại vì họ chờ Mach được phát hành như một phần mềm tự do, giống như đã hứa. Nhưng Hurd vẫn chưa sẵn sàng cho việc đem ra sử dụng. Kiến trúc của hệ thống gnu hurd mach 2. Linux và GNU/Linux Năm 1985, một vị giáo sư tên là Andy Tanenbaum đã viết một hệ điều hành tựa Unix dựa trên System V standards POSIX và IEEE cho nền tảng Intel i386. Ông ta đặt tên cho nó là Minix. Minix được sử dụng để phục vụ công việc giảng dạy môn hệ điều hành. 11 Quá trình hình thành và phát triển của GNU/Linux Năm 1990, Linus Torvalds, chàng sinh viên năm 2 trường đại học Helsinki, Phần Lan cảm thấy thất vọng với hệ điều hành MS-DOS, đã tiếp xúc với nhân Minix. Linus muốn nâng cấp Minix bằng cách thêm vào nhiều chức năng và các cải tiến nhưng anh đã bị ngăn cấm bởi giáo sư Tanenbaum. Sau đó Linus quyết định tự mình viết lại từ đầu một cái nhân dựa trên Minix nhưng không dùng bất cứ mã nguồn của nó. Torvalds đã dành trọn mùa xuân và mùa hè năm 1991 để thực hiện ý tưởng này. Gần như anh ta tự cô lập mình, thậm chí chẳng buồn mở những tấm màn cửa trong phòng riêng. Theo tự thuật của Torvalds, anh chỉ “bò” ra khỏi cái “ổ” của mình vào những tối thứ tư hàng tuần để tới một quán bả gần nhà, vừa uống bia, vừa tán chuyện lập trình với các thành viên câu lạc bộ máy tính của đại học. Ngày 17-9-1991, Torvalds gửi một email thông báo với mọi người rằng mình đã đưa lên mạng của đại học Helsinki phiên bản nhân mới có tên là Linux do anh tự viết và mời mọi người tải về dùng thử mà khỏi cần bận tâm về phí. Và cứ như vậy, hàng ngàn đóng góp, phát hiện lỗi từ cộng đồng thế giới được gửi tới để hoàn thiện hệ điều hành. Sau khi Linux đã tương đối hoàn chỉnh với các version đầu tiên, Stallman đã thuyết phục được Torvalds đặt sản phẩm của mình dưới điều khoản GPL để đảm bảo rằng sản phẩm sẽ free cho tất cả mọi người. Khoảng năm 1992, bằng cách phối hợp Linux với một hệ điều hành GNU (lúc đó chưa hoàn chỉnh) đã tạo nên một hệ điều hành tự do hoàn thiện. Tất nhiên, bản thân việc phối hợp chúng đã là một việc rất đáng kể. Nhờ Linux mà ngày nay chúng ta có thể thực sự chạy được một phiên bản của hệ điều hành GNU. Họ gọi phiên bản này là GNU/Linux, để nói rằng cấu tạo của nó là tổ hợp của hệ điều hành GNU với nhân Linux. 12 Quá trình hình thành và phát triển của GNU/Linux Linus Torvalds Torvalds nói: “Tôi tặng Linux là vì ...ích kỷ. Không muốn phải nhức đầu về những phần khác của hệ điều hành này nữa. Tôi cần được giúp đỡ”. Anh không thể nghĩ đến chuyện thu tiền một sản phẩm mà anh xem là còn đang dang dở, Linux cần được giúp sức bởi những người khác. Vài tháng sau khi giới thiệu Linux, Torvalds nhận được email hỏi thăm rằng anh có thể thêm tính năng nén để Linux có thể chạy trên những máy tính có bộ nhớ nhỏ không. Tuy không cần tính năng này nhưng anh đã giành trọn ngày Giáng sinh năm ấy để “bóp” Linux lại rồi đưa lên mạng. Phiên bản mới được hàng trăm người tải về dùng thử và Torvalds liên tục nhận được vô số email từ nhiều người không quen biết đề nghị sửa lỗi hay bổ sung tính năng mới để tăng giá trị sử dụng của Linux. Thành công này khiến Torvalds thay đổi ý định bắt Linux phải cho không. Thay vào đó, mọi người có quyền bán các sản phẩm dựa trên Linux, miễn là tiếp tục chia sẻ mã nguồn của bất kỳ tính năng mới nào đã được thêm vào. Điều đó đã dẫn đến sự ra đời của những công ty như Red Hat (1993) và tạo thêm động lực kinh doanh trong cộng đồng những nhà lập trình đã góp sức hoàn thiện Linux. Ngày nay, sau khi trải qua 1 thời gian rất dài phát triển và hoàn thiện bởi cộng đồng khắp thế giới, Linux đã trở nên mạnh mẽ, ổn định và độ tin cậy cao, được tin dùng trong các cơ quan chính phủ các nước, các quốc gia như Trung Quốc, Nhật Bản và mới đây là Nga cũng đã có kế hoạch phát triển riêng Linux cho nước họ. Đi cùng với Linux còn có rất nhiều phần mềm tự do bổ sung để Linux có thể đáp ứng được tất cả nhu cầu trên mọi lĩnh vực, với cương lĩnh: “Làm bất cứ điều gì bạn muốn để cải tiến sản phẩm, bán hay không tùy bạn, nhưng hãy chia sẻ các dòng mã nguồn”. 13 Quá trình hình thành và phát triển của GNU/Linux Các phiên bản unix và linux 3. Biến đổi theo hướng chuyên nghiệp Ngày nay, câu chuyện trên đây chỉ hoàn toàn mang tính chất lịch sử. Từ một nhóm ít được thế giới biết đến, vài năm gần đây, cộng đồng các lập trình viên Linux đã trở nên phát triển, được tổ chức tốt và hiệu quả hơn nhiều. Torvalds giờ đây đã có một đội ngũ chuyên gia, đa phần được các công ty công nghệ trọng dụng cho việc giám sát phát triển các dự án có mức độ ưu tiên hàng đầu. Các tập đoàn khổng lồ như IBM, HP và Intel đang ủng hộ Torvalds với sự tập trung công nghệ, các cơ chế marketing hiệu quả và hàng ngàn lập trình viên chuyên nghiệp. Riêng IBM đã có hơn 600 lập trình viên dành riêng cho Linux, thậm chí còn lập hẳn một ban lãnh đạo cho mục đích ưu tiên phát triển Linux. Tất cả những điều ấy đã tạo ra một Linux mạnh hơn. a. Vòng quay liên tục Quá trình phát triển Linux bắt đầu và kết thúc với các lập trình viên. Một số người viết ra các đoạn mã, một số người khác được gọi là các “bảo dưỡng viên” có trách nhiệm hoàn thiện các đoạn mã ấy. Đó là một vong quay liên tục. Các cá nhân đưa ra các đoạn mã, các bảo dưỡng viên chỉnh sửa chúng. Sau đó các đoạn mã được gửi tới Torvalds và Morton, những người có nhiệm vụ duyệt chúng, yêu cầu cải tiến và cuối cùng là nâng cấp nhân. Cứ hàng 4-6 tuần, Torvalds công bố một phiên bản thử nghiệm dành cho hàng ngàn người trên khắp thế giwois dùng thử, nhận xét và tìm kiếm lỗi. Và Torvalds tung ra bản cập nhật tổng thể ba năm một lần. Không có giới hạn gì cho việc phát triển này, nhân Linux sẽ hoàn thành khi Torvalds quyết định nó đã hoàn thiện. 14 Quá trình hình thành và phát triển của GNU/Linux Linux Inc là mô hình gồm các vòng tròn đồng tâm xoay quanh Torvalds. Vòng trong cùng là phong thí nghiệm mã nguồn mở OSDL, các công ty công nghệ liên quan đến Linux, trong đó có HP, IBM và Intel đều có người tham gia ban giám đốc. Ban lãnh đạo này đưa ra các định hướng ưu tiên, xây dựng một quỹ ngân sách 10 triêu USD để bảo vệ khách hàng trước những vấn đề nảy sinh. Các lập trình viên của OSDL Vòng tròn thứ 2 là hàng chục các nhà phân phối Linux. Đi đầu là Red Hat, Novell, Canonical,... Gàng năm, các công ty này chọn phiên bản nhân mới nhất và đóng gói cùng với trên 1000 ứng dụng mã nguồn mở bao gồm giao diện đồ họa người dùng Gnome, KDE, trình duyệt Firefox và bộ ứng dụng văn phòng OpenOffice. Các nhà cung cấp chay đua nhau để đưa ra các sản phẩm tốt nhất, mới nhất nhưng các kỹ sư của họ lại dành phần lớn thời gian cho các dự án mà họ phối hợp với người khác. 15 Quá trình hình thành và phát triển của GNU/Linux Các bản phân phối Linux nổi tiếng Trên thực tế, Linux Inc đã nổi lên như một mô hình mới, một cách thức phối hợp mới theo cách tạo nên một hệ sinh thái trong phát triển phần mềm. Điểm mấu chốt nằm trong khẩu hiệu của cộng đồng mã nguồn mở: “Cho một ít, anh sẽ nhận lại nhiều”. Khi đã thành trào lưu, nó thực sự đang đe dọa sự thống trị của các công ty như Microsoft. b. Linux và những thách thức không nhỏ Linux đã trở thành hiểm họa lớn nhất của Microsoft khi các công ty đổ xô tích hợp sản phẩm của họ với nền tảng này. Tuy nhiên Linux cũng đang đứng trước thách thức lớn nhất của mình: Đó là các vụ kiện về bản quyền sở hữu trí tuệ. SCO, công ty phần mềm giữ bản quyền Unix đã buộc tội IBM về việc sử dụng hàng ngàn dòng lệnh của Unix vào Linux, họ còn đề nghị xem xét quy trình phát triển Linux. Xây dựng từ những mã nguồn được tằng, do đó Torvalds và các đồng nghiệp của anh không thể đame bảo rằng chúng có bản quyền hay không. Torvalds đã phát biểu rằng: “Về nguyên tắc, tôi không xem các bằng sáng chế vì: (a) đó là công việc lãng phí thì giờ, và (b) tôi không muốn biết”; “Đã có luật sư lo chuyện đó, một kỹ sư không cần phải xem xét bằng sáng chế”. Đó là đánh giá của người đàn ông với suy nghĩ quyền sở hữu trí tuệ làm tiêu tốn thì giờ quý báu mà lẽ ra anh có thể dành cho Linux. Điều đáng ngạc nhiên nhất là việc các vụ tấn công về mặt pháp lý nhằm vào Linux trong những năm qua đã góp phần làm cho cộng đồng ngày càng trở nên thống nhất. Không chỉ thế, những người ủng hộ nhưng có quan điểm khác cũng tập hợp lại bảo vệ Linux và tạm quên đi những bất đồng. 4. Một vài điều về GNU/Linux a. Linux là gì? Linux là phần lõi (kernel) của hệ điều hành. Phần lõi là phàn chính yếu để: 16 Quá trình hình thành và phát triển của GNU/Linux  Quản lý bộ nhớ, các chương trình khi chạy cần được cung cấp bộ nhớ để thực thi và quản lý bộ nhớ nhằm tránh các chương trình tranh giành cùng nhớ lẫn nhau và thực hiện có trật tự.  Quản lý files, lưu trữ là 1 công việc quan trọng và phần nhân đã đơn giản hóa phần này bằng việc tổ chức nó thành các file khác nhau. Linux kernel b. Linux - cơn ác mộng của Microsoft Nhiều năm qua, Microsoft đã hạ gục vô số địch thủ, từ Novell, Borland, Lotus đến Netscape,... nhưng Linux là đối thủ đầu tiên khiến Microsoft mất ăn mất ngủ. Sự bùng nổ của hiện tượng Linux thể hiện rõ đến mức hiện tại các báo trực tuyến chuyên ngành công nghiệp vi tính cũng đăng thông tin mới liên quan đến Linux. Từ vạch xuất phát zero, Linux đã chiếm 13,7% thị trường máy chủ trị giá 50,9 tỷ USD năm 2003, năm 2007 là 25,2% và hiện nay con số này còn vẫn tiếp tục tăng, đưa Linux lên vị trí thứ nhì thế giới sau Unix. Người ta so sánh việc Torvalds cho không mã nguồn Linux như việc Coca-Cola công bố công thức sẳn xuất Coke hay Lầu Năm Góc tung ra bí mật phóng tên lửa. Nhưng Torvalds đã làm chuyện “dại dột” đó. Bất cứ ai có điều kiện truy cập vào Internet đều có thể tải về cho mình 17 Quá trình hình thành và phát triển của GNU/Linux bộ mã nguồn mà Torvalds đã viết để biến nó thành hệ điều hành riêng. Linux - hệ điều hành thành công duy nhất được tạo ra ngoài địa phận Mỹ đã và đang trở thành một hiện tượng thế giới. Còn Linus Torvalds trở thành thần tượng của rất nhiều thanh niên trên thế giới. Danh tiếng của Linux đã đến tai các hãng công nghệ lớn, từ IBM, Intel, HP, Sun, Oracle,... đều đã có kế hoạch sử dụng, hỗ trợ phát triển Linux. Các quốc gia, tổ chức lớn cũng bắt đầu chuyển sang sử dụng Linux vì giá thành, tính ổn định, bảo mật và sự minh bạch của nó. Với Microsoft, bây giờ đã là quá trễ để chặn đứng sự phát triển của Linux. Microsoft có thể hạ gục một hoặc nhiều công ty nhưng họ không thể ngăn cản một xu hướng. Và Linux thực sự là cơn ác mộng khủng khiếp nhất của Microsoft. Linux đã trở nên nổi tiếng khắp thế giới IV. Kết luận * Trong quá trình xây dựng và phát triển hệ điều hành GNU/Linux rất nhiều các phương pháp sáng tạo đã được áp dụng. Những nguyên tắc có thể kể đến là:  Nguyên tắc phân nhỏ: + Chia các đối tượng thành các thành phần độc lập: Hệ điều hành GNU/Linux được xây dựng từ các module nhỏ độc lập + Làm đối tượng thành các thành phần tháo ráp: Các thành phần trong hệ điều hành Linux khả năng tháo lắp cao. Ta có thể dễ dàng thay thế, nâng bất cứ thành phần mà không ảnh hưởng đến các phần khác nào như nhân, giao diện,...  Nguyên tắc tách khỏi: Tách thành phần gây phiền phất ra khỏi đôi tượng hoặc ngược lại, tách lấy phần cần thiết. Linus Torvalds đã áp dụng nguyên tắc này để “bóp” nhân Linux lại còn rất nhỏ để có thể chạy trên các máy có cấu hình yếu. Thậm chí có những phiên bản hệ điều hành Linux chỉ khoảng 30mb. 18 Quá trình hình thành và phát triển của GNU/Linux  Nguyên tắc phẩm chất cục bộ: Các phần khác nhau của đối tượng phải có các chức năng khác nhau. Các thành phần khác nhau của hệ điều hành làm những công việc khác nhau.  Nguyên tắc kết hợp: + Kết hợp các đối tượng đồng nhất hoặc các đối tượng dùng cho các hoạt động kế cận. Hệ điều hành Linux được tạo ra bằng cách kết hợp nhiều thành phần lại với nhau. Rất nhiều lập trình viên trên thế giới đã kết hợp với nhau để phát triển Linux. + Kết hợp về mặt thời gian các hoạt động đồng nhất hoặc kế cận gian rỗi của CPU, tận dụng tài nguyên để cho ra hệ điều hành đa nhiệm, nhiều người dùng: GNU/Linux ngay từ đầu đã được thiết kế là hệ điều hành đa nhiệm.  Nguyên tắc thực hiện sơ bộ: Trước khi có nhân Linux thì GNU đã thực hiện sơ bộ những phần cơ bản của hệ điều hành.  Nguyên tắc liên tục các tác động có ích: Thực hiện công việc một cách liên tục. Linus Torvalds đã làm việc miệt mài không nghỉ trong suốt mùa xuân và mùa hè năm 1991 để cho ra đời nhân Linux. Những lập trình viên của GNU đã nỗ lực không ngừng để tạo ra hệ điều hành GNU. Rất nhiều lập trình viên đã không ngừng đóng góp mã nguồn, phát hiện lỗi để giúp Linux phát triển không ngừng.  Nguyên tắc biến hại thành lợi: Thay đổi các tác nhân có hại đến mức nó không còn có hại nữa. Ban đầu Torvalds định cải tiến Minix, nhưng bị giáo sư Tanenbaum ngăn cấm. Do đó Torvalds đã nảy sinh ý định tự mình viết nên một cái nhân và sau đó, anh không còn bị phụ thuộc vào ai nữa.  Nguyên tắc quan hệ phản hồi: Thiết lập quan hệ phản hồi:  Nguyên tắc sử dụng trung gian: Sử dụng đối tượng trung gian, chuyển tiếp để mang, truyền tác động.  Nguyên tắc tự phục vụ: Nguyên tắc này dễ dàng thấy được vì GNU/Linux không lệ thuộc vào bất cứ công ty nào, bất cứ phần mềm thương mại hay những giấy phép độc quyền nào. Các lập trình viên tình nguyện đã tự mình xây dựng nên một hệ điều hành hoàn chỉnh, tuyệt vời.  Nguyên tắc sao chép: Thay vì sử dụng những cái không được phép, phức tạp, đắt tiền, không tiện lợi, ta sử dụng bản sao.  Nguyên tắc “rẻ” thay cho “đắt”: Thay đối tượng đắt tiền bằng bộ các đối tượng rẻ và có phẩm chất kém hơn. 19
- Xem thêm -