Linux là gì? Tại sao 1 lập trình viên nên biết

Cách bắt đầu, dừng và khởi động lại dịch vụ trong Linux

Cái tên Linux chắc bạn nghe nhiều rồi nhỉ, và có thể bạn đã biết Linux là tên một hệ điều hành máy tính được các lập trình viên yêu thích, thế nhưng bạn mới chỉ nghe vậy thôi, chứ tại sao các lập trình viên lại yêu thích hệ điều hành này thì bạn chưa biết, có phải vậy không? Nếu đúng thì … bạn thật giống mình ngày trước.

Trước đây, nghe developer khuyên nên dùng Linux, tôi tò mò và không hiểu lý do. Tôi tìm hiểu và được biết Linux nhẹ, linh hoạt, miễn phí, nhưng tôi chưa cảm thấy thích. Cho đến khi đi làm và phải dùng Linux, tôi mới hiểu lý do. Tôi sẽ chia sẻ lý do đó trong bài viết này.

Giới thiệu thêm về GNU/Linux

GNU là một dự án được ra đời vào năm 1983 bởi Richard Stallman. Dự án này hướng đến một hệ điều hành miễn phí, nơi mà mọi người có thể tự do chỉnh sửa, phát triển, sao chép theo ý mình.

Bản thân dự án GNU sau khi ra đời đã đạt được nhiều thành tự lớn, đóng góp nhiều sản phẩm hữu ích cho cộng đồng. Nhưng GNU vẫn còn thiếu một thành phần vô cùng quan trọng để trở thành một hệ điều hành hoàn chỉnh, đó chính là kernel – thành phần tương tác với phần cứng máy tính.

Trong dự án GNU, một kernel có tên GNU Hurd cũng được nhắc đến, nhưng do chưa sẵn sàng ra mắt nên các kernel phi GNU cũng có thể sử dụng được với GNU – mà nổi bật nhất chính là Linux kernel. Kể từ đó cái tên GNU/Linux đã ra đời và được biết đến là hệ điều hành phát triển bằng cách kết hợp giữa GNU với Linux kernel.

Để phù hợp với nhiều tài liệu khác, cũng như cách mà mọi người vẫn hiểu Linux là gì, thì khái niệm Linux mà mình nhắc tới trong bài viết này là chỉ hệ điều hành GNU/Linux hoặc các bản phân phối của Linux, chứ không phải là Linux kernel. Bạn hãy chú ý.

Ngày nay, Linux được biết đến là tên một hệ điều hành máy tính (để dễ hiểu thì bạn cứ tưởng tượng nó là cái gì đó tương tự như Windows, MacOS vậy). Nhưng nói một cách chính xác thì Linux chỉ là kernel (hạt nhân) của hệ điều hành. Còn hệ điều hành Linux mà ngày nay mọi người vẫn nhắc đến thì có tên đầy đủ là GNU/Linux – chắc do cái tên GNU/Linux dài quá nên người ta mới gọi tắt là Linux cho ngắn gọn.

Các bản phân phối của Linux

Bản phân phối của Linux (Linux distribution hay Linux distro) là chỉ những hệ điều hành được phát triển dựa trên hệ điều hành Linux. Một bản phân phối của Linux thường sẽ được tích hợp sẵn một số phần mềm tiện ích, một trình quản lý gói (packages manager), một window system (phần lớn sử dụng X Window System), window manger và một môi trường desktop.

Lưu ý: X Window System và window manager không liên quan gì tới hệ điều hành Windows của Microsoft.

Một số bản phân phối điển hình của Linux đang phổ biến hiện nay (2020) có thể kể đến như: Ubuntu, CentOS, Fedora – chắc bạn cũng từng nghe qua những cái tên đó rồi chứ nhỉ.

TẠI SAO LẬP TRÌNH VIÊN NÊN BIẾT CÁCH SỬ DỤNG LINUX?

Mình nhấn mạnh từ “nên”, nghĩa là không bắt buộc, nghĩa là bạn vẫn có thể trở thành lập trình viên mà không cần phải biết cách dùng Linux. Nhưng nếu bạn muốn trở thành một lập trình viên “hợp thời”, muốn khám phá những giải pháp công nghệ hiện đại, muốn trở thành “hổ thêm cánh” thì chắc chắn phải biết cách dùng Linux. Và dưới đây là một số lý do điển hình:

Các server phần lớn đều sử dụng hệ điều hành Linux

Mặc dù rất khó để tìm thấy một chiếc laptop của người dùng thông thường lại được cài hệ điều hành Linux. Nhưng đối với các server thì lại khác, Linux là hệ điều hành phổ biến nhất trên các server bởi những lý do sau:

  • Miễn phí: Bạn sẽ không phải tốn chi phí bản quyền khi sử dụng hệ điều hành Linux.
  • Ít tốn tài nguyên phần cứng: Linux được cho là ít tốn tài nguyên phần cứng hơn là hệ điều hành Windows, hay cũng có thể nói Linux có thể chạy tốt trên các phần cứng thông thường (phần cứng rẻ).
  • Bảo mật và cập nhật nhanh chóng: Vì linux là mã nguồn mở, nên khi phát hiện lỗi, sẽ nhận được sự đóng góp nhiệt tình từ cộng đồng người sử dụng trên khắp thế giới.

Từ những lý do trên, có thể thấy rằng Linux là hệ điều hành “tối ưu cho túi tiền”. Bạn có thể tập trung chi phí cho phần cứng của server thay vì phải mất một khoản để trả cho bản quyền của hệ điều hành.

Mặt khác, các lập trình viên lại là đối tượng thường xuyên tọc mạch vào các server để ngịch ngợm. Vì vậy mà bạn nên biết sử dụng Linux để có thể làm chủ server của mình.

Nếu bạn chưa bao giờ làm việc với Server Linux, thì có nghĩa là chưa tới lúc bạn động đến chúng, chứ không có nghĩa là bạn không cần chúng.

Là môi trường lý tưởng cho các công nghệ Open Source

Bản thân Linux là một open source, nên nó rất dễ dàng kết hợp với các công nghệ open source khác. Ngoài ra, các công nghệ open source phần lớn đều tương thích với hệ điều hành Linux (thật ra mình chưa gặp một open source nào mà không hỗ trợ Linux cả).

Mặt khác, phát triển sản phẩm open source lại đang là xu hướng. Bằng chứng là ngay cả ông lớn Microsoft – nổi tiếng với cách làm closed source cũng đã có sản phẩm open source cho riêng mình là VsCode – một editor được nhiều lập trình viên yêu thích. Hay trong mấy năm gần đây, Microsoft cũng đã mua lại github và npm, vốn là 2 nền tảng liên quan nhiều tới các open source. Bạn cũng có thể thêm các open source của Microsoft tại đây: https://opensource.microsoft.com

Việc cài đặt thêm các nền tảng open source khác trên Linux thật sự dễ dàng thông qua các trình quản lý gói. Ví dụ để cài đặt PHP trên Ubuntu (một distro của Linux) bạn chỉ cần chạy lệnh sau trên CLI:

sudo apt install php

Nếu như bạn là một web developer (PHP, NodeJS), android developer thì môi trường phát triển tốt nhất có lẽ là Linux.

Có ứng dụng CLI mạnh mẽ

Mình phân vân có nên thêm mục này không. Linux có app CLI Terminal, mạnh hơn Windows. Bạn chuyển sang Linux vì Terminal có thể dùng tổ hợp phím Ctrl+C/V, không cần dùng chuột như trên Windows.

Dưới đây mình xin chia sẻ tài liệu tự học Linux : Download tại đây

Chia sẻ cho bạn bè cùng đọc