Tại sao tôi phải dùng linux

Hôm nay có tin 100% trong số top 500 máy tính mạnh nhất thế giới đều chạy Linux, không cái nào chạy Mac hay Windows cả. Linux là một hệ điều hành mà mình mới biết từ khoảng những năm 2005. Điều này nếu nói năm 2005 mọi người sẽ nói là không tưởng.

Mình bắt đầu với Linux từ bao giờ?

Ngày năm 2005 mọi người ở Việt Nam đều chạy Windows, cả thành phố Hà Nội có một hội người dùng Linux có khoảng dưới 50 người. Linux lúc đó khó sử dụng, cồng kềnh, muốn làm gì cũng khó, có điên lắm mới dùng (và cho đến giờ vẫn thế).

Vậy lúc đó cái gì mang mình đến với Linux lúc đó?

Tại sao tôi phải dùng linux

Mình nghĩ điều quan trọng nhất là sự nhận thức ra một người am hiểu máy tính không phải là người biết nhấp chuột đúng chỗ, người ta viết cho phần mềm gì thì biết xài nấy. Người biết máy tính phải là người hiểu cơ chế hoạt động của nó, làm cách nào để thay đổi các thành phần để nó chạy theo ý mình. Làm được điều này là vô cùng khó với cơ chế phát triển của các hệ điều hành hay các phần mềm đóng. Nếu như không hiểu, không thay đổi được cái máy tính thì mình mãi mãi chỉ là nô lệ của nó.

Tại sao Linux đặc biệt?

Điểm đặc biệt của Linux không phải là ở giá, mà là ở chỗ ai cũng tiếp cận được. Ai cũng có khả năng hiểu và thay đổi những gì là có thể với công nghệ. Vì mọi người, dù là anh học sinh lớp 12 ở làng quê ở Việt Nam hay phi hành gia ở trên tàu vũ trụ đều có thể hiểu và thay đổi Linux, nếu muốn. Đó là một sức mạnh vô cùng lớn mà không phải ai làm ngành nào hay công nghệ nào cũng tiếp cận được. Đó là một mỏ vàng mà mình nhận ra là ít người nhận ra lúc đó.

Và mình đặt cược vào sự thành công của Linux.

Trong 15 năm vừa rồi hầu như ngày nào mình cũng làm việc, học hỏi, phát triển phần mềm chạy trên Linux. Xem ra nước nổi thì thuyền cũng nổi, mình giờ đang dần trên con đường thành một chuyên gia. Trên con đường đó mình gặp rất nhiều thầy cô, bạn bè, đồng nghiệp và cơ hội, niềm vui vì công nghệ mở này. Mình giờ luôn có nhiều ý tưởng muốn làm với những gì mình biết về Linux. Từ xây cái đồng hồ đeo tay cho tới cái lò vi sóng, cái tủ lạnh, cái điện thoại, cho đến tàu vũ trụ, siêu máy tính người ta đều dùng tới Linux.

Tại sao tôi phải dùng linux

Nói như vậy không có nghĩa là ai muốn thành công cũng phải biết đến Linux hay bất cứ một công nghệ nào cụ thể. Linux chỉ là câu chuyện của mình.

Mình nghĩ là mỗi người nên bỏ tâm sức để trở thành chuyên gia trong một lĩnh vực nào đó. Nếu có cách nghĩ đúng và đặt cược đúng thì chỉ cần một cuộc đánh cược thắng sẽ lời hơn mọi sự toan tính về tiền bạc thông thường. Tới giờ mình có đánh cược vào nhiều việc, phần lớn là thất bại, chỉ có một số ít thành công. Mình nghĩ một điều quan trọng cũng không kém là phải biết lúc nào là dừng lại khi cuộc cá cược của mình sẽ không đi về đâu. Cả cuộc đời mà không có niềm đam mê gì dở, nhưng đi theo một niềm đam mê không dẫn tới đâu cũng dở không kém.

Một vài lời bình

"Linux có một cộng đồng tuyệt vời, nhất là Ubuntu thì rất là sẵn sàng để chia sẻ một vấn đề gì đó mà họ gặp phải với hệ điều hành này cho mọi người. Có lần mình bị kẹt với cái đống liên quan đến kernel thì có rất nhiều blog share về vấn đề đấy. Lần đầu tiên tiếp xúc với Linux mình đã cảm thấy vô cùng ức chế: bấm chuột nhanh vậy mà, why we have to mkdir, touch, vim, cd... (cái này là chiếu mới chưa trải), đến giờ thì mình giống con nghiện Ubuntu vậy, cái gì cũng dùng trên Ubuntu. Nếu những ai chơi game kiểu như LOL... thì cài Linux không ổn lắm, còn lại với nhu cầu của một lập trình viên, thậm chí là nhân viên văn phòng đều có thể dùng Linux một cách khá thoải mái (bảo mật tốt). Thêm một thông tin mình nghĩ là khá hay là mấy bác Viettel đang làm một hệ điều hành nhân Linux tên CyOS cho người Việt"

"Mình thực sự ngưỡng mộ Linus Torvalds. Không chỉ tạo ra Linux mà còn tạo thêm Git vì code community khổ quá... Rồi cả 2 trở thành những phát minh không thể thiếu...."

"Mình cũng đã bỏ Window đc gần 3 năm, dùng Linux từ năm cuối năm 2 đại học, do code Android và chán ngấy Window, từ đó mình đã xoá Window ra khỏi máy."

"Mình dùng Linux được một thời gian và cảm nhận được sự linh hoạt tuyệt vời của nó."

Chào các bạn,

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 kia, khi nghe các “developer nhà người ta” khuyên rằng “là lập trình viên thì nên biết cách dùng Linux” mình cũng rất tò mò, không hiểu cái OS này có gì hay ho mà lại được họ ca ngợi như vậy. Mình cũng có bỏ công tìm hiểu, thì chỉ thấy họ nói: Linux nhẹ, Linux linh hoạt, Linux miễn phí,… nhưng tưng đó lý do là chưa đủ để mình cảm thấy “thích” hệ điều hành này, phải mãi cho tới khi…

Cho tới khi đi làm, vì công việc mà bắt buộc phải sử dụng tới Linux để phát triển dự án, mình mới hiểu được lý do tại sao các developer tiền bối lại khuyên vậy. Cụ thể lý các do là gì, mình xin được chia sẻ lại qua bài viết ngắn gọn này.

  • I. Linux và các bản phân phối của Linux
    • 1.1 Linux là gì?
    • 1.2 Các bản phân phối của Linux
  • II. Tại sao lập trình viên nên biết cách sử dụng Linux?
    • 2.1 Các server phần lớn đều sử dụng hệ điều hành Linux
    • 2.2 Là môi trường lý tưởng cho các công nghệ Open Source
    • 2.3 Có ứng dụng CLI mạnh mẽ
  • III. Một số lưu ý về Linux
    • 3.1 Nếu bạn chuyên làm các stack liên quan tới Windows, biết Linux có thể không giúp ích cho bạn
    • 3.2 Linux không phù hợp với các ứng dụng văn phòng hay thiết kế
    • 3.4 Sao chỉ thấy so sánh Linux với Windows vậy, sao không thấy so sánh với MacOS?
  • IV. Cài đặt Ubuntu để nghịch

I. Linux và các bản phân phối của Linux

1.1 Linux là gì?

Dẫu ai cũng biết rằng nó là cái gì đó rồi. Nhưng mình vẫn muốn nhắc lại chút để chúng ta có chung khái niệm về Linux mà mình đề cập ở dưới.

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.

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ú ý.

1.2 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ỉ.

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:

2.1 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.

Blog phambinh.net cũng được cài đặt trên VPS Linux.

2.2 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.

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

Mình đã phân vân không biết có nên đưa mục này vào không. Vì trên các bản distro của Linux thường sẽ có sẵn một app CLI là Terminal, và điều khiến mình cho rằng CLI trên Linux mạnh mẽ hơn các hệ điều hành khác, cụ thể là với Windows là do cái app Terminal này dễ dàng sử dụng hơn so với Command Prompt hay Powershell có sẵn trên Windows. Nhưng mình cũng gặp rất nhiều bạn chuyển qua dùng Linux đơn giản chỉ vì cái cái Terminal của Linux dùng được tổ hợp phím control + C / control + V để copy và paste, thay vì phải sử dụng chuột hoặc một tổ hợp phím “lạ lùng” nào đó để thực hiện công việc tương tự trên Windows.

Sau khi suy nghĩ, mình quyết định đưa mục này vào bài viết.

>> Đọc thêm: Lập trình viên nên làm quen với CLI.

III. Một số lưu ý về Linux

Phía trên toàn là thấy khen Linux không à, sợ các bạn sẽ gỡ Windows để mà cài đặt Linux nên mình viết thêm mục này để lưu một số điều về Linux.

3.1 Nếu bạn chuyên làm các stack liên quan tới Windows, biết Linux có thể không giúp ích cho bạn

Nếu bạn chỉ làm C#, aps.net, Visual basic, hay bất kỳ công nghệ độc quyền nào của Microsoft thì biết linux sẽ không giúp ích gì cho bạn. Bởi bản thân ông lớn Microsoft đã trang bị sẵn một hệ sinh thái khép kín cho các công nghệ của mình.

3.2 Linux không phù hợp với các ứng dụng văn phòng hay thiết kế

Linux tuy rất phù hợp để lập trình, để phát triển các sản phẩm trên nền tảng open source, nhưng lại không hỗ trợ tốt các ứng dụng văn phòng như MS world, Excel, Power Point,… Mặc dù trên Linux có hai bộ ứng dụng là LibreOffice và OpenOffice để giải quyết vấn đề này, nhưng nó vẫn không mượt mà và ổn định như MS Office có trên Windows được. Cũng đúng thôi, MS Office là một trong những niềm tự hào của Microsoft mà, đâu dễ dàng thay thế được.

Tuy lập trình viên ít khi phải động tới các ứng dụng dạng này, nhưng không phải là không có.

Một phần mềm nữa là Photoshop cũng không có bản hỗ trợ trên Linux, với những bạn có nhu cầu cắt giao diện từ Photoshop thì đây cũng là vấn đề đang lưu ý đó.

Về cách khắc phục, thao tác với các ứng dụng văn phòng bạn có thể sử dụng LibreOffice, OpenOffice, hoặc Google docs, Google sheet, Google slide để thay thế. Với việc cài photoshop, bạn có thể cài trên máy ảo windows để sử dụng, hoặc chọn một nền tảng khác photoshop để sử dụng.

Lưu ý: Cách khắc phục trên chỉ giải quyết được phần nào, chứ không giải quyết được triệt để vấn đề. Cách giải quyết triệt để là không dùng Linux nữa.

3.4 Sao chỉ thấy so sánh Linux với Windows vậy, sao không thấy so sánh với MacOS?

Có một câu chuyện dài phía sau câu hỏi này.

Có thể bạn đã biết, MacOS được phá triển dựa trên BSD – một hệ điều hành thuộc họ nhà UNIX. Còn Linux thì chính là GNU (như mình nói ở phần đầu), trong khi đó GNU là một hệ điều hành clone (nhân bản, học tập ý tưởng, bắt chước) UNIX. Do đó, tuy GNU không được phát triển dựa trên UNIX và không được coi là hệ điều hành thuộc họ nhà UNIX, nhưng lại có khá nhiều điểm tương đồng với các hệ điều hành thuộc họ nhà UNIX, cụ thể là MacOS. Vì vậy có thể coi MacOS và Linux là hai anh em tuy không cùng bố mẹ, nhưng lại khá giống nhau. Mà giống nhau, thì người ta không cần phải so sánh.

Ngoài ra, MacOS là độc quyền của Apple, trong khi đó Apple lại chưa có dịch vụ nào liên quan tới cloud server giống như Windows cả – một trong những điều khiến người ta phải so sánh với Linux nhất.

IV. Cài đặt Ubuntu để nghịch

Sau cùng, nếu bạn muốn trải nghiệm Linux, thì dưới đây là vài gợi ý của mình để bạn có thể cài đặt và trải nghiệm Ubuntu – distro nổi bật nhất của Linux:

  • Mua một máy tính mới và cài đặt Ubuntu làm hệ điều hành: Cách này giành cho những bạn có tiền, chịu đầu tư để học hỏi :D.
  • Cài Ubuntu song song với hệ điều hành chính: Dành cho những bạn muốn có trải nghiệm mượt mà với Ubuntu nhưng lại không muốn mua máy tính mới.
  • Cài máy ảo Ubuntu: Dành cho những bạn muốn trải nghiệm nhanh hệ điều hành này.

>> Đọc thêm: Ubuntu là gì? Cách cài đặt máy ảo Ubuntu 18.04


Tài liệu tham khảo:

  • https://viblo.asia/p/become-a-superuser-part-0-unix-vs-linux-nguon-goc-va-su-khac-biet-rNkKxxMAKlm
  • https://vi.wikipedia.org/wiki/Linux
  • https://vi.wikipedia.org/wiki/B%E1%BA%A3n_ph%C3%A2n_ph%E1%BB%91i_Linux
  • https://vi.wikipedia.org/wiki/GNU