youthtalk
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Mã nguồn mở là gì?

Go down

Mã nguồn mở là gì? Empty Mã nguồn mở là gì?

Bài gửi  Admin Mon May 02, 2011 7:25 pm

Khái niệm Nguồn Mở có lẽ không còn quá xa lạ với tất cả chúng ta. Thời gian gần đây, Nguồn Mở thường xuyên được nhắc đến trên các phương tiện thông tin đại chúng, như một giải pháp tốt cho Chính Phủ điện tử, nhất là ở những nghèo và đang phát triển. Tất nhiên không phải ai cũng biết thế nào là Nguồn Mở. Thậm chí, có thể bạn đang sử dụng phần mềm nguồn mở mà không biết. Vậy Nguồn Mở là gì ? Nó có những lợi ích và ưu điểm gì so với phần mềm Nguồn Đóng và tại sao lại "mở" ?

Nói đến Nguồn Mở, chúng ta không thể nào không nhắc tới Richard Stallman. Năm 1983, ông đã khởi xướng dự án GNU, và vào năm 1984 thành lập ra tổ chức Phần mềm Tự với triết lý tự do cho phần mềm – phần mềm tự do (Free Software). Sau này cụm từ "phần mềm tự do" và "nguồn mở" (Open Source), ít hay nhiều, đều mô tả cùng chủng loại phần mềm, nhưng còn nói cả nhiều thứ khác về phần mềm và giá trị của nó. Cho tới nay, dự án GNU vẫn tiếp tục sử dụng khái niệm "phần mềm tự do" để biểu thị ý tưởng về TỰ DO, là điều quan trọng nhất, chứ không phải chỉ về công nghệ. Rất tiếc, từ TỰ DO này vẫn bị rất nhiều người hiểu lầm là miễn phí về giá (Free of charge). Vì vậy cũng cần nhắc lại định nghĩa về phần mềm tự do để chúng ta hiểu chính xác về nó.

Cần phân biệt rõ phần mềm Nguồn Mở và phầm mềm miễn phí :

- Phần mềm Nguồn Mở (OpenSource Software) tương đương với phần mềm Tự do (Free Software)

* Một chương trình là phần mềm tự do đối với một người sử dụng bình thường, nếu bạn có thể:
* Tự do chạy chương trình với bất cứ mục đích nào
* Tự do sửa đổi chương trình phù hợp với nhu cầu của bạn
* Tự do phân phối lại các bản sao, kể cả cho không hoặc có phí
* Tự do phân phối các bản đã được sửa đổi đối với các chương trình (để làm cho sự tự do này có hiệu lực trong thực tế, bạn buộc phải truy cập vào vào mã nguồn, vì việc làm thay đổi trong chương trình mà không có mã nguồn là cực kỳ khó khăn), sao cho cộng đồng có thể hưởng lợi từ việc cải tiến của bạn.
* Vì chữ "Free" ở đây là TỰ DO, không liên quan gì tới giá, nên không có mâu thuẫn gì giữa việc bán các bản sao và phần mềm tự do.


- Phần mềm nguồn mở thì đa số miễn phí, còn phần mềm miễn phí không hẳn đã là phần mềm nguồn mở.

* Phần mềm mã nguồn mở phải tuân thủ theo giấy phép GPL. Có 2 đặc điểm cơ bản cần hiểu rõ là :

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

- Đặc biệt điểm thứ 2 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 ví dụ:

+ 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 ấy (ví dụ qua web hoặc qua việc bán CD giá rẻ)
+ 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.

* Tại sao chúng ta lại dùng phần mềm mã nguồn mở :

- Gần như tất cả các chương trình ứng dụng phân phối theo điều kiện GPL có thể coi là miễn phí đối với người dùng (trong phần lớn các trường hợp để nhận được nó bạn chỉ phải trả tiền đĩa CD, DVD hoặc kết nối Internet). Theo một báo cáo gần đây từ Forrester Research, các công ty có thể tiết kiệm tới 25% chi phí duy trì cơ sở dữ liệu bằng cách chuyển sang sử dụng mã nguồn mở và ngoài ra là 25% chi phí phần cứng. Tiết lộ từ Nidiffer, lãnh đạo C&K Market cho hay, họ đã tiết kiệm được gần 20% chi phí so với trước đây khi chuyển qua sử dụng nền tảng cơ sở dữ liệu của Ingres.


- Vì là mã nguồn mở , nên bạn có thể xem trực tiếp mã nguồn của nó, có thể chỉnh sửa và phát triển phần mềm theo ý mình. Khi có một phần mềm hữu ích ra đời, nó sẽ được cộng đồng nguồn mỡ đón nhận và chung tay phát triển phần mềm đó. Nhờ vậy mà các phần mềm mã nguồn mở không ngừng phát triển về chất lượng và số lượng. Các hệ điều hành viết bằng mã nguồn mở là một minh chứng. Tiêu biểu là dự án Debian, phát triển bản phân phối Debian GNU/Linux được cộng đồng nguồn mở phát triển rất hiệu quả. Mỗi khi phát hiện ra lỗi nào đó của hệ điều hành, lỗi đó sẽ được thông báo và cả cộng đồng cùng sửa lỗi. Thường thì chỉ sau 24 giờ lỗi được sửa. Theo chuyên trang Wiki của Debian có tới hơn 15.400 nhà phát triển Debian, cùng vô số tình nguyện viên trên toàn thế giới cùng tham gia phát triển. Vì vậy các hệ điều hành mã nguồn mở có tính bảo mật rất cao. Chính vì thế phần mềm mã nguồn mở sử dụng được trí tuệ của cộng đồng -> nên tin học sẽ phát triển

- Đối với SV, nhất là SV CNTT, việc tìm hiểu và nghiên cứu các phần mềm mã nguồn mở nói chung và Linux nói riêng đem lại cho sinh viên rất nhiều lợi ích :

* Bỏ qua những giá trị về kinh tế, việc tìm hiểu Linux trước hết đem lại cho chúng ta một cái hình rộng hơn về tin học. Bạn không còn chỉ bị bó buộc trong Windows và việc viết các phần mềm trong Windows. VD: Học Linux khiến bạn hiểu rõ hơn thế nào là Cấu trúc file : Trong Linux không dùng hệ thống định vị file FAT thường thấy trong Dos hay Win mà dùng ext3, ext4, ReierFS từ đó đó bạn hiểu thêm về cách tổ chức thông tin trên đĩa. Từ chỗ có một cái nhìn rộng hơn, bạn sẽ hiểu sâu hơn và ngay cả việc phát triển các ứng dụng trên Windows cũng sẽ có hiệu quả hơn.

* Linux và các phần mềm mã nguồn mở cung cấp cho bạn mã nguồn của chương trình. Rất nhiều trong số các chương trình này được viết bởi những lập trình viên nhiều kinh nghiệm và đã được cộng đồng mã nguồn mở trên toàn thế giới kiểm thử. Vì thế mã của các chương trình này chứa đựng một lượng khối kiến thức rất tinh túy hoàn toàn đáng để bạn có thể học hỏi. Mặt khác những tài liệu về các phần mềm mã nguồn mở thường rất sẵn, chi tiết và được cập nhật thường xuyên(có thể tham khảo www.tldp.org) . Không hề có những "bí mật công nghệ " trong các sản phẩm mã nguồn mở. Những thắc mắc của bạn cũng có thể được giải đáp nhanh chóng thông qua các forum của các nhóm phát triển mã nguồn mở.Vì vậy, theo tôi, đối với sinh viên ( nhất là sinh viên Việt Nam) học tập và nghiên cứu các phần mềm mã nguồn mở là một trong những cách tốt nhất để nâng cao kiến thức cho mình.


* Tuy nói là "mở" nhưng các Phần mềm Nguồn Mở đều phải tuân thủ theo giấy phép GPL. Với nội dung cơ bả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ỉ nếu như 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ở. Đúng là 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.

Admin
Admin

Tổng số bài gửi : 64
Join date : 02/02/2011

http://youthtalkvn.co.cc

Về Đầu Trang Go down

Về Đầu Trang

- Similar topics

 
Permissions in this forum:
Bạn không có quyền trả lời bài viết