Tài liệu Giáo trình Nhập môn quản trị hệ thống Linux - Trần Huy Thắng: 1/145
Giáo trình
NHẬP MÔN QUẢN TRỊ HỆ THỐNG LINUX
Trần Huy Thắng
(tranhuythang@gmail.com)
Do điều kiện thời gian, cuốn sách còn một phần chưa được viết.
--> Rất mong bạn đọc có thể tham gia viết tiếp để hoàn thiện cuốn sách.
Tài liệu này có thể download tại: www.fita.hua.edu.vn/thangtran
Bạn có thể trích đăng lại (một phần hay toàn bộ) nội dung cuốn sách với chú thích về nơi
download cuốn sách và thông báo tìm người viết tiếp này. Nếu có ý định thương mại xin nhắn
trước với tác giả.
2/145
Lề của sách được đặt chế độ mirror margin để bạn có thể in 2 mặt.
3/145
Lời nói đầu
Cuốn “Nhập môn Quản trị Hệ thống Linux” được viết với mục đích làm giáo trình cho một lớp Linux
3 hoặc 6 tín chỉ (45 hoặc 90 giờ) học thực hành trên phần mềm máy ảo VMware Workstation. Nội
dung cuốn sách gồm 3 phần:
Phần 1 (phần phụ): Giới thiệu về luật bản quyền, phần mềm tự do/nguồn mở (FOSS), các hệ điều
hành *nix. Phần này tuy không liên quan đến các thao tác kỹ thuật và các...
145 trang |
Chia sẻ: quangot475 | Lượt xem: 561 | Lượt tải: 0
Bạn đang xem trước 20 trang mẫu tài liệu Giáo trình Nhập môn quản trị hệ thống Linux - Trần Huy Thắng, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
1/145
Giáo trình
NHẬP MÔN QUẢN TRỊ HỆ THỐNG LINUX
Trần Huy Thắng
(tranhuythang@gmail.com)
Do điều kiện thời gian, cuốn sách còn một phần chưa được viết.
--> Rất mong bạn đọc có thể tham gia viết tiếp để hoàn thiện cuốn sách.
Tài liệu này có thể download tại: www.fita.hua.edu.vn/thangtran
Bạn có thể trích đăng lại (một phần hay toàn bộ) nội dung cuốn sách với chú thích về nơi
download cuốn sách và thông báo tìm người viết tiếp này. Nếu có ý định thương mại xin nhắn
trước với tác giả.
2/145
Lề của sách được đặt chế độ mirror margin để bạn có thể in 2 mặt.
3/145
Lời nói đầu
Cuốn “Nhập môn Quản trị Hệ thống Linux” được viết với mục đích làm giáo trình cho một lớp Linux
3 hoặc 6 tín chỉ (45 hoặc 90 giờ) học thực hành trên phần mềm máy ảo VMware Workstation. Nội
dung cuốn sách gồm 3 phần:
Phần 1 (phần phụ): Giới thiệu về luật bản quyền, phần mềm tự do/nguồn mở (FOSS), các hệ điều
hành *nix. Phần này tuy không liên quan đến các thao tác kỹ thuật và các sách về quản trị hệ thống
cũng không đề cập nhiều nhưng chúng tôi nghĩ rất nên đưa vào. Đặc biệt trong các trường đại học ở
Việt Nam, (theo sự quan sát cá nhân) vấn đề “bản quyền”, “nguồn mở” chưa được dạy một cách đúng
mực do đó chúng tôi cho rằng cơ hội tốt nhất để bổ sung phần thiếu sót này là lồng nó vào trong các
lớp/giáo trình về Linux.
(Phần này chỉ nên nói trong buổi đầu tiên giới thiệu môn học.)
Phần 2 và 3 (phần chính): Các câu lệnh quản trị Linux trên máy đơn và trong môi trường mạng. Cuốn
sách chỉ nói về các câu lệnh mà không đề cập đến các công cụ có giao diện đồ họa bởi: thứ nhất, người
mới học (vốn đang dùng Windows) nên tập làm quen với việc gõ lệnh; thứ hai, cái vỏ giao diện đồ họa
nhiều khi không khai thác hết được các lệnh mà nó gọi đến. Các câu lệnh trong sách được thực thi trên
Redhat/Fedora nhưng hoàn toàn có thể chạy bình thường trên Debian, Ubuntu, OpenSuse (trừ phần cài
đặt gói phần mềm.)
Tài liệu này được dạy trên VMware Workstation (nên cũng có một bài hướng dẫn nhỏ về mạng ảo của
phần mềm này.)
(Chúng tôi cũng cho rằng phần Shell script để tự động hóa các thao tác quản trị là phần nâng cao chỉ
dành cho những người đã quen với Linux nên không đề cập đến trong cuốn sách nhập môn này.)
Do điều kiện thời gian, chúng tôi chưa viết được phần 3 cũng như còn thiếu một số điểm ở phần
1 và phần 2 nên rất mong bạn đọc có thể tham gia viết tiếp để lắp ghép thành một cuốn sách
hoàn chỉnh.
Trần Huy Thắng (tranhuythang@gmail.com)
Bạn có thể trích đăng lại (một phần hay toàn bộ) nội dung cuốn sách với chú thích về nơi
download cuốn sách và thông báo tìm người viết tiếp này. Nếu có ý định thương mại xin nhắn
trước với tác giả.
Mục lục sơ lược
Bài 1. Khái niệm FOSS và *nix _______________________________________________________ 9
Bài 2. Bổ túc kiến thức về HDD. Cài đặt Linux, FreeBSD (chưa xong). _____________________ 29
Bài 3. Làm quen với Linux command _________________________________________________ 31
Bài 4. Devices - Filesystems – Mounting _______________________________________________ 52
Bài 5. Install softwares _____________________________________________________________ 65
Bài 6. Quản trị user. File permission _________________________________________________ 72
Bài 7. Advanced partitioning: RAID & LVM ___________________________________________ 87
Bài 8. Quản lý process, daemon ______________________________________________________ 99
Bài 9. Quá trình khởi động (grub, kernel, init) và tắt máy của Linux _______________________ 113
Bài 10. Tạo mạng ảo bằng VMware Workstation _______________________________________ 126
Bài 11. Bổ túc kiến thức về TCP/IP__________________________________________________ 136
Bài 12. Configure card mạng (chưa xong) ____________________________________________ 142
Tài liệu tham khảo _______________________________________________________________ 145
4/145
Mục lục
Bài 1. Khái niệm FOSS và *nix ............................................................................................................. 9
I. FOSS ............................................................................................................................................................. 10
1. Sở hữu trí tuệ ............................................................................................................................................................ 10
Sở hữu trí tuệ (intelectual property) ......................................................................................................................... 10
Sở hữu công (public domain) .................................................................................................................................. 10
Đối ngược với sở hữu trí tuệ là sở hữu công ....................................................................................................... 10
Khi sở hữu trí tuệ trở thành sở hữu công ............................................................................................................ 11
Copyright (bản quyền) © ......................................................................................................................................... 11
Thương hiệu (trademark) ......................................................................................................................................... 12
2. Phân loại phần mềm theo quyền của người sử dụng ................................................................................................ 13
EULA và các quyền của người sử dụng .................................................................................................................. 13
Proprietary softwares hay FOSS .............................................................................................................................. 13
Disclaimer of warranty (chối bỏ bảo đảm) .............................................................................................................. 14
3. Free/Open source softwares (FOSS) ........................................................................................................................ 14
a. Định nghĩa Free/Open source softwares .............................................................................................................. 14
Free software ...................................................................................................................................................... 14
Open source software .......................................................................................................................................... 15
Free softwares vs Open source ........................................................................................................................... 17
b. FOSS và chuyện “miễn phí” ................................................................................................................................ 17
FOSS thì miễn phí ? ............................................................................................................................................ 17
FOSS thương mại ? ............................................................................................................................................. 18
c. Các mẫu giấy phép FOSS .................................................................................................................................... 19
4. Các giấy phép FOSS kiểu public domain: BSD, MIT, Apache ................................................................................ 20
BSD (copycenter) .................................................................................................................................................... 20
MIT licence ............................................................................................................................................................. 21
Apache ..................................................................................................................................................................... 22
5. Các giấy phép FOSS kiểu weak copyleft: LGPL và Perl (chưa viết) ....................................................................... 22
6. Giấy phép (strong) copyleft: GPL (chưa xong) ........................................................................................................ 22
Ý tưởng của giấy phép GPL: ................................................................................................................................... 22
Ý nghĩa của giấy phép GPL: .................................................................................................................................... 23
Áp dụng các điều khoản của GPL ........................................................................................................................... 23
7. Mô hình phát triển phần mềm FOSS (chưa viết) ...................................................................................................... 23
8. Mô hình kinh doanh phần mềm FOSS (chưa viết) ................................................................................................... 23
9. Những quan niệm sai lầm thường thấy về FOSS (chưa viết) ................................................................................... 23
II. *nix .............................................................................................................................................................. 23
1. Giới thiệu UNIX, BSD ............................................................................................................................................. 23
UNIX ....................................................................................................................................................................... 24
BSD ......................................................................................................................................................................... 24
2. UNIX và UNIX-like (*nix) ...................................................................................................................................... 25
3. Chuẩn POSIX (SUS) ................................................................................................................................................ 25
4. Nhân Linux và Dự án GNU ...................................................................................................................................... 26
5. Linux distribution ..................................................................................................................................................... 26
Bài 2. Bổ túc kiến thức về HDD. Cài đặt Linux, FreeBSD (chưa xong). .......................................... 29
1. Hiểu về HDD ............................................................................................................................................... 29
1.a. Cấu trúc vật lý của HDD ....................................................................................................................................... 29
1.b. Cấu trúc logic của HDD ........................................................................................................................................ 30
1.c. Quá trình khởi động OS của máy tính ................................................................................................................... 30
2. Công cụ máy ảo để học thực hành Linux. Một số chú ý về Vmware Workstation. .............................. 30
3. Các cách để có được một bản Linux distro và trường hợp của Redhat. ............................................... 30
4. Cài đặt Linux, FreeBSD ............................................................................................................................. 30
4.a. Cài đặt Linux ......................................................................................................................................................... 30
4.b. Cài đặt FreeBSD .................................................................................................................................................... 30
4.c. Tự động hóa quá trình cài đặt ................................................................................................................................ 30
5. Vấn đề multi OS .......................................................................................................................................... 30
Bài 3. Làm quen với Linux command .................................................................................................. 31
1. Đăng nhập và tắt máy ................................................................................................................................ 31
2. Kernel, Shell ................................................................................................................................................ 32
5/145
3. Virtual Console và Terminal ..................................................................................................................... 33
4. Lệnh trong Linux ....................................................................................................................................... 33
a. Cách viêt lệnh ........................................................................................................................................................... 33
b. Thực thi executable file ............................................................................................................................................ 34
c. Dừng một lệnh .......................................................................................................................................................... 35
c. Shell script ................................................................................................................................................................ 35
d. Metacharacters ......................................................................................................................................................... 35
e. Help .......................................................................................................................................................................... 36
f. History ...................................................................................................................................................................... 36
5. su .................................................................................................................................................................. 36
6. Làm việc với file và thư mục trên *nix ..................................................................................................... 36
a. Cấu trúc file và thư mục của Linux khác với của Windows ..................................................................................... 36
b. Đường dẫn thư mục của Linux – kí hiệu /, thói quen TAB, thư mục . ~ .................................................................. 37
Hãy cẩn thận với dấu / ............................................................................................................................................. 37
Thư mục home, thư mục hiện hành, thư mục ~ . .. ................................................................................................ 38
Muốn nhanh thì bấm TAB hoặc TAB TAB ............................................................................................................ 38
Khi tên file, thư mục chứa kí tự đặc biệt ................................................................................................................. 39
c. Lệnh ls –l, xem thông tin về file, thư mục ................................................................................................................ 39
d. Các lệnh xem, tạo mới, xóa, di chuyển, đổi tên file và thư mục .............................................................................. 40
Hiển thị nội dung file .............................................................................................................................................. 40
Tạo thư mục mới ..................................................................................................................................................... 40
Tạo file mới ............................................................................................................................................................. 40
Đổi tên/di chuyển file và thư mục ........................................................................................................................... 40
Copy file và thư mục ............................................................................................................................................... 40
Xóa file hoặc thư mục ............................................................................................................................................. 41
e. Midnight Commander (mc) ...................................................................................................................................... 41
f. Link .......................................................................................................................................................................... 41
g. Archive và Compress file ......................................................................................................................................... 41
h. Tìm kiếm file và thư mục ......................................................................................................................................... 42
7. Filesystem Hierarchy standard ................................................................................................................. 43
8. Trong *nix, mọi thứ đều là file. ................................................................................................................. 45
9. Redirection và xargs .................................................................................................................................. 46
a. Redirect stdin, stdout, stderr to file .......................................................................................................................... 46
b. Pipe và kết hợp với grep, wc, sort, less .................................................................................................................... 48
c. xargs ......................................................................................................................................................................... 49
10. VIM editor ................................................................................................................................................ 49
11. Regular expression ................................................................................................................................... 50
Bài 4. Devices - Filesystems – Mounting .............................................................................................. 52
1. Device .......................................................................................................................................................... 52
a. Peripheral device và Driver ...................................................................................................................................... 52
Peripheral device ..................................................................................................................................................... 52
Phân loại device: block, character, virtual ............................................................................................................... 52
Driver ...................................................................................................................................................................... 53
b. Device file (special file) ........................................................................................................................................... 53
c. Sử dụng storage device. ........................................................................................................................................... 55
2. Filesystem .................................................................................................................................................... 55
a. Filesystem của block device ..................................................................................................................................... 55
b. Format ...................................................................................................................................................................... 55
i) fdisk – edit partition table .................................................................................................................................... 56
ii) mkfs (make filesystem)....................................................................................................................................... 56
3. Mounting ..................................................................................................................................................... 57
a. Lệnh mount .............................................................................................................................................................. 57
b. file cấu hình /etc/fstab .............................................................................................................................................. 58
c. file cấu hình /etc/mtab .............................................................................................................................................. 59
4. Hai partition đặc biệt của Linux ............................................................................................................... 60
5. dd và loop device ........................................................................................................................................ 60
a. Lệnh dd .................................................................................................................................................................... 60
b. loop device ............................................................................................................................................................... 61
6/145
6. Một số thao tác khác với storage device ................................................................................................... 62
7. Thực hành với Vmware .............................................................................................................................. 63
Bài 5. Install softwares.......................................................................................................................... 65
I. RPM.............................................................................................................................................................. 65
I.1 Tên file package và tên software ............................................................................................................................. 65
I.2 RPM database và rpm tool. ..................................................................................................................................... 65
I.3 Install ...................................................................................................................................................................... 66
I.4 Query ...................................................................................................................................................................... 67
I.5 Upgrade ................................................................................................................................................................... 68
I.6 Erase ........................................................................................................................................................................ 68
I.7 Verify ...................................................................................................................................................................... 68
II. DEB (chưa viết) .......................................................................................................................................... 69
III. Cài đặt phần mềm từ source code .......................................................................................................... 69
Bài 6. Quản trị user. File permission ................................................................................................... 72
1. Quản trị user ............................................................................................................................................... 72
1.1 Users ....................................................................................................................................................................... 72
1.2 Group ...................................................................................................................................................................... 74
1.3 Reset password của root ......................................................................................................................................... 75
2. File permission ............................................................................................................................................ 76
Chủ sở hữu, nhóm chủ sở hữu mặc định ...................................................................................................................... 77
Thay đổi chủ sở hữu, nhóm chủ sở hữu bằng lệnh chown, chgrp ................................................................................ 77
Thay đổi quyền truy cập r, w, x với các đối tượng u, g, o ............................................................................................ 77
SUID, SGID, sticky bit ................................................................................................................................................. 79
Set UID và Set GID cho file khả thi ........................................................................................................................ 79
Set GID cho thư mục ............................................................................................................................................... 80
Sticky bit .................................................................................................................................................................. 81
Kí hiệu SUID, SGID, Sticky bit bằng chữ số .......................................................................................................... 81
3. Quota............................................................................................................................................................ 82
1-Cài đặt phần mềm quota ....................................................................................................................................... 82
2-Mount partition với thuộc tính usrquota ............................................................................................................... 83
3-Khởi tạo quota database trên partition bằng lệnh quotacheck .............................................................................. 83
4-enable (disable) quota bằng quotaon (quotaoff) ................................................................................................... 84
5-Đặt limit, grace cho user bằng lệnh edquota ........................................................................................................ 84
6-Xem lại thông tin về quota ................................................................................................................................... 85
7-Thử nghiệm quota ................................................................................................................................................ 85
Bài 7. Advanced partitioning: RAID & LVM ...................................................................................... 87
I. Redundant Array of Inexpensive Disks .................................................................................................... 87
1. Khái niệm RAID ...................................................................................................................................................... 87
2. Thiết lập và sử dụng RAID ...................................................................................................................................... 89
3. Xem thông tin về array ............................................................................................................................................. 90
4. Quản lý disk trong array ........................................................................................................................................... 91
5. Hủy RAID array ....................................................................................................................................................... 91
6. File /etc/mdadm.con ................................................................................................................................................. 92
7. Stripe hay Linear ...................................................................................................................................................... 92
II. Logical Volume Management ................................................................................................................... 92
1. Thiết lập LVM .......................................................................................................................................................... 92
Thiết lập và sử dụng LV .......................................................................................................................................... 92
Enable LVM ............................................................................................................................................................ 94
LVM on RAID (chưa xong) .................................................................................................................................... 94
2. Xem thông tin về volume ......................................................................................................................................... 95
Khái niệm PE, LE .................................................................................................................................................... 95
Xem thông tin bằng pvdisplay, vgdisplay, lvdisplay ............................................................................................... 95
3. Quản lý các volume .................................................................................................................................................. 97
Disable/Remove volume .......................................................................................................................................... 97
Thêm vào/Rút ra/Hoán chuyển PV .......................................................................................................................... 97
Resize LV ................................................................................................................................................................ 97
4. Các mục linh tinh khác: ............................................................................................................................................ 98
Bài 8. Quản lý process, daemon ........................................................................................................... 99
7/145
I. Tiến trình ..................................................................................................................................................... 99
I.1 Tiến trình là chương trình khi nó đang được thực thi ............................................................................................. 99
Tiến trình cha, tiến trình con. Số ID của tiến trình. ............................................................................................... 100
Phân bổ CPU và độ ưu tiên (số nice) của tiến trình .............................................................................................. 100
Trạng thái của tiến trình ........................................................................................................................................ 100
Chủ sở hữu của tiến trình ...................................................................................................................................... 101
Các signal mà tiến trình bắt ................................................................................................................................... 101
I.2 Các thao tác với tiến trình ..................................................................................................................................... 101
In ra trạng thái các tiến trình bằng lệnh ps ............................................................................................................ 101
Theo dõi các tiến trình bằng lệnh top (hoặc prstat, topas) ..................................................................................... 102
Tìm kiếm một tiến trình. ....................................................................................................................................... 104
Điều chỉnh số nice của tiến trình. .......................................................................................................................... 104
I.3 Signal và lệnh kill, killall, pkill ............................................................................................................................ 104
Lệnh kill ................................................................................................................................................................ 104
Lệnh killall và pkill ............................................................................................................................................... 105
I.4 Các tiến trình có tương tác. Chế độ background, foreground. .............................................................................. 105
II. Quản lý daemon ...................................................................................................................................... 107
Các daemon nằm ở đâu ? ........................................................................................................................................... 107
Trực tiếp bật/tắt daemon ............................................................................................................................................ 107
/etc/rc.d/rc[0-6].d – tập daemon cho mỗi run level .................................................................................................... 108
Các công cụ quản lý daemon ..................................................................................................................................... 109
III. Lập lịch (scheduling) ............................................................................................................................. 111
cron ............................................................................................................................................................................ 111
System cron jobs ........................................................................................................................................................ 111
User cron jobs ............................................................................................................................................................ 112
at ................................................................................................................................................................................ 112
Bài 9. Quá trình khởi động (grub, kernel, init) và tắt máy của Linux .............................................. 113
I. GRUB ......................................................................................................................................................... 113
1. Chức năng của GRUB ............................................................................................................................................ 113
2. Quá trình tải GRUB ............................................................................................................................................... 114
3. Cài lại GRUB ......................................................................................................................................................... 115
4. File grub.conf (menu.lst) ........................................................................................................................................ 116
II. Nạp hệ điều hành từ GRUB ................................................................................................................... 117
Truy xuất device ........................................................................................................................................................ 118
Qui ước kí hiệu device của GRUB ........................................................................................................................ 118
Truy xuất file của GRUB ...................................................................................................................................... 118
Tải nhân Linux ........................................................................................................................................................... 119
Ba lệnh để tải nhân Linux: kernel, root, initrd ...................................................................................................... 119
Tải nhân Linux thủ công ....................................................................................................................................... 119
Tải nhân FreeBSD ................................................................................................................................................. 121
Nạp bootloader của các hệ điều hành khác ................................................................................................................ 121
III. init ........................................................................................................................................................... 122
1. /sbin/init chạy và đọc file /etc/initab ................................................................................................................. 122
2. /etc/inittab ......................................................................................................................................................... 122
3. Thực thi các script khởi tạo hệ thống trong thư mục /etc/rc.d .......................................................................... 123
IV. Tắt máy ................................................................................................................................................... 124
Bài 10. Tạo mạng ảo bằng VMware Workstation .............................................................................. 126
1. Nối máy thật/ máy ảo vào các switch ảo ................................................................................................. 126
1.1 Nối máy thật với các switch ảo: ........................................................................................................................... 126
a. Nối NIC thật vào switch ảo: .............................................................................................................................. 127
b. Nối NIC ảo trên máy thật vào switch ảo: .......................................................................................................... 127
1.2 Nối máy ảo với switch ảo: ................................................................................................................................... 129
2. VMnet0 (Bridged mode) và Virtual Bridge ........................................................................................... 129
3. VMnet1 (Host only mode) và Virtual DHCP server ............................................................................. 130
4. VMnet8 (NAT mode) và Virtual NAT device ........................................................................................ 133
5. VM team và LAN segment ...................................................................................................................... 135
6. Tự tạo mạng WAN bằng VMware Workstation ................................................................................... 135
8/145
Bài 11. Bổ túc kiến thức về TCP/IP ................................................................................................... 136
I. Khái niệm mạng máy tính. Phần cứng mạng và Giao thức mạng (chưa viết) ..................................... 136
II. Mạng LAN và WAN (chưa viết) ............................................................................................................. 136
III. TCP/IP (chưa viết) ................................................................................................................................. 136
IV. Địa chỉ IP ................................................................................................................................................. 136
Địa chỉ IP theo cách phân lớp A, B, C (cũ) ................................................................................................................ 137
Subnet ......................................................................................................................................................................... 138
Tính nhẩm với địa chỉ IP ....................................................................................................................................... 139
Địa chỉ loopback .................................................................................................................................................... 140
IP trên Internet, IP tĩnh, IP động và ICANN.......................................................................................................... 140
Địa chỉ IP riêng (private IP)................................................................................................................................... 141
Bài 12. Configure card mạng (chưa xong) ........................................................................................ 142
Cài đặt driver cho card mạng ...................................................................................................................................... 142
Lệnh ifconfig .............................................................................................................................................................. 142
Hiển thị trạng thái của card mạng .......................................................................................................................... 142
Gán địa chỉ IP cho card mạng ................................................................................................................................ 143
Gán địa chỉ IP alias cho card mạng........................................................................................................................ 143
Bật tắt card mạng ................................................................................................................................................... 144
Bộ công cụ ip .............................................................................................................................................................. 144
Tài liệu tham khảo .............................................................................................................................. 145
9/145
Đây là một bài của bản thảo “Giáo trình Nhập môn Quản trị Hệ thống Linux” đang viết dở. © Trần Huy Thắng tranhuythang@gmail.com,
Rất mong bạn đọc có thể tham gia viết nốt phần còn lại của cuốn sách. Bạn đọc có thể đăng lại một phần hay toàn bộ tập bản thảo này nhưng cần ghi
rõ nguồn và thông báo tìm người viết tiếp này. Nếu đăng lại với ý định thương mại thì xin nhắn trước cho tác giả.
Bài 1. Khái niệm FOSS và *nix
Bài 1. Khái niệm FOSS và *nix .............................................................................................................. 9
I. FOSS ............................................................................................................................................................ 10
1. Sở hữu trí tuệ ............................................................................................................................................................ 10
Sở hữu trí tuệ (intelectual property) ........................................................................................................................ 10
Sở hữu công (public domain) .................................................................................................................................. 10
Copyright (bản quyền) © ........................................................................................................................................ 11
Thương hiệu (trademark) ........................................................................................................................................ 12
2. Phân loại phần mềm theo quyền của người sử dụng ................................................................................................ 13
EULA và các quyền của người sử dụng .................................................................................................................. 13
Proprietary softwares hay FOSS ............................................................................................................................. 13
Disclaimer of warranty (chối bỏ bảo đảm) .............................................................................................................. 14
3. Free/Open source softwares (FOSS) ........................................................................................................................ 14
a. Định nghĩa Free/Open source softwares .............................................................................................................. 14
Free software ...................................................................................................................................................... 14
Open source software ......................................................................................................................................... 15
Free softwares vs Open source ........................................................................................................................... 17
b. FOSS và chuyện “miễn phí” ............................................................................................................................... 17
FOSS thì miễn phí ? ........................................................................................................................................... 17
FOSS thương mại ? ............................................................................................................................................ 18
c. Các mẫu giấy phép FOSS .................................................................................................................................... 19
4. Các giấy phép FOSS kiểu public domain: BSD, MIT, Apache ............................................................................... 20
BSD (copycenter) .................................................................................................................................................... 20
MIT licence ............................................................................................................................................................. 21
Apache .................................................................................................................................................................... 22
5. Các giấy phép FOSS kiểu weak copyleft: LGPL và Perl (chưa viết) ....................................................................... 22
6. Giấy phép (strong) copyleft: GPL (chưa xong) ........................................................................................................ 22
7. Mô hình phát triển phần mềm FOSS (chưa viết) ..................................................................................................... 23
8. Mô hình kinh doanh phần mềm FOSS (chưa viết) ................................................................................................... 23
9. Những quan niệm sai lầm thường thấy về FOSS (chưa viết) ................................................................................... 23
II. *nix ............................................................................................................................................................. 23
1. Giới thiệu UNIX, BSD ............................................................................................................................................. 23
UNIX ....................................................................................................................................................................... 24
BSD ......................................................................................................................................................................... 24
2. UNIX và UNIX-like (*nix) ...................................................................................................................................... 25
3. Chuẩn POSIX (SUS) ................................................................................................................................................ 25
4. Nhân Linux và Dự án GNU ..................................................................................................................................... 26
5. Linux distribution ..................................................................................................................................................... 26
Linux, UNIX thì có liên quan gì đến chuyện “bản quyền”, “nguồn mở” với “miễn phí” ?
Hàng ngày chúng ta nghe thấy phương tiện truyền thông nói nhiều về “Linux”, “bản quyền”, “nguồn
mở”, “miễn phí” thấy những thứ này rất mơ hồ, rối rắm. Chìa khóa để gỡ rối mớ bòng bong này
là khái niệm “bản quyền”.
(Dưới đây là mấy dòng ngẫu hứng giúp bạn đọc đối chiếu nhanh hiểu biết của mình về vấn đề.)
Linux là một phần mềm tự do (free software) (“free” là “tự do” chứ không phải “miễn phí”) và do đó
người dùng có thể sử dụng miễn phí nhưng để có được một bản phân phối Linux (Linux distro) có thể
vẫn phải mất phí.
Phần mềm nguồn mở (open source softwares) theo cách hiểu thông thường chỉ là phần mềm có mã
nguồn được công bố. Nhưng đây mới chỉ là phần nổi, phần chìm của tảng băng chính là những ràng
buộc về mã nguồn này. Tổ chức OSI đã đưa ra định nghĩa về phần mềm nguồn mở với 10 tiêu chí chặt
chẽ (mà cũng gần tương đương với phần mềm tự do). Khi bàn luận về phần mềm nguồn mở người ta
có ý hướng đến những tiêu chí này hơn là cách hiểu giản đơn thường thấy.
Khái niệm phần mềm tự do hay nguồn mở (free/open source softwares) đều được xây dựng trên luật
bản quyền. Có thể bạn đã từng nghe thấy có người nói “dùng Linux để tránh tình trạng sử dụng
10/145
Windows không có bản quyền” nhưng xin thưa Linux hay Windows hay phần lớn các phần mềm (trừ
public domain – sẽ nói sau) dù nguồn mở, nguồn đóng, miễn phí hay trả phí đều là phần mềm có bản
quyền ! Tôi đã từng thấy có một cách hiểu sai như sau: “Linux và những thứ như phần mềm nguồn mở
thì không có bản quyền do đó được dùng miễn phí còn Windows là phần mềm có bản quyền nên
không được sao chép lậu cho nhau mà phải mua” (cách hiểu sai) !!!.
Linux không là UNIX. UNIX là một thương hiệu mà Linux hay BSD tuy tương thích với UNIX nhưng
không thể được gọi là UNIX.
Bản quyền hay thương hiệu là 2 nhánh con của luật sở hữu trí tuệ, do đó để hiểu các khía cạnh pháp lý
của Linux và UNIX chúng ta sẽ bắt đầu bằng khái niệm sở hữu trí tuệ rồi đến phần mềm tự do/nguồn
mở và cuối cùng mới là đích *nix.
I. FOSS
1. Sở hữu trí tuệ
Sở hữu trí tuệ (intelectual property)
Trong đời sống hàng ngày ta đã quen với khái niệm “sở hữu”: nếu tôi có một chiếc xe (hay tôi là chủ
sở hữu của chiếc xe) thì luật pháp qui định tôi có toàn quyền với chiếc xe: tôi có thể sử dụng, sửa
chữa, cho mượn hoặc nhượng lại và người khác không có quyền gì với chiếc xe của tôi. Chiếc xe là tài
sản hữu hình, quyền sở hữu chiếc xe đã được luật pháp bảo hộ; tương tự như vậy với những tài sản
không hữu hình khác như ca khúc, phần mềm, tiểu thuyết thì quyền sở hữu chúng cũng cần được luật
pháp bảo hộ. Những tài sản không hữu hình này có 2 đặc điểm:
- Chúng được tạo ra bởi trí tuệ con người nên được gọi là tài sản trí tuệ (intellectual property).
Giá trị của chúng nằm ở nội dung trừu tượng chứ không nằm ở phương tiện thể hiện vật lý. Ví
dụ: một ca khúc có thể được lưu trữ bằng một bản chép tay nốt nhạc hay một file MP3 trong
máy tính hay thể hiện trong giọng hát của ca sĩ.
- Chúng rất dễ bị nhân bản (sao chép). Ví dụ: một cuốn tiểu thuyết rất dễ bị photocopy ra thành
nhiều bản. Điều này khác với tài sản hữu hình, bạn không thể nhân bản chiếc xe của anh hàng
xóm để dùng.
Chính vì đặc tính dễ bị nhân bản nên quyền sở hữu tài sản trí tuệ rất dễ bị xâm phạm. Tôi mất công
làm ra một phần mềm, phần mềm đó là tài sản của tôi bạn không được động vào nhưng có khi chỉ với
vài thao tác bạn đã sao chép được nó và phát tán lên Internet cho ngàn người dùng gây thiệt hại cho tôi
là không bán được phần mềm đó cho ngàn người kia.
Để bảo vệ quyền sở hữu đối với tài sản trí tuệ, từ thế kỉ XX luật sở hữu trí tuệ ra đời. Ngày nay quốc
gia nào (trong đó có Việt Nam) cũng có luật sở hữu trí tuệ trong hệ thống luật pháp của mình.
Trong luật sở hữu trí tuệ, tài sản trí tuệ thường được phân thành 5 loại: bản quyền (copyright), sáng
chế (patent), thương hiệu (trademark), kiểu dáng công nghiệp (industrial design), bí mật kinh doanh
(trade secret). Tài liệu này chỉ đề cập đến bản quyền, thương hiệu.
Sở hữu công (public domain)
Đối ngược với sở hữu trí tuệ là sở hữu công
Ở trên khi ta nói về tài sản (hữu hình - chiếc xe hay trí tuệ - ca khúc, phần mềm) thì muốn nhấn mạnh
nó thuộc quyền sở hữu của một cá nhân cụ thể nào đó nhưng có những tài sản lại không thuộc về một
cá nhân cụ thể nào mà thuộc về tất cả mọi người (hay nôm na là “của chung”) và được gọi là sở hữu
công cộng (public domain).
Cái gì không là sở hữu cá nhân (của riêng) thì là sở hữu công (của chung) và ngược lại. Một khi là tài
sản sở hữu công thì ai cũng có quyền sử dụng, sửa đổi, hưởng lợi bằng cách kinh doanh trên nó.
11/145
Ví dụ: tiếng Anh, định luật cơ học Newton là sở hữu công. Ai cũng có thể sử dụng và phát triển tiếng
Anh cũng như kinh doanh sách viết về định luật cơ học Newton. Nhưng với một cuốn tiểu thuyết vừa
viết xong của anh X thì chỉ mình anh X có quyền xuất bản.
Khi sở hữu trí tuệ trở thành sở hữu công
Anh X là chủ sở hữu tài sản trí tuệ A nhưng liệu A vĩnh viễn thuộc về X ? Điều này là không cần thiết
vì anh X cũng chỉ sống được hữu hạn một số năm. Quan trọng hơn tài sản trí tuệ A có thể là tài sản rất
hữu ích cho cộng đồng nếu anh X giữ quyền sở hữu và người khác không có quyền động tới X thì điều
này lại trở thành nhân tố cản trở sự phát triển của cộng đồng. Vì 2 lí do này luật sở hữu trí tuệ qui định
tài sản trí tuệ chỉ thuộc về chủ sở hữu trong một thời gian hữu hạn. Ví dụ với 3 loại tài sản trí tuệ:
- Sáng chế, ở châu Âu, được bảo hộ trong 20 năm kể từ khi đăng kí
- Kiểu dáng công nghiệp, ở Canda, được bảo hộ trong 10 năm kể từ khi đăng kí
- Bản quyền, ở hầu hết các nước, được bảo hộ trong thời gian chủ sở hữu sống cho đến khoảng
70 năm sau khi chết.
Hết thời gian bảo hộ, tài sản trí tuệ không còn chủ sở hữu nữa, nó trở thành sở hữu công. Tài sản trí
tuệ cũng trở thành sở hữu công nếu như chủ sở hữu tự thân từ bỏ quyền sở hữu của mình.
Ví dụ: kịch của Shakespears ban đầu là Shakespear giữ bản quyền nhưng đến ngày nay đã rất lâu sau
khi Shakespears mất nên kịch Shakespear hết hiệu lực bảo hộ bản quyền và trở thành sở hữu công. Ai
cũng có thể in sách kịch Shakespears mà không cần hỏi xin ai.
Copyright (bản quyền) ©
– Bản quyền là 1 tài sản trí tuệ (trong 5 loại tài sản trí tuệ) được luật sở hữu trí tuệ bảo hộ.
Bản quyền là các quyền như quyền sao chép, quyền phân phối lại, quyền sửa đổi với một tác
phẩm; các quyền này là độc nhất của tác giả, những người khác không thể có được hoặc muốn có
phải hỏi xin tác giả. Tác phẩm ở đây có thể là một cuốn sách, một bộ phim, một phần mềm, hay
bất cứ một sáng tạo nào. Do phạm vi của tài liệu này là về phần mềm nên từ đây trở đi ta sẽ dùng
từ “phần mềm” thay vì “tác phẩm” mà không mất tính tổng quát.
Khi một người vừa sáng tạo ra một tác phẩm thì tự động bản quyền tác phẩm thuộc về (duy nhất)
người sáng tạo. Người sáng tạo thậm chí không cần đăng kí bản quyền với một tổ chức nào. Tuy
không phải đăng ký nhưng một số quốc gia có luật bản quyền yêu cầu tác giải phải ghi dòng chú
thích bản quyền vào tác phẩm của mình. Nếu bạn mở Help/About của một phần mềm thì sẽ gặp
chú thích bản quyền của nó:
• Copyright © ,
• All rights resevered
Ký hiệu © là ký hiệu của bản quyền (chữ “c” trong vòng tròn là viết tắt của copyright).
Bởi tất cả các quyền đều bị tác giả giữ, người nào muốn có quyền gì phải hỏi xin tác giả nên mới
có câu “All right reserved” - “Tất cả các quyền đã được giữ lại”. Nhắc lại rằng dù không ghi chú
thích bản quyền thì bản quyền vẫn thuộc về tác giả.
Luật pháp sẽ bảo hộ bản quyền tức là luật pháp cấm việc sao chép, sửa đổi phần mềm khi chưa có
sự đồng ý của người giữ bản quyền. Thời gian bản quyền có hiệu lực: kể từ khi phần mềm được
công bố + 70 năm sau khi tác giả qua đời hoặc 90 năm cho công ty. Hết hạn trên tự động phần
mềm trở thành public domain, không có ai giữ bản quyền.
Bản quyền có thể được chuyển nhượng từ người này sang người khác; người giữ bản quyền phần
mềm có thể không là người làm ra phần mềm. Người giữ bản quyền có quyền cấp phép cho những
người khác quyền sử dụng, sao chép, sửa đổi tác phẩm của của mình. Nếu anh A đang giữ bản
quyền phần mềm của mình làm ra mà nhượng lại bản quyền cho anh B thì lúc đó anh A muốn sử
dụng phần mềm do mình làm ra cũng phải hỏi xin anh B cấp phép. (Chú ý phân biệt bản quyền
phần mềm và các quyền với phần mềm).
12/145
– Tác quyền. Thuật ngữ “bản quyền” (copyright) thường được các quốc gia theo hệ thống luật án lệ
kiểu Anh-Mỹ dùng, trong khi đó các nước châu Âu tham gia công ước Berne lại dùng thuật ngữ
“tác quyền” (hay “quyền tác giả”) (author’s right). Tác quyền tập trung vào quyền lợi của tác giả
(người sáng tác ra tác phẩm) trong khi đó bản quyền tập trung vào quyền lợi kinh tế của người giữ
bản quyền (có thể không phải là tác giả). Sự khác nhau giữa 2 khái niệm này còn ở quyền nhân
thân (moral rights) nhưng tài liệu này không đề cập đến.
– Công ước Berne hay đầy đủ hơn là “Công ước Berne về bảo hộ các tác phẩm văn học và nghệ
thuật” là công ước về tác quyền (chú ý “tác quyền” chứ không phải “bản quyền”) giữa các quốc
gia. Trước đây các quốc gia thường từ chối tác quyền của các tác phẩm ngoại quốc, công ước
Berne ra đời đảm bảo các quốc gia tham gia công ước Berne phải công nhận tác quyền này. Công
ước Berne chủ yếu được các nước châu Âu tham gia và Việt Nam cũng đã tham gia công ước này
từ năm 2004. Công ước Berne chỉ bảo hộ tác phẩm văn học và nghệ thuật, không bảo hộ phần
mềm. Giới làm phần mềm không có việc gì với công ước Berne !
− Một phát biểu thừa thường thấy: “Tôi dùng windows có bản quyền” hay “vấn nạn sử dụng
phần mềm không có bản quyền”
Các phần mềm mà mọi người đã quen thuộc như Windows hay Linux, Office hay OpenOffice,
Bitdefender hay Bkav bản basic (miễn phí), hiển nhiên đều là những phần mềm có bản quyền,
không phải là public domain. Dù người dùng xài phần mềm crack hay không thì những phần mềm
này luôn có bản quyền; chỉ có điều nếu dùng crack thì gọ là “vi phạm bản quyền”, nếu mua thì là
sử dụng phần mềm đúng luật bản quyền.
Không nên nói “Tôi đang dùng windows có bản quyền” vì phần mềm nào mà chả có bản quyền
(trừ pulic domain). Thay vào đó hãy nói “Tôi đang dùng windows có mua quyền sử dụng”. Có
người nói “Tôi đang dùng windows có mua bản quyền”, cách nói này tuy ngắn gọn hơn nhưng
cũng không chính xác vì theo câu chữ (chứ không theo ý định của người nói) thì Micosoft đã
nhượng lại bản quyền Windows cho tôi ?!
Cũng không nên nói “vấn nạn sử dụng phần mềm không có bản quyền”. Phần mềm mà không có
bản quyền thì là phần mềm public domain, ai cũng có quyền dùng, sửa đổi, bán lại, do đó chẳng
có vấn đề gì cả. Ý của người nói là “vấn nạn sử dụng phần mềm vi phạm bản quyền”.
Thương hiệu (trademark)
Thương hiệu là một tài sản trí tuệ được luật sở hữu trí tuệ bảo hộ.
Thương hiệu là một dấu hiệu đặc biệt như tên, biểu tượng để nhận biết sản phẩm, dịch vụ của một cá
nhân hay tổ chức. Nôm na thì thương hiệu là cái tên được gắn cho một sản phẩm hoặc một nhà sản
xuất. Thuật ngữ tiếng anh cho thương hiệu là trademark hoặc cũng có khi là brand name, logo.
Để tránh trùng lặp thương hiệu thì mỗi quốc gia thường có Cơ quan Bảo hộ Thương hiệu làm nhiệm
vụ quản lý thương hiệu. Một cá nhân hay tổ chức muốn thương hiệu của mình không bị người khác
dùng lại thì nên đăng kí thương hiệu (có trả phí duy trì thương hiệu) với Cơ quan Bảo hộ Thương
hiệu. Có thể không đăng kí thương hiệu nhưng khi xảy ra tranh chấp thương hiệu sẽ rất khó phân xử.
Nếu muốn chỉ rõ trạng thái đăng kí của một thương hiệu (điều này có thể không cần thiết) thì thêm kí
hiệu:
- ® vào sau tên thương hiệu đã được đăng kí (chữ R viết tắt của registered)
- TM hoặc SM vào sau tên thương hiệu của hàng hóa hoặc dịch vụ đã được dùng trong thực tế
nhưng chưa đăng kí. (viết tắt: TM cho trademark, SM cho service mark)
Việc đăng kí thương hiệu cho một sản phẩm chỉ đảm bảo thương hiệu đó không bị dùng lại chứ không
đảm bảo cá nhân/tổ chức khác sản xuất sản phẩm tương tự nhưng với thương hiệu khác đi.
Ví dụ: hãng AT&T có làm ra một hệ điều hành và đăng kí thương hiệu cho nó là UNIX. Có những tổ
chức hoặc cá nhân khác làm ra những hệ điều hành có chức năng tương tự như UNIX nhưng vì thương
hiệu UNIX đã được đăng kí nên không thể dùng tên UNIX được nữa. Tuy nhiên người ta vẫn muốn
dùng một cái tên thể hiện sự tương tự với UNIX nên đã dùng tên “UNIX-like” hoặc cẩn thận hơn nữa
13/145
dùng tên “*nix” để chỉ những hệ điều hành có chức năng tương tự UNIX nhưng không phải do AT&T
làm.
2. Phân loại phần mềm theo quyền của người sử dụng
EULA và các quyền của người sử dụng
Nhắc lại rằng theo luật sở hữu trí tuệ, với một phần mềm (dĩ nhiên không xét phần mềm public
domain) thì người chủ sở hữu (có thể là tác giả hoặc công ty mà tác giả đã nhượng lại quyền sở hữu)
giữ bản quyền tức là nắm giữ tất cả các quyền như là quyền sử dụng, quyền sao chép, quyền sửa đổi
v.v ; mọi người khác không có những quyền này. Người giữ bản quyền thường:
- Hoặc kinh doanh các quyền này, chả hạn như bán quyền sử dụng thông qua việc đặt CD key
lên phần mềm, ai muốn sử dụng phần mềm thì phải mua CD key từ chủ sở hữu. Việc bán/mua
phần mềm là bán/mua quyền sử dụng phần mềm chứ không phải bán/mua công sức làm
phần mềm.
- Hoặc “cho không” các quyền này cho người sử dụng do chủ sở hữu muốn muốn chia sẻ niềm
đam mê làm phần mềm với người khác, muốn phục vụ cộng đồng, muốn nổi tiếng, v.v
Danh sách các quyền được cấp và các ràng buộc kèm theo được ghi trong hợp đồng giữa người giữ
bản quyền và người sử dụng, còn gọi là giấy phép sử dụng, thuật ngữ tiếng Anh là “Licence
Agreement”. Giấy phép này có thể ở dạng giấy hoặc được hiển thị khi người dùng bắt đầu cài đặt phần
mềm - ở dạng này được gọi là End user Licence Agreement (EULA). Người dùng phải bấm “accept”
để chấp thuận các quyền và ràng buộc thì mới tiếp tục cài được phần mềm, điều này tương đương với
việc kí vào bản hợp đồng giấy.
Proprietary softwares hay FOSS
Dựa vào phạm vi quyền của người sử dụng được chủ sở hữu cấp (ghi trong EULA), có thể chia phần
mềm thành 2 loại:
Proprietary softwares (phần mềm độc quyền): người giữ bản quyền đồng ý cho người dùng một số
rất ít quyền và thu lợi từ việc cấp các quyền này. Thông thường người sử dụng chỉ được cấp mỗi
quyền sử dụng và phải mua quyền này thông qua mua CD key/serial để cài. Để hạn chế việc nghiên
cứu, sửa đổi phần mềm của người sử dụng thì mã nguồn của phần mềm độc quyền không được công
bố.
• EULA của phần mềm độc quyền thương mại (người dùng phải trả tiền) thường ghi:
• Người dùng không được dịch ngược, sửa chữa phần mềm.
• Người dùng không được sao chép phần mềm thành nhiều bản cài trên nhiều máy. Nếu
người dùng mua phần mềm với số lượng n máy thì chỉ tối đa n máy được cài đặt và
chạy phần mềm. (Ví dụ: nếu người dùng mua phần mềm với số lượng 1 máy mà cài cả
trên máy tính ở văn phòng lẫn máy tính ở nhà thì tại một thời điểm chỉ có thể chạy phần
mềm hoặc trên máy ở nhà hoặc trên máy ở văn phòng mà không đồng thời cả hai
được). Người dùng có thể sao chép lại phần mềm thành một bản dự phòng để cài đặt lại
khi phần mềm bị hỏng.
• Người dùng có thể nhượng lại phần mềm cho người khác với điều kiện người được
nhượng lại chấp thuận các điều khoản của EULA và chỉ được phép có 1 bản copy được
dùng (tức là nếu nhượng lại thì người dùng ban đầu không được dùng nữa.)
• Có 2 loại phần mềm độc quyền hay gặp là:
• Freeware (phần mềm miễn phí): người dùng không phải trả tiền mua quyền sử dụng,
quyền sử dụng được “cho không” tuy nhiên thường kèm theo giới hạn “for individual
/educational use” (chỉ được cá nhân (chứ không phải tổ chức) dùng hoặc dùng với mục
đích giáo dục) hoặc “non-commercial/non-profit use” (chỉ dùng với mục đích không
sinh lời).
14/145
Richard Stallman (biệt danh RSM) là
người khởi xướng phong trào phần
mềm tự do. Ông đã:
- đưa ra triết lý tự do cho phần mềm
- phát động dự án GNU, thành lập tổ
chức FSF
- viết ra phần mềm Emacs và GCC
- đưa ra giấy phép GPL
(ảnh lấy từ
• Shareware (phần mềm chia sẻ): người dùng được dùng thử miễn phí phần mềm trong
thời gian chả hạn 30 ngày. Hết thời gian dùng thử phần mềm bị khóa lại muốn dùng
tiếp phải mua quyền sử dụng qua việc mua số serial để mở khóa cho phần mềm chạy.
Cũng có khi người dùng được quyền phát tán lại phần mềm shareware cho người khác
dùng thử.
Free/Open source software (FOSS) (phần mềm Tự do/Nguồn mở): Người giữ bản quyền cho phép
người dùng đủ các quyền của mình như quyền sử dụng, sao chép, nghiên cứu, sửa đổi phần mềm. Để
đảm bảo người sử dụng có thể nghiên cứu, sửa đổi phần mềm thì mã nguồn của các phần mềm loại
này phải được công bố. Người ta đưa ra khoảng 30 mẫu EULA cho phần mềm loại này trong đó phổ
biến nhất là GPL, BSD (sẽ nói ở phần sau).
Disclaimer of warranty (chối bỏ bảo đảm)
Dù phần mềm độc quyền hay tự do/nguồn mở thì trong EULA, người giữ bản quyền luôn tuyên bố là
sẽ không chịu trách nhiệm về các thiệt hại do phần mềm gây ra và người sử dụng phải chịu mọi rủi ro
của phần mềm. Ví dụ EULA của một phần mềm WinRAR ghi:
“WinRAR archiver is distributed "as is". No warranty of any kind is expressed or implied. You
use at your own risk. Neither the author nor the agents of the author will be liable for data
loss, damages, loss of profits or any other kind of loss while using or misusing this software.”
(“as is” như những gì hiện có)
3. Free/Open source softwares (FOSS)
a. Định nghĩa Free/Open source softwares
Bên cạnh phần mềm độc quyền hạn chế quyền của người dùng, còn có loại phần mềm cho người sử
dụng các quyền của tác giả (dĩ nhiên tác giả vẫn giữ bản quyền). Với những phần mềm này, người sử
dụng không phải trả mất tiền mua quyền mà vẫn có quyền sử dụng, phân phối lại, nghiên cứu, sửa đổi
và phân phối lại phần mềm phái sinh (phần mềm sửa đổi). Các phần mềm này khi phát hành luôn kèm
mã nguồn hoặc chỉ dẫn đến nơi có thể download mã nguồn để đảm bảo người dùng có thể nghiên cứu,
sửa đổi. Có 2 tên gọi và tiêu chí được sử dụng rộng rãi cho loại phần mềm này đó là: free softwares và
open source softwares.
Free software
Richard Stallman đưa ra thuật ngữ “free software” (phần
mềm tự do) với tiêu chí: một phần mềm là “phần mềm tự do”
nếu người dùng có 4 quyền tự do cơ bản:
o Tự do chạy chương trình (0)
o Tự do nghiên cứu và sửa đổi chương trình (1)
o Tự do phân phối lại bản sao của chương trình (2)
o Tự do cải tiến và phân phối lại cải tiến của chương
trình (3)
Tự do (1), (3) đòi hỏi mã nguồn của chương trình
phải được công bố.
Triết lý của Richard Stallman ở đây là “tự do” (chứ không
phải miễn phí): người dùng được thoải mái sử dụng, nghiên
cứu mã nguồn, sửa đổi, phân phối lại phần mềm gốc và phần
mềm sửa đổi mà không bị ràng buộc phải hỏi xin hoặc trả
tiền mua những quyền này từ tác giả. Để người dùng có 4
quyền tự do trên thì trong bản EULA của phần mềm, người
giữ bản quyền phải tuyên bố cho người dùng những quyền
này.
15/145
Chữ “free” trong free softwares có nghĩa là “tự do” (không bị ràng buộc) như trong “tự do ngôn luận”
(free speech) chứ không có nghĩa “miễn phí” (giá tiền bằng 0) như trong “bia miễn phí” (free beer).
Trên thực tế một người bất kì (dù người nói tiếng Anh bản xứ hay người nước ngoài) khi lần đầu gặp
từ “free softwares” thì luôn luôn nghĩ rằng “free” là “miễn phí” do đó vô tình đánh đồng “free
software” với “freeware” (phần mềm miễn phí). Cần hiểu rằng freeware (phần mềm miễn phí) là một
thuật ngữ chỉ một loại phần mềm đặc thù khác hoàn toàn với free software.
– Freeware là phần mềm độc quyền, chỉ cho người dùng mỗi quyền sử dụng và người
dùng không phải mua quyền này (do đó mới nói là miễn phí), các quyền khác là sửa
đổi, phân phối lại thường không được cấp trong khi đó Free softwares thì cho người
dùng hết các quyền trên.
– Mã nguồn freeware thường không được công bố trong khi mã nguồn của free software
luôn được công bố.
Để thực hành triết lý tự do cho phần mềm, năm 1983, Richard Stallman đã phát động phong trào làm
phần mềm tự do (free software movement) bằng cách kêu gọi mọi người tham gia dự án làm một hệ
điều hành GNU có chức năng tương tự như UNIX nhưng với điều khoản “tự do” để thay thế cho hệ
điều hành UNIX độc quyền bấy giờ. Ông cũng thành lập tổ chức Free Software Foundation để quản lý
dự án và tuyên truyền triết lý tự do. Dự án đã sản sinh ra rất nhiều phần mềm tự do cho cộng đồng,
trong đó chính Richard Stallman đã viết ra phần mềm xử lý văn bản Emacs, và đặc biệt trình biên dịch
GCC mà tất cả các lập trình viên phần mềm tự do sau này dùng. Dự án không hoàn thành nhưng các
phần mềm viết cho GNU có thể kết hợp với nhân Linux thành một hệ điều hành hoàn chỉnh mà sau
này phát triển hẳn thành ngành công nghiệp Linux. Năm 1990, Richard Stallman cũng làm ra giấy
phép phần mềm tự do GPL mà hầu hêt các phần mềm GNU, bản thân nhân Linux, cũng như vô vàn
phần mềm sau này dùng.
Open source software
Đến năm 1998, phong trào phần mềm tự do bắt đầu bị chia tách, tất cả cũng chỉ tại cái tên “’free
softwares”. Thứ nhất, chữ “free” trong tên gọi dễ gây hiểu nhầm là “miễn phí” hơn là “tự do”. Thứ
hai, theo triết lý “tự do” của mình, Richard Stallman chỉ trích cay nghiệt các công ty làm phần mềm
độc quyền là đã tước đoạt quyền tự do của người dùng, điều này gây ra sự căng thẳng giữa phong trào
phần mềm tự do và các công ty phần mềm. Với niềm tin rằng
cần thiết phải lôi kéo các công ty vào việc phát triển phần
mềm tự do hơn là đối lập với họ, Eric S. Raymond, Bruce
Perens, Linus Torvald và một số người khác đã họp bàn để
chọn một cái tên khác thay thế cho tên “free softwares” và cái
tên “open source softwares” đã được chọn. Theo Eric S.
Raymond, cái tên này có ý nghĩa tiếp thị cho phần mềm tự do,
vốn chỉ được biết đến và sử dụng bởi một thiểu số những
hacker/những người say mê lập trình, đến với thị trường phần
mềm. Bruce Perens cũng không dùng triêt lý tự do cũ nữa mà
viết ra định nghĩa mới cho open source software, gọi là Open
Source Definition (OSD) gồm 10 tiêu chí như ở dưới đây. Eric
S. Raymond và Bruce Perens cũng thành lập tổ chức Open
Source Initiatives để ủng hộ cho xu hướng mới này.
Năm 1997 Eric S. Raymond đã xuất bản cuốn sách “The
Cathedral and the Bazaar” (nhà thờ và cửa hàng tạp hóa) trong
đó chỉ ra mô hình phát triển phần mềm Open source mới hiệu
quả. Chịu ảnh hưởng từ cuốn sách này công ty Netscape đã
công bố mã nguồn phần mềm trình duyệt web Netscape của mình với hi vọng mô hình phát triển mới
sẽ giúp Netscape giành thêm được thị phần trong chiến với IE của Microsoft. Sự kiện này đánh dấu
thời đại mới của phần mềm nguồn mở khi các công ty bắt đầu tham gia. Eric S. Raymond trở thành
phát ngôn viên của phong trào nguồn mở.
Eric S. Raymond (biệt danh ESR),
người viết cuốn “The Cathedral
and the Bazaar” đã có ảnh
hưởng lớn đến phong trào “Open
source softwares” và cũng là đồng
sáng lập OSI.
Ảnh lấy từ:
16/145
Nội dung của Open Source Definition (OSD): một phần mềm là open source softwares nếu như giấy
phép sử dụng (EULA) của nó thỏa mãn 10 tiêu chí - xem nguyên văn tại
dưới đây là tóm tắt:
1. Free Redistribution (tự do phân phối lại): Giấy phép phải cho phép người dùng phân phối lại
phần mềm dù việc phân phối này thu phí hay miễn phí.
2. Source Code (mã nguồn): Phần mềm (ở dạng binary form) phải kèm theo mã nguồn hoặc mã
nguồn phải được công bố sao cho người dùng có thể dễ dàng lấy về và sửa đổi được.
3. Derived Works (phần mềm phái sinh): Giấy phép phải cho người dùng quyền sửa đổi phần mềm
và phân phối lại phần mềm phái sinh.
4. Integrity of The Author's Source Code (tính toàn vẹn của mã nguồn của tác giả phần mềm): Người
dùng được phép sửa đổi mã nguồn và công bố lại mã nguồn phái sinh nhưng cần chỉ rõ ra đấy
không phải là mã nguồn của phần mềm ban đầu để không ảnh hưởng tới danh tiêng của tác giả
phòng trường hợp mã nguồn phái sinh có chất lượng tồi. Để phân biệt thì có thể dùng tên hoặc
phiên bản khác đi so với phần mềm ban đầu.
5. No Discrimination Against Persons or Groups (không phân biệt đối tượng sử dụng): Giấy phép
không được ràng buộc người sử dụng chỉ là cá nhân hay chỉ là tổ chức hoặc bất cứ một nhóm
người cụ thể nào.
6. No Discrimination Against Fields of Endeavor (không phân biệt lĩnh vực sử dụng): Giấy phép
không được ràng buộc phần mềm chỉ được dùng trong lĩnh vực kinh doanh hoặc chỉ được dùng
trong nghiên cứu/giáo dục hoặc bất cứ một lĩnh vực cụ thể nào.
7. Distribution of License (sự phân phối giấy phép): Khi cá nhân/tổ chức A nhận được phần mềm từ
tay cá nhân/tổ chức X thì tất cả các quyền trong giấy phép được tự động cấp cho A; A không cần
phải kí thêm một giấy phép gì với X nếu chỉ để có các quyền này.
8. License Must Not Be Specific to a Product (giấy phép không được định hướng việc sử dụng tới một
ngữ cảnh nào đặc biệt): Giấy phép này không được giới hạn phần mềm chỉ được sử dụng khi nó đi
kèm với một phần mềm cụ thể nào.
9. License Must Not Restrict Other Software (giấy phép không được đặt ràng buộc lên các phần mềm
khác): Giấy phép không được đặt ràng buộc lên các phần mềm khác được phân phối cùng với
phần mềm chẳng hạn như không được yêu cầu các phần mềm đi cùng cũng phải là phần mềm
nguồn mở
10. License Must Be Technology-Neutral (giấy phép phải trung lập về mặt công nghệ): giấy phép phải
cho phần mềm được phân phối dưới bất kì phương tiện gì như CD, FTP
Về việc dễ gây hiểu nhầm thì cái tên “open source” cũng chẳng khá
hơn cái tên “free software”, tuy nó tránh được “vỏ dưa” là chữ
“free” (miễn phí/tự do ?) nhưng nó lại gặp “vỏ dừa” là trước khi
OSI ra đời, người ta đã quen dùng cái tên “open source” rồi. Khi
một người dân nghe thấy phương tiện truyền thông nhắc đến open
source softwares (phần mềm nguồn mở), họ chỉ đơn giản nghĩ ngay
rằng: “open source softwares” là phần mềm có mã nguồn được
công bố (ai cũng có thể xem được mã nguồn) chứ không hề biết
đến định nghĩa 10 điều khoản của tổ chức OSI. Cách suy nghĩ giản
đơn này không xét đến việc khi công bố mã nguồn thì người dùng
mã nguồn đó có quyền gì, chả hạn liệu có thể cải tiến mã nguồn đó
rồi công bố lại cải tiến được không ? Chính vì việc cái tên Open
source softwares vốn là thuật ngữ riêng của OSI bị trùng vào danh
từ chung của mọi người nên câu đầu tiên trong bản định nghĩa 10
tiêu chí, OSI phải nói ngay là “Open source doesn't just mean
access to the source code”. Tóm lại định nghĩa Open source
softwares là không tương đương với “phần mềm có mã nguồn được
công bố”. Khi người ta bàn về phần mềm nguồn mở là muốn nhắc đến định nghĩa 10 tiêu chí kia chứ
không phải cách hiểu thiếu chặt chẽ thường ngày.
Bruce Peren, người viết ra
Open Source Definition (OSD)
Ảnh lấy từ trang web cá nhân của Bruce
Peren:
17/145
Free softwares vs Open source
Nhìn lại lịch sử, cộng đồng phần mềm tự do được hình thành bắt đầu từ năm 1983 qua dự án xây dựng
hệ điều hành GNU, đến năm 1998 khi thuật ngữ “open source softwares” ra đời thì cộng đồng này bị
tách thành 2 xu hướng: free softwares và open source softwares
- “Free softwares”: những người của
phong trào này, đứng đầu là tổ chức
Free Softwares Foundation, tiếp tục
đề cao triết lý “tự do”, nỗ lực vận
động để “quyền” của người sử dụng
(tự do chạy, sao chép) và của lập trình viên (tự do sửa đổi và phân phối lại sửa đổi) khỏi bị
phần mềm và các công ty phần mềm độc quyền tước đoạt. Có rất nhiều EULA phần mềm thỏa
mãn triết lý tự do, trong số đó, những người này ủng hộ nhất là giấy phép GPL do chính FSF
đưa ra. Đây là giấy phép phần mềm tự do yêu cầu mọi phần mềm phái sinh từ nó cũng phải là
phần mềm tự do. Nhìn chung các công ty rất sợ giấy phép GPL và ác cảm với cái tên “free
softwares”, còn giới truyền thông thì vẫn hay nhầm free softwares thành freeware.
- “Open source softwares”: phong trào này được tách ra từ free
softwares với mục đích phát triển free softwares thành thành một
xu hướng trong nền công nghiệp phần mềm chứ không chỉ bó hẹp
là của riêng những người say mê lập trình/hackers. Tổ chức OSI
đứng đằng sau phong trào này, mục đích của nó là thu hút được
nhiều công ty tham gia phong trào. Khi một công ty nào đó muốn
công bố mã nguồn nhưng không muốn đặt dưới giấy phép GPL, nó
có thể tự đưa ra giấy phép của mình và đến để OSI chứng nhận thỏa
mãn điều kiện Open source. Ngày nay các công ty phần mềm độc
quyền khổng lồ đều đã tham gia phát triển phần mềm open source.
Ví dụ Microsoft có hẳn trung tâm Open Source, nó cũng đưa ra
giấy phép riêng của mình là Microsoft Public License và đã được OSI chứng nhận là phần
mềm nguồn mở. Mô hình phát triển phần mềm của phong trào được phân tích trong cuốn “The
cathedral and Bazaar” của Eric S. Raymond.
Nhìn chung người ta thường ví “free softwares” là mục tiêu còn “open source” là phương tiện. Tuy
triết lý 2 xu hướng khác nhau nhưng điều khoản của 2 định nghĩa “free softwares” và “open source
softwares” là gần tương đương nhau; cả OSI và Richard Stallman đều công nhận điều này. Hầu như
một EULA nào được tổ chức Free Softwares Foundation chứng nhận là thỏa mãn free softwares thì
cũng được OSI xác nhận là thỏa mãn Open Source Definition và ngược lại thế nên trong thực tế việc
phân biệt 2 định nghĩa này không còn quan trọng nữa. Để tránh một sự thiên vị nào người ta đã đưa ra
cái tên Free and Open Source (FOSS hoặc F/OSS) hoặc Open Source and Free Softwares (OSS/FS)
thậm chí Free/Libre/Open Source (FLOSS) để chỉ những phần mềm của cả 2 phong trào này. Cái tên
Free and Open Source Softwares đã được dùng rất phổ biến hiện nay.
Thuật ngữ đối ngược với FOSS là proprietary softwares hoặc closed source softwares.
b. FOSS và chuyện “miễn phí”
FOSS thì miễn phí ?
Nếu bạn nghĩ “FOSS thì miễn phí”, điều này đúng nhưng cần lưu ý thêm mấy điểm tinh tế sau:
Cách mà FOSS “miễn phí” khác với cách mà một phần mềm độc quyền “miễn phí”. Mục đích của
FOSS là cấp quyền cho người dùng khác với mục đích của phần mềm độc quyền là giá tiền.
Chúng ta đã quen thuộc với việc công ty bán và chúng ta mua phần mềm độc quyền; việc bán hay mua
ở đây thực chất là bán hay mua quyền sử dụng phần mềm. Khi chúng ta gặp loại phần mềm độc quyền
có giá tiền bằng không mà thuật ngữ cho nó là freeware – phần mềm miễn phí thì tức là các công ty đã
tặng không quyền sử dụng cho người dùng. Tuy nhiên các quyền khác như quyền sao chép, nghiên
Biểu tượng của
Open Source
Initiative – tổ chức
ủng hộ Open source
software
Biểu tượng của Free Software Foundation – tổ
chức ủng hộ “free software”
18/145
cứu và sửa đổi mã nguồn thì thường người dùng không được cấp và cũng không thể mua được. Với
FOSS thì người dùng được cấp quyền sử dụng, sao chép, nghiên cứu và sửa đổi mã nguồn, phân phối
lại phần mềm sửa đổi mà không phải trả khoản phí nào.
Nếu bạn lý sự rằng: “Tôi không phải là lập trình viên, tôi không quan tâm đến mã nguồn, tôi chỉ muốn
dùng phần mềm mà không phải trả tiền. Đều được sử dụng miễn phí nên tôi thấy freeware hay FOSS
đều như nhau cả”. Không hẳn, có những phần mềm freeware đặt giới hạn bạn chỉ được dùng phần
mềm cho mục đích cá nhân và không được phân phối lại. Khi đó nếu bạn là giám đốc của một công ty
bạn chỉ có thể cài đặt phần mềm cho laptop của bạn mà không thể sao chép ra cho tất cả các máy tính
ở của công ty để nhân viên dùng. Phần mềm FOSS thì ngược lại, bạn có thể sao chép ra bao nhiêu tùy
ý, được sử dụng thoải mái mà không bị hạn hẹp chỉ dùng cho cá nhân hay chỉ được dùng trong trường
học.
Một lưu ý nữa là tuy “FOSS thì miễn phí” nhưng không được đánh đồng “FOSS là freewares (phần
mềm miễn phí)”. Freewares là một loại phần mềm độc quyền hoàn toàn đối nghĩa với FOSS.
Có thể bạn vẫn phải trả phí để có được phần mềm FOSS hoặc có thể bạn sẽ thấy với cùng một
phần mềm FOSS, chỗ thì người ta cho không, chỗ thì người ta rao “bán” với giá đắt. FOSS không
có ràng buộc gì về việc phân phối lại bản sao.
Việc phân phối lại phần mềm bằng cách in ra CD, cung cấp đường truyền Internet để download,
nhìn chung là tốn kém. Một lập trình viên có thể hào phóng cho bạn quyền sử dụng, sao chép, sửa đổi
phần mềm của anh ta nhưng bước đầu tiên anh ta phải làm là phân phối phần mềm đó đến tay bạn đã
rồi thì sau đó bạn mới sử dụng, sửa đổi mà việc phân phối này thì tốn kém. Do đó không có gì là mâu
thuẫn với tinh thần hào hiệp của người lập trình viên khi anh ta thu phí cho việc phân phối phần mềm.
Cần hiểu ở đây anh ta tính phí đĩa CD, đường truyền Internet để download phần mềm chứ không
phải là bán quyền sử dụng phần mềm. Định nghĩa Open source của Bruce Peren cũng ghi rõ trong tiêu
chí 1 là giấy phép của phần mêm Open source thì không được ràng buộc việc phân phối lại phần mềm
là phải tính phí hay không tính phí. Định nghĩa free softwares của Richar Stallman cũng không hề có
ràng buộc gì về giá tiền của việc phân phối phần mềm.
Đến đây bạn có thể lý sự rằng: “Anh bán cho tôi một CD phần mềm FOSS và bảo số tiền tôi phải bỏ ra
là tiền của đĩa CD chứ không phải tiền mua quyền sử dụng phần mềm. Nhưng tôi thấy có khác gì đâu
vì đằng nào tôi cũng phải mất tiền mua. Mà mua xong đĩa CD đó tôi cũng chỉ có biết chạy phần mềm
chứ tôi đâu quan tâm đến việc đọc và sửa mã nguồn phần mềm, nên với cách sử dụng của tôi thì FOSS
cũng bằng độc quyền, vẫn mất phí”. Một phần mềm FOSS với phí phân phối cao là khác với một phần
mềm độc quyền giá cao. Vấn đề ở đây là khi ai đó có được phần mềm FOSS trong tay thì người ấy có
thể sao chép cho người khác tùy ý với thu phí hay không thu phí. Điều này có nghĩa là bạn có thể tìm
được cách để không mất phí mà vẫn có phần mềm FOSS. Chả hạn nếu người hàng xóm của bạn phải
mất tiền để có được đĩa CD phần mềm FOSS, bạn hoàn toàn có quyền sao chép lại CD đó về dùng.
Tuy nhiên với phần mềm độc quyền thì đây là hành vi phạm pháp, nếu bạn bỏ tiền ra mua 1 bản sao
của phần mềm thì phần mềm đó chỉ được phép cài trên đúng 1 máy mà không thể sao ra để cài trên 2
máy.
Hệ quả quan trọng của việc tự do phân phối lại FOSS là người lập trình phần mềm FOSS khi lần đầu
tiên phân phối phần mềm FOSS nếu có tính phí phân phối rất cao thì cũng không cản trở việc nhiều
người dùng phần mềm đó. Lý do là chỉ cần có người có được 1 bản sao của phần mềm đó thì ngay lập
tức có thể phân phối lại phần mềm đó mà không đòi hỏi phí. Có thể bạn sẽ gặp tình huống: cùng một
phần mềm FOSS chỗ thì “bán” đĩa CD rất đắt, chỗ thì tặng không.
FOSS thương mại ?
Những gì có tính “thương mại” (commercial) là những gì có thể kiếm lời được từ nó. Commercial
softwares (phần mềm thương mại) là phần mềm mà người ta có thể hốt bạc nhờ nó, ví dụ như
Windows, Photoshop, Norton Antivirus,
Cũng chỉ tại hiểu giản đơn “FOSS thì miễn phí” mà nhiều người cho rằng “không thể thương mại hóa
FOSS được” hoặc cho rằng “FOSS là loại phần mềm đối ngược với phần mềm thương mại”. Thực sự
phần lớn các phần mềm FOSS là phần mềm thương mại ! Vâng, phần lớn chứ không phải một vài.
19/145
Ví dụ cho việc kinh doanh FOSS chính là việc phân phối lại phần mềm FOSS bằng cách bán đĩa CD
hoặc cung cấp đường truyền Internet để download như đã nói ở trên. Đây chỉ là một hình thức kinh
doanh đơn giản nhất của FOSS, các hình thức cao cấp khác có thể xem ở mục “Mô hình kinh doanh
với FOSS”.
Nhắc lại rằng từ trái nghĩa với FOSS là “proprietary softwares” (phần mềm độc quyền), chứ không
phải là commercial softwares. Cả phần mềm độc quyền lẫn FOSS đều có thể là phần mềm thương mại.
c. Các mẫu giấy phép FOSS
Cho đến nay người ta đưa ra rất nhiều mẫu EULA cho phần mềm FOSS trong đó chỉ có khoảng 30
mẫu là phổ biến. Người ta thường khuyên: khi một người làm phần mềm FOSS thì nên lựa chọn 1
trong hàng tá mẫu EULA có sẵn kia làm EULA cho phần mềm của mình hơn là tự soạn ra một bản
EULA của riêng mình. Lý do: các mẫu EULA có sẵn đã trải qua một quá trình phát triển được cộng
đồng kiểm định và hiểu kĩ lưỡng, còn khi ai đó tạo ra một bản EULA của riêng mình thì có thể nó
không chặt chẽ, khó hiểu thậm chí tự mâu thuẫn với định nghĩa FOSS.
Các mẫu EULA, mà từ đây ta gọi là giấy phép sử dụng, phổ biến nhất hiện nay (theo thứ tự giảm dần
của thị phần sử dụng năm 2010):
• (63%) GPL licence (copyleft) gồm strong GPL và Lesser GPL của Free Sosftware Foundation
• (9%) Artistic licence (Perl) của Larry Wall
• (6%) BSD licence (copycenter) của đại học Berkeley
• (5%) MIT (X) licence của đại học MIT
• (4%) Apache Software licence của Apache Software Foundation
Thống kê chi tiết xem bảng xếp hạng của Black Duck Open Source Resource Center năm 2010
Rank License %
1 GNU General Public License (GPL) 63.07%
+ GNU General Public License (GPL) 2.0 47.22%
+ GNU Lesser General Public License (LGPL) 2.1 8.98%
+ GNU General Public License (GPL) 3.0 6.39%
+ GNU Lesser General Public License (LGPL) 3.0 0.48%
2. Artistic License (Perl) 8.96%
3. BSD License 2.0 6.23%
4. MIT License 5.15%
5. Apache License 2.0 4.36%
6. Code Project Open 1.02 License 2.87%
7. Microsoft Public License (Ms-PL) 1.66%
8. Mozilla Public License (MPL) 1.46%
+ Mozilla Public License (MPL) 1.0 0.25%
+ Mozilla Public License (MPL) 1.1 1.21%
9. Common Public License (CPL) 0.52%
10. Eclipse Public License (EPL) 0.51%
11. zlib/libpng License 0.41%
12. Academic Free License 0.39%
13.
Common Development and Distribution
License (CDDL)
0.33%
14. Open Software License (OSL) 0.29%
15. Ruby License 0.23%
16. PHP License Version 3.0 0.23%
Bảng xếp hạng thị phần sử dụng các EULA năm 2010 của Black Duck Open Source Resource Center
20/145
• Do Free software và Open source software là gần tương đương nhau nên các giấy phép nếu thỏa
mãn định nghĩa này thường thỏa mãn cả định nghĩa kia.
• Các giấy phép FOSS thường luôn có các các điều khoản sau:
i. Copyright //Xác định rõ người giữ bản quyền phần
mềm.
ii. Cho phép người dùng: sử dụng, phân phối lại bản sao, đọc mã nguồn, sửa mã
nguồn, phân phối lại phần mềm phái sinh (phần mềm sửa đổi từ phần mềm gốc) mà
không phải trả khoản phí nào cho người giữ bản quyền
iii. Ràng buộc người dùng khi phân phối lại phần mềm:
o nếu phân phối lại phần mềm (mà không có sửa đổi) thì phải kèm theo giấy
phép này.
o nếu phân phối lại phần mềm phái sinh thì trong giấy phép của phần mềm
phái sinh phải ghi rõ: người giữ bản quyền phần mềm gốc, disclaimer of
warranties (mục iv), và ràng buộc này (*)
iv. Disclaimer of warranties (chối bỏ trách nhiệm về các thiệt hại do phần mềm gây ra)
(*): yêu cầu ghi lại “ràng buộc này” trong giấy phép để một cách đệ quy bắt các phần mềm phái
sinh tiếp theo cũng phải nêu lại chú thích bản quyền, disclaimer of warranties. Nếu không có yêu
cầu này thì xảy ra tình huống: phần mềm gốc A yêu cầu ghi chú thích bản quyền trong phần mềm
phái sinh, phần mềm phái sinh A1 của A tuân theo nên ghi chú thích bản quyền phần mềm gốc A
nhưng không bắt phần mềm phái sinh tiếp theo A2 ghi chú thích bản quyền. Lúc đó phần mềm
phái sinh A2 không cần phải ghi chú thích bản quyền phần mềm gốc A nữa.
• Trong định nghĩa FOSS không có qui định chặt chẽ về phần mềm phái sinh. Các giấy phép FOSS
khác nhau chủ yếu ở ràng buộc với phần mềm phái sinh (ngoài điểm chung là bắt phải ghi chú
người giữ bản quyền phần mềm gốc, disclaimer of warranties). Có thể chia làm các giấy phép
FOSS làm 3 loại:
• Kiểu gần với public domain: BSD, MIT, Apache ràng buộc với phần mềm phái
sinh là rất lỏng lẻo.
• Copyleft: GPL - phmềm phái sinh phải đặt dưới cùng giấy phép phần mềm gốc,
không được liên kết với phần mềm độc quyền.
• Weak copyleft: LGPL, Artistics Licence (Perl) - phmềm phái sinh phải đặt dưới
cùng giấy phép phần mềm gốc, được phép liên kết với phần mềm độc quyền.
4. Các giấy phép FOSS kiểu public domain: BSD, MIT, Apache
Các giấy phép như BSD, MIT X11, Apache ngoài ràng buộc chối bỏ bảo đảm và yêu cầu ghi chú
thích người giữ bản quyền phần mềm gốc khi phát hành lại, thì trao hết các quyền của tác giả cho
người sử dụng. Người sử dụng có các quyền như với phần mềm public domain (thế nên gọi là giấy
phép kiểu public domain), trong đó có thể bán lại phần mềm, kết hợp phần mềm với phần mềm khác
tạo thành phần mềm độc quyền. Điều khoản các giấy phép này rất dễ dãi nên các giấy phép này còn
được gọi là “permissive free software licence” (tính từ “permissive” nghĩa là: có xu hướng cho phép,
dễ dãi thoải mái)
BSD (copycenter)
Giấy phép này do đại học Berkeley lần đầu đưa ra kèm theo hệ điều hành BSD (Berkeley Software
Distribution). Ban đầu nó gồm 4 điều khoản (vì thế còn gọi là 4-clause BSD) trong đó có điều khoản
về quảng cáo vốn gây ra sự bất tiện trong thực tế nên đã bị bỏ đi và ngày nay người ta thường dùng
giấy phép BSD 3 điều khoản (còn gọi là BSD 2.0 hay 3 clause BSD) như dưới đây
Copyright (c) ,
All rights reserved.
21/145
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this
list of conditions and the following disclaimer in the documentation and/or other
materials provided with the distribution.
3. Neither the name of the nor the names of its contributors may be
used to endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY ''AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BE
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.
Giấy phép BSD chỉ với 2 điều khoản (1), (2) được gọi là giấy phép FreeBSD (hoặc 2 clause BSD) nó
được dùng cho hệ điều hành FreeBSD, NetBSD, OpenBSD, Darwin.
Hai điều khoản (1), (2) nói rõ người dùng được phép sử dụng và phân phối lại phần mềm ở dạng
source code và binary dù chưa hay đã sửa đổi với điều kiện phải kèm theo: ghi chú bản quyền phần
mềm, “điều khoản này” và chối bỏ đảm bảo (phần chữ in hoa). Ràng buộc ghi lại “điều khoản này”
nhằm một cách đệ quy bắt các phần mềm phái sinh sau này luôn ghi chú bản quyền phần mềm gốc và
chối bỏ bảo đảm.
Ở điều khoản (3), ở đây là organization của , có thể
coi = . Điều khoản (3) yêu cầu không được dùng tên
của tác giả phần mềm gốc để quảng cáo/xác nhận chất lượng cho phần mềm phái sinh khi tác giả phần
mềm gốc chưa cho phép. Điều này đảm bảo danh tiếng của tác giả phần mềm gốc không bị bôi nhọ
khi phần mềm phái sinh có chất lượng tồi.
Ngoài 3 điều khoản trên, giấy phép BSD không có ràng buộc gì thêm với phần mềm phái sinh nên
người sử dụng có thể biến phần mềm phái sinh thành phần mềm độc quyền và bán lại cho người khác
hoặc sử dụng phần mềm BSD như một thành phần trong phần mềm độc quyền khác (miễn là có ghi
chú bản quyền phần mềm BSD ban đầu). Ví dụ điển hình là một số đoạn mã về networking của hệ
điều hành BSD (giấy phép BSD) được sử dụng trong một số sản phẩm độc quyền của Microsoft, hoặc
rất nhiều thành phần của hệ điều hành FreeBSD được sử dụng trong hệ điều hành MAC OS X.
Người dùng không bị bắt buộc phải công bố lại mã nguồn của phần mềm phái sinh.
Các công ty làm phần mềm độc quyền thường thích giấy phép này.
Giấy phép BSD còn được gọi là copycenter để chơi chữ với copyright, copyleft (GPL). Từ copycenter
ngụ ý “bạn có thể đem phần mềm đến một trung tâm sao chép để tạo ra bao nhiêu bản copy tùy ý” tuy
nhiên hầu như mọi phần giấy phép FOSS đều có mục đích này.
MIT licence
Giấy phép này do đại học MIT lần đầu đưa ra kèm theo phần mềm X Windows System, nó cũng còn
được gọi là MIT X11. Điều khoản của nó tương đương với giấy phép BSD 2 điều khoản (1), (2)
Copyright (c)
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in the
Software without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
22/145
- The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE
OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
(chú ý: the “Software” = software + associcated documentation files)
Giấy phép liệt kê cụ thể các quyền của người sử dụng: “use, copy, modify, merge” và “publish,
distribute, sublicense, and/or sell” với 2 điều kiện (chỗ gạch đầu dòng): ghi lại chú thích bản quyền,
“điều khoản này” và chối bỏ bảo đảm. Giấy phép này có nói tường minh rằng người dùng có thể
“sell” – bán lại và “sublicense” - đặt phần mềm phái sinh dưới các giấy phép khác, Vì không có ràng
buộc gì nên người dùng có thể đặt phần mềm phái sinh dưới giấy phép độc quyền.
Các phần mềm nổi tiếng dùng giấy phép này là PuTTy, Expat, Rails, Lua.
Apache
Giấy phép này do tổ chức Apache Software Foundation (ASF) đưa ra, các phần mềm của ASF đều
dùng giấy phép này, trong đó đáng chú ý nhất là phần mềm web server Apache. Ngoài ra có đến 25%
của 100.000 dự án đặt trên Google Code là đang sử dụng giấy phép Apache (theo một blog của
Google).
Giấy phép Apache ver 2.0 đang được dùng hiện nay rất dài, tới 4 trang với 1400 từ trong khi BSD chỉ
có khoảng hơn 200 từ. Giấy phép Apache quy định rất tỉ mỉ các quyền được cấp và không được cấp
nhưng tựu trung lại nó tương đương với giấy phép BSD cộng thêm với điều kiện cho trường hợp phần
mềm có bằng sáng chế.
5. Các giấy phép FOSS kiểu weak copyleft: LGPL và Perl (chưa viết)
6. Giấy phép (strong) copyleft: GPL (chưa xong)
Khi có một sáng tạo thì chủ thể sáng tạo giữ bản quyền của sáng tạo đó; sửa đổi một phần mềm để tạo
ra phần mềm phái sinh là một sáng tạo nên người tạo ra phần mềm phái sinh sẽ tự động giữ bản quyền
của phần mềm phái sinh. Các giấy phép kiểu public domain (hay permissive free software license) như
BSD, MIT X11, Apache, không có ràng buộc chặt chẽ với phần mềm phái sinh nên phần mềm phái
sinh thường bị biến thành phần mềm độc quyền, tác giả phần mềm phái sinh ngăn không cho người
dùng tiếp tục nghiên cứu, phát triển phần mềm phái sinh và thường bắt người dùng mua quyền sử
dụng. Richarch Stallman gặp phải một tình huống “trớ trêu”: ông làm ra phần mềm A và cho quyền
người khác phát triển tiếp thành phần mềm A1, một ngày kia ông muốn tự mình phát triển tiếp A1
thành A2 nhưng tác giả A1, với tư cách là người giữ bản quyền A1, đã ngăn không cho ông quyền làm
điều này. Chính điều này đã thôi thúc Richard Stallman làm ra giấy phép GPL để đảm bảo tác giả
phần mềm phái sinh phải tiếp tục cấp cho người dùng các quyền sử dụng, nghiên cứu, cải tiến phần
mềm phái sinh.
Ý tưởng của giấy phép GPL:
- Phần mềm đặt dưới GPL phải là phần mềm Tự do (theo định nghĩa của Stallman) tức là người
dùng có 4 quyền tự do: sử dụng, phân phối lại, nghiên cứu, sửa đổi và phân phối lại sửa đổi.
- Phần mềm phái sinh từ phần mềm GPL cũng phải đặt dưới giấy phép GPL tức là phần mềm
phái sinh cũng là phần mềm Tự do và như vậy người dùng lại tiếp tục có quyền sử dụng, phân
Các file đính kèm theo tài liệu này:
- giao_trinh_nhap_mon_quan_tri_he_thong_linux_7501_2121085.pdf