Khái niệm mã nguồn mở Mã nguồn mở open-source software hiểu theo nghĩa rộng là một khái niệmchung được sử dụng cho tất cả các phần mềm mà mã nguồn của nó được công bốrộng rãi công khai v
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Trang 2MỤC LỤC
Trang
Lời nói đầu
Chương I: Giới thiệu về mã nguồn mở và Fedora Core
1 Khái niệm mã nguồn mở
2 Tổng quan về Fedora
2.1 Lịch sử phát triển của Fedora
2.2 Đặc điểm của Fedora
2.3 Ưu nhược điểm của Linux Fedora
2.4 Mục tiêu của Fedora
Chương II: Cấu hình và sử dụng Fedora
1 Quản lý hệ thống tập tin trong Fedora
2 Quản lý các ổ đĩa
3 Quản lý tài khoản người dùng và nhóm người dùng
4 Thiết lập quyền truy xuất dữ liệu
5 Cài đặt các gói ứng dụng
5.1 Cài đặt gói ứng dụng rpm
5.2 Xóa một gói ra khỏi hệ thống
5.3 Nâng cấp một gói
5.4 Lấy thông tin về package
5.5 Dùng RPM để kiểm tra các gói đã cài đặt
6 Thực thi chương trình và quản lý tiến trình
6.1 Thực thi chương trình
6.2 Quản lý tiến trình
34455677991011121414161617181919202123
Trang 37 Cấu hình Boot Grub
Tài liệu tham khảo
Trang 4LỜI NÓI ĐẦU
Hiện nay, nhu cầu về các chuyên viên vi tính thành thạo hệ thống Linuxngày càng nhiều, nhất là khi Việt Nam đã trở thành thành viên thứ 150 của tổchức WTO thì nỗi lo về chi phí bản quyền phần mềm làm cho nhiều doanh nghiệpchuyển đổi hệ thống của mình từ dựa trên nền tảng Windows OS sang Linux OS
để tiết kiệm chi phí
Vì là mã nguồn mở cho nên có khá nhiều ứng dụng điều hành được xâydựng dựa trên nền tảng của Linux như Cent OS, redhat, Fedora, Suse, Ubuntu…Mỗi sản phẩm sẽ có những mặt mạnh và yếu riêng nhưng theo thống kê và đánhgiá thì Ubuntu là một trong những lựa chọn tốt nhất cho End User khi chuyển từWindows sang Linux, còn đối với phiên bản server thì chúng ta có thể chọnRedHat hoặc Suse, cent OS Trong đề tài này chúng ta sẽ tìm hiều về Fedora – một
hệ điều hành trên nền tảng Linux
Trang 5Chương I: Giới thiệu về mã nguồn mở và Fedora Core
1 Khái niệm mã nguồn mở
Mã nguồn mở (open-source software) hiểu theo nghĩa rộng là một khái niệmchung được sử dụng cho tất cả các phần mềm mà mã nguồn của nó được công bốrộng rãi công khai và cho phép mọi người tiếp tục phát triển phần mềm đó Điềunày không có nghĩa là chúng có thể được sao chép, sửa chữa thoải mái hay sử dụngvào mục đích nào cũng được Mã nguồn mở được công bố dưới rất nhiều điều kiệnkhác nhau (license), một số trong đó cho phép phát triển, sử dụng và bán tùy ýmiễn là giữ nguyên các dòng về nguồn gốc sản phẩm (BSDL), một số bắt buộc tấtcác sản phẩm làm ra từ đó cũng phải là open-source (GPL), một số khác đòi hỏiphải công bố trọn vẹn mã nguồn (Mozilla), một số khác không cho phép sử dụngvào mục đích thương mại (Sun Solaris Source Code License), một số khác lạikhông có ràng buộc gì đáng kể (public domain, MIT X11 license) Qua đó ta thấykhái niệm open source không thể chuẩn xác mà muốn nói đến tính pháp lý của việc
sử dụng các phần mềm mã nguồn mở, chúng ta phải xem xét đến điều kiện sử dụng(license) cụ thể mà dưới đó chúng được công bố Một điều kiện hay được áp dụngnhất là GPL: GNU General Public License của tổ chức Free Software Foundation GPL license có 2 đặc điểm phân biệt, đó là:
• Tác giả gốc giữ bản quyền về phần mềm nhưng cho phép người dùng rấtnhiều quyền khác, trong đó có quyền tìm hiểu, phát triển, công bố cũng nhưquyền khai thác thương mại sản phẩm
• Tác giả sử dụng luật bản quyền để bảo đảm các quyền đó không bao giờ bị
vi phạm đối với tất cả mọi người, trên mọi phần mềm có sử dụng mã nguồncủa mình
Đặc biệt điểm thứ 2 biến tất cả các phần mềm có dùng mã nguồn GPL cũngbiến thành phần mềm GPL Trên thực tế điều này có ý nghĩa: bất kỳ tác giả nào sửdụng dù chỉ 1 phần rất nhỏ mã nguồn GPL trong chương trình của mình cũng phảicông bố chương trình đó dưới điều kiện GPL Điều kiện này quy định ví dụ:
• Mọi phần mềm GPL đều phải công bỗ mã nguồn của mình rộng rãi côngkhai và phải tạo điều kiện cho mọi người truy cập được mã nguồn ấy (ví dụ
Trang 6• Giữ nguyên mọi dòng chú thích về nguồn gốc tác giả, bản quyền của họcũng như điều kiện được áp dụng đối với phần mềm (trong 1 file có tênLICENSE).
• Cấm việc bán mã nguồn nhưng cho phép kinh doanh chương trình được tạo
ra từ mã nguồn ấy hoặc là các dịch vụ hỗ trợ liên quan
2 Tổng quan về Fedora
Fedora (hay còn được goi là Fedora Core) là một bản phân phối Linux dựa
trên RPM Package Manager, được phát triển dựa trên cộng đồng theo “Dự án
Fedora (Fedora Project) và được bảo trợ bởi Red Hat Hỗ trợ kỹ thuật của Fedora
đa số là đến từ cộng đồng (mặc dù Red Hat có hỗ trợ kỹ thuật cho Fedora nhưngkhông chính thức)
2.1 Lịch sử phát triển của Fedora
Ngày Kết Thúc
Phiên bản Kernel
Trang 7Bảng 1.2 Các phiên bản hệ điều hành Fedora.
- Sơ lược về các Fedora đã phát hành:
• Fedora Core 1 (FC1, tên mã là Cambridge, tên phát hành là Yarrow), đượcphát hành vào ngày 6 tháng 11 năm 2003 Phiên bản này được phát triển từ RedHat Linux 9 và được tích hợp hệ thống cập nhật tự động Yum cùng với các hỗ trợcho máy vi tính xách tay Một phiên bản dành cho AMD64 đã xuất hiện vào tháng
3 năm 2004
• Fedora Core 2 (FC2, tên phát hành là Tettnang), được phát hành và ngày
18 tháng 5 năm 2004 Phiên bản này tích hợp GNOME 2.6, KDE 3.2.1, SELinux
và nhân Linux (Linux kernel) 2.6 Đây là phiên bản đầu tiên sử dụng X.Org Serverthay thế cho XFree86 Phiên bản này đã bị phàn nàn khá nhiều vì các sự cố khichạy song song với Windows XP
• Fedora Core 3 (FC3, tên phát hành là Heidelberg), được phát hành vàongày 8 tháng 11 năm 2004 Phiên bản này hỗ trợ các loại vi xử lý i386 và AMD64.Phiên bản này tích hợp GNOME 2.8, KDE 3.3.0, X.Org Server 6.8.1 và nhânLinux (Linux kernel) 2.6.9
• Fedora Core 4 (FC4, tên phát hành là Stentz), được phát hành vào ngày 13tháng 6 năm 2005 Phiên bản này hỗ trợ các loại vi xử lý i386, AMD64 vàPowerPC Phiên bản này tích hợp GNOME 2.10, KDE 3.4, GCC 4.0 và nhânLinux (Linux kernel) 2.6.11
• Fedora Core 5 (FC5, tên phát hành là Bordeaux), được phát hành vào ngày
20 tháng 3 năm 2006 Phiên bản này tích hợp GNOME 2.14, KDE 3.5.1, Xorg 7.0,GCC 4.1 và nhân Linux (Linux kernel) phiên bản 2.6.16
• Fedora Core 6 (FC6, tên phát hành là Zod), được phát hành vào ngày 24
tháng 10 năm 2006 Phiên bản này tích hợp GNOME 2.16, KDE 3.5.4, Xorg 7.1, GCC 4.1.1 và nhân Linux (Linux kernel) phiên bản 2.6.18
Hiện nay, hệ điều hành đã có tới phiên bản Fedora 20.
2.2 Đặc điểm của Fedora
Trang 8• Fedora Core sử dụng GNOME như là môi trường đồ hoạ mặc định Bêncạnh đó người dùng cũng có thể lựa chọn các môi trường làm việc khácnhư KDE, XFCE, hay đơn giản hơn nữa với các trình quản lý cửa sổ nhưicewm, fluxbox,
• Một số công cụ quản trị của Fedora Core được viết bằng Python - một ngônngữ kịch bản hướng đối tượng Ví dụ điển hình là công cụ yum, dùng để quản
lý và cài đặt các gói phần mềm theo định dạng RPM
2.3 Ưu nhược điểm của Linux Fedora
• Thiếu sự trợ giúp thân thiện với người dùng
• Sự hỗ trợ phần cứng còn hạn chế: các trình điều khiển làm việc với phầncứng được viết cho Linux đều phải được cung cấp miễn phí cho các cộng
Trang 9đồng người sử dụng Linux, mà điều này các hãng sản xuất phần cứng khôngmuốn Do đó, có thể đây là một điểm yếu so với Windows bởi các công typhần cứng có thể làm việc trực tiếp với Microsoft về tính tương thích, và có
xu hướng để Linux tự tìm cách hỗ trợ các thiết bị đó bởi họ muốn giữ bảnquyền về công nghệ của riêng mình Một thông tin tốt là các nhà cung cấpphần cứng cho Linux cũng như phần mềm đều đang có chuyển biến tích cực
và nhiều công ty cũng đang dần hỗ trợ Linux
2.4 Mục tiêu của Fedora
Dự án Fedora nhắm tới mục đích tạo ra một hệ điều hànhmã nguồn
mở hoàn chỉnh để sử dụng cho các mục đích tổng quát Fedora được thiết kế để cóthể dễ dàng cài đặt với chương trình cài đặt mang giao diện đồ họa Các gói phần
mềm bổ sung có thể tải xuống và cài đặt một cách dễ dàng với công cụ Yum.
Yum là một công cụ quản lý và cài đặt phần mềm rất tiện dụng cho các hệ
thống Red Hat Linux Nó có thể cài đặt các gói mới hoặc cập nhật các gói đã tồntại trên hệ thống một cách tự động và tiện lợi thông qua vài dòng lệnh đơn giản.YUM được viết tắt từ “Yellow dog Update, Modified” được phát triển bởi DukeUniversity
Trang 10Chương II: Cấu hình và sử dụng Fedora
1 Quản lý hệ thống tập tin trong Fedora
Hệ thống tập tin của Linux được tổ chức theo một hệ thống phân bậc tương
tự cấu trúc của một cây phân cấp Bậc cao nhất của hệ thống tập tin là thư mụcgốc, được ký hiệu là “/” (root) Đối với các hệ điều hành Linux tất các thiết bị kếtnối vào máy tính đều được nhận dạng như các tập tin, kể cả những linh kiện như ổđĩa cứng, các phân vùng đĩa cứng và các ổ USB Điều này có nghĩa là tất cả các tậptin và thư mục đều nằm dưới thư mục gốc, ngay cả những tập tin biểu tượng chocác ổ đĩa cứng
Nằm dưới thư mục gốc (/) có một loạt các thư mục quan trọng của hệ thống tập tin được công nhận ở tất cả các bản phân phối Linux khác nhau Sau đây là danh sách các thư mục thông thường được nhìn thấy dưới thư mục gốc (/) :
/bin Chứa các tập tin chương trình thực thi hay chính xác là các tập tin dư
liệu dạng nhị phân (binary)
/boot Chứa các tập tin cấu hình cần thiết cho quá trình khởi động hệ thống/dev Chứa các tập tin là thể hiện các thiết bị của hệ thống (device)
/etc Chứa các tập tin cấu hình của hệ thống, các tập tin lệnh để khởi động
/mnt Thư mục này được dùng để gắn kết các hệ thống tập tin (mount)./opt Thư mục dùng để chứa các phần mềm ứng dụng đã được cài đặt
thêm trên hệ thống (option)
Trang 11/sys Thư mục này lưu các tập tin của hệ thống (system files)
/tmp Chứa các tập tin được tạo ra tạm thời (temporary)
/usr Chứa những tập tin của các ứng dụng chính đã được cài đặt cho mọi
người dùng (all users)/var Thư mục này lưu lại tập tin ghi các số liệu biến đổi (variable files)
như các tập tin dữ liệu và tập tin bản ghi
2 Quản lý các ổ đĩa
Fedora xem khái niệm của tất cả các thiết bị như là một hệ thống tập tinhoặc thư mục nào đó Vì vậy, muốn sử dụng một ổ đĩa, ta phải tiến hành mount ổđĩa đó lên một thư mục nào đó, có thể hiểu quá trình này là việc ánh xạ nội dungcủa một ổ đĩa thành một thư mục (thư mục này được xem là thư mục gốc của ổ đĩađó) Các thao tác sao chép, xóa, đổi tên… trên thư mục này chính là thao tác trên
dữ liệu của ổ đĩa đó Khi không sử dụng nữa thì ta tiến hành thao tác ngược lại gọi
là unmount
Định vị đĩa cứng:
• /dev/hda: Ổ đĩa cứng IDE đầu tiên (Primay Master)
• /dev/hdb: Ổ đĩa cứng IDE thứ hai (Primary Slave)
• /dev/hdc: Secondary Master
• /dev/hdd: Secondary Slave
• /dev/sda: Ổ đĩa cứng SCSI đầu tiên
• /dev/sdb: Ổ đĩa cứng SCSI thứ hai
• /dev/fd0: Ổ đĩa mềm đầu tiên
• /dev/fd1: Ổ đĩa mềm thứ hai
Định vị phân vùng:
• /dev/hda1: phân vùng đầu tiên của đĩa cứng IDE đầu tiên
• /dev/hda2: phân vùng thứ hai của đĩa cứng IDE đầu tiên
• /dev/sda1: phân vùng đầu tiên của đĩa cứng SCSI đầu tiên
• /dev/sda2: phân vùng thứ hai của đĩa cứng SCSI đầu tiên
Trang 123 Quản lý tài khoản người dùng và nhóm người dùng
Nhấn chọn Add User
Trang 13• User Name: đặt tên cho tài khoản người dùng.
• Full Name: họ tên người dùng (nếu có)
• Password: đặt mật khẩu cho tài khoản
• Confirm Password: xác nhận lại mật khẩu
• Login Shell: đường dẫn lưu shell của người dùng
• Create home directory: đường dẫn thư mục chứa các thông tin về tài khoản người dùng
• Create a private group for the user: mặc định hệ thống sẽ tạo ra nhóm ngườidùng tương ứng khi ta tạo tài khoản người dùng mới
• Specify user ID manually: tự gán số ID cho tài khoản
• Specify group ID manually: tự gán số ID cho nhóm người dùng được tao ra.Nhấn OK để tạo tài khoản
4 Thiết lập quyền truy xuất dữ liệu
Fedora được thiết kế cho nhiều người sử dụng, những người sử dụng này lại
được chia thành nhiều nhóm Mỗi người sử dụng đều có quyền đọc (Read), ghi (Write), hoăc thực thi (Execute) cho những tập tin của riêng họ, và quyền hạn để
chuyển đổi quyền truy cập Bởi Fedora được thiết kế cho nhiều người sử dụng, mỗingười sử dụng đều có mật khẩu riêng, và giới hạn quyền truy cập của người sử
dụng (User Permissions).
Trang 14Read (R) - Quyền xem và sao chép
tập tin
- Quyền liệt kê nội dung thưmục
Write (W) - Quyền chỉnh sửa, đổi tên,
di chuyển và xóa tập tin
- Sao chép dữ liệu vào thưmục
- Xóa dữ liệu trên thư mục
- Đổi tên tập tin trong thưmục
- Tạo thư mục con trong thưmục
Execute
(X) - Quyền thực thi tập tin
- Hiển thị nội dung của mộttập tin trong thư mục
- Sao chép tập tin trong thưmục
- Chuyển vào thư mục vớicâu lệnh cd
Một người dùng thuộc về một nhóm hoặc nhiều nhóm khác nhau, và mỗingười sử dụng có thể đặt quyền truy cập các tập tin/thư mục của họ có quyền đọcnhưng không thể ghi, hoặc kết hợp các R/W/X
Người dùng quản trị root, cũng giống như Administrator trong Windows, cóquyền truy cập vào tất cả những tập tin và chỉ những người sử dụng có quyền hạnmới được phép thay đổi những thiết lập hệ thống Điều này giúp những người sửdụng thông thường không thể cài đặt những phần mềm gián điệp vào hệ thống vàxoá những tập tin quan trọng
Việc phân chia quyền dựa trên các định danh sau:
• User (U): người dùng tạo ra dữ liệu
• Group (R): nhóm người dùng chứa người dùng tạo ra dữ liệu
• Other (O): những người dùng khác
• All (A): tất cả mọi người dùng
Sử dụng lệnh ls –l để xem chi tiết dữ liệu trên một thư mục:
Trang 15d thể hiện thư mục
Sử dụng lệnh chmod để thay đổi quyền truy cập của người dùng trên một file haymột thư mục nào đó:
chmod <u|g|o|a> <+|-><r,w,x><tên file>
Hoặc sử dụng hệ số bát phân: chmod <xxx> <tên file>
Nhóm quyền thay thay đổi chủ sở hữu (owner): chown, chgrp và chmod:
Đây là nhóm lệnh được sử dụng rất phổ biến, cho phép thay quyền truy cậpcủa tập tin hay thư mục Chỉ có chủ sở hữu và superuser mới có quyền thực hiệncác lệnh này
Cách dùng lệnh : chmod quyền_truy_cập_mới tên_file.
5 Cài đặt các gói ứng dụng
5.1 Cài đặt gói ứng dụng rpm
Cú pháp cài đặt: rpm -i (hoặc ##install) [tuỳ chọn] <tên các file rpm>
##hash (-h) In kí tự ‘#’ trong quá trình cài đặt
##test Chỉ thử cài đặt, không cài thật
##percent Hiện số phần trăm trong quá trình cài đặt
##excludedocs Không cài các tài liệu kèm theo gói
Trang 16##includedocs Cài cả tài liệu đi kèm (mặc định)
##replacepkgs Cài đè một bản mới lên gói đã cài đặt trước đó
##replacefiles Có thể chép đè lên file của gói khác
##force Bỏ qua sự xung đột giữa các gói và các file
##noscripts Không thực hiện các script pre - install và
post-install
##prefix <path> Ðổi thư mục cài đặt mặc định của gói
##ignorearch Không kiểm tra dòng máy tính (i386, i686,
noarch )
##ignoreos Không kiểm tra hệ điều hành (OS)
##nodeps Không kiểm tra tính phụ thuộc (dependencies)
##ftpproxy <host> Dùng máy tính <host> như là một FTP proxy
##ftpport <port> Dùng cổng <port> làm FTP port
Khi một gói nào đó được cài đặt, chương trình rpm sẽ thực hiện các công việc sau :
- Kiểm tra tính phụ thuộc của gói Một số gói không hoạt động đúng nếukhông có một gói nào đó được cài đặt từ trước Hoặc nó kiểm tra xem có làm thayđổi tính phụ thuộc của các gói đã được cài đặt trước hay không
Trang 17- Kiểm tra tình trạng xung đột giữa các file Trong phần này chương trìnhrpm phải thử cài đặt các file, sau đó kiểm tra xem có xung đột hay không, hoặc thửthay đổi các file cấu hình Sau đó kiểm tra lại.
- Thực hiện các script trước lúc cài đặt Một số gói trước khi được cài đặtphải thực hiện một số công việc nhất định nào đó (back up chẳng hạn) Ðây là cácshell script được tạo ra bởi người đóng gói
- Sửa lại các file cấu hình đang có trong hệ thống Một trong những ưu điểmkhác của RPM với các trình quản lý cài đặt khác là cách chúng xử lý các file cấuhình Khi một phần mềm được cài đặt, chúng cần phải thay đổi một số file cấuhình có sẵn trong hệ thống, rpm không chép đè các file cấu hình mới lên các file cũ
mà nó phân tích tình trạng của các file cũ để chỉ thực hiện các thay đổi cần thiết(xem phần sau)
- Bung nén các file từ gói cài đặt vào các vị trí thích hợp Bước này mới thật
sự là copy các file từ gói cài đặt vào hệ thống, sau đó các thuộc tính của file cũngđược rpm xác lập
- Thực hiện các script sau cài đặt Tương tự như các script trước lúc cài đặt,bước này đối với một số gói cũng cần được thực hiện, ví dụ như chạy ldconfig đểcho các thư viện liên kết động mới có thể được dùng ngay
- Lưu lại tất cả các thông tin trên vào cơ sở dữ liệu RPM có một cơ sở dữliệu rất lớn lưu trữ tất cả các công việc mà nó thực hiện với các gói cùng các thôngtin về các gói Nó sẽ sử dụng cơ sở dữ liệu này để tra cứu thông tin về sau hoặckiểm tra xung đột
Ðể cài đặt một gói, đơn giản là dùng lệnh : rpm -i <tên file của gói>
Nhớ là tên gói và tên file của gói là khác nhau ví dụ tên gói có thể là : eject-1.2-2nhưng tên file của gói lại là eject-1.2-2.i386.rpm
Các thông số tùy chọn:
- Thay vì chỉ ra tên file cụ thể nằm trong hệ thống file của máy tính, ta có thể chỉ
ra một liên kết chứa gói cài đặt Ví dụ :
rpm -i ftp://ftp.redhat.com/RPMS/example-1.0-2.noarch.rpm