1. Lời nói đầu.
Hướng dẫn này cung cấp các khái niệm cơ bản và nâng cao về Linux. Hướng dẫn Linux của chúng tôi được thiết kế cho người mới bắt đầu và chuyên gia.
Linux là một hệ điều hành mã nguồn mở. Nó giống như Windows, Mac, Android, vv.
Unix cũng là một hệ điều hành giống như Linux. Đó là một hệ điều hành thương mại. Nó bao gồm ba phần: Kernel, Shell và các Chương trình. Hầu hết các lệnh Unix và Linux có tính chất tương tự nhau.
Hướng dẫn Linux của chúng tôi bao gồm tất cả các chủ đề của hệ điều hành Linux như các lệnh Linux, các thư mục, tập tin, trang Man, Nội dung tập tin, Quyền truy cập tập tin, các shell, trình chỉnh sửa VI, v.v. Cũng có các câu hỏi phỏng vấn về Linux để giúp bạn hiểu hơn về hệ điều hành Linux.
2. Hệ điều hành Linux là gì?
Linux là Hệ điều hành mã nguồn mở dựa trên nhân Linux, một họ hệ điều hành giống Unix. Nhân hệ điều hành này được xuất bản lần đầu vào ngày 17 tháng 9 năm 1991 bởi Linus Torvalds. Thông thường, Linux được đóng gói dưới dạng phân phối Linux, bao gồm các thư viện hỗ trợ, phần mềm hệ thống và nhân, một số trong đó được cung cấp bởi Dự án GNU. Nhiều phân phối Linux sử dụng thuật ngữ “Linux” trong tiêu đề, nhưng Tổ chức Phần mềm Tự do sử dụng tiêu đề “GNU/Linux” để tập trung vào sự cần thiết của phần mềm GNU, gây ra một số tranh cãi.
Các phân phối Linux nổi tiếng bao gồm Ubuntu, Fedora Linux và Debian. Phân phối cuối cùng bao gồm nhiều sửa đổi và phân phối khác nhau, bao gồm Xubuntu và Lubuntu. Các phân phối thương mại là SUSE Linux Enterprise và Red Hat Enterprise Linux. Các hệ thống desktop của Linux là các hệ thống cửa sổ như Wayland hoặc X11 và các môi trường desktop như KDE Plasma và GNOME.
Ban đầu, Linux được thiết kế cho các máy tính cá nhân dựa trên kiến trúc Intel x86, nhưng hiện nay nó đã được di chuyển đến nhiều môi trường hơn các hệ điều hành khác. Bao gồm cả Android, Linux có cơ sở cài đặt lớn nhất của mọi hệ điều hành đa năng do sự kiểm soát của Android dựa trên Linux trên điện thoại thông minh tính đến tháng 5 năm 2022. Tuy nhiên, Linux chỉ được sử dụng trên khoảng 2,6% máy tính để bàn tính đến tháng 11 năm 2022.
Linux được sử dụng trên nhiều hệ thống nhúng, tức là các thiết bị có hệ điều hành được tích hợp sẵn vào firmware và được tùy chỉnh cho từng hệ thống cụ thể. Các thiết bị này bao gồm máy chơi trò chơi, thiết bị thông minh trong nhà, các điều khiển tự động hóa và các bộ định tuyến. Nó cũng được sử dụng trên các thiết bị không phải máy tính như tàu vũ trụ (rover Perseverance, tàu con thoi Dragon và tên lửa Falcon 9), ô tô (Toyota, Hyundai, Mercedes-Benz, Audi và Tesla), tivi thông minh (LG và Samsung Smart TV) và máy chủ.
3. Lịch sử của Linux
Tiền thân của hệ điều hành dựa trên Unix được khởi tạo và triển khai vào năm 1969 tại Bell Labs của AT&T bởi Joe Ossanna, Douglas Mcllroy, Dennis Ritchie và Ken Thompson ở Hoa Kỳ. Unix được xuất bản lần đầu vào năm 1971 và hoàn toàn được viết bằng ngôn ngữ assembly như là thực tiễn cơ bản thời điểm đó. Nó được cập nhật bằng ngôn ngữ C bởi Dennis Ritchie một cách đột phá vào năm 1973. Sự có mặt của một bản triển khai ngôn ngữ cấp cao của Unix đã làm cho việc đưa nó sang các nền tảng máy tính khác trở nên thuận tiện hơn.
Torvalds đã đăng ký một khóa học Unix khi đến thăm Đại học Helsinki vào mùa thu của những năm 1990. Khóa học sử dụng một máy tính nhỏ MicroVAX chạy Ultrix và một trong những giáo trình cần thiết là Operating Systems: Design and Implementation của Andrews S. Tanenbaum. Cuốn sách giáo trình chứa một bản sao của hệ điều hành MINIX của Tanenbaum. Chính với khóa học này, Torvalds đã trở nên quan tâm đến Unix. Anh ta đã bắt đầu quan tâm đến các hệ điều hành vào năm 1991. Bực tức vì giấy phép MINIX giới hạn việc sử dụng chỉ cho mục đích giáo dục, anh bắt đầu làm việc trên nhân hệ điều hành riêng của mình, sau đó trở thành Linux Kernel.
Torvalds bắt đầu phát triển kernel Linux trên MINIX và phần mềm được viết cho MINIX cũng được sử dụng trên Linux. Sau đó, Linux được trồng trọt, và phát triển kernel Linux đã xuất hiện trên các hệ thống Linux. Ngoài ra, các ứng dụng GNU đã thay thế mọi thành phần của MINIX vì nó hữu ích khi sử dụng mã nguồn miễn phí thông qua Dự án GNU với hệ điều hành mới; mã được cấp phép theo GNU GPL có thể được áp dụng lại trong các chức năng máy tính khác miễn là chúng cũng được xuất bản dưới một giấy phép tương thích hoặc giống như giấy phép đó.
Torvalds đã bắt đầu chuyển sang giấy phép GNU GPL của mình, sau khi nhận thấy rằng giấy phép hiện tại của mình không đủ để bảo vệ mã nguồn mở của Linux khỏi sự bóc lột thương mại. Sau đó, các nhà phát triển đã cùng nhau phát triển các thành phần GNU với Kernel Linux, tạo nên một hệ điều hành hoàn chỉnh và miễn phí.
Hiện nay, người điều hành chính của Kernel Linux là Greg Kroah-Hartman, người hướng dẫn quá trình phát triển của nó. William John Sullivan là giám đốc điều hành của Free Software Foundation, là tổ chức hỗ trợ các thành phần GNU. Ngoài ra, cộng đồng Linux và các nhà cung cấp phân phối hỗn hợp các thành phần Kernel Linux, các thành phần không phải GNU và các thành phần GNU với phần mềm quản lý gói bổ sung để tạo ra các bản phân phối Linux khác nhau.
Linux đã được sử dụng rộng rãi trong các môi trường sản xuất, từ các hệ thống nhúng cho đến các siêu máy tính, và đã giành được vị trí trong các cài đặt máy chủ như “ngăn xếp ứng dụng” LAMP nổi tiếng. Việc sử dụng các bản phân phối Linux trong các máy tính để bàn ở doanh nghiệp và gia đình đã được phát triển. Ngoài ra, các bản phân phối Linux đã trở nên phổ biến trên thị trường netbook, với nhiều thiết bị đi kèm với các bản phân phối Linux tùy chỉnh được cài đặt sẵn và Google phát hành ChromeOS của mình dành cho netbook.
4. Thiết kế của hệ điều hành Linux
Nhiều nhà phát triển mã nguồn mở thừa nhận rằng hạt nhân Linux không phải được phát triển mà thay vào đó là đã tiến hóa từ sự lựa chọn tự nhiên. Một hệ thống dựa trên Linux là một hệ điều hành tương thích Unix giống nhau, được phát triển dựa trên các nguyên tắc đã được thiết lập trong Unix trong những năm 1970 và 1980. Hệ thống này áp dụng hạt nhân Linux, một hạt nhân quản lý hệ thống file, truy cập phần cứng, mạng và điều khiển quy trình. Các trình điều khiển thiết bị được tích hợp trực tiếp với hạt nhân hoặc được bao gồm dưới dạng các mô-đun được tải khi thiết bị hoạt động.
5. Cấu trúc của hệ điều hành Linux
Các nhà phát triển mã nguồn mở thừa nhận rằng nhân Linux không được phát triển mà đã phát triển dựa trên quá trình tiến hóa tự nhiên. Hệ thống dựa trên Linux là một hệ điều hành tương thích Unix-like, được phát triển dựa trên các nguyên tắc chung được đặt ra trong Unix trong những năm 1970 và 1980. Hệ thống này sử dụng nhân Linux, một nhân hạt nhân quản lý hệ thống tập tin, truy cập thiết bị ngoại vi, mạng và điều khiển quá trình. Trình điều khiển thiết bị được tích hợp trực tiếp với nhân hoặc được bao gồm như các module được tải khi thiết bị hoạt động.
Các thành phần của Hệ thống Linux bao gồm:
Trình khởi động, ví dụ như systemd-boot, SYSLINUX, LILO và GNU GRUB. Đây là một chương trình có thể tải nhân Linux vào bộ nhớ chính của máy tính bằng cách chạy bởi máy tính sau khi đăng nhập firmware được thực hiện và khi nó được bật.
Chương trình khởi động, giống như sysvinit truyền thống và Upstart mới hơn, OpenRC và systemd. Đây là quá trình đầu tiên được thông báo bởi nhân Linux và gốc cây quá trình. Nó khởi động các quá trình như lời nhắc đăng nhập và dịch vụ hệ thống (trong chế độ terminal hoặc đồ họa).
Các thư viện phần mềm, bao gồm mã có thể được áp dụng bằng cách chạy các quá trình. Trình kết nối động xử lý việc sử dụng thư viện động được gọi là Id-linux.so trên các hệ thống Linux với các file thực thi định dạng ELF. Ngoài ra, các file tiêu đề sẽ được thêm vào để định nghĩa giao diện của các thư viện đã cài đặt nếu hệ thống được cấu hình để người dùng tự thu thập phần mềm. Bên cạnh đó, thư viện phần mềm phổ biến nhất được sử dụng trên hệ thống Linux là Thư viện GNU C (glibc). Có một số nghĩa vụ khác như Mesa và SDL.
Thư viện tiêu chuẩn C cần thiết để thực thi các chương trình C trên một hệ thống sử dụng thư viện GNU C là một chuẩn. Tuy nhiên, đã phát triển các tùy chọn thay thế như uClibc (được phát triển cho uClinux), EGLIBC (glibc fork được sử dụng bởi Debian trước đây) và musl. Tuy nhiên, hai thư viện đầu tiên hiện không được bảo trì. Android sử dụng thư viện C riêng của nó, được gọi là Bionic.
Giao diện người dùng được gọi là một shell. Đó là một giao diện đồ họa (GUI), giao diện dòng lệnh (CLI) hoặc các điều khiển được gắn vào phần cứng liên quan, điều này phổ biến trong các hệ thống nhúng. Giao diện người dùng mặc định là đồ họa đối với các hệ thống máy tính để bàn. Tuy nhiên, CLI có sẵn thông qua các cửa sổ giả lập terminal hoặc trên một bảng điều khiển ảo độc lập.
Shell giao diện dòng lệnh là các giao diện người dùng dựa trên văn bản, sử dụng văn bản cho cả đầu ra và đầu vào. Shell phổ biến nhất là bash (Bourne-Again Shell) được sử dụng trong Linux, ban đầu được thiết kế cho dự án GNU. Hầu hết các thành phần cấp thấp của Linux, bao gồm một số phần của userland, đều sử dụng CLI độc quyền. Đặc biệt, CLI tương thích với tự động hóa công việc trì hoãn hoặc lặp đi lặp lại và cung cấp giao tiếp giữa các tiến trình rất dễ dàng.
Các shell giao diện đồ họa là giao diện người dùng phổ biến nhất trên các hệ thống máy tính để bàn, được đóng gói với các môi trường desktop rộng lớn như Xfce, Pantheon, LXDE, Cinnamon, MATE, GNOME và KDE Plasma, mặc dù có nhiều giao diện người dùng khác nhau. Các giao diện người dùng phổ biến nhất hoạt động với khái niệm của X Window System, được gọi là “X”. Nó cung cấp tính minh bạch của mạng và cho phép một ứng dụng đồ họa hoạt động trên một hệ thống được hiển thị trên hệ thống khác mà người dùng có thể tương tác với ứng dụng đó. Tuy nhiên, một số tiện ích của X Window System không hoạt động trên mạng. Hiện nay, có nhiều máy chủ hiển thị X khác nhau, trong đó phần cài đặt tham chiếu của X.Org Server là phổ biến nhất.
Hạ tầng đầu vào video
Hiện nay, Linux có hai API kernel-userspace để xử lý thiết bị đầu vào video: DVB API cho thu sóng TV và V4L2 API cho sóng đài phát thanh và video. Hạ tầng này cần phát triển để phù hợp hơn với các thiết bị khác vì sự đa dạng và phức tạp của các thiết bị khác nhau và vì số lượng tiêu chuẩn và định dạng được quản lý bởi các API này rất lớn. Một thư viện thiết bị không gian người dùng tốt hơn cũng là yếu tố quan trọng để có các ứng dụng không gian người dùng có thể hoạt động với mọi định dạng được hỗ trợ bởi các thiết bị.
6. Các ứng dụng của hệ điều hành Linux
Nhiều nghiên cứu định lượng về phần mềm mã nguồn mở / miễn phí tập trung vào các chủ đề như độ tin cậy và thị phần, với nhiều nghiên cứu tập trung vào hệ điều hành Linux cụ thể. Thị trường Linux đang phát triển, kích thước thị trường hệ điều hành Linux được cho là sẽ phát triển 19,2% đến năm 2027, đạt 15,64 tỷ đô la so với 3,89 tỷ đô la vào năm 2019. Những người ủng hộ và các chuyên gia cho rằng thành công của Linux liên quan đến sự tự do, chi phí thấp, độ tin cậy và bảo mật tránh khóa cửa từ nhà cung cấp.
Máy chủ web:
W3Cook công bố thống kê sử dụng các tên miền Alexa hàng đầu 1.000.000, ước tính rằng vào tháng 5 năm 2015 có 96,55% máy chủ web sử dụng Linux, 1,73% sử dụng Windows và 1,72% sử dụng FreeBSD.
Laptop và máy tính để bàn:
Khoảng tháng 5 năm 2022, thị phần ước tính của Linux trên máy tính để bàn là khoảng 2,5%, theo thống kê máy chủ web. Microsoft Windows chiếm thị phần khoảng 75,5%, trong khi macOS chiếm khoảng 14,9%.
Thiết bị di động:
Android đã trở thành hệ điều hành dẫn đầu cho điện thoại thông minh, được dựa trên kernel Linux. Vào tháng 7 năm 2022, 71,9% số điện thoại thông minh trên toàn cầu sử dụng internet đã sử dụng Android. Ngoài ra, Android là một hệ điều hành phổ biến cho máy tính bảng, chiếm trên 60% doanh số bán hàng vào năm 2013.
Sản xuất phim:
Linux đã trở thành nền tảng ưa thích trong ngành sản xuất phim hàng năm. Bộ phim đầu tiên được phát hành trên máy chủ Linux là “Titanic” năm 1997. Kể từ đó, các hãng phim lớn, bao gồm Industrial Light & Magic, Weta Digital, Pixar và DreamWorks Animation, đã chuyển sang sử dụng Linux.
Sử dụng chính phủ:
Các distro Linux cũng đã được phổ biến trong một số chính phủ quốc gia và địa phương. Kerala đã đưa đến mức độ bắt buộc mọi trường trung học của bang phải sử dụng Linux trên hệ thống của họ. Trung Quốc sử dụng độc quyền Linux là hệ điều hành cho gia đình bộ xử lý Loongson để đạt được độc lập công nghệ. Một số khu vực ở Tây Ban Nha đã tích hợp bản phân phối Linux của riêng họ và được sử dụng rộng rãi trong các tổ chức chính phủ và giáo dục. Ngoài ra, Đức và Pháp đã tiến hành đưa Linux vào sử dụng. Hệ điều hành Red Star OS của Triều Tiên dựa trên một phiên bản Fedora Linux được phát triển từ năm 2002.
7. Linux OS hoạt động như thế nào?
Hệ điều hành Linux tuân theo một thiết kế tiêu chuẩn, đó là chìa khóa cho nhiều bản phân phối và biến thể của nó. Mỗi bản phân phối Linux dựa trên kernel Linux nhưng có thể khác nhau dựa trên các yếu tố như:
Phiên bản kernel: các bản phân phối có thể được cài đặt với các phiên bản mới hơn để thêm tính năng mới hoặc phiên bản cũ hơn để ổn định hơn.
Các module kernel: Đó là phần mềm có thể được tải và giải nén vào kernel để cải thiện chức năng mà không cần khởi động lại hệ thống. Thường thì, các module kernel được sử dụng để hỗ trợ:
Các trình điều khiển thiết bị, sử dụng mã quản lý cách thiết bị kết nối hoạt động.
Các trình điều khiển hệ thống tập tin, sử dụng mã quản lý cách kernel hoạt động với các hệ thống tập tin khác nhau.
Các lời gọi hệ thống, sử dụng mã quản lý cách các chương trình yêu cầu dịch vụ thông qua kernel.
Tùy chọn cấu hình: Các kernel được tích hợp với các tùy chọn cấu hình được đặt để chỉ bao gồm trình điều khiển thiết bị hoặc trình điều khiển hệ thống tập tin. Các kernel được biên dịch cho các thiết bị không dây mà không có trình điều khiển thiết bị có dây.
Kernel là điều duy nhất mà tất cả các hệ thống chạy Linux đều có chung. Linux hoạt động như sau:
Khởi động và tải kernel Linux.
Sau khi khởi động, kernel xử lý tất cả đầu vào và đầu ra của hệ thống. Quá trình khởi động hệ thống và các quy trình được khởi tạo.
Hệ thống có thể được sử dụng cho các quy trình bao gồm các lệnh được nhập vào tương tác bởi dòng lệnh, chức năng máy chủ mạng, các ứng dụng trên desktop, hoặc bất kỳ chương trình hoặc ứng dụng nào khi quy trình hệ thống được khởi động.
Trong khi nhân Linux là một phần chung của hệ thống, trải nghiệm người dùng có thể rất khác nhau tùy thuộc vào mục đích sử dụng của người dùng. Ví dụ, một số người dùng Linux dùng hệ thống để phát triển phần mềm, có thể cần một máy tính để bàn được tinh chỉnh để đạt hiệu suất tối đa, trong khi những người dùng khác có thể sử dụng máy tính để bàn để sử dụng các công cụ sản xuất. Máy chủ mạng có thể không có cửa sổ dòng lệnh cho truy cập trực tiếp, thay vào đó, chúng được quản lý từ xa thông qua phiên Windows hoặc các thiết bị đầu cuối mạng. Các máy khách mỏng cho phép người dùng sử dụng môi trường desktop đầy đủ trên một thiết bị nhẹ. Linux hoạt động giống như bất kỳ hệ điều hành dựa trên giao diện đồ họa nào khi được sử dụng như một GUI với môi trường desktop. Người dùng có thể khởi chạy ứng dụng và nhiều nguồn tài nguyên khác bằng cách nhấp vào các biểu tượng và có thể xóa, sao chép hoặc di chuyển các tập tin bằng cách sử dụng trackpad hoặc chuột.
8. Các distro Linux
Linux đã chấp nhận các quy định copyleft của Free Software Foundation, tạo ra GNU GPL kể từ khi phát triển ban đầu. GPL mô tả rằng bất cứ thứ gì được sử dụng cho mục đích sửa đổi và phân phối miễn phí phải được phân phối miễn phí.
Có hàng trăm phiên bản Linux, còn gọi là distros hoặc bản phân phối, có sẵn. Thông thường, các bản phân phối khác nhau nhờ đó xác định mục tiêu, thị trường mục tiêu, chức năng hoặc triết lý cụ thể.
Có nhiều bản phân phối được tạo ra cho các mục đích mục tiêu cụ thể, chẳng hạn như bảo mật, chơi game, desktops, máy chủ hoặc thiết bị nhúng, chẳng hạn như các hệ thống Raspberry Pi. Gần như tất cả các bản phân phối hiện đại đều đã sẵn sàng để sử dụng và được biên dịch sẵn, trong khi các bản khác, như Gentoo Linux, được tạo thành từ mã nguồn mà bất kỳ người dùng nào có thể biên dịch tại chỗ trong quá trình cài đặt ban đầu để sử dụng cấu hình hệ thống của họ.
Các ưu điểm của việc sử dụng hệ điều hành Linux được liệt kê và giải thích như sau:
- Mã nguồn mở: Nhân Linux được công bố dưới giấy phép phần mềm nguồn mở GNU GPL. Hầu hết các bản phân phối Linux bao gồm nhiều ứng dụng với các tùy chọn khác nhau trong hầu hết các loại danh mục. Ngoài ra, nhiều bản phân phối còn chứa phần mềm độc quyền, chẳng hạn như các trình điều khiển thiết bị được cung cấp bởi các nhà sản xuất, để hỗ trợ phần cứng.
- Đáng tin cậy: Linux được xem là một hệ điều hành đáng tin cậy, và nó được hỗ trợ tốt với nhiều bản vá bảo mật. Ngoài ra, Linux được xem là một hệ điều hành ổn định, có nghĩa là nó có thể chạy trong hầu hết mọi trường hợp. Linux cũng có thể xử lý các lỗi khi chạy đầu vào và phần mềm không mong đợi.
- Chi phí cấp phép: Linux không có phí cấp phép chính xác, khác với Apple macOS hoặc Microsoft Windows. Trong khi hỗ trợ hệ thống có sẵn với một khoản phí từ một số nhà cung cấp Linux, hệ điều hành chính nó là miễn phí để sử dụng và sao chép. Một số tổ chức IT đã tiết kiệm được chi phí bằng cách chuyển phần mềm máy chủ của họ sang Linux từ một hệ điều hành thương mại.
- Tương thích ngược: Linux và nhiều phần mềm nguồn mở thường được cập nhật thường xuyên cho các bản vá chức năng và bảo mật trong khi vẫn giữ nguyên các chức năng cốt lõi. Các tập lệnh shell và cấu hình có khả năng hoạt động không thay đổi ngay cả khi có các bản cập nhật phần mềm. Thông thường, Linux và các ứng dụng nguồn mở khác không thay đổi chế độ hoạt động của chúng với các phiên bản mới, khác với các nhà cung cấp phần mềm kinh tế lắp đặt các phiên bản mới của hệ điều hành của họ với các hình thức công việc mới.
- Nhiều lựa chọn: Với hầu hết tất cả các tùy chọn không giới hạn, nhiều distro có sẵn, và nhiều tùy chọn ứng dụng để cấu hình, biên dịch và chạy Linux trên hầu hết các nền tảng phần cứng, có thể phát triển Linux cho hầu hết các ứng dụng.
Một vài hạn chế của Linux là:
Một vài hạn chế của Linux bao gồm:
- Thiếu tiêu chuẩn: Không có phiên bản tiêu chuẩn nào được cung cấp cho Linux, điều này có thể hữu ích để tối ưu hóa Linux cho các ứng dụng cụ thể, nhưng lại không phù hợp để triển khai hình ảnh máy tính để bàn và máy chủ chuẩn hóa. Việc có quá nhiều tùy chọn có thể làm cho việc hỗ trợ trở nên phức tạp.
- Chi phí hỗ trợ: Hỗ trợ không miễn phí, trong khi một tổ chức có thể tải Linux miễn phí mà không cần phải trả các khoản phí cấp phép. Hầu hết các nhà phân phối Linux doanh nghiệp, chẳng hạn như Red Hat và SUSE, cung cấp các hợp đồng hỗ trợ. Các khoản phí cấp phép này có thể giảm đáng kể sự tiết kiệm tùy thuộc vào tình huống.
- Phần mềm độc quyền: Phần mềm năng suất cho máy tính cá nhân, chẳng hạn như Microsoft Office, không thể được sử dụng trên máy tính để bàn Linux, và nhiều phần mềm độc quyền khác có thể không có sẵn cho nền tảng Linux.
- Khó khăn trong việc học tập: Một số người dùng gặp khó khăn trong việc học cách sử dụng các ứng dụng và máy tính để bàn Linux.
- Phần cứng không được hỗ trợ: Nhiều nhà sản xuất phần cứng cho phép các trình điều khiển thiết bị của Linux có sẵn cho sản phẩm của họ, nhưng nhiều nhà sản xuất khác lại không cho phép.