Trong thế giới của các hệ điều hành, những cái tên như Microsoft Windows hay Mac OS chắc chắn đã không còn xa lạ gì với mỗi chúng ta. Nhiều năm liền, đây vẫn luôn là hai cái tên được nhắc đến nhiều nhất song bên cạnh những lời ca ngại thì vẫn không thể tránh khỏi một vài chê bai. Nhiều người cho rằng, cần có một sản phẩm thay thế hai hệ điều hành trên, và cái tên nhận được nhiều quan tâm nhất chính là Linux. Vậy Hệ điều hành linux là gì, công dụng và cách dùng của linux? Cùng tìm hiểu nhé!
Vậy Linux là gì và nó có những ưu điểm, nhược điểm như thế nào mà lại được yêu thích đến như vậy? Chúng ta sẽ cùng nhau tìm hiểu trong bài viết dưới đây.
Linux là một hệ điều hành với cha đẻ là Linus Torvalds được khởi nguồn vào những năm đầu của thế kỷ 20. Trong một dự án tư nhân do chính ông tự khởi xướng và thực hiện vào năm 1991, sau khi nảy sinh ra ý tưởng về 1 hệ điều hành của riêng mình, hàng ngàn các lập trình viên không chuyên đã tham gia cùng xây dựng để có 1 hệ điều hành Linux dựa trên nền tảng UNIX được ra đời.
Một số bản phân phối hệ điều hành Linux phổ biến trên thị trường: linux mint, kali linux, embedded linux, hosting linux,...
Trước khi nói tới Linux, mình phải kể về Unix & BSD trước đã.
Ngày xửa ngày xưa, ✌️ vào năm 1969 ✌️ hệ điều hành Unix bắt nguồn từ một đề án nghiên cứu tại phòng thì nghiệm Bell Labs của công ty AT&T và được dẫn dắt bởi Ken Thompson, Dennis Ritchie - hai nhà khoa học máy tính nổi tiếng.
Phiên bản đầu tiên của Unix được ra đời vào tháng 3 năm 1971, tiếp đó là phiên bản thứ 2 ra đời năm 1972.
Trong 10 năm đầu, việc phát triển Unix giới hạn bên trong Bell Labs là chính. Những phiên bản trong thời gian này được gọi là Version n (Vn).
Unix bắt đầu được viết bằng ngôn ngữ Assembly nhưng sau đó Dennis Ritchie - cha đẻ của ngôn ngữ lập trình C đã chuyển qua viết lại Unix bằng chính ngôn ngữ C (trừ nhân kernel, I/O). Và rồi:
Năm 1973, V4 được viết bằng C. Đây là sự kiện đáng chú ý nhất trong lịch sử hệ điều hành này vì lợi ích của việc viết hệ điều hành bằng ngôn ngữ bậc cao là có khả năng mang mã nguồn của hệ sang các nền máy tính khác và biên dịch lại, chính nhờ điều này mà hệ điều hành sẽ có các bản chạy trên các hệ máy tính khác nhau.
Năm 1976, V6 được phát miễn phí cho các trường đại học.
Năm 1979, V7 được phát hành rộng rãi với giá $100$ cho các trường đại học và $21,000 cho những thành phần khác. V7 là phiên bản căn bản cho các phiên bản sau này của Unix.
(Số liệu này lấy từ Wikipedia)
Những năm của thập niên 70, AT&T chia sẻ Unix cho những tổ chức giáo dục, hay tổ chức thương mại bên ngoài, từ đó dẫn đến sự ra đời của nhiều phiên bản Unix khác nhau.
Từ năm 1977, Compoup (CSRG) của trường đại học California, Berkeley được quyền sử dụng code của Unix để phát triển ra nhãn hiệu UNIX khác là BSD (Berkeley Software Distribution)
Có nhiều công ty lớn sử dụng FreeBSD cho hệ thống máy chủ như Yahoo, Sony.
Khi AT&T bắt đầu khai thác Unix như sản phẩm thương mại thì tiền bản quyền Unix tăng lên nhanh chóng (đoạn $21,000 ở trên đó) làm cho Berkeley phải đặt kế hoạch thay mã nguồn của AT&T bằng mã riêng. Việc này tốn rất nhiều thời gian và không kịp hoàn thành khi Berkeley bị ngưng tài trợ nghiên cứu hệ điều hành, CSRG giải tán.
BSD Unix và AT&T Unix là hai dòng chính của Unix
BSD giúp cho Unix trở nên phổ biến và có nhiều đóng góp về mặt kỹ thuật như: csh, termcap, curses, vi, TCP/IP socket, long file name, symbolic link.
Năm 1971, Richard Stallman bắt đầu làm việc tại MIT trong một nhóm nhân viên kĩ thuật chuyên sử dụng phần mềm tự do. Tuy vậy, đến những năm của thập kỉ 80, hầu hết các phần mềm đều có tính chất sở hữu (bản quyền). Nhận thấy điều này có thể ngăn cản việc hợp tác giữa những người phát triển phần mềm, Stallman và những người khác khởi đầu dự án GNU vào năm 1983.
Mục tiêu của dự án GNU là tạo ra được một hệ điều hành giống Unix nhưng miễn phí, nơi mà mọi người có quyền tự do copy, phát triển, chỉnh sửa và phân phối phần mềm và việc tái phân phối là không bị giới hạn.
Sau đó vào năm 1985, Stallman bắt đầu thành lập Tổ chức phần mềm tự do và viết ra giấy phép chung GNU (GNU General Public License - GNU GPL) vào năm 1989.
Khoảng đầu 1990, nhiều chương trình như thư viện, trình biên dịch, trình soạn thảo văn bản, Unix Shell, và một chương trình quản lý cửa sổ đã ra đời, nhưng các thành phần cấp thấp cần thiết như trình điều khiển thiết bị, daemons, và kernel vẫn chưa hoàn thành.
Như vậy điều Richard Stallman tìm kiếm bây giờ là có phần nhân hệ điều hành để chạy những phần mềm trên.
Và thế là định mệnh của cuộc tình đôi ta bắt đầu từ đây: GNU và Linux.
Nhưng trước khi kể về Linux, chúng ta sẽ kể một chút về Minix, đây là một hệ điều hành kiểu Unix, được thiết kế vì mục đích giáo dục bởi giáo sư Andrew S. Tanenbaum
Chính Minix đã là nguồn cảm hứng cho Linus Torvalds để viết Linux.
Vào năm 2005, Minix trở thành một phần mềm tự do. Tên Minix là viết tắt của Mini Unix.
Vào năm 1991 trong khi đang học tại Helsinki - Phần Lan, Linus Torvalds bắt đầu có ý tưởng về một hệ điều hành, hơn nữa ông cũng nhận thấy hạn chế trong giấy phép của Minix - chỉ cho phép việc sử dụng Minix trong giáo dục mà thôi. Ông bắt đầu viết nên hệ điều hành riêng của mình.
Torvalds phát triển Linux kernel trên môi trường Minix, các ứng dụng viết cho Minix có thể sử dụng trên Linux. Sau này, khi Linux đã "trưởng thành" thì việc phát triển Linux diễn ra ngay trên hệ thống Linux.
Thế là bác Richard Stallman sở hữu các phần mềm của GNU thì thiếu lõi, nhân kernel, còn bác Linus Torvalds thì đã có nhân kernel nhưng để phát triển lên được hệ điều hành hoàn chỉnh là còn nhiếu rất nhiều thứ abc xyz. Cả hai bác đều có chung tư tưởng lớn, muốn xây dựng hệ điều hành mã nguồn mở.
Linus Torvalds làm việc một cách hăng say trong vòng 3 năm liên tục và sự kết hợp của nhân Linux cùng các phần mềm của GNU đã cho ra đời hệ điều hành hoàn toàn miễn phí đầu tiên. Nó được mang tên GNU/Linux với phiên bản 1.0 vào năm 1994 - được phát triển và tung ra trên thị trường dưới bản quyền GNU General Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của GNU/Linux.
Các ứng dụng GNU cũng dần thay thế các thành phần của Minix.
Như vậy, có vài điều lưu ý:
Một cách chính xác, thuật ngữ Linux được sử dụng để chỉ nhân hệ điều hành (kernel), chứ bản thân nó chưa phải là hệ điều hành nhé !
Còn hệ điều hành được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU - hệ điều hành bạn đang sử dụng đó, nó có tên là GNU/Linux. Nhưng không hiểu sao người ta gọi ngắn ngọn lại là Linux. Hẳn là một sự bất công bằng cho GNU, nhưng biết làm sao được. Và đành xuôi theo chiều gió, trong series này, mình cũng dùng từ Linux để chỉ hệ điều hành này, còn khi nào cần nhắc tới phần nhân thì mình sẽ nói rõ là kernel Linux.
Linux không hề kế thừa dòng code nào từ Unix cả, nó được xây dựng mới và kết hợp với các phần mềm của GNU để trở thành một bản clone của Unix nhưng miễn phí, vì thời điểm đó Unix và Minux đều là close source và mất phí. Gọi là nhìn theo sản phẩm "nhà người ta" và "tự" bắt chước.
Hệ điều hành Linux có cốt lõi cơ bản được gọi là “hạt nhân”. Sau hơn một thập k��, Linux đã trở thành một sự thay thế đáng tin cậy cho Windows và hiện nay, các công ty như IBM và Dell đang ứng dụng Linux trên máy tính của họ. Đó cũng chính bởi những ưu điểm tuyệt vời của nó:
Bản quyền và chi phí: Linux được phát triển "free" cho người sử dụng và dựa trên nền tảng mã nguồn mở - open source trong khi Windows bản quyền và bộ Office bản quyền sẽ phải mất khoảng vài triệu để sở hữu. Không chỉ thế, khi sử dụng Linux, bạn sẽ được sử dụng miễn phí tất cả các tính năng kèm bộ ứng dụng văn phòng miễn phí mà không phải lo lắng gì về vấn đề bản quyền.
Bảo mật: Khi dùng Windows, việc phát tán virus là không thể tránh khỏi. Tuy nhiên, với Linux, bạn chỉ việc nhấn xóa mỗi lần thấy 1 con virus nào đó xuất hiện là xong.
Linh hoạt: Đối với Linux, nếu bạn có hiểu biết về nó nhiều một chút thì có thể tự thực hiện các tùy chỉnh theo ý mình chứ không cần phải thông qua Windows mỗi lần muốn chỉnh sửa gì đó.
Ở trên mình có nhắc đến kernel, vậy thì nó là cái gì? HIểu đơn giản thì kernel là trái tim của một hệ điều hành. Linux kernel là một phần mềm hệ thống low-level. Nó cung cấp các giao diện để tương tác ở mức người dùng. Nó quản lý các tài nguyên trong máy như RAM, Disk, Processort, các thiết bị đầu ra ..v..v..
Linux shell là một giao diện người dùng cơ bản. Bạn có thể nhập input vào shell, nó sẽ thực thi các lệnh bạn gõ và giao tiếp với Linux OS để chạy. Có khác nhiều loại shell: BASH (Bourne Again SHell), CSH ( C Shell), KSH ( Korn Shell) và TCSH.
BASH là một short form của Bourne Again SHell. Nó cũng là một command language và có các cú pháp command riêng của mình
Có 3 loại quyền trong Linux bao gồm:
Read: Người dùng chỉ có thể đọc file và liệt kê danh mục
Write: Người dùng có thể viết file mới hoặc chỉnh sửa file
Execute: Người dùng có thể truy cập và chạy file trong danh mục Các danh mục (directory) ở đây tương tự như folder trên Windows. Các câu lệnh chmod và chown được sử dụng để kiểm soát truy cập file trong Unix và hệ thống Linux. Chmod có nghĩa là change mode, cho phép thay đổi permission của các file và folder trong Linux. Chown có là viết tắt của change owner.
Với chmod, User U, Groups G và Others O có thể được cấp các quyền khác nhau như Read, Write hay Excute đối với file và directory. Read có giá trị là 4, Write là 2 và Excute là 1. Thêm các giá trị này vào permission cần thiết và gán giá trị tương ứng cho nó
Sudo là viết tắt của "super user do". Nếu bạn thêm sudo vào trước bất kì câu lệnh nào trong Linux, nó sẽ chạy câu lệnh đó với quyền cao nhất. Vì thế bạn có thể thực hiện các admin task nhất định như cài đặt server hay reboot.
Sudo rm -rf *
Nhân nói đến sudo thì mình cũng nói đến sudo rm -rf luôn. Đây là câu lệnh sẽ xóa sạch tất cả mọi thứ trong máy. rm có nghĩa là remove, và thẻ -rf sẽ ép phải xóa toàn bộ thư mục. Và * , có nghĩa là toàn bộ file và folder trong hệ thống Linux.
Một text editor là một ứng dụng phải có đối với bất kỳ hệ điều hành nào. Editor trên Linux có thể chia thành 2 loại:
GUI editors - Có đồ họa và thân thiện với người dùng. Ví dụ: Gedit, Sublime
Console text editors - Chúng hoạt động ngay trong terminal, nhưng khá khó với người mới bắt đầu. Ví dụ: Vim, Nano, Vi
pwd: Nó là một câu lệnh có sẵn, viết tắt của print working directory. Nó hiển thị toàn bộ đường dẫn tới thư mục hiện tại
ls: liệt kê toàn bộ file trong folder hiện tại
cd: Viết tắt của change directory. Lệnh này thường được sử dụng khi bạn muốn chuyển đổi thư mục
mkdir: Tạo ra một directory mới
rmdir: xóa một directory khỏi hệ thống
head: Hiển thị bắt đầu của file
tail: Hiển thị phần cuối cùng của file
cat: kết hợp file và hiển thị (trên terminal)
more: Hiển thị nội dung trong page form - một page một lần
less: Hiển thị nội dung trong page forrm và cho phép lùi lại file
Cron là một phần mềm lập lịch jobs dựa trên thời gian. Nó lên lịch các jobs (các câu lệnh hoặc các đoạn script) để chạy định kỳ tại các thời gian cố định. Bạn có thể thiết lập để nó tải xuống bộ phim mới vào mỗi tối thứ sáu hàng tuần chẳng hạn, bằng cách viết một đoạn script và gán nó cho cron
LVM, hay Logical Volume Management, là một công nghệ quản lý thiết bị lưu trữ. Nó cho phép người dùng có khả năng nhốm và trừu tượng các bố cục vật lý của các thiết bị lưu trữ thành phần như ở đĩa cứng hay ổ đĩa ngoài để quản lý một cách dễ dàng và linh hoạt
CLI (Command Line Interface) là một giao diện text-based trong Linux, cho phép người dùng tương tác với hệ điều hành và các ứng dụng. Nó không giống như GUI (Graphical User Interface) trong Window với các icon, link và folder. CLI cho phép người dùng thực hiện các task bằng cách gõ các dòng lệnh trên terminal. Cơ chế làm việc rất dễ dàng và nhanh chóng, tuy nhiên lại không thân thiện với người dùng.
LILO (Linux Loader) là một boot loader của hệ điều hành Linux dùng để load nó vào trong main memory để khởi động. Bootloader ở đây là một chương trình nhỏ quản lý dual boot. LILO nằm trong MBR (Master Boot Record).
Nguồn: wikihoidap