SysVn xin giới thiệu đặc điểm và một số ứng dụng trên Linux. Mời các bạn cùng theo dõi.
I. Đặc điểm của Linux
Linux được viết bằng ngôn ngữ C, chạy trên nhiều kiến trúc khác nhau như: Alpha, AMD, Intel, MIPS, PowerPC, Sparc, …Kích thước file tối đa 1 TB đối với hệ thống file cũ, ext4 lên đến 16 TB. Linux chạy tối đa 16 bộ vi xử lý, đa tiến trình, đa người dùng, hệ thống an toàn, ổn định, rất ít virus. Nếu có lỗi, cộng đồng sẽ sửa lỗi. Để lấy được tín chỉ Linux phải thi tín chỉ quốc tế LPI.
Kernel là nhân của Linux, quản lý toàn bộ các hoạt động của Linux, Boot code, driver thiết bị, quản lý bộ nhớ, quản lý file,…
Development Environment (môi trường phát triển): Compilers, assembler, linker, những thư viện hệ thống (System libraries) và những công cụ khác.
User Interface (Giao diện người dùng) tương tác giữa người dùng và hệ thống thống qua giao diện dòng lệnh (command line), giao diện đồ họa (Gnome, KDE), phần mền giao tiếp (FTP, SSH,…). Đối với giao diện dòng lệnh được quản lý thông qua shell, mỗi shell có cách quản lý dòng lệnh khác nhau, có các loại shell như bash shell, tcsh shell, csh shell, ksh shell. Bash shell được phát triển bởi Brian Fox & Chet Ramey, đây là loại shell thông dụng nhất trên Linux. CSH (C SHell) phát triển bởi Bill Joy tại University of California (dành cho BSD). Sử dụng cấu trúc lệnh giống C, rất thân thiện cho các lập trình viên C trên linux. Linux là hệ điều hành đa người dùng, đa nhiệm, đa tiến trình.
Đến thời điểm hiện nay thì các hệ điều hành nổi tiếng nhất cho máy tính là Microsoft Windows (C) và UNIX. Windows bắt nguồn từ hệ điều hành MS-DOS trước đây làm việc trên các máy tính của hãng IBM. Hệ điều hành UNIX do nhóm các nhà phát triển Bell Labs viết ra vào năm 1969 dưới sự điều khiển của Dennis Ritchie, Ken Thompson và Brian Kernighan. Nhưng bây giờ khi nói đến hệ điều hành UNIX thường có ý không nói cụ thể một hệ điều hành cụ thể nào mà là một nhóm các hệ điều hành dòng UNIX (UNIX-liked OS). Chính bản thân từ UNIX (viết hoa tất cả các chữ cái) trở thành nhãn hiệu thương mại của tổng công ty AT&T.
Vào cuối những năm 70 của thế kỷ trước (thế kỷ XX) các nhà phát triển của trường đại học California ở Berkeley đã thêm vào mã nguồn của UNIX rất nhiều sự cải tiến trong đó có hỗ trợ giao thức TCP/IP (giao thức mạng chính hiện nay). Sản phẩm này nổi tiếng dưới tên BSD (“Berkeley Systems Distribution”). Điều đặc biệt ở chỗ bản quyền của sản phẩm cho phép người khác phát triển và cải tiến và chuyển kết quả thu được đến người thứ ba (cùng với mã nguồn hoặc không) với điều kiện là phải chỉ ra phần nào của mã được phát triển ở Berkeley. Hệ điều hành dòng UNIX, trong đó có BSD, lúc đầu được phát triển để làm việc với các máy tính nhiều người dùng – các mainframe. Nhưng dần dần cấu hình trang thiết bị của máy tính cá nhân cũng mạnh lên và hiện nay có khả năng cao hơn so với những mainframe của những năm 70 thế kỷ trước.
Năm 1991, Linus Torvarlds đang là sinh viên lập trình máy tính tại đại học Hensinky, Phần Lan. Linus sử dụng hệ điều hành UNIX tại trường đại học mỗi ngày. Anh ta cảm thấy nhàm chán chiếc máy PC cũ chạy hệ điều hành MS-DOS, và quyết định bắt đầu viết 1 phiên bản nhân hệ điều hành của riêng mình, phần trung tâm của mọi hệ điều hành có chức năng giao tiếp với phần cứng. Anh ấy muốn phân phối phần mềm tự do, đó là vì sở thích, chứ không phải là một sản phẩm thương mại, và cũng cho thấy người khác nghĩ gì về nó. Anh ấy hoàn thành nhân Linux đầu tiên vào cuối năm 1991. Không chỉ là một nhân 32 bit, ông đã cố gắng làm cho nó trông có vẻ giống UNIX, nhưng không có chương trình nào chạy trên nó cả.
Đây là những dòng giới thiệu đầu tiên về hệ điều hành mang tên mình của Linus
May mắn thay, một cựu sinh viên ở Mĩ là Richard Stallman đã lập ra nhóm những lập trình viên cống hiến cho phần mềm tự do, gọi là Tổ chức Phần mềm tự do (Free Software Foundation), người tin rằng tạo ra phần mềm miễn phí là để phân phối, sự miễn phí kèm theo mã nguồn là điều kiện để mọi người trên Internet cải tiến phần mềm. Giấy phép công cộng GNU (GNU General Public License) do FSF lập ra, cũng nêu rằng: tác giả của phần mềm có thể lấy phí bản quyền phầm mềm của mình, miễn là họ sẵn sàng để nó được tự do phân phối. Bằng cách tạo ra phần mềm dựa vào cộng đồng, có tiêu chuẩn mở và có thể được xem xét ngang nhau, chất lượng phần mềm sẽ được nâng lên. Lợi nhuận sẽ đến từ những con đường khác thông qua hỗ trợ và tư vấn sử dụng sản phẩm.
Stallman đã rất bận rộn cho việc làm phần mềm, như trình soạn thảo emacs rất phổ biến ngày nay, và cả bash nữa (Bourne Again Shell), một giao diện dòng lệnh dựa trên Bourne Again Shell, đi kèm với BSD, một biến thể của UNIX. Phần mềm của FSF hoàn toàn dựa trên UNIX, và được cải tiến trên đó. Năm 1991, điều duy nhất mà tổ chức FSF đã bỏ quên là phần cốt lõi của hệ điều hành: nhân hệ điều hành (kernel). Linus thay đổi mã nguồn trên nền tảng của mình (nhân Linux) để mã nguồn của tổ chức FSF có thể làm việc trên nhân mới.
Đặc điểm chính của HĐH Linux
Do mã nguồn Linux phân phối tự do và miễn phí, nên ngay từ đầu đã có rất nhiều nhà lập trình tham gia vào quá trình phát triển hệ thống. Nhờ đó đến thời điểm hiện nay Linux là hệ điều hành hiện đại, bền vững và phát triển nhanh nhất, hỗ trợ các công nghệ mới gần như ngay lập tức. Linux có tất cả các khả năng, đặc trưng cho các hệ điều hành đầy đủ tính năng dòng UNIX. Xin đưa ra đây danh sách ngắn gọn những khả năng này.
1. Đa nhiệm
Tất cả các tiến trình là độc lập, không một tiến trình nào được cản trở công việc của tiến trình khác. Để làm được điều này nhân thực hiện chế độ phân chia thời gian của bộ xử lý trung tâm, lần lượt chia cho mỗi tiến trình một khoảng thời gian thực hiện. Cách này hoàn toàn khác với chế độ “nhiều tiến trình đẩy nhau” được thực hiện trong Windows95, khi một tiến trình phải nhường bộ xử lý cho các tiến trình khác (và có thể làm chậm trễ rất lâu việc thực hiện).
2. Đa người dùng
Linux không chỉ là HĐH nhiều tiến trình, Linux cho phép nhiều người làm việc cùng lúc. Lúc ấy Linux có thể cung cấp tất cả các tài nguyên hệ thống cho người dùng làm việc qua các terminal.
3. Đưa bộ nhớ swap lên đĩa
Bộ nhớ swap cho phép làm việc với Linux khi dung lượng bộ nhớ có hạn. Nội dung của một số phần (trang) bộ nhớ được ghi lên vùng đĩa cứng xác định từ trước. Vùng đĩa cứng này được coi là bộ nhớ phụ thêm vào. Việc này có làm giảm tốc độ làm việc, nhưng cho phép chạy các chương trình cần bộ nhớ dung lượng lớn mà thực tế không có trên máy tính.
4. Tổ chức bộ nhớ theo trang
Hệ thống bộ nhớ Linux được tổ chức ở dạng các trang với dung lượng 4K. Nếu bộ nhớ đầy, thì HĐH sẽ tìm những trang bộ nhớ đã lâu không được sử dụng để chuyển chúng từ bộ nhớ lên đĩa cứng. Nếu có trang nào đó trong số những trang này lại trở thành cần thiết, thì Linux sẽ phục hồi chúng từ đĩa cứng (vào bộ nhớ). Một số hệ thống Unix cũ và một số hệ thống hiện đại (bao gồm cả Microsoft Windows) chuyển lên đĩa tất cả nội dung của bộ nhớ thuộc về những ứng dụng không làm việc tại thời điểm hiện thời (tức là TẤt CẢ các trang bộ nhớ thuộc về ứng dụng sẽ được lưu lên đĩa khi không đủ bộ nhớ) và như vậy kém hiệu quả hơn.
5. Nạp mô-đun thực hiện theo yêu cầu
Nhân Linux hỗ trợ việc cung cấp các trang bộ nhớ theo yêu cầu, khi này chỉ phần mã cần thiết của chương trình mới nằm trong bộ nhớ, còn những phần mã không sử dụng tại thời điểm hiện tại thì nằm lại trên đĩa.
6. Cùng sử dụng chương trình
Nếu cần chạy một lúc nhiều bản sao của cùng một ứng dụng nào đó, thì Linux chỉ nạp vào bộ nhớ một bản sao của mã chương trình và tất cả các tiến trình giống nhau cùng sử dụng một mã này.
7. Thư viện chung
Thư viện – bộ các quá trình (thao tác) được chương trình dùng để làm việc với dữ liệu. Có một số thư viện tiêu chuẩn được dùng cùng lúc cho vài tiến trình. Trên các hệ thống cũ những thư viện đó nằm trong mỗi tập tin chương trình, và thực hiện cùng lúc những chương trình này dẫn đến hao hụt bộ nhớ không đáng có. Trên các hệ thống mới (bao gồm Linux) có hỗ trợ làm việc với các thư viện động (dynamic) và tĩnh (static) được chia ra, và như vậy cho phép giảm kích thước bộ nhớ bị ứng dụng chiếm.
8. Bộ đệm động của đĩa
Bộ đệm của đĩa đó là một phần bộ nhớ của hệ thống dùng làm nơi lưu những dữ liệu thường dùng của đĩa, nhờ đó nâng cao rất nhiều tốc độ truy cập tới những chương trình và tiến trình thường dùng. Người dùng MS-DOS sẽnhớ đến chương trình SmartDrive, chương trình này dự trữ một phần bộ nhớ có kích thước xác định để làm bộ đệm cho đĩa. Linux sử dụng hệ thống đệm linh động hơn: bộ nhớ được dự trữ cho đệm được tăng lên khi bộ nhớ không được sử dụng, và sẽ giảm xuống khi hệ thống hay tiến trình cầnnhiều bộ nhớ hơn.
9. 100% tương ứng với tiêu chuẩn POSIX 1003.1.
Hỗ trợ một phần các khả năng của System V và BSD POSIX 1003.1 (Portable Operating System Interface – giao diện của hệ điều hành lưu động) đưa ra giao diện tiêu chuẩn cho các hệ thống Unix, đó là một bộ các thủ tục ngôn ngữ C. Ngày nay giao diện này được tất cả các hệ điều hành mới hỗ trợ. Microsoft Windows NT cũng hỗ trợ POSIX 1003.1. Linux 100% tương ứng với tiêu chuẩn POSIX 1003.1. Thêm vào đóLinux còn hỗ trợ các khả năng của System V và BSD để tăng tính tương thích.
10. System V IPC
Linux sử dụng công nghệ IPC (InterProcess Communication) để trao đổi thông tin giữa các tiến trình, để sử dụng tín hiệu và bộ nhớ chung.
11. Khả năng chạy chương trình của HĐH khác
Trong lịch sử Linux không phải là hệ điều hành đầu tiên. Người ta đã viết ra hàng loạt các chương trình ứng dụng, trong đó có cả những chương trình có ích và không đến nỗi tồi, cho các HĐH đã phát triển trước Linux, bao gồm DOS, Windows, FreeBSD và OS/2. Để chạy những chương trình như vậy dưới Linux đã phát triển các trình giả lập (emulator) cho DOS, Windows 3.1, Windows 95 và Wine. Ngoài ra, còn có một loạt các chương trình tạo máy ảo mã nguồn mở cũng như sản phẩm thương mại: qemu,bochs, pearpc, vmware,. . . HĐH Linux còn có khả năng chạy chương trình dành cho bộ xử lý Intel của các hệ thống Unix khác, nếu hệ thống đáp ứng tiêu chuẩn iBCS2 (intel Binary Compatibility).
12. Hỗ trợ các định dạng hệ thống tập tin khác nhau
Linux hỗ trợ một số lượng lớn các định dạng hệ thống tập tin, bao gồm các hệ thống tập tin DOS và OS/2, và cả các hệ thống tập tin mới, như reiserfs, HFS,. . . . Trong khi đó hệ thống tập tin chính của Linux, được gọi là Second Extended File System (ext2fs) và Third Extended File System (ext3fs) cho phép sử dụng không gian đĩa một cách có hiệu quả.
13. Khả năng hỗ trợ mạng
Linux có thể gắn vào bất kỳ mạng nội bộ nào. Hỗ trợ tất cả các dịch vụ Unix, bao gồm Networked File System (NFS), kết nối từ xa (telnet, rlogin, ssh), làm việc trong các mạng TCP/IP, truy cập dial-up qua các giao thức SLIP và PPP,v.v. . . Đồng thời có hỗ trợ dùng Linux là máy chủ hoặc máy khách cho mạng khác, trong đó có chia sẻ (dùng chung, sharing) các tập tin và in từ xa trong các mạng Macintosh, Netware và Windows.
14. Làm việc trên các phần cứng khác nhau.
Mặc dù HĐH Linux đầu tiên được phát triển cho máy tính cá nhân (PC) trên nền tảng Intel 386/486, nhưng bây giờ thì nó có thể làm việc trên tất cả các bộ vi xử lý Intel bắt đầu từ 386 và kết thúc là các hệ thống nhiều bộ xử lý Pentium IV, bao gồm cả các bộ xử lý 64bit. Đồng thời Linux còn làm việc trên rất nhiều bộ xử lý tương thích với Intel của các nhà sản xuất khác, như AMD. Trên Internet còn có những thông báo nói rằng trên các bộ xử lý Athlon và Duron của AMD Linux còn làm việc tốt hơn so với trên Intel. Ngoài ra còn có phiên bản Linux cho các bộ xử lý khác bao gồm ARM, DEC Alpha, SUN Sparc, M68000 (Atari và Amiga), MIPS, PowerPC và những bộ xử lý khác.
Lợi thế:
Linux là một bước tiến xa hơn nữa của UNIX, nó là một hệ thống mã nguồn mở thật sự:
• Theo giấy phép GNU, sử dụng Linux bạn có được những phần mềm miễn phí, bạn có thể thay đổi mã nguồn của phần mềm nếu muốn. Sau đó bạn có thể phân phối lại phần mềm nếu thích, miễn là bạn cung cấp kèm mã nguồn và ghi chú sự thay đổi.
• Phần mềm chuẩn mở ít gây lỗi vì nó dựa trên nhiều nhà phát trển trên toàn thế giới (Open standards provoke less buggy software because it is worked on by a potentially global team of developers from many far reaching backgrounds. )
• Chuẩn mở có khả năng tương thích trên bất kì nền tảng mở khác. Ví dụ: bạ có thể chắc chắn rằng tập tin âm thanh OGG của mình có thể mở được trên bất kì máy nghe nhạc hỗ trợ OGG nào, vì các tiêu chuẩn mở được áp dụng chung.
• Tính toán đáng tin cậy, cũng như tất cả các mã nguồn phần mềm phân phối miễn phí và thường xuyên.
• Linux không thương mại hoá, vì nó không thuộc bất kì một công ty nào.
• Chúng ta đã đề cập đến phần mềm nguồn mở nói chung (nhưng không phải lúc nào) cũng miễn phí. Nghĩa là phần mềm có chất lượng cao cho mọi người, chỉ trả phí cho việc hỗ trợ, phân phối sản phẩm, hay đào tạo.
• Đó là phương thức mới mang tính cách mạng trong kinh doanh, đã có những tên tuổi khổng lồ như IBM, HP, Novell, Sun, Intel và ngay cả các hãng không trong ngành IT như Boeing, Glaxo Smithkline và hàng ngàn người sử dụng nó vào công việc của mình.
Một nền tảng đáng tin cậy cho bất kì công việc quan trọng nào:
• So với các nền tản khác, Linux giao tiếp tốt với phần mềm , rất khó để một hệ thống Linux bị sụp đổ.
• Không có dòng virus chính nào trên Linux cả, vì mỗi bản phân phối Linux khác nhau được xây dựng trên những chuẩn khác nhau.
• Khả năng làm việc trên các máy tính cũ kĩ hoặc máy tía chế lại.
• Tạm biệt với Spyware, Adware và những phần mềm độc hại khác.
- Hệ thống bảo mật định sẵn, không cần phải cài thêm chương trình an ninh cho hệ thống.
II. Ứng dụng trên Linux
Ứng dụng văn phòng (Open Office), giải trí (movie player, xmms, totem player kaffeine), xử lý ảnh (GIMP), dịch vụ mạng (Telnet, SSH, FTP, Postfix, Apache, Bind, CUPS, OpenLDAP, Iptable, Squid, Samba, NFS,…), Cở sở dữ liệu (MySQL, PostgreSQL,…), lập trình (Emacs, C/C++, QT Trolltech, Fortran, Java, R, Octave, Lapack, Blas, Python, Perl, AWK, TCL/TK, PHP, …), quản trị hệ thống (Webmin, VNC, SSH,…) và còn rất nhiều ứng dụng khác.
Bài viết: Tổng hợp từ Internet