Mọi thứ bạn thấy trên màn hình đều bao gồm ngôn ngữ. Một người nào đó đã viết ra những từ để máy tính của bạn hiểu được. Những từ hay ngôn ngữ này, được gọi là code.
Để biết phải làm gì, máy tính cần phải hiểu code đó. Nếu hiểu được code, máy tính có thể hoạt động. Nhưng để hiểu máy tính của chúng ta thực sự đang làm gì, chúng ta cũng cần phải đọc code.
Phần mềm mã nguồn mở cho phép bạn xem code đó, còn phần mềm mã nguồn đóng thì không. Vậy hai loại phần mềm này là gì và tại sao lại tồn tại cả hai cách tiếp cận này?
Phần mềm mã nguồn mở là gì?
Phần mềm mã nguồn mở và miễn phí là phần mềm mà bạn không chỉ có quyền truy cập để sử dụng tự do một chương trình mà còn có thể xem, chỉnh sửa và chia sẻ mã nguồn của nó.
Mã nguồn đề cập đến code mà một người (hoặc trong một số trường hợp là máy tính) đã nhập khi tạo chương trình. Điều này khác với mã nhị phân, là ngôn ngữ thực tế mà máy tính sử dụng. Khi một lập trình viên viết xong một chương trình, họ sẽ biên dịch mã nguồn thành một chương trình nhị phân.
Con người biết cách đọc mã nguồn, còn máy tính biết cách đọc mã nhị phân.
Khi ai đó phân phối một chương trình, họ thường cung cấp cho bạn một file nhị phân để bạn có thể chạy trên máy tính của mình. Chương trình đó không phải là mã nguồn mở và miễn phí trừ khi chúng cung cấp cho bạn mã nguồn và quyền tự do thực hiện phần lớn những gì bạn muốn.
Phần mềm mã nguồn đóng là gì?
Phần mềm nguồn đóng là phần mềm mà việc sử dụng đi kèm với các hạn chế, chủ yếu là không thể nhìn thấy mã nguồn. Bạn chỉ có quyền truy cập vào file nhị phân.
Phần mềm mã nguồn đóng còn được gọi là phần mềm độc quyền. Điều này là do các nhà phát triển phần mềm coi mã nguồn là thông tin cá nhân, độc quyền. Theo quan điểm của họ, để cung cấp cho bất kỳ ai quyền truy cập vào code này sẽ mang lại lợi thế cạnh tranh cho bên khác: Khả năng sao chép và chỉnh sửa một cách tự do chương trình mà không cần phải thuê một nhà phát triển hoặc nhóm các nhà phát triển thực hiện công việc tương tự.
Trừ khi bạn đã quen với việc sử dụng Linux, rất có thể hầu hết phần mềm bạn quen thuộc đều là mã nguồn đóng. Loại phần mềm này dễ kiếm tiền hơn, khiến nó trở nên hấp dẫn đối với các nhà phát triển ứng dụng nhỏ cũng như những tập đoàn khổng lồ.
Một dấu hiệu đáng chú ý khác là bạn có cần đồng ý với thỏa thuận cấp phép người dùng cuối hay EULA khi sử dụng một chương trình lần đầu tiên hay không.
EULA và giấy phép phần mềm miễn phí
Máy tính không giống như hầu hết các công cụ. Việc bạn có thể di chuyển chuột hoặc vuốt bàn di chuột không quan trọng lắm. Việc bạn có thể nhấn các nút trên bàn phím hoặc nhìn vào màn hình là cần thiết, nhưng không phải là vấn đề quan trọng.
Code mới là yếu tố then chốt. Code có thể được sửa đổi hay sao chép. Không có giới hạn cố hữu nào đối với khả năng mày mò và sao chép code của một người nào đó. Một nhà sản xuất máy tính không nhất thiết phải yêu cầu bạn đừng sao chép laptop của họ, vì đơn giản, đó không phải là điều mà hầu hết mọi người có thể làm được. Nhưng không khó để sao chép và phân phối lại phần mềm đi kèm trên máy tính, vì vậy đó là nơi các EULA hạn chế ra đời.
EULA thường là những “bức tường” bằng văn bản khổng lồ mô tả những gì bạn có thể và không thể làm với phần mềm bạn sắp sử dụng. Chúng thường ngăn bạn nhìn thấy code, coi việc tạo bản sao là bất hợp pháp, yêu cầu bạn mua giấy phép hoặc key kích hoạt và thường nêu chi tiết các cách sử dụng phần mềm được coi là trái với điều khoản dịch vụ.
Giấy phép phần mềm miễn phí không yêu cầu sự đồng ý theo hợp đồng, mà thay vào đó nó tồn tại để nói với bạn rằng, phần lớn, bạn có thể làm bất cứ điều gì mình muốn với chương trình và mã của nó. Một số giấy phép miễn phí, như Giấy phép Công cộng GNU, được coi là giấy phép copyleft. Hạn chế chính của chúng đối với hành vi của bạn là yêu cầu bất kỳ chương trình nào bạn phát triển sử dụng mã có sẵn theo GPL cũng phải có sẵn theo giấy phép GPL.
Các giấy phép khác, như giấy phép MIT, không đi kèm với yêu cầu này. Bạn có thể lấy code được MIT cấp phép và sử dụng nó để tạo một chương trình độc quyền nếu muốn.
Điều này tác động đến bạn như thế nào?
Việc cấp phép cho phần mềm bạn sử dụng xác định những gì bạn có thể làm trên máy tính của mình.
Nếu một chương trình độc quyền có lỗi, hoặc bạn muốn nó có một tính năng nhất định, thì cách duy nhất là thông báo cho nhà phát triển phần mềm và hy vọng họ làm điều gì đó với nó. Với phần mềm miễn phí, bạn có thể tự mình thay đổi nếu có kiến thức kỹ thuật. Thông thường, ngay cả khi bạn không hiểu về code, rất có thể ai đó trực tuyến muốn làm hoặc nhận thấy vấn đề tương tự và cung cấp hướng dẫn về cách điều chỉnh chương trình.
Nhưng đại đa số mọi người không muốn đọc code hoặc sửa đổi chương trình. Vậy điều đó có nghĩa là vấn đề này không ảnh hưởng đến hầu hết mọi người ư? Có một số lĩnh vực chính đang ngày càng được quan tâm, trong đó phần mềm mã nguồn đóng và phần mềm mã nguồn mở sẽ thể hiện rất khác nhau:
Tiêu chỉ | Phần mềm mã nguồn mở | Phần mềm mã nguồn đóng |
---|---|---|
Giá cả | Gần như luôn luôn miễn phí cho bạn sử dụng mà không phải trả bất kỳ khoản tiền nào. | Nhiều khả năng tốn kém tiền bạc. Khi phần mềm độc quyền được cung cấp miễn phí, thường có rủi ro. Các nhà phát triển và nhà xuất bản thường kiếm tiền từ chương trình theo một cách khác, như hiển thị quảng cáo, theo dõi hành vi của bạn, lén đưa phần mềm không mong muốn (đôi khi độc hại) vào máy tính của bạn hoặc thâm chí kết hợp cả ba cách này. |
Quyền riêng tư | Thường là phần mềm tôn trọng quyền riêng tư nhất mà bạn có thể sử dụng. Nếu ai đó cố gắng chia sẻ một chương trình mã nguồn mở vi phạm quyền riêng tư của bạn, người khác sẽ nhận thấy và chia sẻ một bản sao với tất cả các yếu tố theo dõi đã bị loại bỏ. Nguy cơ tranh cãi và tổn hại danh tiếng thường đủ để ngăn các nhà phát triển thu thập dữ liệu chẩn đoán cơ bản - điều được coi là phổ biến với các phần mềm độc quyền. | Thường theo dõi cách bạn sử dụng chương trình. Trên thiết bị di động, các ứng dụng luôn cập nhật thông tin về vị trí của bạn và những ứng dụng khác mà bạn đã cài đặt trên điện thoại của mình. Một số phần mềm thậm chó còn xem danh sách liên hệ hoặc quét các file của bạn. |
Bảo mật | Lợi ích thực tế là nhiều người có thể nhìn thấy code. Mặc dù điều này không đảm bảo rằng các cuộc tấn công sẽ được thực hiện, nhưng bất kỳ ai có đủ kỹ năng đều có thể đóng góp một bản sửa lỗi và bạn có thể xác nhận rằng vấn đề đã được giải quyết. | Phần mềm mã nguồn đóng thường dựa trên một mô hình bảo mật được gọi là Security Through Obscurity (STO). Điều này không ngăn cản những kẻ xấu tìm ra các lỗ hổng và tạo ra những hành vi khai thác. Và nếu nhà phát triển phần mềm cho bạn biết về những exploit này, vì không thể thấy code của chương trình, nên bạn không thể xác nhận xem vấn đề đã được giải quyết hay chưa. Bạn buộc phải tin tưởng nhà phát triển. |
Cập nhật | Các bản cập nhật có thể mất nhiều thời gian hơn để đến với người dùng, vì việc phát triển phần mềm thường phụ thuộc vào các tình nguyện viên. Mặt khác, các ứng dụng và bản phân phối có xu hướng hỗ trợ phần cứng trong nhiều năm, thậm chí nhiều thập kỷ. | Đôi khi các bản cập nhật đến nhanh hơn, vì thường có một nhóm nhân viên được trả tiền để làm việc toàn thời gian cho một dự án. Tuy nhiên, hỗ trợ phần mềm có thể kết thúc đột ngột khi một công ty ngừng kinh doanh hoặc đưa ra phán quyết một phần mềm không còn sinh lời nữa. Các phiên bản mới ít có khả năng chạy trên phần cứng cũ. |
Hầu hết mọi máy tính bạn tìm thấy trong các cửa hàng đều có phần mềm mã nguồn đóng và điều này cũng đúng với điện thoại. Những người thiên về kỹ thuật hơn có thể thay thế hệ điều hành mặc định bằng một giải pháp mã nguồn mở. Đối với những người khác, tương đối dễ dàng khi mua một laptop chạy Linux trực tuyến hoặc tải xuống các ứng dụng mã nguồn mở cho bất kỳ hệ điều hành nào.
Mặc dù phần mềm mã nguồn mở và miễn phí mang lại nhiều khả năng trong một số trường hợp sử dụng, nhưng đôi khi các công cụ tốt nhất cho công việc chỉ có sẵn ở dạng độc quyền.