1. GIỚI THIỆU LINUX SYSTEM
1 LỊCH SỬ PHÁT TRIỂN CỦA LINUX SYSTEM
Giữa năm 1960, AT&T Bell Laboratories và một số số trung tâm khác thực hiện dụ án Multics (Multiplexed Information and Computing Service). Sau một thời gian thực hiện, dự án tỏ ra không khả thi. Tuy vậy Ken Thompson, Dennis Ritchie (Cả 2 đều làm việc ở Bell Labs) đã không bỏ cuộc. Thay vì xây dựng một HĐH làm nhiều việc một lúc như Multics, họ quyết định phát triển một HĐH đơn giản chỉ làm tốt một việc là chạy chương trình (run program). Peter Neumann đặt tên cho HĐH “đơn giản”này là Unix
![]() |
| Ken Thompson và Dennis Ritchie |
Khoảng 1977 bản quyền của UNIX được giải phóng và HĐH UNIX trở thành một thương phẩm. Hai dòng UNIX: System V của AT&T, Novell và Berkeley Software Distribution (BSD) của Đại học Berkeley.
Sau đó IEEE đã thiết lập chuẩn "An Industry-Recognized Operating Systems Interface Standard based on the UNIX Operating System." Kết quả cho ra đời POSIX.1 (cho giao diện C ) và POSIX.2 (cho hệ thống lệnh trên Unix)
![]() |
| Richard Stallman |
Có một điều thú vị là trước khi Linus Torvalds tạo ra phiên bản nhân linux, thì vào năm 1983 Richard Stallman đã bắt đầu xây dựng dự án GNU (GNU’s Not Unix) với mục đích là tạo ra một hệ điều hành miễn phí Unix-Like. Nhóm làm việc tuân theo GNU General Public License(GPL). Vào đầu năm 1990 nhóm đã xây dựng xong phần lớn các thành phần để có thể tạo ra một hệ điều hành (complier, lib). Tuy nhiên phần nhân GNU lúc đó gọi là Hurd đã bị thất bại do không được sự hưởng ứng của các thành viên trong nhóm.
Năm 1991 Linus Torvalds bắt đầu xem xét Minix, một phiên bản của Unix với mục đích nghiên cứu cách tạo ra một hệ điều hành Unix chạy trên máy PC với bộ vi xử lý Intel 80386. Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo trên comp.os.minix của Internet về dự định của mình về Linux. Vào tháng 1/1992, Linus cho ra version 0.12 với shell và C compiler. Linus không cần Minix nữa để recompile HDH của mình. Linus đặt tên HDH của mình là Linux. Năm 1994, phiên bản chính thức 1.0 được phát hành.
![]() |
| Linus Torvalds |
Linux là một HDH dạng UNIX (Unix-like Operating System) chạy trên PC với CPU Intel 80386 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD, Cyrix. Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Sparc. Linux thỏa mãn chuẩn POSIX.1.
Linus đã tận dụng các thành phần sẵn có của dự án GNU để build thành công nhân linux dựa trên GNU compiler . Đến cuối 2001, phiên bản mới nhất của Linux kernel là 2.4.2-2, có khả năng điều khiển các máy đa bộ vi xử lý và rất nhiều các tính năng khác.
2 PHẦN MỀM MÃ NGUỒN MỞVÀ GNU GPL
Trong phần này mình sẽ nêu rõ khái niệm về phần mềm mã nguồn mở (open source) và phần mềm miễn phí (free software).
Như đã nói ở phần trên về dự án GNU của Richard Stallman. Năm 1983, ông đã khởi xướng dự án GNU, và vào năm 1984 thành lập ra tổ chức Phần mềm Tự với triết lý tự do cho phần mềm – phần mềm tự do (Free Software). Sau này cụm từ "phần mềm tự do" và "nguồn mở" (Open Source), ít hay nhiều, đều mô tả cùng chủng loại phần mềm, nhưng còn nói cả nhiều thứ khác về phần mềm và giá trị của nó. Cho tới nay, dự án GNU vẫn tiếp tục sử dụng khái niệm "phần mềm tự do" để biểu thị ý tưởng về TỰ DO, là điều quan trọng nhất, chứ không phải chỉ về công nghệ. Rất tiếc, từ TỰ DO này vẫn bị rất nhiều người hiểu lầm là miễn phí về giá (Free of charge). Vì vậy cũng cần nhắc lại định nghĩa về phần mềm tự do để chúng ta hiểu chính xác về nó.
Cần phân biệt rõ phần mềm Nguồn Mở và phầm mềm miễn phí:
* Phần mềm mã nguồn mở (OpenSource Software) tương đương với phần mềm Tự do (Free Software) nó bao gồm các đặc điểm sau:
- Tự do chạy chương trình với bất cứ mục đích nào
- Tự do sửa đổi chương trình phù hợp với nhu cầu của bạn
- Tự do phân phối lại các bản sao, kể cả cho không hoặc có phí
- Tự do phân phối các bản đã được sửa đổi đối với các chương trình (để làm cho sự tự do này có hiệu lực trong thực tế, bạn buộc phải truy cập vào vào mã nguồn, vì việc làm thay đổi trong chương trình mà không có mã nguồn là cực kỳ khó khăn), sao cho cộng đồng có thể hưởng lợi từ việc cải tiến của bạn.
- Vì chữ "Free" ở đây là TỰ DO, không liên quan gì tới giá, nên không có mâu thuẫn gì giữa việc bán các bản sao và phần mềm tự do.
- Phần mềm nguồn mở thì đa số miễn phí, còn phần mềm miễn phí không hẳn đã là phần mềm nguồn mở.
Phần mềm mã nguồn mở phải tuân thủ theo giấy phép GPL. Có 2 đặc điểm cơ bản cần hiểu rõ là:
- Tác giả gốc giữ bản quyền về phần mềm nhưng cho phép người dùng rất nhiều quyền khác, trong đó có quyền tìm hiểu, phát triển, công bố cũng như quyền khai thác thương mại sản phẩm.
Tác giả sử dụng luật bản quyền để bảo đảm các quyền đó không bao giờ bị vi phạm đối với tất cả mọi người, trên mọi phần mềm có sử dụng mã nguồn của mình.
- Đặc biệt điểm thứ 2 thường được gọi là hiệu ứng virus (viral effect)vì nó biến tất cả các phần mềm có dùng mã nguồn GPL cũng biến thành phần mềm GPL. Trên thực tế điều này có ý nghĩa: bất kỳ tác giả nào sử dụng dù chỉ 1 phần rất nhỏ mã nguồn GPL trong chương trình của mình cũng phải công bố chương trình đó dưới điều kiện GPL. Điều kiện này quy định ví dụ:
+Mọi phần mềm GPL đều phải công bỗ mã nguồn của mình rộng rãi công khai và phải tạo điều kiện cho mọi người truy cập được mã nguồn ấy (ví dụ qua web hoặc qua việc bán CD giá rẻ)
+Giữ nguyên mọi dòng chú thích về nguồn gốc tác giả, bản quyền của họ cũng như điều kiện được áp dụng đối với phần mềm (trong 1 file có tên LICENSE)
+Cấm việc bán mã nguồn nhưng cho phép kinh doanh chương trình được tạo ra từ mã nguồn ấy hoặc là các dịch vụ hỗ trợ liên quan.
![]() |
| Mô hình tương tác giữa các phiên bản các giấy phép GPL |
Phiên bản mới nhất được đưa ra GNU GPL 3.0.
3 KIẾN TRÚC LINUX SYSTEM
Hệ điều hành linux được phát triển ra bởi rất nhiều nhà phân phối (redhat, debian, gentoo...) có mặt ở rất nhiều ứng dụng khác nhau trong cuộc sống. Từ trong các ứng dụng hệ thống lớn (database, cloud computing, web server ....) cho đến các thiết bị cầm tay (smart phone, điều khiển tự động, STB ...). Ở mỗi một ứng dụng thì hệ điều hành linux có mô hình khác nhau tuy nhiên nhân linux (kernel) đều có cơ chế giống nhau. Đó là một đặc điểm lý thú của linux. Hệ điều hành linux bao gồm các thành phần:
![]() |
| Các thành phần hệ điều hành linux |
- User applications: là các ứng dụng sử dụng trong hệ thống linux khác nhau, phục vụ cho mục đích nhất định như mysql, oracle phục vụ cho database, apache, linghttpd chạy web server. Chính các ứng dụng này tạo ra các hệ thống linux khác nhau có thể đáp ứng cho các ứng dụng từ lớn cho tơí bé.
- O/S service: là các dịch vụ giúp cho người dùng và ứng dụng có thể tương tác với nhân linux một cách thuận tiện ( windown system, shell ...) đồng thời cung cấp API tương tác với nhân (thư viện, trình biên dịch).
- Linux Kernel: Đây chính là trái tim của hệ thống mà linus torwad cùng hàng nghìn nhà lập trình trên thế giới đang phát triển. Nhân linux có vai trò quản lý các tiến trình và phân bố tài nguyên phần cứng cho các ứng dụng và dịch vụ phía trên (CPU, RAM, hardisk, network).Các phiên bản của kernel Linux được xác định bởi hệ thống số dạng X.YY.ZZ. Nếu YY là số chẵn là phiên bản ổn định. Nếu YY là số lẻ là phiên bản thử nghiệm.
- Hardware Controllers: bao gồm các trình điều khiển của các phần cứng, từ đó nhân linux mới có thể sử dụng và cung cấp tài nguyên cho các ứng dụng phía trên.
Như vậy có rất nhiều hệ điều hành linux khác nhau, được phát triển bởi rất nhiều hãng (redhat, ubuntu, debian ...), mỗi hãng đều có hệ thống user applications khác nhau tuy nhiên tất cả đều có một kiến trúc giống nhau đó là Linux Kernel, trong phần sau mình sẽ nêu rõ hơn về kiến trúc của kernel, để mọi người có thể nắm rõ và có thể thích nghi một cách nhanh trong trên các hệ điều hành linux khác nhau.
4 GIỚI THIỆU VỀ MỘT VÀI DISTRIBUTION LINUX SYSTEM
Do linux phát triển tuân theo qui định mã nguồn mở GNU GPL nên linux phát triển và lan rộng nhanh chóng. Cũng từ đó có rất nhiều hệ điều hành linux khác nhau hay còn gọi là distribution. Các bạn có thể xem cây distribution của linux tại đây: http://en.wikipedia.org/wiki/File:Gldt.svg
Trong đó nổi lên các distribution được sử dụng rộng dãi như:
- - DEBIAN: do dự án Debian xây dựng, là bản phân phối phần mềm tự do với sự cộng tác của các trình nguyện viên trên khắp thế giới. Kể từ lúc bắt đầu đến nay, hệ thống chính thức phát hành với tên gọi Debian GNU/Linux được xây dựng dựa trên nhân Linux với nhiều công cụ cơ bản của hệ điều hành lấy từ dự án GNU.Debian có tiếng về mối kết gắn chặc chẽ với triết lý Unix và phần mềm tự do. Nó cũng có tiếng về sự phong phú cho các chọn lựa, phiên bản phát hành hiện tại có hơn 15,490 gói phần mềm cho 11 kiến trúc máy tính, từ kiến trúc ARM thường gặp ở các hệ thống nhúng và kiến trúc mainframe s390 của IBM cho đến các kiến trúc thường gặp trên máy tính cá nhân hiện đại như x86 và PowerPC. Địa chỉ website: http://www.debian.org/
- - FEDORA CORE: là một bản phân phối của Linux dựa trên RPM Package Manager, được phát triển dựa trên cộng đồng theo “Dự án Fedora (Fedora Project)” và được bảo trợ bởi RedHat. Dự án Fedora nhằm tới mục đích tạo ra một hệ điều hành mã nguồn mở hoàn chỉnh để sử dụng cho các mục dích tổng quát. Fedora được thiết kế để có thể dễ dàng cài đặt với chương trình cài đặt mang giao diện đồ họa. Các gói phần mềm bổ sung có thể tải xuống và cài đặt một cách dễ dàng với công cụ YUM. Các phiên bản mới hơn của Fedora có thể được phát hành 6 đến 9 tháng. Phiên bản hiện tại của Fedora là 16 http://fedoraproject.org/
- - SUSE: do hãng Nowel phát triển. SuSE có các phiên bản chính như: SuSE Linux Enterprise Server, openSuSE. Trong số các phiên bản trên, phiên bản x86-64 bit, PPC, IA64. Kiến trúc x86 bao gồm các loại bộ xử lý: Intel Pentum 1-4, Celeron, 32bit Xeon, Celeron D, AMD K6, Duỏn, Athlon, Athlon XP, Athlon MP, Sempron. Kiến trúc x86-64 bit bao gồm các bộ vi sử lý như: AMD Xeon, Xeon MP, Pentum 4 Extreme Edition, pentum D, processors based on AMD’s AMD 64 & intel’s EM64T.Có thể tham khảo các thông tin về OpenSuSE tại địa chỉ:http://www.opensuse.org.
- - UBUNTU: là bản phân phối của Linux chủ yếu dành cho máy tính để bàn dựa trên Debian GNU/Linux.Nó được tài trợ bởi Canonical LTD, tên của bản phân phối bắt nguồn từ quan niệm “ubuntu” của Nam Phi. Ubuntu hướng đến chỉ việc chỉ dùng phần mềm cho người dùng trung bình. Ubuntu có một cộng đồng người dùng năng động. Địa chỉ website: http://www.ubuntu.com/
- - CENTOS: Comminity Enterprise Operating System là bản được xây dựng dựa trên nền tảng của Red Hat Enterprise Linux, hỗ trợ dòng x86 (i586 và i386), dòng x86-64 (AMD64 và Intel EMT64), các cấu trúc IA64, Alpha, S390 và S390x. CentOS chủ yếu cung cấp cho dòng server chuyên dụng, hiện nay CentOS cung cấp phiên bản 6.0 http://www.centos.org/
- - RED HAT ENTERPRISE: thường được gọi tắt là RHEL là một bản phân phối Linux mang tính thương mạii của RedHat. Mỗi phiên bản RHEL sẽ Redhat hỗ trợ trong vòng 7 năm kể từ ngày phát hành đầu tiên. Các phiên bản mới của RHEL sẽ xuất hiện sau mỗi 18 tháng. Hiện nay RedHat đã có phiên bản 6:
- RHEL AS: dành cho các hệ thống lớn
- RHEL ES: dành cho các hệ thống trung bình
- RHEL ws: dành cho người dùng các nhân có nhu cầu cao
- RHEL Desktop: dành cho người dùng cá nhân có nhu cầu thấp
Địa chỉ website: http://www.redhat.com/




