TRƯỜNG ĐẠI HỌC CÔNG NGHỆ GTVT
KHOA CÔNG NGHỆ THÔNG TIN
THS. PHAN NHƯ MINH
(Bộ môn truyền thông và mạng máy tính)
BÀI GIẢNG
PHẦN MỀM MÃ NGUỒN MỞ
DÙNG CHO SINH VIÊN KHOA CÔNG NGHỆ THÔNG TIN
LƯU HÀNH NỘI BỘ
Hà nội 2022
GNUFDL • PID_00148386 Phần mềm tự do
Mục lục
1 Giới thiệu.............................................................................................................................................25
1.1 Khái niệm về sự tự do của phần mềm..........................................................................................25
1.1.1 Định nghĩa............................................................................................................................26
1.1.2 Các khái niệm có liên quan ..................................................................................................27
1.2 Động lực.......................................................................................................................................28
1.3 Hệ quả của sự tự do của phần mềm..............................................................................................29
1.3.1 Đối với người sử dụng đầu cuối...........................................................................................29
1.3.2 Đối với nền hành chính nhà nước.........................................................................................30
1.3.3 Đối với lập trình viên............................................................................................................30
1.3.4 Đối với nhà tích hợp ............................................................................................................31
1.3.5 Đối với các nhà cung cấp và duy trì dịch vụ........................................................................31
1.4 Tóm lược......................................................................................................................................31
2 Một chút về lịch sử...............................................................................................................................32
2.1 Phần mềm tự do trước phần mềm tự do.......................................................................................32
2.1.1 Và lúc ban đầu nó từng là tự do............................................................................................33
2.1.2 Những năm 70 và đầu những năm 80...................................................................................34
2.1.3 Sự phát triển ban đầu của Unix.............................................................................................35
2.2 Sự bắt đầu: BSD, GNU................................................................................................................36
2.2.1 Richard Stallman, GNU, FSF: phong trào PMTD ra đời.....................................................36
2.2.2 CSRG của Berkeley..............................................................................................................37
2.2.3 Sự khởi đầu của Internet.......................................................................................................39
2.2.4 Các dự án khác......................................................................................................................40
2.3 Mọi thứ đều theo cách của nó.......................................................................................................40
2.3.1 Yêu cầu về một nhân kernel.................................................................................................41
2.3.2 Họ *BSD...............................................................................................................................41
2.3.3 Sự ra đời của GNU/Linux.....................................................................................................42
2.4 Thời gian chín muồi.....................................................................................................................43
2.4.1 Kết thúc những năm 90.........................................................................................................43
2.4.2 Thập niên 2000.....................................................................................................................46
2.5 Tương lai: Một tiến trình đầy trở ngại?........................................................................................52
2.6 Tóm lược......................................................................................................................................53
3 Các khía cạnh pháp lý..........................................................................................................................55
3.1 Giới thiệu ngắn gọn về sở hữu trí tuệ...........................................................................................55
3.1.1 Bản quyền.............................................................................................................................56
3.1.2 Bí mật thương mại................................................................................................................58
3.1.3 Các bằng sáng chế và các mô hình tiện ích..........................................................................58
3.1.4 Thương hiệu và logo được đăng ký......................................................................................59
3.2 Các giấy phép của PMTD............................................................................................................60
3.2.1 Các loại giấy phép................................................................................................................61
Trang 20/218
GNUFDL • PID_00148386 Phần mềm tự do
3.2.2 Những giấy phép dễ dãi........................................................................................................62
3.2.3 Các giấy phép mạnh..............................................................................................................64
3.2.4 Phân phối theo vài giấy phép................................................................................................68
3.2.5 Tài liệu chương trình............................................................................................................68
3.3 Tóm lược......................................................................................................................................70
4 Các lập trình viên và những động lực của họ.......................................................................................71
4.1 Giới thiệu......................................................................................................................................71
4.2 Các lập trình viên là những ai?.....................................................................................................71
4.3 Lập trình viên làm gì?..................................................................................................................72
4.4 Phân bố theo địa lý.......................................................................................................................73
4.5 Sự cống hiến.................................................................................................................................74
4.6 Những động lực............................................................................................................................75
4.7 Sự lãnh đạo...................................................................................................................................76
4.8 Tóm lược và các kết luận.............................................................................................................78
5 Kinh tế..................................................................................................................................................79
5.1 Cấp vốn cho các dự án PMTD.....................................................................................................79
5.1.1 Vốn nhà nước........................................................................................................................79
5.1.2 Việc cấp vốn không vì lợi nhuận của tư nhân.......................................................................81
5.1.3 Cấp vốn bởi ai đó yêu cầu những cải tiến.............................................................................82
5.1.4 Việc cấp vốn với những lợi ích liên quan.............................................................................82
5.1.5 Việc cấp vốn như một sự đầu tư nội bộ ...............................................................................84
5.1.6 Các phương thức cấp vốn khác.............................................................................................85
5.2 Các mô hình kinh doanh dựa trên PMTD....................................................................................86
5.2.1 Hiểu biết tốt hơn...................................................................................................................88
5.2.2 Hiểu biết tốt hơn với những hạn chế....................................................................................89
5.2.3 Nguồn của một sản phẩm PMTD.........................................................................................90
5.2.4 Nguồn sản phẩm với những hạn chế....................................................................................91
5.2.5 Các giấy phép đặc biệt..........................................................................................................92
5.2.6 Bán thương hiệu....................................................................................................................93
5.3 Những phân loại mô hình kinh doanh khác..................................................................................93
5.3.1 Phân loại theo Hecker...........................................................................................................93
5.4 Ảnh hưởng lên vị thế độc quyền..................................................................................................94
5.4.1 Các yếu tố thiên vị cho các sản phẩm áp đảo.......................................................................95
5.4.2 Thế giới của PMSHĐQ.........................................................................................................96
5.4.3 Tình trạng với PMTD...........................................................................................................96
5.4.4 Các chiến lược cho việc trở thành một sự độc quyền với PMTD.........................................97
6 PMTD và hành chính nhà nước...........................................................................................................99
6.1 Ảnh hưởng lên các cơ quan hành chính nhà nước.......................................................................99
6.1.1 Những ưu điểm và những ảnh hưởng tích cực ..................................................................100
6.1.2 Những khó khăn của việc áp dụng và những vấn đề khác.................................................103
6.2 Hành động của cơ quan hành chính nhà nước trong thế giới PMTD.........................................105
6.2.1 Làm sao thỏa mãn nhu cầu của các cơ quan hành chính nhà nước?..................................105
6.2.2 Khuyến khích xã hội thông tin............................................................................................107
Trang 21/218
GNUFDL • PID_00148386 Phần mềm tự do
6.2.3 Thúc đẩy nghiên cứu ..........................................................................................................108
6.3 Những ví dụ của những sáng kiến về pháp lý............................................................................109
6.3.1 Các dự luật tại Pháp............................................................................................................109
6.3.2 Dự luật của Brazil...............................................................................................................110
6.3.3 Các dự luật tại Peru.............................................................................................................111
6.3.4 Các dự luật tại Tây Ban Nha...............................................................................................112
7 Kỹ thuật của PMTD...........................................................................................................................114
7.1 Giới thiệu....................................................................................................................................114
7.2 Nhà thờ lớn và cái chợ................................................................................................................114
7.3 Sự lãnh đạo và ra quyết định trong cái chợ................................................................................116
7.4 Các qui trình của PMTD.............................................................................................................118
7.5 Chỉ trích về “Nhà thờ lớn và cái chợ”........................................................................................119
7.6 Các nghiên cứu có tính định lượng............................................................................................120
7.7 Công việc tương lai....................................................................................................................122
7.8 Tóm lược....................................................................................................................................123
8 Các môi trường và công nghệ phát triển............................................................................................125
8.1 Mô tả các môi trường, công cụ và hệ thống...............................................................................125
8.2 Các ngôn ngữ và công cụ có liên quan.......................................................................................125
8.3 Các môi trường phát triển tích hợp............................................................................................127
8.4 Các cơ chế cộng tác cơ bản........................................................................................................127
8.5 Quản lý mã nguồn......................................................................................................................129
8.5.1 Hệ thống Phiên bản Đồng thời...........................................................................................129
8.5.2 Các hệ thống quản lý nguồn khác.......................................................................................132
8.6 Tài liệu........................................................................................................................................134
8.6.1 DocBook.............................................................................................................................135
8.6.2 Wikis...................................................................................................................................136
8.7 Quản lý lỗi và các vấn đề khác...................................................................................................137
8.8 Hỗ trợ cho các kiến trúc khác.....................................................................................................138
8.9 Các site hỗ trợ phát triển............................................................................................................139
8.9.1 SourceForge........................................................................................................................139
8.9.2 Những người kế thừa của SourceForge..............................................................................141
8.9.3 Các site và chương trình khác.............................................................................................141
9 Các trường hợp điển hình...................................................................................................................143
9.1 Linux..........................................................................................................................................144
9.1.1 Lịch sử của Linux...............................................................................................................145
9.1.2 Cách thức làm việc của Linux............................................................................................146
9.1.3 Hiện trạng của Linux..........................................................................................................147
9.2 FreeBSD.....................................................................................................................................149
9.2.1 Lịch sử của FreeBSD..........................................................................................................149
9.2.2 Sự phát triển trong FreeBSD..............................................................................................150
9.2.3 Qui trình ra quyết định trong FreeBSD..............................................................................150
9.2.4 Các công ty làm việc xung quanh FreeBSD.......................................................................151
9.2.5 Hiện trạng của FreeBSD.....................................................................................................151
Trang 22/218
GNUFDL • PID_00148386 Phần mềm tự do
9.2.6 Bức tranh X quang của FreeBSD.......................................................................................152
9.2.7 Các nghiên cứu hàn lâm về FreeBSD.................................................................................154
9.3 KDE............................................................................................................................................154
9.3.1 Lịch sử của KDE................................................................................................................154
9.3.2 Sự phát triển của KDE........................................................................................................155
9.3.3 Liên đoàn KDE...................................................................................................................156
9.3.4 Hiện trạng của KDE............................................................................................................157
9.3.5 Hình ảnh X quang của KDE...............................................................................................158
9.4 GNOME.....................................................................................................................................160
9.4.1 Lịch sử của GNOME..........................................................................................................160
9.4.2 Quỹ GNOME......................................................................................................................161
9.4.3 Giới công nghiệp làm việc xung quanh GNOME..............................................................162
9.4.4 Hiện trạng của GNOME.....................................................................................................164
9.4.5 Hình ảnh X quang của GNOME.........................................................................................164
9.4.6 Các nghiên cứu hàn lâm về GNOME.................................................................................166
9.5 Apache........................................................................................................................................166
9.5.1 Lịch sử của Apache.............................................................................................................167
9.5.2 Sự phát triển của Apache....................................................................................................168
9.5.3 Hình ảnh X quang của Apache...........................................................................................168
9.6 Mozilla........................................................................................................................................169
9.6.1 Lịch sử của Mozilla............................................................................................................170
9.6.2 Hình ảnh X quang của Mozilla...........................................................................................172
9.7 OpenOffice.org...........................................................................................................................173
9.7.1 Lịch sử của OpenOffice.org................................................................................................174
9.7.2 Tổ chức của OpenOffice.org...............................................................................................174
9.7.3 Hình ảnh X quang của OpenOffice.org..............................................................................175
9.8 Red Hat Linux............................................................................................................................176
9.8.1 Lịch sử của Red Hat...........................................................................................................176
9.8.2 Hiện trạng của Red Hat.......................................................................................................178
9.8.3 Bức tranh X quang của Red Hat.........................................................................................178
9.9 Debian GNU/Linux....................................................................................................................180
9.9.1 Hình ảnh X quang của Debian............................................................................................181
9.9.2 So sánh với các hệ điều hành khác.....................................................................................183
9.10 Eclipse......................................................................................................................................184
9.10.1 Lịch sử của Eclipse...........................................................................................................185
9.10.2 Hiện trạng của Eclipse......................................................................................................185
9.10.3 Hình ảnh X quang của Eclipse..........................................................................................187
10 Các nguồn tự do khác.......................................................................................................................189
10.1 Những tài nguyên tự do quan trọng nhất..................................................................................189
10.1.1 Các tài liệu khoa học.........................................................................................................189
10.1.2 Luật pháp và chuẩn...........................................................................................................190
10.1.3 Bách khoa toàn thư...........................................................................................................191
10.1.4 Các khóa học.....................................................................................................................193
Trang 23/218