1. Trang chủ
  2. » Giáo Dục - Đào Tạo

(Tiểu luận) tiểu luận đạo đức máy tính đề tài tìm hiểu về phần mềm mã nguồn mở

17 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm Hiểu Về Phần Mềm Mã Nguồn Mở
Tác giả Nghiêm Hữu Hoài
Người hướng dẫn Hoàng Anh Đức
Trường học Trường Đại học Mỏ - Địa Chất
Chuyên ngành Công nghệ Thông Tin
Thể loại Tiểu luận
Năm xuất bản 2022
Thành phố Hà Nội
Định dạng
Số trang 17
Dung lượng 526,43 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT KHOA CÔNG NGHỆ THÔNG TIN Họ và tên Nghiêm Hữu Hoài Mã số sinh viên 2021050273 Giảng viên Hoàng Anh Đức Năm học 2021 2022 Học kỳ 2A Hà Nội 2022 Tên đề tài Tìm Hiểu Về Phần Mề[.]

Trang 1

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT

KHOA CÔNG NGHỆ THÔNG TIN

Họ và tên : Nghiêm Hữu Hoài

Mã số sinh viên : 2021050273 Giảng viên : Hoàng Anh Đức Năm học : 2021 - 2022

Tên đề tài: Tìm Hiểu Về Phần Mềm Mã Nguồn Mở

BÀI TIỂU LUẬN ĐẠO ĐỨC MÁY TÍNH

Trang 2

Mục Lục

I: Tổng Quan Về Phần Mềm 3

1: Lịch Sử Phát Triển 3

2: Khái Niệm Phần Mềm 3

3: Phân Loại Phần Mềm 3

II: Tổng Quan Về Phần Mềm Mã Nguồn Mở 4

1: Khái Niệm Chung 4

1.1: Khái niệm “Nguồn Mở” 4

1.2: Lịch sử phát triền phần mềm mã nguồn mở 5

1.3: Khái niệm về phầm mềm mã nguồn mở 6

1.4: Một số phần mềm mã nguồn mở phổ biến 8

1.5: Triết lý của mã nguồn mở (bonus) 9

1.6: Giấy phép mã nguồn mở 10

2: Mô hình phát triển của phần mềm nguồn mở .11

3: Những ưu điểm của phần mềm mã nguồn mở 12

4: Những nhược điểm của phần mềm mã nguồn mở 15

III: Tài Liệu Tham Khảo 17

Trang 3

I: Tổng Quan Về Phần Mềm

1: Lịch Sử Phát Triển

- Lý thuyết đầu tiên về phần mềm, trước khi tạo ra máy tính như chúng ta biết ngày nay, đã được Alan Turing đề xuất trong bài tiểu luận năm 1935, On Computable Numbers, with an Application to the Entscheidungsproblem (vấn đề quyết định) Ông đã tạo ra cái gọi là máy Turing, một mô hình toán học của một cỗ máy trừu tượng có khả năng thực hiện chuỗi các phép toán thô sơ để di chuyển một cỗ máy từ trạng thái cố định này sang trạng thái cố định khác Ý tưởng chính là để chứng minh

về mặt toán học thực tế rằng bất kỳ trạng thái xác định trước của hệ thống luôn có thể đạt được bằng cách thực hiện tuần tự một tập hợp hữu hạn các lệnh cơ bản (chương trình) từ một tập hợp lệnh cố định

- Thế hệ phần mềm đầu tiên cho các máy tính kỹ thuật số được lưu trữ sớm vào cuối những năm 1940 có các hướng dẫn được viết trực tiếp bằng mã nhị phân, thường được viết cho các máy tính lớn Sau đó, sự phát triển của các ngôn ngữ lập trình hiện đại cùng với sự tiến bộ của máy tính gia đình sẽ giúp mở rộng đáng kể phạm vi và chiều rộng của phần mềm có sẵn, bắt đầu với ngôn ngữ lắp ráp và tiếp tục thông qua lập trình chức năng (hàm) và mô hình lập trình hướng đối tượng

2: Khái Niệm Phần Mềm

- Phần mềm (Software) là viết tắt của phần mềm máy tính (Computer Software) Đây là một tập hợp những chỉ thị (Instruction) hoặc câu lệnh được viết bằng một hoặc nhiều ngôn ngữ lập trình Các chỉ thị hoặc câu lệnh này được xếp theo một trật

tự xác định, và các dữ liệu hay tài liệu liên quan nhằm tự động thực hiện một số nhiệm vụ, chức năng hoặc giải quyết một vấn đề cụ thể nào đó Tất cả các chương trình chạy máy tính đều gọi là phần mềm

- Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp đến phần cứng hoặc cung cấp các dữ liệu để phục vụ chương trình hay phần mềm khác

- Phần mềm thực hiện các chức năng của nó bằng cách gửi các chỉ thị trực tiếp đến phần cứng (Hardware) hoặc cung cấp dữ liệu để phục vụ các chương trình hay phần mềm khác

3: Phân Loại Phần Mềm

- Hiện nay có rất nhiều loại phần mềm, chủ yếu là dành cho các thiết bị như máy tính, điện thoại, máy tính bản Chúng phục vụ cho nhiều mục đích khác nhau của đời sống, ví dụ: Phần mềm kế toán, phần mềm vẽ kỹ thuật, phần mềm quản lý công việc, phần mềm quản lý hàng hóa…

Trang 4

- Theo phương thức hoạt động:

Phần mềm hệ thống: là phần mềm để quản lý hành vi phần cứng máy tính, để cung

cấp các chức năng cơ bản được người dùng yêu cầu hoặc phần mềm khác để chạy đúng, nếu có Phần mềm hệ thống cũng được thiết kế để cung cấp một nền tảng để chạy phần mềm ứng dụng, và nó bao gồm:

1 Hệ điều hành: là các bộ sưu tập thiết yếu của phần mềm quản lý tài

nguyên và cung cấp các dịch vụ chung cho các phần mềm khác chạy

"trên đỉnh" của chúng Các chương trình giám sát, bộ tải khởi động, hệ

vỏ và hệ thống cửa sổ là những phần cốt lõi của hệ điều hành Trong thực tế, một hệ điều hành đi kèm với phần mềm bổ sung (bao gồm cả phần mềm ứng dụng) để người dùng có thể thực hiện một số công việc với một máy tính chỉ có một hệ điều hành

2 Driver : vận hành hoặc điều khiển một loại thiết bị cụ thể được gắn vào

máy tính Mỗi thiết bị cần ít nhất một trình điều khiển thiết bị tương ứng; bởi vì một máy tính thường có ít nhất một thiết bị đầu vào và ít nhất một thiết bị đầu ra, một máy tính thường cần nhiều hơn một trình

điều khiển thiết bị

Phần mềm ứng dụng – phần mềm máy tính: là phần mềm sử dụng hệ thống máy

tính để thực hiện các chức năng đặc biệt hoặc cung cấp các chức năng giải trí ngoài hoạt động cơ bản của chính máy tính Có nhiều loại phần mềm ứng dụng khác nhau, bởi vì phạm vi các tác vụ có thể được thực hiện với một máy tính hiện đại là rất lớn, xem danh sách phần mềm

Phần mềm dịch mã (trình dịch): Gồm trình biên dịch và trình thông dịch, cụ thể là

chúng dịch các câu lệnh từ mã nguồn của ngôn ngữ lập trình sang dạng ngôn ngữ máy sao cho thiết bị thực thi có thể hiểu được

II: Tổng Quan Về Phần Mềm Mã Nguồn Mở

1: Khái Niệm Chung

1.1: Khái niệm “Nguồn Mở”

- Theo Wikipedia, cum từ “nguồn mở” đã xuất hiện lẻ tẻ trong những cuốn sách có niên đại hàng trăm năm Tuy nhiên, ý nghĩa hiện đại của thuật ngữ “nguồn mở” lần đầu tiên được đề xuất bởi nhóm người trong phong trào phần mềm tự do

Trang 5

1.2: Lịch sử phát triền phần mềm mã nguồn mở

- Cụm từ “mã nguồn mở” được tạo ra tại hội nghị chiến lược tổ chức ngày 3 tháng 2 năm 1998 tại Palo Alto, California, ngay sau khi công bố việc phát hành mã nguồn trình duyệt web Netscape Hội nghị tập trung vào việc thông báo của Netscape đã tạo ra cơ hội để học tập, phát triển và là minh chứng cho sự ưu việt của quá trình phát triển phần mềm mở Những người tham gia hội nghị cho rằng việc Netscape công bố mã nguồn, thuyết phục người dùng và các nhà phát triển tham gia sáng tạo, cải thiện mã nguồn đã tạo ra một cộng đồng mã nguồn mở Đồng thời, họ cũng thấy cần phải có từ để chỉ ra và phân biệt nó với các khái niệm khác và cụm từ “open source” đã được đề xuất bởi Christine Peterson Hai người trong số những người tham gia hội nghị là Bruce Perens và Eric Raymond đã thành lập nên tổ chức Open Source Initiative (OSI) – công ty thúc đẩy việc sử dụng phần mềm nguồn mở vào cuối tháng 2 năm 1998 Việc sử dụng các thuật ngữ và phát triển phần mềm với sự

hỗ trợ ban đầu của cộng đồng mã nguồn mở Netscape đã nhanh chóng lan rộng và phát triển như ngày nay

- Tại Việt Nam : Nguồn mở bắt đầu vào những năm cuối thập niên 1990, có lẽ vào khoảng thời gian ra đời của tổ chức Sáng kiến Nguồn Mở - OSI (Open Source Initiative) vào năm 1998 ở nước Mỹ, tổ chức bảo vệ cho phong trào phần mềm nguồn mở toàn thế giới Tới lượt mình, OSI được thành lập từ một nhóm người tách ra từ phong trào phần mềm tự do được một tổ chức khác là Quỹ Phần mềm Tự

do – FSF (Free Software Foundation), tổ chức bảo vệ cho phong trào phần mềm tự

do toàn thế giới, được thành lập vào năm 1984 cũng ở nước Mỹ

Trang 6

- Nguồn mở dù bắt đầu bằng phần mềm, nhưng sau đó lan nhanh sang các lĩnh vực khác Chính triết lý và thực hành của phần mềm tự do nguồn mở trong thế kỷ 20 đã truyền cảm hứng để đầu thế kỷ 21 hàng loạt các khái niệm mở liên quan tới các dạng nội dung khác nhau ra đời, như truy cập mở, tài nguyên giáo dục mở, hay dữ liệu

mở

- Ngoài ra, còn có những khái niệm mở khác có liên quan chặt chẽ tới phần mềm và nội dung như cấp phép mở, tiêu chuẩn mở, định dạng mở, phần cứng mở, kiến trúc

mở, v.v Gần đây hơn, một khái niệm bao trùm đã xuất hiện và trở thành xu thế mới của thế giới, đó là Khoa học Mở Ngay cả trong đại dịch COVID-19, các sáng kiến như Cam kết COVID Mở (Open COVID Pledge) hay OpenCovid19 (Covid-19 Mở) cũng đều được truyền cảm hứng từ triết lý và các thực hành của nguồn mở…

1.3: Khái niệm về phầm mềm mã nguồn mở

- Phần mềm mã nguồn mở (PMNM) là những phần mềm được cung cấp dưới dạng

mã nguồn, không chỉ miễn phí tiền mua mà chủ yếu là miễn phí về bản quyền Do

có được mã nguồn của phần mềm và có quy định về giấy phép PMNM (ví dụ General Public Licence – GPL), người sử dụng có quyền sửa đổi, cải tiến, phát triển và nâng

Trang 7

cấp theo một số nguyên tắc chung đã được qui định mà không cần phải xin phép ai Điều này trước đây không được phép làm đối với các phần mềm nguồn đóng (tức là phần mềm thương mại)

- Phần mềm mã nguồn mở do một người, một nhóm người hay một tổ chức phát triển và đưa ra phiên bản đầu tiên cùng với mã nguồn, công bố công khai cho cộng đồng, thường là trên Internet Trên cơ sở đó các cá nhân tham gia sử dụng sẽ đóng góp phát triển, sửa các lỗi (nếu có) và bổ sung để hoàn thiện sản phẩm cho các phiên bản tiếp theo

- Bản thảo Khuyến cáo Khoa học Mở mới nhất của UNESCO, xuất bản ngày 12/05/2021 định nghĩa phần mềm nguồn mở và mã nguồn mở như sau:

“Phần mềm nguồn mở và mã nguồn mở thường gồm các phần mềm mà mã nguồn của chúng được làm cho sẵn sàng công khai, kịp thời và thân thiện với người sử

dụng, ở định dạng cả con người và máy móc đều đọc được và sửa đổi được, theo

một giấy phép mở trao cho những người khác quyền để sử dụng, sử dụng lại, sửa

Trang 8

đổi, mở rộng, nghiên cứu, tạo ra các tác phẩm phái sinh, và chia sẻ phần mềm và mã nguồn đó, thiết kế hoặc kế hoạch chi tiết của nó Mã nguồn đó phải được đưa vào

trong phát hành phần mềm và làm cho sẵn sàng trong các kho truy cập mở và giấy

phép được chọn phải cho phép các sửa đổi, có các tác phẩm phái sinh, và chia sẻ

theo các điều khoản và điều kiện mở tương đương hoặc tương thích.”

- Thuật ngữ “phần mềm nguồn mở” có nghĩa gần tương đương với “mã nguồn mở” nhưng với độ bao hàm cao hơn Phần mềm nguồn mở thì có hệ quả là mã nguồn mở, nhưng điều ngược lại thì không đúng (ví dụ một phần mềm có mã nguồn mở nhưng giấy phép "đóng" - hệ quả của tình huống này là người dùng được truy cập vào mã nguồn nhưng có thể bị ngăn cấm quyền sao chép, chỉnh sửa, phân phối lại )

1.4: Một số phần mềm mã nguồn mở phổ biến

- Linux:

• Là một họ các hệ điều hành tự do nguồn mở tương tự Unix và dựa trên Linux kernel, một hạt nhân hệ điều hành được phát hành lần đầu tiên vào ngày 17 tháng 9 năm 1991, bởi Linus Torvalds

• Người dùng Linux đánh giá cao hệ điều hành này ở các tính năng gần như có thể thay thế cho Windows và hệ điều hành này cũng tương thích với rất nhiều phần mềm khác So với Windows, Linux hoàn toàn miễn phí Bên cạnh đó,

hệ điều hành này yêu cầu phần cứng thấp hơn Windows và ít gặp Virus hơn

- VLC Media Player:

• Là một media player và streaming media server mã nguồn mở di động cao và

đa nền tảng được viết bởi VideoLAN project VLC hỗ trợ nhiều phương thức nén âm thanh và video cũng như nhiều định dạng file, bao gồm DVD-Video, Video CD và giao thức streaming

• Hỗ trợ hầu hết các nền tảng

- LibreOffice:

• LibreOffice là bộ ứng dụng văn phòng mã nguồn mở do The Document Foundation phát triển Nó phân nhánh từ OpenOffice.org năm 2010, phiên bản nguồn mở của StarOffice trước đó

• LibreOffice là lựa chọn hoàn hảo nếu muốn thay đổi công cụ Microsoft Office LibreOffice bao gồm 6 ứng dụng với nhiều tính năng cho tất cả các

Trang 9

nhu cầu xử lý dữ liệu và xuất bản tài liệu: Writer, Calc, Impress, Draw, Math

và Base

- Shotcut:

• Là một công cụ chỉnh sử video mạnh mẽ, Shotcut được nhiều người dùng đánh giá cao vì hỗ trợ hàng trăm định dạng âm thanh và video khác nhau Bên cạnh đó, Shotcut cũng giúp người dùng trích xuất hình ảnh từ webcam cùng

âm thanh sống động

- Unbutu:

• Ubuntu là một hệ điều hành máy tính dựa trên Debian GNU/Linux, một bản phân phối Linux thông dụng Tên của nó bắt nguồn từ "ubuntu" trong tiếng Zulu, có nghĩa là "tình người", mô tả triết lý ubuntu: "Tôi được là chính mình nhờ có những người xung quanh," một khía cạnh tích cực của cộng đồng

- Và còn rất rất nhiều phần mềm mã nguồn mở , đáp ứng mọi nhu cầu của người sử dụng…

1.5: Triết lý của mã nguồn mở (bonus)

- Triết lý của nguồn mở, đôi khi còn được gọi là triết lý của quả táo và ý tưởng, được nêu như sau:

“Tôi có một quả táo, bạn có một quả táo, nếu chúng ta trao đổi cho nhau thì mỗi người vẫn có một quả táo Tôi có một ý tưởng, bạn có một ý tưởng, nếu chúng ta trao đổi cho nhau thì mỗi người sẽ có hai ý tưởng.”

- Ở đây, quả táo là đại diện cho những thứ hữu hình sờ mó được, như mảnh đất, ngôi nhà, mỏ dầu hay hòn đảo, v.v.; còn ý tưởng là đại diện cho những thứ vô hình không

sờ mó được, như phần mềm, nội dung số, và tất cả những gì là kết quả của việc số hóa - bước đầu tiên của quá trình chuyển đổi số Điều dễ tưởng tượng là những thứ hữu hình sẽ luôn dần cạn kiệt, trong khi với chuyển đổi số và Internet trong kỷ nguyên số ngày nay, những thứ vô hình sẽ ngày càng nhiều, vô cùng nhiều và ngày càng thừa thãi

- Triết lý trên đã chỉ ra nguyên tắc cộng lực để phát triển và nguyên tắc này chỉ có

thể thịnh vượng được khi cùng một lúc có 2 điều kiện, là VÔ HÌNH và MỞ, vì nếu

VÔ HÌNH mà ĐÓNG thì cũng không có giá trị do không có chia sẻ, và vì thế không thể có việc mỗi người có hai ý tưởng được

Trang 10

1.6: Giấy phép mã nguồn mở

- Giấy phép nguồn mở nếu được hiểu theo cách đơn giản nhất là hợp đồng hợp pháp

và ràng buộc giữa tác giả và người sử dụng các thành phần phần mềm, xác nhận rằng phần mềm có thể được sử dụng trong các ứng dụng thương mại theo các điều kiện

cụ thể Giấy phép là thứ biến mã nguồn thành một thành phần nguồn mở Nếu không

có giấy phép nguồn mở, thành phần phần mềm sẽ không thể được sử dụng bởi người khác, ngay cả khi nó đã được đăng công khai trên GitHub

- Mỗi giấy phép nguồn mở nêu rõ những gì người dùng có thể và không thể làm đối với các thành phần phần mềm và nghĩa vụ của họ theo các điều khoản và điều kiện Điều này nghe có vẻ khá dễ hiểu, nhưng hiện tại có đến hơn 200 giấy phép mã nguồn

mở, vì vậy rất khó để sắp xếp chúng một cách có tổ chức Với các mức độ phức tạp

và yêu cầu khác nhau, các tổ chức sẽ lựa chọn giấy phép tương thích nhất với các chính sách của họ để đảm bảo rằng chúng sẽ được tuân thủ

- Các loại giấy phép mã nguồn mở

• Bản quyền cho dùng (Copyleft): Bản quyền là luật hạn chế quyền sử dụng, sửa đổi và chia sẻ các sản phẩm sáng tạo mà không được sự cho phép của chủ bản quyền Ví dụ như âm nhạc, phim ảnh,… chúng là tài sản trí tuệ của người tạo ra chúng Khi một tác giả phát hành một chương trình theo giấy phép copyleft, họ đưa ra các yêu cầu về bản quyền của chương trình và đưa ra tuyên

bố rằng người khác có quyền sử dụng, sửa đổi và chia sẻ tác phẩm miễn là các nghĩa vụ vẫn được duy trì Nói tóm lại, nếu họ đang sử dụng một thành phần

có loại giấy phép nguồn mở này, thì họ sẽ phải mở mã của mình để người

Trang 11

• Cấp phép (Permissive): Giấy phép nguồn mở permissive là giấy phép nguồn

mở non-copyleft, đảm bảo quyền tự do sử dụng, sửa đổi và phân phối lại, đồng thời cho phép độc quyền các sản phẩm phái sinh Giấy phép nguồn mở permissive thường được gọi là “Anything Goes”, nó đặt ra những hạn chế tối thiểu về cách người khác sử dụng các thành phần nguồn mở Điều đó có nghĩa

là loại giấy phép này cho phép các mức độ tự do khác nhau để sử dụng, sửa đổi và phân phối lại mã nguồn mở, cho phép sử dụng nó trong các tác phẩm phát sinh độc quyền và gần như không yêu cầu gì liên quan đến các nghĩa vụ trong tương lai

- Các giấy phép mã nguồn mở hàng đầu : Trong số hàng chục giấy phép nguồn mở

đã được OSI phê duyệt thì có một số giấy phép có giá trị cao đã và đang được sử dụng bởi một số dự án nguồn mở phổ biến nhất hiện nay

1 GNU General Public License (GPL)

2 The Apache License

3 Microsoft Public Licenses (Ms-PL)

4 Berkeley Software Distribution (BSD)

5 Common Development and Distribution License (CDDL)

6 Eclipse Public License (EPL)

7 MIT License

2: Mô hình phát triển của phần mềm nguồn mở

- Bên cạnh triết lý quả táo và ý tưởng, phần mềm mã nguồn mở được phát triển tuân theo Luật Linus, nó nêu rằng “Nhiều con mắt soi vào thì lỗi sẽ cạn” (Given enough eyeballs, all bugs are shallow), hoặc như câu nói nổi tiếng của người phát minh ra nhân Linux, Linus Torvalds: “Nói là không có giá trị, hãy cho tôi xem mã nguồn” (Talk is cheap Show me the code!)2 Một chương trình phần mềm mà bạn không thể tải về mã nguồn của nó để xem và soi xét, chắc chắn 100%, nó không phải là phần mềm nguồn mở Để dễ tưởng tượng, có thể nêu như sau: mã nguồn của một phần mềm nguồn mở do (các) lập trình viên người Việt Nam tạo ra, thì một lập trình viên ở bất kỳ quốc gia nào trên thế giới này, cũng PHẢI có khả năng tải về được từ Internet! Điều này còn cho thấy vai trò không thể thiếu của Internet trong phát triển phần mềm nguồn mở - chính Internet xúc tác để Luật Linus hiện thực hóa được trên phạm vi toàn cầu

- Bất kể phần mềm được phát triển theo mô hình của phần mềm nguồn mở hay phần mềm nguồn đóng/sở hữu độc quyền, để có lòng tin vào phần mềm ở khía cạnh bảo

Ngày đăng: 10/05/2023, 15:00

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w