Thứ 7, 11/23/2024

Thông tin đăng tải trên trang này phục vụ mục đích chia sẻ kiến thức và kinh nghiệm với điều kiện cần ghi rõ nguồn khi sử dụng. Tư vấn GeoViệt khuyến khích quý vị trao đổi kinh nghiệm của mình bằng cách gửi bài cho chúng tôi
Hotline: (024) 62657729 / 0838286123
  • Góc Kỹ thuật
  • |
  • Địa tin học
Khái niệm về mã nguồn mở

Mã nguồn mở (open - source software) hiểu theo nghĩa rộng là một khái niệm chung được sử dụng cho tất cả các phần mềm mà mã nguồn của nó được công bố rộng rãi công khai và cho phép mọi người tiếp tục phát triển phần mềm đó. Điều này không có nghĩa là chúng có thể được sao chép, sửa chữa thoải mái hay sử dụng vào mục đích nào cũng được. Mã nguồn mở được công bố dưới rất nhiều điều kiện khác nhau, một số trong đó cho phép phát triển, sử dụng và bán tùy ý miễn là giữ nguyên các dòng về nguồn gốc sản phẩm, một số bắt buộc tất cả các sản phẩm làm ra từ đó cũng phải là open-source, một số khác đòi hỏi phải công bố trọn vẹn mã nguồn, một số khác không cho phép sử dụng vào mục đích thương mại, một số khác lại không có ràng buộc gì đáng kể... Qua đây có thể thấy khái niệm open source không thể chuẩn xác mà muốn nói đến tính pháp lý của việc sử dụng các phần mềm mã nguồn mở, chúng ta phải xem xét đến điều kiện sử dụng cụ thể mà dưới đó chúng được công bố. Một điều kiện hay được áp dụng nhất đó là GPL: GNU General Public License của tổ chức Free Software Foundation. GPL có 2 đặc điểm phân biệt như sau:

Thứ nhất: Tác giả gốc giữ bản quyền về phần mềm nhưng cho phép người dùng rất nhiều quyền khác, trong đó có quyền tìm hiểu, phát triển, công bố cũng như quyền khai thác thương mại sản phẩm. Bên cạnh đó, tác giả sử dụng luật bản quyền để bảo đảm các quyền đó không bao giờ bị vi phạm đối với tất cả mọi người, trên mọi phần mềm có sử dụng mã nguồn của mình.

Thứ hai: thường được gọi là hiệu ứng virus (viral effect) vì nó biến tất cả các phần mềm có dùng mã nguồn GPL cũng biến thành phần mềm GPL. Trên thực tế điều này có ý nghĩa: bất kỳ tác giả nào sử dụng dù chỉ 1 phần rất nhỏ mã nguồn GPL trong chương trình của mình cũng phải công bố chương trình đó dưới điều kiện GPL. Điều kiện này quy định:

  • Mọi phần mềm GPL đều phải công bố mã nguồn của mình rộng rãi công khai và phải tạo điều kiện cho mọi người truy cập được mã nguồn.
  • Giữ nguyên mọi dòng chú thích về nguồn gốc tác giả, bản quyền của họ cũng như điều kiện được áp dụng đối với phần mềm (trong 1 file có tên LICENSE).
  • Cấm việc bán mã nguồn nhưng cho phép kinh doanh chương trình được tạo ra từ mã nguồn ấy hoặc là các dịch vụ hỗ trợ liên quan.

Các điều khoản phân phối của phần mềm mã nguồn mở phải tuân thủ các tiêu chuẩn sau:

1. Tự do tái phân phối:

Bản quyền sẽ không giới hạn bất cứ ai khỏi việc bán hay đem cho phần mềm đó như là một thành phần của bản phần mềm tổng hợp mà có chứa các chương trình từ nhiều nguồn khác nhau. Bản quyền sẽ không đòi hỏi việc phải giữ nguyên trạng phần mềm hay các phí tổn khác cho những thương vụ như vậy.

2. Mã nguồn:

Chương trình phải đi kèm mã nguồn, và phải cho phép phân phối cả mã nguồn cũng như dạng đã được biên dịch. Ở những nơi mà một số dạng sản phẩm không được phân phối cùng mã nguồn thì phải có các cách thức được phổ biến rộng rãi nhằm lấy được mã nguồn với chi phí không cao hơn chi phí tái sản xuất hợp lý, khuyến khích cho phép tải về một cách miễn phí qua Internet.

Vì mục đích của mã nguồn mở là tạo điều kiện để việc phát triển được thuận lợi nên cộng đồng này cũng yêu cầu sự sửa đổi mã nguồn cũng phải được tạo điều kiện thực hiện. Do đó, mã nguồn phải để dạng được ưa chuộng mà theo đó một lập trình viên sẽ có thể tham gia sửa đổi chương trình được. Việc biến đổi mã nguồn thành một dạng mã gây rối một cách có chủ tâm là không được phép.

3. Các chương trình phát sinh:

Bản quyền phải cho phép sửa đổi và các chương trình phát sinh từ đó, và phải cho phép chúng được phân phối dưới cùng các điều khoản như giấy phép của phần mềm gốc.

4. Tính toàn vẹn của mã nguồn cung cấp bởi tác giả:

Bản quyền có thể hạn chế không cho phép mã nguồn được phân phối ở dạng đã được sửa đổi chỉ khi bản quyền cho phép phân phối “các file vá” cùng mã nguồn nhằm mục đích sửa đổi chương trình ở thời gian tạo sản phẩm. Bản quyền phải cho phép một cách tường minh việc phân phối phần mềm được tạo ra từ mã nguồn được sửa đổi. Bản quyền có thể yêu cầu các sản phẩm phát sinh phải mang một cái tên hay một số hiệu phiên bản khác so với phần mềm gốc.

Theo đó, bản quyền mã nguồn mở phải đảm bảo rằng mã nguồn sẽ tồn tại ở dạng dễ dàng lấy được, nhưng có thể yêu cầu rằng nó sẽ được phân phối với cơ sở mã nguồn nguyên gốc ban đầu kèm với các bản vá. Theo cách này, những thay đổi “không chính thức” có thể xuất hiện ở hình thức sẵn sàng để tiếp cận nhưng được phân biệt một cách dễ dàng với mã nguồn cơ sở.

5. Không có sự phân biệt đối xử giữa các cá nhân hay nhóm người:

Bản quyền phải không được phân biệt đối xử với bất cứ cá nhân hay nhóm người nào. Một số quốc gia, trong đó có Hoa Kì, ban hành điều luật hạn chế xuất khẩu một số loại phần mềm nhất định. Một giấy phép tuân thủ định nghĩa Mã Nguồn Mở có thể cảnh báo cho người sử dụng giấy phép về những hạn chế có thể được áp dụng và nhắc nhở họ là họ có nghĩa vụ tuân thủ luật pháp. Tuy nhiên, bản quyền đó không được tự đặt ra các giới hạn như vậy.

6. Không phân biệt đối xử với bất cứ một lĩnh vực công việc nào:

Bản quyền phải không được cản trở bất cứ ai khỏi việc sử dụng chương trình trong một lĩnh vực công việc cụ thể. Ví dụ, nó không được cản trở không cho chương trình đó được dùng trong một doanh nghiệp, hay không được dùng cho việc nghiên cứu gien.

7. Việc phân phối bản quyền:

Các quyền lợi đi kèm với chương trình phải áp dụng cho tất cả những ai mà chương trình đó được tái phân phối đến đồng thời không cần phải thực thi một thứ giấy phép phụ thêm nào do các bên đó quy định.

8. Giấy phép phải không được dành riêng cho một sản phẩm:

Các quyền lợi đi cùng chương trình đó phải không được phụ thuộc vào việc chương trình phải là một bộ phận một bản phân phối phần mềm cụ thể khác. Nếu chương trình được tách ra từ bản phân phối đó và được sử dụng hay phân phối dưới các điều khoản của giấy phép kèm theo chương trình thì tất cả các bên mà chương trình được phân phối đến cũng nên có được các quyền lợi ngang bằng như những quyền lợi được đưa ra theo bản phân phối phần mềm gốc.

9. Bản quyền phải không được cản trở các phần mềm khác:

Bản quyền phải không được áp đặt các giới hạn lên các phần mềm khác mà được phân phối kèm với phần mềm có bản quyền đó. Ví dụ, bản quyền không được chỉ dẫn nhất quyết rằng tất cả các phần mềm khác được phân phối trên cùng một phương tiện thì phải là phần mềm mã nguồn mở.

Như vậy, GPL tuân thủ theo yêu cầu này. Phần mềm liên kết với các thư viện phân phối dưới GPL chỉ kế thừa GPL nếu nó tạo nên một sản phẩm đơn nhất, chứ không phải là bất cứ phần mềm nào mà chúng chỉ được phân phối đi kèm theo.

10. Giấy phép phải trung dung về mặt công nghệ:

Không cho phép tồn tại điều khoản nào của bản quyền khẳng định sự liên quan đến bất cứ một công nghệ riêng biệt hay một kiểu giao diện nào.