Đây là một trong những môn học chuyên về LINUX, rất là khó và siêu khó. Nên nếu như bạn muốn trở thành một lập trình viên giỏi, hay một nhà quản trị mạng giỏi, thì bạn nên chịu khó đọc thêm tài liệu về môn học này gấp nhé. Và cố gắng dựng lên nhiều máy ảo ở nhà, và tập thành vọc với các đoạn mã code, rồi hãy thử sức hack một cái gì đó bằng nền tảng Linux cho thành công trước. Vì khi ra trường, bạn sẽ gặp tới việc sử dụng hệ điều hành Linux này cực kỳ nhiều luôn đó nhé. Biết đâu, sau này bạn sẽ là chuyên gia Linux hơn Tâm Gà thì sao nhỉ ? Chúc bạn mau chóng thực hiện được ước mơ cơ bản của mình ngay từ lúc này.
I. Hệ Điều Hành Linux là gì ?
Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ điều hành. Nó có lẽ là một ví dụ nổi tiếng nhất của phần mềm tự do và của việc phát triển mã nguồn mở. Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là một sinh viên của Đại học Helsinki tại Phần Lan. Ông làm việc một cách hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994. Bộ phận chủ yếu này đượ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 Linux.
Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành tương tự Unix (còn được biết đến dưới tên GNU/Linux) đượ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, cũng như là các bản phân phối Linux. Thực tế thì đó là tập hợp một số lượng lớn các phần mềm như máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trường desktop như GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng như OpenOffice, LibreOffice.
Khởi đầu, Linux được phát triển cho dòng vi xử lý 386, hiện tại hệ điều hành này hỗ trợ một số lượng lớn các kiến trúc vi xử lý, và được sử dụng trong nhiều ứng dụng khác nhau từ máy tính cá nhân cho tới các siêu máy tính và các thiết bị nhúng ví dụ như các máy điện thoại di động. Ban đầu, Linux được phát triển và sử dụng bởi những người say mê. Tuy nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett-Packard, đồng thời nó cũng bắt kịp được các phiên bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực.
Sở dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp. Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả. Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows nhiều hơn là Linux. Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho Linux sẽ tăng lên.
II. Lịch sử các hệ thống Unix trước Linux
- Unix : Ý tưởng về hệ điều hành Unix được kiến nghị và phát triển tại viện nghiên cứu Bell của công ty AT&T, Mỹ vào năm 1969 bởi Ken Thompson, Dennis Ritchie, Douglas McIlroy và Joe Ossanna. Bản đầu tiên của hệ điều hành được ra đời vào năm 1971, tại thời điểm này nó vẫn được viết hoàn toàn bằng ngôn ngữ assemly. Sau đó, vào khoảng năm 1973 Unix được viết lại bằng C bởi Dennis Ritchie (trừ nhân (kernel) và I/O). 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. Vì một trục trặc nhỏ trong hệ thống luật pháp nên bất kỳ ai cũng có thể có được mã nguồn của Unix từ AT&T nếu yêu cầu. Sau đó Unix nhanh chóng phát triển và được sử dụng rộng rãi trong các trường học và doanh nghiệp. Vào năm 1984, Bell Labs bắt đầu bán Unix như một sản phẩm.
- GNU : Dự án GNU được bắt đầu vào năm 1983 bởi Richard Stallman, với mục đích tạo ra một "Hệ thống phần mềm hoàn chỉnh tương thích với Unix" bao gồm toàn bộ các phần mềm tự do (hay Free Software trong tiếng Anh). 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 một nhu cầu cấp bách lúc đó là cần có một hệ điều hành hoàn chỉnh để có thể chạy các chương trình trên. May thay vào năm 1991, Linus Torvalds tuyên bố rằng ông đang viết một hệ điều hành MINIX (MINIX cũng là một hệ điều hành tương tự Unix) của riêng mình và ông không dự định viết cho riêng mình. Phải nói thêm rằng từ Free (của thuật ngữ Free Software) trong tiếng Anh có nghĩa là tự do (freedom) hơn là miễn phí (free of charge), chính thuật nghữ free đã gây hiểu lầm rằng tất cả các phần mềm mang cái nhãn free đều miễn-phí.
- BSD : Berkeley Software Distribution (BSD) là tên của một hệ điều hành dẫn xuất từ UNIX được phát hành vào thập niên 1970 từ trường Đại học California tại Berkeley. Tên này cũng được sử dụng cho các bản phân phối sau này.
- MINIX : MINIX 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
III. Nguồn gốc của Linux
Vào năm 1991 trong khi đang học tại University of Helsinki, 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. Nó 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 đó khi Linux đã "trưởng thành" thì việc phát triển Linux diễn ra ngay trên hệ thống Linux. Các ứng dụng GNU cũng thay thế các thành phần của MINIX, do các lợi ích sử dụng mã nguồn có sẵn một cách tự do từ dự án GNU với một hệ điều hành còn "non nớt".
IV. Tính thương mại và sự phổ biến
Ngày nay, hệ thống Linux đã được sử dụng một cách rộng rãi, từ các hệ thống nhúng đến các siêu máy tính, đã có một chỗ đứng lớn trong thị trường máy chủ. Việc sử dụng các bản phân phối linux ở nhà và doanh nghiệp đang phát triển, kể cả trong các tổ chức địa phương và các tổ chức chính phủ. Chính phủ liên bang Brazill nổi tiếng về những hỗ trợ của họ cho Linux. Có tin tức là quân đội Nga đang xây dựng một bản phân phối Linux cho riêng họ, điều đó đã trở thành hiện thực như dự án G.H.ost.
Bang Kerala của Ấn Độ đã buộc tất cả các trường trung học chạy Linux trên máy tính. Trung Quốc sử dụng Linux một cách riêng biệt như một hệ điều hành cho dòng xử lý mang tên Loongson, với mục đích thoát khỏi sự phụ thuộc về công nghệ. Ở Tây Ban Nha, một vài khu vực đã phát triển các bản phân phối Linux cho riêng họ, và được sử dụng rộng rãi trong trường học và các tổ chức. Bồ Đào Nha sử dụng bảng phân phối Caixa Mágica của họ. Pháp và Đức cũng có những bước thực hiện cho việc chấp nhận Linux. Các bản phân phối Linux đã được cài đặt mặc định trong các dòng máy tính DELL, ASUS,...
V. Giao diện người dùng (viết tắt GUI)
Giao diện người dùng bao gồm: shell còn gọi là giao diện dòng lệnh, giao diện đồ họa người dùng, hoặc thông qua điều khiển gắn liền với phần cứng (thường là các hệ thống nhúng). Với các hệ thống để bàn, mặc định giao diên thường là giao diện đồ họa người dùng, mặc dù giao diện dòng lệnh cũng có thể được sử dụng thông qua trình giả lập thiết bị đầu cuối hay các Console ảo. Nhiều thành phần mức thấp của Linux, bao gồm Không-gian-người-dùng-GNU (the GNU userland), sử dụng dòng lệnh hoàn toàn. Giao diện dòng lệnh thường phù hợp cho các công việc tự động ngưng hoặc lặp lại, hay các công việc đòi hỏi giao tiếp với các tiến trình (inter-process communication - IPC).
Một số hệ thống giao diện đồ họa người dùng phổ biến là các môi trường mặt bàn (hay môi trường Desktop - Desktop Environments) như: KDE, GNOME, Unity, Xfce, LXDE. Các giao diện đồ họa người dùng phổ biến đều dựa trên hệ thống X Window (hay gọi đơn giản là "X"). Nó cung cấp giao thức truyền tải mạng tàng hình (network transparency) và cho phép một ứng dụng đồ họa chạy trên một hệ thống được hiển thị trên nhiều thiết bị đầu cuối nơi mà người dùng có thể giao tiếp với ứng dụng.
Các GUI khác có thể đơn giản chỉ là các trình quản lý của sổ, như FVWM, Enlightenment và Window Maker, nó cung cấp các tính năng tối thiểu để điều khiển các cửa sổ. Các tính năng này bao gồm việc đặt các cửa sổ ở các tọa độ trên màn hình, hiển thị các nút (đóng, thu nhỏ, phục hồi), vẽ các cửa sổ, và giao tiếp với X. Các môi trường mặt bàn cũng cấp các trình quản lý của sổ được cài đặt theo mặc định như Mutter của Gnome, với KDE là Kwin, Xfce sử dụng xfwm, LXDE thì là Openbox. Tuy nhiên người dùng có thể chọn lại các trình quản lý cửa sổ khác nếu thích.
VI. Việc phát triển Hệ Điều Hành Linux
Biểu đồ lịch sử phát triển của các hệ thống tương tự Unix. Linux chia sẻ cùng kiến trúc và ý tưởng (như một thành phần của chuẩn POSIX) nhưng không chia sẻ mã nguồn phi-tự-do với Unix hoặc MINIX. Sự khác nhau cơ bản giữa Linux và nhiều hệ điều hành phổ biến đương thời là nhân Linux và các thành phần khác đều là phần mềm tự do và mã nguồn mở. Linux không chỉ là một hệ điều hành, mặc dù cho đến nay đã được sử dụng phổ biến. Vài giấy phép phần mềm tự do và mã nguồn mở dựa trên copyleft, một vài công việc bắt nguồn từ một phần copyleft cũng phải được copyleft chính nó. Giấy phép thông dụng nhất của phần mềm tự do là giấy phép cung GNU (the GNU General Public License - GPL), một dạng của copyleft, và được sử dụng cho nhân Linux và nhiều thành phần từ dự án GNU.
Các bản phân phối của Linux được các nhà phát triển cho phép giao tiếp với các hệ điều hành khác và thành lập tiêu chuẩn tính toán. Hệ thống linux gắn chặt với các chuẩn POSIX, SUS, LSB, ISO và ANSI trong khả năng có thể. Nhiều bản phân phối Linux, quản lý tập hợp các gói phần mềm hệ thống và phần mềm ứng dụng từ xa, có thể tải và cài đặt thông qua kết nối mạng. Điều này cho phép người dùng thích ứng với hệ điều hành của họ theo những nhu cầu cần thiết. Các bản phân phối đều được duy trì bởi các cá nhân, các nhóm, tổ chức tình nguyện, và các công ty. Một bản phân phối được thiết đặt riêng nhân linux, bảo mật hệ thống chung, và nhiều các gói phần mềm cần thiết. Các bản phân phối khác nhau sử dụng các trình quản lý gói khác nhau như dpkg, Synaptic, YAST, yum, Portage để cài đặt, loại bỏ, cập nhật tất cả các phần mềm trong hệ thống.