Tải bản đầy đủ - 0 (trang)
Tổng quan về mã nguồn mở

Tổng quan về mã nguồn mở

Tải bản đầy đủ - 0trang

Nếu như các phần mềm sở hữu do một chủ thể duy nhất phát triển, q trình phân tích

thiết kế xây dựng phần mềm được hoạch định và kiểm soát chặt chẽ (mơ hình dàn nhạc)

thì phần mềm mã nguồn mở được phát triển theo mơ hình chợ trời, trong đó người sử

dụng đóng vai trò của người phát triển phần mềm. Q trình ra quyết định là động, khơng

có một định hướng cứng nhắc từ thời điểm ban đầu. Độ tự do của nhà phát triển là rất

lớn, có thể lựa chọn các quyết định theo xu hướng cá nhân, thiểu số và cũng có khi là đa

số. Có rất nhiều trường hợp khi các ý kiến không thống nhất đã sinh ra 2 dòng phần mềm

từ một phần mềm ban đầu trong q trình phát triển (ví dụ iTexMac và TexShop).

Kịch bản phát triển phổ biến của phần mềm mã nguồn mở là: có một nhà phát triển

đưa ra một phiên bản đầu tiên + ý tưởng về phần mềm. Các nhà phát triển khác hoàn

thiện các chức năng đề ra trong ý tưởng đó, tiếp tục đề xuất tính năng mới. Q trình liên

tục được lặp lại. Để thuận lợi hơn cho các loại người sử dụng, các phiên bản của phần

mềm mã nguồn mở thường được quy định như sau:

Phiên bản dịch đêm: với mã nguồn được thay đổi thường xuyên, hàng ngày vào buổi

đêm bản nhị phân của phiên bản mới nhất này được dịch. Phiên bản này chứa các tính

năng mới nhất, tuy nhiên chưa được kiểm tra và rà sốt kỹ càng, còn tiềm ẩn nhiều lỗi,

chưa ổn định. Phiên bản này chủ yếu cho các nhà phát triển thử nghiệm và hoàn thiện.

Phiên bản thử nghiệm: đã được rà soát các lỗi, tuy nhiên vẫn chưa ổn định. Dành

Phiên bản bền vững: khơng tích hợp các tính năng chưa ổn định. Dành cho người sử dụng

định khai thác phần mềm.

1.3.Phân loại



Phần mềm mã nguồn mở hiện nay đã đạt đến mức phát triển ổn định, các lỗi cơ bản

được khắc phục, được người sử dụng chấp nhận rộng rãi. Có thể kể ra một vài phần

mềm/bộ phần mềm được sử dụng rộng rãi hiện nay là:

-



FireFox: trình duyệt của Mozilla, cho phép có thể phát triển các plug-in bổ sung. Hay



-



phần mềm Chrome của Google.

Open Office: Bộ soạn thảo văn bản của Sun Micro System, có thể thay thế cho MS



-



Office.

Apache: web server được sử dụng rộng rãi.

PHP-MySQL: Application Server.

Thunder Bird: Mail Client của Mozilla.

8



-



Unikey: Chương trình gõ tiếng việt.

Phần mềm mã nguồn mở có thể được tải về theo cách thơng thường như với các phần

mềm miễn phí hoặc chia sẻ. Kho dữ liệu sourceforge.net định nghĩa khung thông tin cần



thiết để cập nhật các thông tin chi tiết về một dự án phần mềm mã nguồn mở.

1.4.Ưu/nhược điểm

 Ưu điểm

- Sử dụng miễn phí: Đối với Website mã nguồn mở thì tính miễn phí ln là một đặc điểm

vốn có và cũng có thể nói đó là ưu điểm lớn nhất của loại website này. Không cần tốn quá

nhiều thời gian hay cơng sức, bạn cũng có thể tự tạo cho mình một website miến phí

-



trong khoảng 30 phút đồng hồ.

Nhận được sự hỗ trợ từ cộng đồng người sử dụng: Với việc những trang web mã nguồn

mở được phát triển mạnh mẽ và rộng rãi như hiện nay, phần lớn là do cộng đồng người

sử dụng, IT chia sẻ trên mạng Internet. Do đó trong q trình xây dựng web mã nguồn

mở, nếu bạn không hiểu hoặc đang gặp phải khó khăn nào đó thì thơng qua cộng đồng



-



người sử dụng, bạn có thể tìm được lời giải đáp cho những vấn đề mà bạn đang gặp phải.

Các bản vá lỗi được cập nhật tương đối nhanh: Đối với website mã nguồn mở thì tốc độ

cập nhật các phiên bản, bản vá lỗi nhanh. Do đó, cho dù bạn khơng am hiểu về bảo mật

thì vẫn có thể được yên tâm phần nào nhờ những bản vá lỗi được chia sẻ trên các diễn

đàn, mạng xã hội.



 Nhược điểm

- Khó khăn trong việc chỉnh sửa và nâng cấp: Một website mã nguồn mở được viết ra



nhằm đáp ứng nhu cầu chung của cộng đồng. Do đó, khi cần tùy biến, chỉnh sửa theo

định hướng của bạn thì bạn sẽ phải chỉnh sửa lại mã nguồn lập trình của website đó.

Đồng thời vẫn phải đảm bảo được website hoạt động ổn định. Đây sẽ là một vấn đề

không hề đơn giản. Nếu bạn thiết kế website mã nguồn mở chỉ với mục đích sử dụng thì

khơng sao nhưng nếu như bạn cần phải chỉnh sửa theo nhu cầu sử dụng hoặc theo yêu

cầu của khách hàng thì bắt buộc bạn sẽ phải chỉnh sửa Source Code của website đó. Vì

đây không phải là website do bạn tạo ra nên bạn khơng thể hiểu được hết đặc tính của

loại website này dẫn đến việc chỉnh sửa thường rất phức tạp, mất thời gian và có khi là

-



khơng thể sửa được.

Tính bảo mật không cao: Mặc dù khả năng cập nhật và vá lỗi nhanh nhưng trong quá

trình vận hành nếu một người nào đó cũng sử dụng web mã nguồn mở như bạn và biết

được lỗ hổng bảo mật trước khi bản vá lỗi được cập nhật thì họ cũng có thể lợi dụng lỗ

hổng bảo mật đó tấn cơng website, xóa dữ liệu hoặc nguy hiểm hơn là đánh cắp thông tin

quan trọng liên quan đến công việc kinh doanh của bạn.

9



-



Khơng tạo được nét riêng và tính chun nghiệp: Khi bạn thiết kế website bằng mã

nguồn mở thì việc trang web của bạn giống các website khác (về giao diện, chức năng,

… ) là điều hiển nhiên. Như vậy, trang web của bạn sẽ thiếu đi những nét riêng, nét khác

biệt, không tạo được sức thu hút đối với người truy cập bởi vì tâm lý chung của người

dùng là cần sự mới mẻ, phá cách trong thiết kế hay ít nhất cũng là một điều gì đó tạo

điểm nhấn.

1.5.Hệ điều hành nguồn mở thông dụng

Linux được xem là cha đẻ của các hệ điều hành mã nguồn mở hiện nay, như Ubuntu,

Linux Mint, Fedora và tất nhiên là cả hệ điều hành Android cũng do Google phát triển từ

Linux lên. Trên Linux, người dùng có thể dễ dàng tùy biến giao diện hay bất kỳ thứ gì họ

muốn điều mà không thể làm được trên windows. Linux tương thích với nhiều mơi

trường phát triển ứng dụng khác nhau và nguồn của cải quý giá cho lập trình viên cũng

như các nhà phát triển ứng dụng. Tuy nhiên, do là hệ điều hành mã nguồn mở tương đối

sơ khai nên số lượng ứng dụng hỗ trợ người dùng rất hạn chế, driver hỗ trợ ứng dụng bên

thứ 3 tương đối ít.

1.6.Các loại giấy phép phần mềm nguồn mở.



Trên thị trường có nhiều loại giấy phép. Có thể chia các giấy phép này thành các loại

-



như sau:

Phần mềm thương mại (Commercial Software): Là phần mềm thuộc bản quyền của tác

giả hoặc nhà sản xuất, chỉ được cung cập ở dạng mã nhị phân, người dùng phải mua và

khơng có quyền phân phối lai.

Phần mềm thử nghiệm giới hạn (Limited Trial Software): Là những phiên bản -giới hạn

của các phần mềm thương mại được cung cấp miễn phí nhằm mục đích thử nghiệm, giới

thiệu sản phẩm và kích thích người dùng quyết định mua. Loại sản phầm này không chỉ



-



giới hạn về tính ăng và còn giới hạn về thời gian dùng thử (thường là 60 ngày).

Phần mềm chia sẻ (Shareware): Loại phần mềm này có đủ các tính năng và được phân

phối tự do, nhưng có một giấy phép khuyến cáo các cá nhân hoặc tổ chức mua, tùy tình

hình cụ thể. Nhiều tiện ích Internet ( như “WinZip” dùng các thuận lợi của Shareware



-



như một hệ thống phân phối).

Phần mềm sử dụng phí thương mại (Non-commercial Use): Loại phần mềm này được sử

dụng tự do và có thể phân phối lại bỏi các tổ chức phi lợi nhuận. Nhưng các tổ chức kinh

thế, thí dụ các doanh nghiệp... muốn dùng phải mua. Netcape Naviator là một thí dụ của

loại phần mềm này.



10



-



Phần mềm không phải trả phần trăm cho nhà sản xuất (Royalties Free Binaries Software):

Phần mềm được cung cấp dưới dạng nhị phân và được dùng tự do. Thí dụ: bản nhị phân



-



của các phần mềm Internet Explorer và NetMeeting.

Thư viện phần mềm không phải trả phần trăm (Royalties Free Software Libraries): Là

những phần mềm mà mã nhị phân cũng như mã nguồn được dùng và phân phối tự do,

nhưng người dùng khơng được phép sửa đổi. Thí dụ các thư viện lớp học, các tệp



-



“header”...

Phần mềm mã nguồn mở kiểu BSD – (Open Source BSD-Style): Một nhóm nhỏ khép kín

(closed team) đã phát triển các PMNM theo giấy phép phân phối Berkely (BSD– Berkely

Software Distribution) cho phép sử dụng và phân phối lại các phần mềm này dưới dạng

mã nhị phân và mã nguồn. Tuy người dùng có quyền sửa đổi mã, nhưng về nguyên tắc

nhóm phát triển không cho phép người dùng tự do lấy mã nguồn từ khoa mã ra sửa (gọi

là check-out) và đưa mã đã sửa vào lại kho mã mà không được họ kiểm tra trước (gọi là



-



check-in).

PMNM kiểu Apache (Open Source Apache-styel): Chấp nhận nguồn mở kiểu BSD nhưng

cho phép những người ngồi nhóm phát triển xâm nhập vào lõi của mã nền (core



-



codebase), tức là được phép thực hiện các “check-in”.

PMNM kiểu CopyLeft hay kiểu Linux (Open Source CopyLeft, Linux-style): PMNM

kiểu CopyLeft (trò chơi chữ của Free Software Foundation – FSF – và GNU – Gnu’s Not

Unix, để đối nghịc hồn tồn với CopyRight!) hay còn gọi là giấy phép GPL (General

Public Licence) là một bước tiến quan trọng theo hướng tự do hóa của các giấy phép

phần mềm. Giấy phép GPL yêu cầu không những mã nguồn gốc phải được phân phối



-



theo các quy định của GPL mà mọi sản phẩm dẫn xuất cũng phải tuân thủ GPL.

GPL cho người dùng tối đa quyền hạn và tự do đối với các PMNM theo GPL, cụ thể

người dùng có quyền không những sao chép, sửa đổi, mua bán các PMNM dưới

CopyLeft mà còn được quyền tự do như vậy đối với các phần mềm dẫn xuất. Tóm lại nếu

PMNM gốc đã theo CopyLeft thì mọi PMNM dẫn xuất của nó cũng đương nhiên theo

CopyLeft.

1.7.Giới thiệu về Linux

Thuật ngữ Linux được sử dụng rộng rãi trong thực tế. Tuy nhiên, trong các ngữ cảnh

khác nhau, thuật ngữ này có thể được hiểu với nghĩa khác nhau. Khi sử dụng Linux trên

các thiết bị nhúng, thiết bị di động, trong trường hợp này, chỉ có nhân của hệ điều hành

Linux được sử dụng. Thuật ngữ Linux được dùng để chỉ nhân của hệ điều hành Linux.



11



Nhân của hệ điều hành bao gồm các phần mềm cần thiết để quản lý và sử dụng các phần

cứng của hệ thống.

Khi cài đặt các phần mềm trên máy tính, có thể có nhiều lựa chọn: Windows, Linux,

Sun, MacOS. Trong ngữ cảnh này, Linux được hiểu là một hệ điều hành.

Linux thường được phân phối không phải chỉ gồm có nhân và các phần mềm hệ

thống. Đi kèm theo hệ điều hành, còn có các phần mềm ứng dụng ohucj vụ các nhu cầu

của từng lớp người sử dụng. Giao diện đồ họa, các chương trình hỗ trợ … Tất cả các

thành phần đó kết hợp với nhân của hệ điều hành và hệ điều hành tạo ra một bản phân

phối của Linux. Có rất nhiều bản phân phối khác nhau, có thể sử dụng chung một phiên

bản của nhân, một tập hợp chung các phần mềm hệ thống, nhưng được phân phối với các

bộ phần mềm khác nhau dành cho máy chủ, máy để bàn, máy xách tay …

Khi so sánh hiệu năng giữa các sản phẩm Linux, MacOS, Sun Solaris … thực tế ta đã

so sánh các hệ thống trên đó các hệ điều hành tương ứng đã được cài đặt. Linux trong

trường hợp này được sử dụng để chỉ một hệ thống máy tính cài đặt hệ điều hành Linux.

Khi sử dụng thuật ngữ Linux, cần xác định rõ bối cảnh để tránh hiểu nhầm.

 Ứng dụng của Linux

- Mặc dù ban đầu chỉ được xây dựng cho các máy tính i386, tuy nhiên do tính chất mã

nguồn mở, người sử dụng với phần cứng hoặc nhu cầu khác nhau đều có thể thay đổi

Linux cho phù hợp, nên Linux có thể được ứng dụng trong nhiều lĩnh vực khác nhau, trên

-



các dòng phần cứng khác nhau.

Máy tính để bàn: Linux được sử dụng ngày càng nhiều trên máy tính để bàn. Linux ngày

nay thường được phân phối cùng với các giao diện đồ họa như GNME, KDE … Các

phần mềm ứng dụng xuất hiện ngày càng nhiều, hoạt động ổn định, cung cấp cho người

sử dụng những công cụ mạnh mẽ để xử lý văn bản, chỉnh sửa đồ họa, duyệt internet …

tóm lại tất cả các thao tác mà người sử dụng mong chờ ở một máy tính để bàn. Các

chương trình phổ biến trên các hệ điều hành thương mại Windows và MacOSX hầu hết



-



đều có các phần mềm có tính năng tương đương trên Linux.

Máy chủ: Linux được sử dụng phổ biến hơn trên các máy chủ. Một máy tính Linux có thể

được kết nối và thực hiện các thao tác quản trị máy tính thơng qua một giao diện văn bản.

Việc truy cập vào giao diện console này nhanh và thuận tiện hơn nhiều so với truy cập

vào giao diện đồ họa. Linux có thị phần vượt trội và có xu hướng tăng dần trong thị

trường máy chủ. Điều này có thể giải thích dựa trên tổ hợp LAMP (Linux - Apache - PHP

- MySQL) rất thuận tiện cho việc triển khai các website và ứng dụng web. Trên các máy

tính lớn, Linux cũng được dùng phổ biến bởi 2 nguyên nhân: giá thành rẻ và tính tương

tích tương tự Unix. Các siêu máy tính hầu hết được thiết kế để có thể hoạt động với Unix,

12



nên có thể hoạt động dễ dàng trên Linux. Một số siêu máy tính còn được phân phối cùng

-



Linux. Máy tính IBM Sequoi cũng sẽ sử dụng hệ điều hành Linux.

Các hệ nhúng: Linux còn được sử dụng rộng rãi trên các thiết bị nhúng vì khả năng tùy

biến và giá thành hạ. Hệ điều hành Maemo mà Nokia sẽ sử dụng trong một loạt các điện

thoại thông minh sắp ra đời là một hệ điều hành dựa trên Linux. Trong nhiều router,

switch cũng sử dụng hệ điều hành Linux.

2.Nền tảng công nghệ sử dụng

2.1. Ngôn ngữ PHP

2.1.1 Khái niệm

Khái niệm về PHP PHP là chữ viết tắt của “Personal Home Page” do Rasmus Lerdorf

tạo ra năm 1994. Vì tính hữu dụng của nó và khả năng phát triển, PHP bắt đầu được sử

dụng trong mơi trường chun nghiệp và nó trở thành “PHP:Hypertext Preprocessor”.

Thực chất PHP là ngôn ngữ kịch bản nhúng trong HTML, nói một cách đơn giản đó là

một trang HTML có nhúng mã PHP, PHP có thể được đặt rải rác trong HTML. PHP là

một ngôn ngữ lập trình được kết nối chặt chẽ với máy chủ, là một cơng nghệ phía máy

chủ (Server-Side) và khơng phụ thuộc vào môi trường (cross- platform). Đây là hai yếu

tố rất quan trọng, thứ nhất khi nói cơng nghệ phía máy chủ tức là nói đến mọi thứ trong

PHP đều xảy ra trên máy chủ, thứ hai, chính vì tính chất không phụ thuộc môi trường cho

phép PHP chạy trên hầu hết trên các hệ điều hành như Windows, Unix và nhiều biến thể

của nó...

Đặc biệt các mã kịch bản PHP viết trên máy chủ này sẽ làm việc bình thường trên

máy chủ khác mà không cần phải chỉnh sửa hoặc chỉnh sửa rất ít. Khi một trang Web

muốn được dùng ngơn ngữ PHP thì phải đáp ứng được tất cả các q trình xử lý thơng tin

trong trang Web đó, sau đó đưa ra kết quả ngơn ngữ HTML. Khác với ngơn ngữ lập trình,

PHP được thiết kế để chỉ thực hiện điều gì đó sau khi một sự kiện xảy ra (ví dụ, khi người

dùng gửi một biểu mẫu hoặc chuyển tới một URL).

2.1.2 Lịch sử phát triển

PHP ngôn ngữ lập trình web được biết đến nhiều nhất ngày nay chắc chắn là sự kế

thừa cho sản phẩm công nghệ mang tên PHP / FI. Được tạo ra vào những năm 1994 bởi

Rasmus Lerdorf, phiên bản đầu tiên của PHP là một tập hợp đơn giản của kỹ thuật

Common Gateway Interface (CGI) nhị phân viết bằng ngôn ngữ lập trình C. Theo nguyên

bản thì PHP được Rasmus sử dụng để theo dõi lượng truy cập vào đơn xin việc trực tuyến

của mình, ơng đặt tên cho nó là “Personal Home Page Tools”. Qua nhiều năm, vì muốn

ngơn ngữ này có nhiều chức năng hơn những gì ơng từ mong muốn, Rasmus đã viết lại

PHP Tools, viết thêm những dòng code mới để ngôn ngữ này trở nên phong phú hơn.

13



Phiên bản mới này có khả năng tương tác tốt với cơ sở dữ liệu và nhiều hơn nữa, cung

cấp một Framework mà người dùng PHP có thể phát triển các ứng dụng web động đơn

giản như Guestbook. Trong tháng sáu năm 1995, Rasmus đã chính thức public mã nguồn

này, ông cho phép các nhà phát triển phần mềm được sử dụng nó nếu họ có khả năng.

Điều này cũng giúp cho Rasmus có thể cải tiến PHP dựa vào những ý kiến từ người dùng.

Vào tháng Chín năm đó, Rasmus mở rộng PHP và trong một thời gian ngắn cái tên

PHP đã đột nhiên không được nhắc tới. Thay vào đó họ đề cập đến các cơng cụ như FI

(viết tắt của “Forms Interpreter”), nó bao gồm một số chức năng cơ bản của PHP như

chúng ta biết đến ngày nay. Nó có các biến như Perl, dịch tự động các biến, và cú pháp

nhúng HTML. Cú pháp này cũng tương tự như của Perl, mặc dù hạn chế hơn rất nhiều và

cũng đơn giản hơn. Trong thực tế, để nhúng mã vào một file HTML, các nhà phát triển đã

phải sử dụng những ”HTML comments”. Mặc dù phương pháp này khơng hồn tồn

được đón nhận, FI vẫn tăng doanh thu và được chấp nhận như một công cụ CGI —

nhưng vẫn khơng hồn tồn được gọi là một ngôn ngữ. Tuy nhiên, điều này bắt đầu thay

đổi trong những tháng tiếp theo; Tháng Mười, 1995, Rasmus đã phát hành phiên bản mới,

ơng viết lại tồn bộ mã nguồn và đặt lại với cái tên PHP và đó cũng là phiên bản ngơn

ngữ lập trình đầu tiên trên thế giới được coi là một nền tảng ngôn ngữ tiên tiến. PHP

được cố tình thiết kế để trơng giống với ngơn ngữ C, làm cho nó trở nên thân thiện và dễ

làm quen đối với cả các nhà phát triển C, Perl, và ngôn ngữ tương tự.

Vào tháng Tư năm 1996, kết hợp với tên gọi của phiên bản trước, Rasmus đã giới

thiệu PHP / FI. Thế hệ thứ hai của ngơn ngữ lập trình này đã thực sự phát triển PHP từ

một bộ công cụ cho tới một ngôn ngữ lập trình theo đúng nghĩa của nó. Nó được ra đời

để hỗ trợ cho các cơ sở dữ liệu DBM, mSQL, và Postgres95, cookies, hỗ trợ chức năng

người dùng, và nhiều hơn thế. Vào khoảng tháng 6 năm đó, PHP / FI đã được ra mắt

phiên bản 2.0. Một thực tế rất thú vị đó là chỉ có một phiên bản đầy đủ duy nhất của PHP

2.0. Sau khi kết thúc phiên bản beta trong tháng Mười Một, 1997, ngơn ngữ PHP đã được

viết lại hồn tồn.

Mặc dù nó tồn tại và phát triển trong khoảng thời gian ngắn, PHP vẫn tiếp tục được

phổ biến ngày càng nhiều trên thế giới. Năm 1997 và 1998, PHP / FI đã có được sự sùng

bái của hàng ngàn người dùng trên toàn thế giới. Một cuộc khảo sát của Netcraft vào

tháng 5/1998, cho thấy gần 60.000 lĩnh vực báo cáo có tiêu đề chứa “PHP”, chỉ ra rằng

các máy chủ lưu trữ đều được cài đặt PHP. Con số này cũng tương đương với khoảng 1%

tất cả các tên miền trên Internet vào thời điểm đó. Mặc dù con số rất ấn tượng, nhưng sự

14



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tổng quan về mã nguồn mở

Tải bản đầy đủ ngay(0 tr)

×