Đề cương Hệ điều hành mã nguồn mở

Tài liệu Đề cương Hệ điều hành mã nguồn mở: Hệ điều hành mã nguồn mở Trang 1 TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƢƠNG: HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ TÀI LIỆU LƯU HÀNH NỘI BỘ Hệ điều hành mã nguồn mở Trang 2 Hệ điều hành mã nguồn mở Trang 3 Mục lục 1 Tổng quan về hệ điều hành mã nguồn mở .................................................................. 10 1.1 Những nội dung chính trong học phần................................................................. 10 1.1.1 Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành Linux ................. 10 1.1.2 Quản trị tài nguyên người dùng trên Linux ................................................... 13 1.1.3 Phát triển ứng dụng trên hệ điều hành Linux................................................. 13 1.1.4 Quản lý dịch vụ và bảo mật .......................................................................... 14 1.1.5 Cấu hình dịch vụ mạng căn bản trên Linux ................................................... 14 1.1.6...

pdf145 trang | Chia sẻ: putihuynh11 | Lượt xem: 502 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề cương Hệ điều hành mã nguồn mở, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Hệ điều hành mã nguồn mở Trang 1 TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT HƢNG YÊN KHOA CÔNG NGHỆ THÔNG TIN ĐỀ CƢƠNG: HỆ ĐIỀU HÀNH MÃ NGUỒN MỞ TÀI LIỆU LƯU HÀNH NỘI BỘ Hệ điều hành mã nguồn mở Trang 2 Hệ điều hành mã nguồn mở Trang 3 Mục lục 1 Tổng quan về hệ điều hành mã nguồn mở .................................................................. 10 1.1 Những nội dung chính trong học phần................................................................. 10 1.1.1 Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành Linux ................. 10 1.1.2 Quản trị tài nguyên người dùng trên Linux ................................................... 13 1.1.3 Phát triển ứng dụng trên hệ điều hành Linux................................................. 13 1.1.4 Quản lý dịch vụ và bảo mật .......................................................................... 14 1.1.5 Cấu hình dịch vụ mạng căn bản trên Linux ................................................... 14 1.1.6 Cài đặt cấu hình DHCP và DNS trên Linux .................................................. 14 1.1.7 Dịch vụ chia sẻ dữ liệu trên Linux ................................................................ 16 1.1.8 Dịch vụ quản lý tài nguyên tập chung trên Linux .......................................... 16 1.1.9 Cài đặt cấu hình webserver trên Linux .......................................................... 16 1.2 Giới thiệu về linux .............................................................................................. 17 1.2.1 Lịch sử phát triển của linux và giới thiệu các phiên bản linux ....................... 17 1.2.2 Sự phát triển của Linux và các công nghệ liên quan ...................................... 18 1.2.3 Các bản phát hành của linux ......................................................................... 19 1.2.4 Ubuntu Desktop 12.04 ................................................................................. 21 1.2.5 CentOS 6.0 server ........................................................................................ 21 2 Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành linux ............................... 22 2.1 Cấu hình cơ bản trước khi cài đặt Linux .............................................................. 22 2.1.1 Giới thiệu trình tự cài đặt hệ điều hành ......................................................... 22 2.1.2 Quản trị các phân vùng chính trên Linux ...................................................... 23 2.1.3 Sự phân mảnh của hệ thống file .................................................................... 23 2.2 Linux kernel ....................................................................................................... 25 2.2.1 Giới thiệu ..................................................................................................... 25 2.2.2 Kernel modules ............................................................................................ 26 2.2.3 Các chức năng của kernel ............................................................................. 27 2.3 Gnu-gpl project (gnu general public license) ....................................................... 27 2.3.1 Gnu-gpl là gì? .............................................................................................. 27 2.3.2 Nội dung chính của GNU ............................................................................. 27 2.4 Cài đặt và sử dụng các ứng dụng văn phòng ........................................................ 28 2.5 Cài đặt các công cụ hỗ trợ người dùng truy xuất internet ..................................... 28 2.6 Cài đặt và sử dụng các công cụ hỗ trợ phát triển hệ thống ................................... 29 Hệ điều hành mã nguồn mở Trang 4 3 Quản trị tài nguyên của người dùng trên Linux .......................................................... 30 3.1 Quản trị hệ thống tập tin ..................................................................................... 30 3.1.1 Cấu trúc và trật tự của hệ thống tập tin ......................................................... 30 3.1.2 Các quyền trên tập tin và thư mục ................................................................ 32 3.1.3 Các thư mục chính trên hệ điều hành Linux.................................................. 34 3.2 Các kỹ năng thao tác với tập tin .......................................................................... 35 3.3 Các kỹ năng tìm kiếm ......................................................................................... 37 3.4 Quản trị người dùng và nhóm ............................................................................. 38 3.4.1 Giới thiệu về tài khoản trong linux ............................................................... 38 3.4.2 Thêm, xóa, sửa tài khoản người dùng ........................................................... 38 3.4.3 Thêm, sửa, xóa một tài khoản nhóm ............................................................. 40 3.5 Phân quyền thao tác với tài nguyên hệ thống....................................................... 40 3.5.1 Cách thức quản lý và bảo mật tài nguyên trên Linux .................................... 40 3.5.2 Các phương pháp phân quyền người dùng đối với tài nguyên hệ thống ......... 42 4 Phát triển ứng dụng trên môi trường Linux ................................................................ 43 4.1 Lập trình điều khiển trên hệ thống shell script ..................................................... 43 4.1.1 Tổng quan về lập trình Shell script ............................................................... 43 4.1.2 Một số ứng dụng trong lập trình Shell .......................................................... 43 4.2 Kỹ thuật lập trình C và C++ trên Linux ............................................................... 44 4.2.1 Tổng quan về lập trình C và C++ trên Linux ................................................ 44 4.2.2 Các trình biên dịch và thực thi ..................................................................... 45 4.3 Lập trình winform trên Linux ............................................................................. 45 4.3.1 Giới thiệu về lập trình Java .......................................................................... 45 4.3.2 Các hướng phát triển cho lập trình ứng dụng trên Linux ............................... 46 4.3.3 Công cụ hỗ trợ phát triển ứng dụng .............................................................. 47 5 Quản lý dịch vụ và bảo mật ....................................................................................... 49 5.1 Cập nhật phần mềm trên Linux ........................................................................... 49 5.2 Quản lý Firewall và SELinux.............................................................................. 49 5.2.1 Quản lý firewall trên Linux. ......................................................................... 49 5.2.2 Quản lý hệ thống SELinux ........................................................................... 51 5.3 Quản lý các tác vụ khác trên Linux ..................................................................... 53 5.3.1 Quản lý dịch vụ (service) ............................................................................. 53 5.3.2 Duyệt web và download dữ liệu trên hệ thống server .................................... 53 5.3.3 Quản lý hệ thống soạn thảo trên Server ........................................................ 54 Hệ điều hành mã nguồn mở Trang 5 5.3.4 Lập lịch cho hệ thống ................................................................................... 55 6 Cấu hình dịch vụ mạng căn bản trên Linux ................................................................ 56 6.1 Cấu hình dịch vụ đồng bộ thời gian NTP............................................................. 56 6.2 Truy cập từ xa..................................................................................................... 56 6.2.1 Xinetd. ......................................................................................................... 56 6.2.2 Tập tin /etc/services. .................................................................................... 57 6.2.3 Khởi động xinetd. ........................................................................................ 58 6.3 Telnet server. ...................................................................................................... 58 6.3.1 Khái niệm telnet. .......................................................................................... 58 6.3.2 Cài đặt. ........................................................................................................ 58 6.3.3 Cấu hình. ..................................................................................................... 58 6.3.4 Bảo mật telnet. ............................................................................................. 59 6.4 SSH server (secure shell). ................................................................................... 60 6.4.1 Cài đặt ssh server trên server linux. .............................................................. 60 6.4.2 Các phương pháp khai thác SSH .................................................................. 60 7 Cài đặt và cấu hình dhcp server và dns server trên linux............................................. 63 7.1 Cài đặt và cấu hình dịch vụ dns (domain name system). ...................................... 63 7.1.1 Giới thiệu. .................................................................................................... 63 7.1.2 Cơ chế phân giải tên. .................................................................................... 63 7.1.3 Phân loại domain name server. ..................................................................... 65 7.1.4 Cài đặt bind bằng dòng lệnh. ........................................................................ 66 7.2 Cài đặt và cấu hình dịch vụ dhcp server. ............................................................. 72 7.2.1 Giới thiệu. .................................................................................................... 72 7.2.2 Nguyên tắc hoạt động................................................................................... 73 7.2.3 Cài đặt. ........................................................................................................ 73 7.2.4 Tìm hiểu tập tin cấu hình dhcp.conf.............................................................. 73 7.2.5 Kích hoạt. .................................................................................................... 74 7.2.6 Cấu hình linux client sử dụng dhcp............................................................... 74 7.2.7 Cấu hình windows client sử dụng dhcp. ........................................................ 75 8 Dịch vụ chia sẻ dữ liệu .............................................................................................. 77 8.1 Cài đặt và cấu hình dịch vụ nfs (network file system). ......................................... 77 8.1.1 Giới thiệu. .................................................................................................... 77 8.1.2 Cài đặt dịch vụ nfs. ...................................................................................... 77 8.1.3 Cấu hình dịch vụ nfs. ................................................................................... 77 Hệ điều hành mã nguồn mở Trang 6 8.2 Cài đặt, cấu hình dịch vụ ftp server (file tranfer protocol).................................... 80 8.2.1 Giới thiệu. ................................................................................................... 80 8.2.2 Cài đặt. ........................................................................................................ 84 8.2.3 Cấu hình. ..................................................................................................... 84 8.2.4 User của server vsftpd. ................................................................................. 85 8.2.5 Một số option quan trọng. ............................................................................ 85 8.2.6 Kích hoạt dịch vụ. ........................................................................................ 86 8.2.7 Kết nối tới ftp server. ................................................................................... 86 9 Dịch vụ quản lý tài nguyên tập chung ........................................................................ 88 9.1 Cài đặt và cấu hình dịch vụ samba. ..................................................................... 88 9.1.1 Giới thiệu. ................................................................................................... 88 9.1.2 Cài đặt. ........................................................................................................ 89 9.1.3 Cấu hình. ..................................................................................................... 89 9.1.4 Quản trị tài khoản samba.............................................................................. 93 9.2 Sử dụng dịch vụ smb. ......................................................................................... 94 9.3 Cài đặt và cấu hình dịch vụ samba-swat. ............................................................. 95 9.3.1 Giới thiệu. ................................................................................................... 95 9.3.2 Cài đặt samba-swat. ..................................................................................... 95 9.3.3 Tập tin cấu hình samba-swat. ....................................................................... 96 9.3.4 Khởi tạo swat và cấu hình samba cơ bản. ..................................................... 96 9.3.5 Cấu hình chia sẻ trên samba-swat. ................................................................ 98 9.3.6 Tạo các tài khoản trên samba-swat. .............................................................. 99 9.3.7 Xem tập tin cấu hình smb........................................................................... 100 9.3.8 Đổi port truy cập mặc định cho samba-swat. .............................................. 100 9.4 Cài đặt và triển khai hệ thống Domain sử dụng Samba ...................................... 100 10 Cài đặt và cấu hình dịch vụ webserver ................................................................... 103 10.1 Cài đặt và cấu hình dịch vụ dịch vụ wed server. .............................................. 104 10.1.1 Giới thiệu................................................................................................. 104 10.1.2 Cài đặt. .................................................................................................... 104 10.1.3 Cấu hình. ................................................................................................. 104 10.2 Cài đặt và cấu hình mysql và php. ................................................................... 111 10.3 Cấu hình một số hệ thống cơ bản với webserver.............................................. 112 10.3.1 Hệ thông Userdir ..................................................................................... 112 10.3.2 Cấu hình Virtual hosting .......................................................................... 113 Hệ điều hành mã nguồn mở Trang 7 10.3.3 Cấu hình hệ thống bảo mật SSL ............................................................... 113 10.4 Cấu hình hệ thống webmail ............................................................................. 114 10.4.1 Cấu hình squirrelmail ............................................................................... 114 10.4.2 Cấu hình hệ thống roundcube ................................................................... 114 10.5 Cấu hình hệ thống Blog mã nguồn mở WordPress ........................................... 115 PHẦN THẢO LUẬN ............................................................................................ 116 11 Thảo luận 1: Khai thác ứng dụng trên hệ điều hành Linux ...................................... 116 12 Thảo luận 2: các phương pháp phân quyền và quản lý tài nguyên người dùng ........ 117 13 Thảo luận 3: các dịch vụ mạng cần thiết để triển khai mạng LAN theo mô hình doanh nghiệp 118 14 Thảo luận 4: về các dịch vụ mạng nâng cao trong linux ......................................... 118 15 Thảo luận 5: Tổng hợp các phương pháp lựa chọn ứng dụng trên Linux ................. 119 PHẦN BÀI TẬP THỰC HÀNH ............................................................................ 121 16 Thực hành 1: Cài đặt hệ điều hành linux ................................................................ 121 17 Thực hành 2: Thao tác tài nguyên trên hệ điều hành Linux ..................................... 124 18 Thực hành 3: Lập trình Shell trên Linux ............................................................... 126 19 Thực hành 4: Phát triển ứng dụng trên Linux ......................................................... 127 20 Thực hành 5: Bảo mật hệ thống mạng Linux .......................................................... 129 21 Thực hành 6: Cài đặt và quản lý dịch vụ mạng trên Linux ...................................... 130 22 Thực hành 7: Cài đặt và cấu hình DHCP và DNS trên Linux.................................. 131 23 Thực hành 8: Triển khai dịch vụ chia sẻ dữ liệu và cài đặt dns server, dhcp ............ 132 24 Thực hành 9: triển khai hệ thống Samba trong mạng LAN ..................................... 136 25 Thực hành 10: cài đặt và cấu hình webserver ......................................................... 137 26 Thực hành 11: Cấu hình hệ thống server Linux (5 tiết) ........................................... 139 Hệ điều hành mã nguồn mở Trang 8 DANH MỤC HÌNH ẢNH Hình 1.2: Hệ điều hành Mint ......................................................................................................................19 Hình 1.3: Hệ điều hành Ubuntu ..................................................................................................................19 Hình 1.4: Hệ điều hành Ubuntu ..................................................................................................................20 Hình 15: Hệ điều hành Ubuntu ...................................................................................................................20 Hình 1.6: Hệ điều hành Ubuntu ..................................................................................................................20 Hình 1.7: Hệ điều hành Ubuntu ..................................................................................................................20 Hình 1.8: Giao diện đăng nhập Ubuntu 12.04..............................................................................................21 Hình 2.1: Giao diện công cụ văn phòng ......................................................................................................28 Hình 5.1: Quyền trên tập tin và thư mục. ....................................................................................................32 Hình 5.2: Quyền trên tập tin ẩn. ..................................................................................................................32 Hình 5.3: Cấu trúc mode của dòng lệnh Chmod. .........................................................................................33 Hình 5.4: Các giá trị Octal tương ứng với các quyền. ..................................................................................34 Hình 5.5: Các giá trị Octal thường dùng. .....................................................................................................34 Hình 5.6: Kết quả tìm kiếm ........................................................................................................................37 Hình 5.7: Mã hóa phân vùng ổ cứng ...........................................................................................................41 Hình 5.8: Mã hóa phân vùng ổ cứng ...........................................................................................................41 Hình 5.9: Mã hóa thư mục ..........................................................................................................................41 Hình 5.10: Dữ liệu mã hóa .........................................................................................................................42 Hình 5.11: Thay đổi Group. ........................................................................................................................42 Hình 7.1: Sử dụng Geany để lập trình C......................................................................................................45 Hình 10.1. Security policy and enforcement are independent using SELinux. ..............................................52 Hình 10.2. Layered Linux security process .................................................................................................53 Hình 10.3: Duyệt web bằng w3m................................................................................................................54 Hình 10.4: Duyệt web bằng w3m................................................................................................................54 Hình10.5: Duyệt web bằng w3m ................................................................................................................54 Hình 12.1: Phần mềm putty ........................................................................................................................60 Hình 12.2: Thẻ Windows............................................................................................................................61 Hình 12.3: Thẻ Proxy. ................................................................................................................................61 Hình 12.4: Đăng nhập từ xa. .......................................................................................................................62 Hình 14.1: Mô hình phân cấp DNS. ............................................................................................................63 Hình 14.2: Mô hình hoạt động của DNS. ....................................................................................................63 Hình 14.3: Cơ chế phân giải địa chỉ IP. .......................................................................................................64 Hình 14.4: Phân giải IP thành tên máy tính. ................................................................................................65 Hình 2.16: Cấu hình Linux client sử dụng DHCP. .......................................................................................75 Hình 14.5: Phương thức kết nối. .................................................................................................................75 Hình 14.6: Cấu hình địa chỉ Ip động. ..........................................................................................................76 Hình 16.1: Liệt kê danh sách các portmap. ..................................................................................................79 Hình 16.2: Sơ đồ kết nối Active. .................................................................................................................81 Hình 16.3: Sơ đồ kết nối Passive. ...............................................................................................................82 Hình 16.4: kết nối FTP server bằng trình duyệt IE.......................................................................................87 Hình 16.5: nhập thông tin tài khoản. ...........................................................................................................87 Hình 16.6: Sau khi login thành công. ..........................................................................................................87 Hình 19.1: Quá trình cài đặt dịch vụ samba. ................................................................................................89 Hình 19.2: Kiểm tra dịch vụ đã được cài đặt trên hệ thống. .........................................................................89 Hình 19.3: Đăng nhập samba swat với user root. .........................................................................................96 Hình 19.4: Giao diện chính của swat. ..........................................................................................................97 Hình 19.5: Phần global. ..............................................................................................................................97 Hình 19.6: Phần share. ...............................................................................................................................98 Hình 19.8: Tạo user cho samba. ..................................................................................................................99 Hình 21.1: Kiểm tra hoạt động của apache. ............................................................................................... 105 Hình 21.2: Kiểm tra số phiên bản. ............................................................................................................ 110 Hệ điều hành mã nguồn mở Trang 9 Hình 21.3: Truy cập vào Mysql. ............................................................................................................... 110 Hình 21.4: Gọi trang default.php. ............................................................................................................. 111 Hình 21.5: Test hệ thống PHP .................................................................................................................. 112 Hình 21.6: Test thử hệ thống virtual hosting ............................................................................................. 113 Hệ điều hành mã nguồn mở Trang 10 Bài 1. Tổng quan về hệ điều hành mã nguồn mở 1.1 Những nội dung chính trong học phần 1.1.1 Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành Linux 1.1.1.1. Cài đặt Linux. Khi bắt đầu tìm hiểu Linux, không ít người phải bối rối vì có quá nhiều phiên bản Linux của các tổ chức phân phối khác nhau (đến hơn 400 bản). Người dùng nên đọc các bài viết so sánh, nhận xét để quyết định chọn bộ cài nào. Ví dụ, bạn có thể dựa trên một số tiêu chí như: mức độ chuyên dụng (dùng cho mục đích chung cả server và client), số máy cài được (x86, x86_64 ...), số người sử dụng và phát triển, số phần mềm hỗ trợ trực tiếp (có bộ cài trực tiếp không cần biên soạn mã nguồn), thông tin trợ giúp, khả năng cập nhật và mức độ miễn phí. Nhưng dù dùng phiên bản nào thì bạn cũng có thể tự tùy biến và chạy phần mềm trên các phiên bản khác. Nếu là lần đầu, tốt nhất bạn nên chọn phiên bản nào dễ dùng nhất, ví dụ như Fedora Core. Bạn có thể cài phiên bản SuSE, Fedora Core 5 hay Fedora Core 6... Về cơ bản, giao diện hướng dẫn cài đặt rất thân thiện, có thể so sánh tương đương với Windows XP. Các bước chọn đường dẫn, partition, format có thể gây bối rối một chút vì bạn đã quen với các định dạng và cách tổ chức thư mục của Windows. Nhưng mọi thứ đều dễ dàng vượt qua sau một lúc mày mò. Khi việc cài đặt kết thúc, khởi động lại máy tính có thể bạn chỉ thấy một màn hình đen sì. Đó là do lỗi bản cài Linux không nhận dạng đúng độ phân giải và tần số quét của màn hình và phải chuyển sang chế độ khởi động dạng text mode để chỉnh sửa lại file cấu hình bằng tay. Khi chọn trình quản lý desktop GNOME, bạn sẽ thấy Linux không khác gì Windows XP nếu so sánh về giao diện đồ hoạ, các icon, menu, cửa sổ...Khả năng tùy biến giao diện rất tốt vì bạn có thể tự do lựa chọn số thanh taskbar cũng như các kiểu shortcut đặt trên nó, các hiệu ứng trong suốt... Đồng thời, người dùng có thể chuyển qua lại giữa nhiều màn hình desktop trong một phiên làm việc. Tính năng này rất tiện khi số cửa sổ mở ra quá nhiều khiến thanh taskbar không còn chỗ chứa. 1.1.1.2. Các ứng dụng trong Linux Bản Linux Ubuntu 12.04 có các phần mềm cơ bản tương đương với Windows XP từ trình quản lý file, cửa sổ command, trình duyệt web, trình quản lý e-mail, Calendar, Project... đến các tiện ích nhỏ như Calculator, Character Map, Paint, Notepad, Remote Desktop... Trong đó, nổi bật là trình soạn thảo text cơ bản đi kèm là Gedit, như Notepad của Windows XP nhưng nhiều tính năng hơn và có thể tương đương với Notepad++. Về trình duyệt web, khác với Windows XP, trong bộ cài Linux có rất nhiều trình duyệt web đi kèm, thậm chí có cả trình duyệt ở chế độ text mode tiện lợi trong trường hợp cần debug (gỡ lỗi) ở chế độ text mà vẫn cần vào web. Bạn có thể chọn FireFox làm trình duyệt chính vì nó được dùng nhiều và khá an toàn. Trong bộ cài đi kèm rất nhiều phần mềm nghe nhạc và xem phim nhưng tất cả đều không hỗ trợ nghe mp3 và một số định dạng phim thường gặp. Fedora Core chỉ bao gồm các phần mềm mã nguồn mở, không có các phần mềm miễn phí nhưng không có mã nguồn hoặc bị ràng buộc một số điều kiện bản quyền. Với tư cách là người sử dụng, bạn có thể tìm trình nghe nhạc mp3 và xem các định dạng phim phổ biến là Realplayer và VLC. Về phần mềm chat, trên Linux có Gain, một chương trình mã mở chạy trên nhiều giao thức phổ biến hiện nay như Yahoo, ICQ, MSN ... và có thể chat nhiều nick trên cùng giao thức hay trên các giao thức khác nhau. Giao diện chương trình đẹp, dễ sử dụng, khá nhiều tính năng tiện dụng. Hệ điều hành mã nguồn mở Trang 11 Nhược điểm của Gain là chưa cho phép chat voice hay webcam. Hiện Yahoo và Skype cũng có phiên bản cho Linux nhưng so với phiên bản trên Windows thì còn thiếu nhiều chức năng. Về phần mềm nén và giải nén, trên Linux cũng có một chương trình cho phép nén và giải nén các định dạng .zip, .tar ...với giao diện đồ họa dễ dùng. Nhưng trình giải nén của Linux không giải nén được file .rar. Hiện có bản Winrar cho Linux nhưng làm việc ở chế độ command, khó sử dụng và bất tiện. Bạn có thể tìm hiểu để biến nó thành một dạng như plugin cho trình giải nén của Linux và có thể dễ dàng nén/giải nén/xem nội dung file .rar thông qua giao diện đồ họa và chuột. Phần mềm soạn thảo văn bản, bảng tính và trình chiếu trên Linux có OpenOffice, tương đương với OfficeXP của Microsoft nhưng chưa bằng được Office 2003 ở một số tính năng nhưng cũng có một số chức năng mạnh như VBScript và Javascript cho phép lập trình. Các file .doc, .xsl, .ppt được soạn bằng Office 2003 và font Arial và .VNTime có thể xem và chỉnh sửa tốt nhưng gặp phải vấn đề về font chữ. Linux sử dụng True Type Font và có sẵn một số font Unicode nhưng tên font khác với Windows khiến các file thử nghiệm không hiển thị đúng. Vấn đề được giải quyết đơn giản bằng việc copy các file font trên Windows vào thư mục font của Linux. Nhưng OpenOffice Writer (tương đương với Word) vẫn gặp phải lỗi chữ "ư" với font TCVN3, các file .xsl và .ppt thì không bị lỗi này. Phần mềm gõ tiếng Việt: Trên Linux có một số phần mềm cho phép gõ tiếng Việt như x- Unikey và một số phần mềm khác. X-Unikey khi sử dụng gặp phải rất nhiều lỗi, có lúc không gõ được tiếng Việt, có lúc còn làm hệ thống không thể input được ký tự nào. Bạn có thể tìm hiểu Scim-m17n, chương trình mã mở cho phép gõ tất cả các ngôn ngữ trên thế giới, mỗi phương thức gõ cần một file cấu hình. Người dùng thường quen gõ tiếng Việt theo kiểu TELEX nhưng file cấu hình để gõ TELEX cho Scim chỉ có thể bỏ dấu ngay sau nguyên âm và nếu gõ sai dấu thì không thể gõ lại dấu khác mà phải xóa đi gõ lại. Scim có thể gõ tốt trên nhiều chương trình như Gedit, OpenOffice, Firefox và bạn có thể tìm hiểu để soạn lại file cấu hình cho phù hợp, cho phép bỏ dấu ở bất cứ đâu của từ và có thể chuyển sang dấu khác mà không cần gõ lại từ. Ngoài ra, có một số phần mềm giả lập môi trường Windows trên Linux để cho phép cài các phần mềm Windows trên Linux. Ví dụ CrossOver, một phần mềm giả lập dựa trên phần mềm mã mở Wine. Người dùng sẽ cài được Flashget (trình hỗ trợ download trên Windows) và DUMeter (trình đo lưu lượng mạng trên Windows) nhưng có thể không cài được Winrar, GifMovieGear... A, Ứng dụng văn phòng Để có thể sử dụng Linux cho những công việc hàng ngày chúng ta cần có những công cụ (phần mềm sử lý cho việc nhập liệu văn bản phục vụ cho hiển thị in ấn dữ liệu) phục vụ cho mục đích văn phòng cho các mục đích: bộ công cụ văn bản word, công cụ bảng tính excel, công cụ trình chiếu power point Ở đây ta có thể sử dụng bộ công cụ LibreOffice. Bộ công cụ này cho phép thao tác với những tệp văn bản tương đương với phần mềm Microsoft Office 2003. Ngoài ra LibreOffice còn hỗ trợ đọc rất nhiều file mở rộng khác như các file của Office 2007-2010. Không chỉ có LibreOffice có thể hỗ trợ tin văn phòng, chúng ta còn một số ứng dụng khác như OpenOffice là bộ công cụ truyền thống của Linux trong sử lý tin văn phòng. Các công cụ khác bao gồm AbiWord, công cụ online có google doc, Live microst, zoho Ngoài ra các công cụ khác cần cho mục đích văn phòng như công cụ hiển thị file PDF, công cụ đồ họa, vẽ, chỉnh sửa hình ảnh. Chúng ta có các phần mềm tương ứng như Acrobat reader, Gimp, showell, Paint B, Ứng dụng internet Hệ điều hành mã nguồn mở Trang 12 Một số ứng dụng phục vụ cho nhu cầu trao đổi thông tin trên internet như: firefox, chrome hỗ trợ duyệt web và thao tác với các thành phần như ftp, ngoài ra chrome còn hỗ trợ các dữ liệu trên Android. Các phần mềm hỗ trợ trao đổi thông tin message như Pidgin, imo, skype, kopate, apathy giúp trao đổi thông tin trên internet hỗ trợ rất nhiều giao thức cho người dùng. Công cụ hỗ trợ quản lý dữ liệu vào ra mạng internet là wireshark cho phép quản lý các thông tin dữ liệu vào ra hệ thống, thông qua đó người dùng có thể quản lý được các điểm note gây ra sự cố về mạng. C, Ứng dụng cho người phát triển ứng dụng Các ứng dụng phát triển phần mềm trên Linux cho phép xây dựng phần mềm tương đối nhanh và hiệu quả như: - Netbean: là bộ công cụ mã nguồn mở được phát triển bởi oracle cho phép phát triển các ứng dụng trên nhiều nền tảng như C, C++, Java, và phát triển các website trên JSP, PHP Là bộ công cụ cho phép thao tác trên hệ thống giao diện kéo thả hỗ trợ viết code rất thuận tiện cho người dùng. - qt4: là bộ công cụ chuyên dành cho người phát triển C, C++ và ứng dụng trong các thiết bị ngoại vi: Mobile, smartphone, android, IOS và các thiết bị vi mạch điện tử. Hệ thống cho phép thao tác trên giao diện đồ họa dễ xử lý và hỗ trợ code rất chuyên nghiệp. - java: Là nền tảng phát triển ứng dụng trên Java và cho phép cài đặt các ứng dụng phát triển hệ thống như netbean, eclipse - oracle develop: Là bộ công cụ phát triển phần mềm java trên hệ quản trị CSDL của hãng bao gồm MySQL và Oracle. Nhìn chung đây là bộ công cụ có khối lượng lớn hỗ trợ nhiều tool có sãn và tuy nhiên tốc độ thực thi chậm. - Với những hệ quản trị cơ sở được hỗ trợ như: Mysql, oracle, pregestSQL cho phép người dùng xây dựng các ứng dụng lớn trên nền tảng java, C, C++ và các ngôn ngữ lập trình khác. Ngoài ra Linux còn rất hữu dụng với những ứng dụng mã nguồn mở như Joomla, dupal, nuke, worldpress Cho phép phát triển các website với tốc độ nhanh đem lại lợi ích về kinh tế. D, Bộ ứng dụng giải trí đa phương tiện Linux hỗ trợ một số công cụ cho phép nghe nhiều định dạng âm thanh, video như Mplayer, VLC, KMP và các định dạng flash như Flashplayer Linux còn hỗ trợ các trình ghi đĩa CD như basose, K3P, Create DVD E, Các ứng dụng hỗ trợ quản trị hệ thống. Thông thường hệ thống Linux dành cho công việc văn phòng đã hỗ trợ đầy đủ các giao diện hệ thống cho việc quản trị. Chính vì vậy các ứng dụng hỗ trợ hệ thống ở đây được nhắc đên ở đây như các ứng dụng hỗ trợ người quản trị trong việc điều chỉnh cũng như quản lý các phần mềm. Một số công cụ chuyên dụng được dùng như: webamin, web usermin, direct min Các công cụ đều hỗ trợ điều khiển server từ xa thông qua giao diện web. Ngoài ra còn một số phần mềm bản quyền như Cpanel, WHM Hệ điều hành mã nguồn mở Trang 13 1.1.2 Quản trị tài nguyên người dùng trên Linux Thực tế việc quản trị tài nguyên người dùng xuất phát từ nhu cầu quản lý các file, thiết bị trên Linux. Các dữ liệu này được cấp phát cho từng đối tượng sử dụng với những quyền hạn nhất định phục vụ quá trình thao tác của người dùng đó. Thông thường với mỗi một tài nguyên trên Linux sẽ được quy định một người dùng sở hữu là Owner, và nhóm sở hữu là workgroup. Việc phân định quyền thao tác giữa những đối tựng trên với tài nguyên file thư mục thì được gọi là quản trị tài nguyên trên Linux. Thông thường việc quản trị tài nguyên bao gồm các thành phần sau: - Xác định loại tài nguyên, mức độ quan trọng của tài nguyên - Xác định chủ sở hữu và những người được quyền tác động đến tài nguyên - Sử dụng cơ chế phân quyền người dùng đối với tài nguyên thông qua lệnh Chmod - Chuyển quyền sở hữu tài nguyên thông qua lệnh chowner. Ngoài ra nếu muốn nhóm sử dụng tài nguyên chung nào đó thì cần phải có cơ chế chia sẻ tài nguyên cho phép nhiều người sử dụng chung tài nguyên mà không cần phải thao tác trực tiếp trên máy tính nội tại. 1.1.3 Phát triển ứng dụng trên hệ điều hành Linux Trong bài học này chủ yếu sinh viên được làm quen với những ngôn ngữ lập trình trên Linux cũng như những thư viện lập trình trên Linux. Thông qua việc tiếp cận này người học sẽ từng bước làm quen với lập trình phát triển các hệ thống trên Linux. - Lập trình shell script: Lập trình tác động vào hệ thống máy chủ cho phép thay đổi các thông tin, tác động cài đặt, chỉnh sửa phần mềm bao gồm cả các phần mềm thông dụng như một số phần mềm cài đặt tự động, phần mềm backup tự động hệ thống dữ liệu. Sinh viên tiếp cận với nhiều hình thức bảo vệ dữ liệu. - Lập trình C, C++: Sinh viên sẽ tiếp cận với việc lập trình trên các thư viện của linux đặc biệt là thư viện tác động đến các hàm hệ thống. Việc lập trình trên Linux có nhiều sự khác biệt so với lập trình trên hệ thống thư viện của windows. Nhiều hàm phép tính bị giới hạn do tính bảo mật, nhiều thành phần dữ liệu bị giới hạn phạm vi thực hiện. Cách khai báo các hàm thư viện cũng hoàn toàn khác so với windows. Với đặc thù sử dụng để lập trình điều khiển các thiết bị ngoại vi Linux hỗ trợ rất nhiều hàm nhập xuất dữ liệu ra các cổng. - Lập trình Java: là thế mạnh của Linux với những công cụ hỗ trợ và thư viện nguồn mở rất nhiều. Lập trình java trên linux không bị giới hạn về bộ thư viện cũng như khả năng lập trình đồ hoạ trên hệ thống. Người dùng có thể cài được môi trường Java và phần mềm soạn mã Java (IntelliJ), server JBoss, Tomcat trên Linux không khó khăn gì vì J2SDK và các phần mềm soạn Java thường có phiên bản hỗ trợ cho nhiều hệ điều hành. Ngoài ra là Oracle 10g với một ít "mẹo" và MySQL. Còn với .NET, trên Linux có Mono Framework, một khung thay thế .NET Framework của Microsoft. Mục tiêu của Mono là thi hành tất cả các hàm và lớp của .NET Framework do đó các chương trình viết bằng Visual Studio .NET của Microsoft, sau khi biên dịch sang file .exe có thể chuyển sang Linux và chạy thông qua Mono, các file ASP.NET cũng có thể chạy được trên Linux thông qua Mono. Mục tiêu là vậy nhưng hiện tại Mono chưa thi hành được đầy đủ .NET Framework nên một số chương trình viết bằng Visual Studio vẫn không thể chạy trên mono. Do đó Hệ điều hành mã nguồn mở Trang 14 nếu phải làm dự án liên quan đến .NET thì bạn vẫn phải chuyển sang dùng Windows và Visual Studio 2005. 1.1.4 Quản lý dịch vụ và bảo mật Hiện tại có rất ít phần mềm diệt virus cho Linux vì mã độc tấn công Linux chưa phổ biến. Nhìn chung, cả Linux và Windows đều không thể hoàn toàn chống lại các tấn công về bảo mật cũng như virus nhưng hiện tại các tấn công nhằm vào Linux còn rất ít, không đáng kể nên người dùng Linux hầu như không cần lo lắng nhiều đến vấn đề bảo mật cũng như virus, ít ra cũng không "dính" mấy virus Yahoo Messenger một cách ngớ ngẩn. 1.1.5 Cấu hình dịch vụ mạng căn bản trên Linux Một hệ điều hành hiện đại là hệ điều hành cho phép chúng ta có thể làm việc thường trực online trên internet. Công nghệ của tương lai cho phép mọi người lưu trữ dữ liệu trên các hệ thống điện toán đám mây từ đó giảm thiểu nguy cơ về việc mất, hỏng dữ liệu nhưng khi lưu trữ dữ liệu trực tuyến cũng đem đến nhiều bất cập. Ở Việt Nam hệ thống cơ sở hạ tầng phục vụ internet còn hạn chế. Dịch vụ bảo mật còn chưa tốt vì vậy mặc dù hỗ trợ internet rất mạnh song Linux ở Việt Nam tạm thời không được sử dụng rộng dãi vì phần mềm còn hạn chế và hạ tầng cơ sở cũng như con người còn chưa thực sự phát sinh nhu cầu. Cấu hình mạng căn bản trên Linux quy tụ nhiều ứng dụng internet như cloud computing. Dịch vụ truy xuất dữ liệu từ xa, dịch vụ mạng, dịch vụ chia sẻ đữ liệu, dịch vụ điều khiển từ xa 1.1.6 Cài đặt cấu hình DHCP và DNS trên Linux DHCP là viết tắt của Dynamic Host Configuration Protocol: Giao thức Cấu hình Host Động DHCP được thiết kế làm giảm thời gian chỉnh cấu hình cho mạng TCP/IP bằng cách tự động gán các địa chỉ IP cho khách hàng khi họ vào mạng. DHCP tập trung việc quản lý địa chỉ IP ở các máy tính trung tâm chạy chương trình DHCP. Mặc dù có thể gán địa chỉ IP vĩnh viễn cho bất cứ máy tính nào trên mạng, DHCP cho phép Hệ điều hành mã nguồn mở Trang 15 gán tự động. Để khách có thể nhận địa chỉ IP từ máy chủ DHCP, bạn khai báo cấu hình để khách “nhận địa chỉ tự động từ một máy chủ”. Tùy chọn nầy xuất hiện trong vùng khai báo cấu hình TCP/IP của đa số hệ điều hành. Một khi tùy chọn nầy được thiết lập, khách có thể “thuê” một địa chỉ IP từ máy chủ DHCP bất cứ lúc nào. Phải có ít nhất một máy chủ DHCP trên mạng. Sau khi cài đặt DHCP, bạn tạo một phạm vi DHCP (scope), là vùng chứa các địa chỉ IP trên máy chủ, và máy chủ cung cấp địa chỉ IP trong vùng nầy. DHCP là một thuận lới rất lớn đối với người điều hành mạng. Nó làm yên tâm về các vấn đề cố hữu phát sinh khi phải khai báo cấu hình thủ công. Hãy xem bảng so sánh dưới đây để biết DHCP làm nhẹ bớt công việc như thế nào: DNS DNS viết tắt từ Domain Name System (tạm dịch Hệ thống tên miền) là Hệ thống phân giải tên được phát minh vào năm 1984 cho Internet và là một trong số các chuẩn công nghiệp của các cổng bao gồm cả TCP/IP. DNS là chìa khóa chủ chốt của nhiều dịch vụ mạng như duyệt Internet, mail server, web server...Có thể nói không có DNS, Internet sẽ mau chóng lụi tàn để bạn có thể hình dung về mức độ quan trọng của DNS. Các tài nguyên mạng được định danh bằng những địa chỉ IP dạng như 10.0.0.10 làm ví dụ. Mỗi máy tính khi kết nối vào mạng Internet cũng được gán cho 1 địa chỉ IP riêng biệt không trùng lẫn với bất kỳ máy tính nào khác trên thế giới. Tương tự vậy với website cũng có các địa chỉ IP riêng biệt. Tuy nhiên, bạn đâu thể nhớ rõ con số 123.30.128.10 sẽ dẫn đến website trường ĐHSPKT Hưng Yên Online thay vì gõ www.utehy.edu.vn. Đây là lúc DNS "trổ tài chuyển đổi" (ánh xạ) các con số địa chỉ IP khô khan thành những ký tự ABC thân thiện hơn. Nhờ DNS nên bạn không cần phải nhớ địa chỉ IP để vào website Tuổi Trẻ Online mà chỉ cần nhớ www.utehy.edu.vn. Nói cách khác, DNS cũng giống như một danh bạ điện thoại cho Internet. Nếu bạn biết tên của một người nhưng không biết số điện thoại hay ngược lại, bạn có thể tham khảo trong sổ danh bạ dễ dàng. Duyệt web nhanh hơn với Google Public DNS Hệ điều hành mã nguồn mở Trang 16 DNS khi triển khai sẽ sử dụng 2 thành phần: máy chủ DNS (DNS server) và máy trạm DNS (DNS client). Cả 2 thành phần này hoạt động như là ứng dụng dịch vụ nền trên hệ thống. 1.1.7 Dịch vụ chia sẻ dữ liệu trên Linux FTP thường chạy trên hai cổng, 20 và 21, và chỉ chạy riêng trên nền của TCP. Trình chủ FTP lắng nghe các yêu cầu dịch vụ từ những kết nối vào máy của các trình khách FTP, trên cổng 21. Đường kết nối trên cổng 21 này tạo nên một dòng truyền điều khiển, cho phép các dòng lệnh được chuyển qua trình chủ FTP. Để truyền tải tập tin qua lại giữa hai máy, chúng ta cần phải có một kết nối khác. Tùy thuộc vào chế độ truyền tải được sử dụng, trình khách (ở chế độ năng động - active mode) hoặc trình chủ (ở chế độ bị động -passive mode) đều có thể lắng nghe yêu cầu kết nối đến từ đầu kia của mình. Trong trường hợp kết nối ở chế độ năng động, (trình chủ kết nối với trình khách để truyền tải dữ liệu) , trình chủ phải trước tiên đóng kết vào cổng 20, trước khi liên lạc và kết nối với trình khách. Trong chế độ bị động, hạn chế này được giải tỏa, và việc đóng kết trước là một việc không cần phải làm. 1.1.8 Dịch vụ quản lý tài nguyên tập chung trên Linux Giống như các dịch vụ thư mục khác, chẳng hạn như Novell Directory Services (NDS), samba là một hệ thống chuẩn và tập trung, dùng để tự động hóa việc quản lý mạng dữ liệu người dùng, bảo mật và các nguồn tài nguyên được phân phối, cho phép tương tác với các thư mục khác. Thêm vào đó, samba được thiết kế đặc biệt cho các môi trường kết nối mạng được phân bổ theo một kiểu nào đó. Với người dùng hoặc quản trị viên, samba cung cấp một khung nhìn mang tính cấu trúc để từ đó dễ dàng truy cập và quản lý tất cả các tài nguyên trong mạng. 1.1.9 Cài đặt cấu hình webserver trên Linux Máy Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên quan khác. (các mã Script, các chương trình, và các file Multimedia) Hệ điều hành mã nguồn mở Trang 17 Web Server có khả năng gửi đến máy khách những trang Web thông qua môi trường Internet (hoặc Intranet) qua giao thức HTTP - giao thức được thiết kế để gửi các file đến trình duyệt Web (Web Browser), và các giao thức khác. Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name. Giả sử khi bạn đánh vào thanh Address trên trình duyệt của bạn một dòng sau đó gõ phím Enter bạn sẽ gửi một yêu cầu đến một Server có Domain Name là www.abc.com. Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của bạn. Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bởi việc cài đặt lên nó một chương trình phần mềm Server Software và sau đó kết nối vào Internet. Khi máy tính của bạn kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông tin từ một trang Web nào đó, Web Server Software sẽ nhận yêu cầu và gửi lại cho bạn những thông tin mà bạn mong muốn. Giống như những phần mềm khác mà bạn đã từng cài đặt trên máy tính của mình, Web Server Software cũng chỉ là một ứng dụng phần mềm. Nó được cài đặt, và chạy trên máy tính dùng làm Web Server, nhờ có chương trình này mà người sử dụng có thể truy cập đến các thông tin của trang Web từ một máy tính khác ở trên mạng (Internet, Intranet). Web Server Software còn có thể được tích hợp với CSDL (Database), hay điều khiển việc kết nối vào CSDL để có thể truy cập và kết xuất thông tin từ CSDL lên các trang Web và truyền tải chúng đến người dùng. Server phải hoạt động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, để phục vụ cho việc cung cấp thông tin trực tuyến. Vị trí đặt server đóng vai trò quan trọng trong chất lượng và tốc độ lưu chuyển thông tin từ server và máy tính truy cập. 1.2 Giới thiệu về linux 1.2.1 Lịch sử phát triển của linux và giới thiệu các phiên bản linux Linux là một HDH dạng UNIX (Unix-like Operating System) chạy trên máy PC với bộ điều khiển trung tâm (CPU) Intel 80386 trở lên, hay các bộ vi xử lý trung tâm tương thích AMD, Cyrix. Linux ngày nay còn có thể chạy trên các máy Macintosh hoặc SUN Sparc. Linux thỏa mãn chuẩn POSIX.1. Linux được viết lại toàn bộ từ con số không, tức là không sử dụng một dòng lệnh nào của Unix để tránh vấn đề bản quyền của Unix. Tuy nhiên hoạt động của Linux hoàn toàn dựa trên nguyên tắc của hệ điều hành Unix. Vì vậy nếu một người nắm được Linux, thì sẽ nắm được UNIX. Nên chú ý rằng giữa các phiên bản Unix sự khác nhau cũng không kém gì giữa Unix và Linux. Năm 1991 Linus Torvalds, sinh viên của đại học tổng hợp Helsinki, Phần lan, bắt đầu xem xét Minix, một phiên bản của Unix làm ra với mục đích nghiên cứu cách tạo ra một hệ điều hành Unix chạy trên máy PC với bộ vi xử lý Intel 80386. Ngày 25/8/1991, Linus cho ra version 0.01 và thông báo trên comp.os.minix của Internet về dự định của mình về Linux. Ngày 1/1992, Linus cho ra version 0.12 với shell và C compiler. Linus không cần Minix nữa để recompile HDH của mình. Linus đặt tên HDH của mình là Linux. Năm 1994, phiên bản chính thức 1.0 được phát hành. Hệ điều hành mã nguồn mở Trang 18 Quá trình phát triển của Linux được tăng tốc bởi sự giúp đỡ của chương trình GNU (GNU‟s Not Unix), đó là chương trình phát triển các Unix có khả năng chạy trên nhiều platform. Đến hôm nay, cuối 2013, phiên bản mới nhất của Linux kernel là 3.10, có khả năng điều khiển các máy đa bộ vi xử lý (hiện tại Linux hỗ trợ máy tính có tối đa 16 CPUs và các máy tính có xử lý đa lõi) và rất nhiều các tính năng khác. 1.2.2 Sự phát triển của Linux và các công nghệ liên quan Một trong những mục tiêu chính của hệ điều hành là giúp cho người sử dụng độc lập với thiết bị. Trong Linux, các thiết bị phần cứng đều được xem như là các tập tin thông thường: chúng có thể được mở, đóng, đọc, ghi, và sử dụng cùng những lời gọi hệ thống để thao tác. Mọi thiết bị trong hệ thống đều được biểu diễn bởi các tập tin thiết bị, ví dụ đĩa IDE đầu tiên của hệ thống được biểu diễn bởi /dev/had các đĩa Santa được biểu diễn bởi /dev/sda còn các ổ CD được biểu diễn là /dev/scd. Linux ánh xạ tập tin thiết bị vào các lời gọi hệ thống. Linux hỗ trợ ba loại thiết bị là: ký tự, khối và mạng. Có nhiều chương trình điều khiển thiết bị khác nhau trong kernel của Linux nhưng chúng cùng chia xẻ những thuộc tính chung: Mã nguồn của kernel: chương trình điều khiển thiết bị là một phần của kernel và cũng như những đoạn mã nguồn khác nếu nó bị lỗi nó có thể đe dọa nghiêm trọng đến hệ thống. Chương trình điều khiển thiết bị cung cấp một giao tiếp chuẩn với kernel của Linux. Chúng sử dụng những dịch vụ chuẩn từ kernel này. Hầu hết các chương trình điều khiển thiết bị của Linux được nạp như những đơn thể của kernel khi có yêu cầu và được gỡ ra khi đó nó không còn được sử dụng nữa. Khi khởi động hệ thống mỗi chương trình điều khiển thiết bị được khởi tạo và nó sẽ tìm thiết bị phần cứng mà nó sẽ điều khiển. Linux sử dụng cơ chế DMA và sử dụng một vector cấu trúc dma_chan để quản lý các kênh DMA (mỗi kênh có một vector). Mỗi lớp điều khiển thiết bị: ký tự, khối, mạng cung cấp những cơ chế giao tiếp chung với kernel. Khi một thiết bị được khởi tạo, thanh ghi điều khiển thiết bị bên trong kernel của Linux được thêm một entry trong vector chrdevs của cấu trúc devive_struct. Một định danh (id) được xác định cho vector này và là cố định. Mỗi entry trong vector chrdevs, một device_struct gồm hai phần tử: một con trỏ đến tên của thanh ghi điều khiển thiết bị và một con trỏ tới khối của tập tin thao tác. Khối của tập tin thao tác này là địa chỉ của những thủ tục trong chương trình điều khiển thiết bị mà chúng kiểm soát những thao tác như mở, đóng, đọc, ghi. Nội dung của /proc/devices cho các thiết bị ký tự được lấy từ vector chrdevs. Các thiết bị khối được truy xuất như những tập tin. Linux quản lý các thanh ghi thiết bị khối bằng vector blkdevs, và tương tự như vector chrdevs mỗi entry của nó là các cấu trúc device_struct nhưng có hai loại thiết bị khối: SCSI và IDE. Mỗi chương trình điều khiển thiết bị khối phải cung cấp một giao tiếp với vùng đệm cũng như những thao tác tập tin thông thường. Cấu trúc blk_dev_struct bao gồm địa chỉ của các thủ tục được yêu cầu và một con trỏ đến những cấu trúc dữ liệu cần thiết, mỗi cấu trúc này sẽ đại diện cho một yêu cầu từ vùng đệm cho những điều khiển đọc hoặc ghi một khối dữ liệu. Trong Linux, mỗi thiết bị mạng là một thực thể có thể nhận hoặc gửi gói dữ liệu. Mỗi thiết bị mạng được biểu diễn bằng một cấu trúc device. Các chương trình điều khiển thiết bị mạng sẽ ghi nhận những thiết bị mà chúng sẽ điều khiển trong quá trình khởi tạo mạng lúc khởi động hệ thống. Cấu trúc device chứa những thông tin về các thiết bị và địa chỉ của các hàm hỗ trợ những phương thức và dịch vụ mạng khác nhau. Những hàm này chủ yếu tập trung vào việc chuyển dữ liệu sử Hệ điều hành mã nguồn mở Trang 19 dụng các thiết bị mạng. Các thiết bị sử dụng các cơ chế hỗ trợ mạng chuẩn để chuyển dữ liệu nhận được cho lớp phương thức thích hợp. Tất cả các gói dữ liệu chuyển và nhận được biểu diễn bởi cấu trúc sk_buff, đây là một cấu trúc linh động cho phép các tiêu đề (header) phương thức mạng có thể dễ dàng thêm vào hoặc loại bỏ. Cấu trúc device lưu những thông tin về thiết bị mạng: tên, thông tin về đường truyền, cờ trạng thái giao tiếp (mô tả các thuộc tính và khả năng của các thiết bị mạng), thông tin về phương thức, hàng đợi gói tin (đây là hàng đợi của các gói sk_buff chờ chuyển dữ liệu trên thiết bị mạng đó), các hàm hỗ trợ (mỗi thiết bị cung cấp một tập hợp các thủ tục chuẩn được gọi bởi lớp phương thức). 1.2.3 Các bản phát hành của linux Linux được phát hành bởi nhiều tổ chức khác nhau, mỗi tổ chức như thể đều có một chương trình kèm theo nhóm tập tin nòng cốt của Linux. Mỗi bản phát hành Linux đều dựa trên một phiên bản chính nào đó. Ví dụ như Red Hat 9.2 dựa vào kernel 2.6.4. Với Red Hat, các Kernel Linux được chứa trong hệ thống Red Hat Package Management và được cài đặt như là một phần của hệ thống này. Open Linux của Caldera cũng như thế vì căn cứ trên bản phát hành Red Hat. Bản phát hành HOWTO cũng cung cấp một danh sách chi tiết của các bản Linux. Linux Mint Hình 1.2: Hệ điều hành Mint Linux Mint 14 phát hành vào tháng mười hai, tên mã là 'Nadia' được đóng gói với một loạt các cải tiến từ các phiên bản trước đây. Rất nhiều phần mềm hữu ích được cài đặt sẵn, bao gồm phần mềm hỗ trợ các trình điều khiển thiết bị khác nhau. Linux Mint khá thân thiện với người dùng, hiệu quả sử dụng cao, trong khi tại cùng một thời điểm đó, nó trở thành sự yêu thích của các chuyên viên máy tính Linux có đầy kinh nghiệm. Mint đã được tùy chỉnh màn hình desktop và các menu, và nó có giao diện web. Ubuntu Hình 1.3: Hệ điều hành Ubuntu Phát hành mới nhất: Ubuntu 13.10 Ubuntu là bản phân phối Linux, vào thời điểm hiện tại nó đã chạm mốc 20 triệu người sử dụng trong tám năm kể từ khi được biết đến. Nếu bạn là một người mới sử dụng hệ điều hành mã nguồn mở Linux, Ubuntu là hệ điều hành Linux hoàn hảo cho bạn để bắt đầu tập làm quen. Nó cũng là một trong những đối thủ hàng đầu như là một sự thay thế Windows. Hệ điều hành mã nguồn mở Trang 20 Mageia Hình 1.4: Hệ điều hành Ubuntu Hê điều hành Linux này đã chứng kiến sự tăng trưởng mạnh mẽ kể từ năm ngoái. Nó là một phần của Mandriva, khá là phổ biến. Nó có hầu hết các tính năng phong phú của Linux với khả năng cơ bản, nhưng chưa mạnh. Nó có thể chạy được trên bất kỳ máy tính nào và thường được cấu hình cho các máy chủ. Những người sáng lập và phát triển hệ điều hànhMageia luôn mong muốn cung cấp miễn phí cho nhu cầu của tất cả người sử dụng. Fedora Hình 15: Hệ điều hành Ubuntu Phiên bản mới nhất: Fedora 19 Fedora là một trong những hệ điều hành Linux với lượng người dùng khổng lồ và có nhiều diễn đàn hỗ trợ. Tính năng linh hoạt làm cho nó trở thành một trong những sự lựa chọn tốt nhất. Fedora thích hợp cho các doanh nghiệp. OpenSUSE Hình 1.6: Hệ điều hành Ubuntu Phiên bản mới nhất: openSUSE 12.3 openSUSE là cộng đồng mã nguồn mở được tài trợ bởi Novell. Nhóm openSUSE có hai mục tiêu: làm cho openSUSE Linux dễ dàng sử dụng cho bất cứ người sử dụng nào và đơn giản hóa việc phát triển cũng như đóng gói mã nguồn của openSUSE Linux để làm cho nó thân thiện với lập trình viên. Bản phân phối Linux này có số lượng các phần mềm và các công cụ phong phú để bạn có thể dễ dàng sử dụng như: SpiderOak lưu trữ đám mây, Mozilla Firefox để duyệt web và mã nguồn mở email client Thunderbird. Debian Hình 1.7: Hệ điều hành Ubuntu Phiên bản mới nhất: Debian 6 Hệ điều hành Debian được xây dựng với cam kết hướng tới một tầm nhìn hệ thống điều hành miễn phí và mã nguồn mở. Debian là nhân của Linux và đi kèm với hơn 20.000 gói phần mềm ứng dụng được cài đặt sẵn chỉ việc tải xuống, tất cả đều miễn phí. Bạn có thể thực hiện các công việc như chỉnh sửa tài liệu, chơi trò chơi, viết mã và nhiều hơn nữa với các công cụ được cung cấp hoàn toàn miễn phí. Hệ điều hành mã nguồn mở Trang 21 1.2.4 Ubuntu Desktop 12.04 Phiên bản hỗ trợ lâu dài (LTS) mới nhất của hệ điều hành Ubuntu đã chính thức ra mắt hôm 26/4/2012. Phiên bản 12.04 LTS với tên mã Precise Pangolin sẽ được hỗ trợ đến năm 2017. Chữ P trong tên mã của Ubuntu 12.04 còn có nghĩa là Performance (hiệu năng). Ubuntu 12.04 có tốc độ nhanh nhất từ trước đến nay. Ngoài ra, Unity 5 mang lại trải nghiệm khác hẳn, các tính năng đều được hoàn thiện tỉ mỉ trong bản chính thức này. Có vài sự thay đổi, chẳng hạn như Rhythmbox bị Banshee thay thế nay đã quay trở lại. Người dùng được trang bị các phiên bản mới nhất của LibreOffice, trình duyệt Firefox, trình thư điện tử Thunderbird... VLC phiên bản 2.0 vừa ra mắt gần đây cũng được tích hợp trong Ubuntu 12.04. Hình 1.9:Một vài hình ảnh của phiên bản 12.04 LTS 1.2.5 CentOS 6.0 server Hệ điều hành CentOS là một trong số những hệ điều hành máy chủ được sử dụng trong hầu hết các doanh nghiệp hiện nay. CentOS viết tắt từ cụm từ (Community Enterprise Operating System) là một hệ điều hành mã nguồn mở được phát triển dựa trên nhân của Red Hat Enterprise Linux, có thể tương thích hoàn toàn với các phần mềm chạy trên Red Hat. Các tính năng của CentOS không thua gì phiên bản Red Hat Enterprise nhưng lại hoàn toàn miễn phí, đó là lý do các nhà cung cấp Hosting, các quản trị mạng đều hay sử dụng CentOS là hệ điều hành chính để cung cấp cho khách hàng, bởi các tính năng ổn định và mạnh mẽ của CentOS mang lại. Khi sử dụng CentOS để quản trị mạng các Bạn nên chọn phiên bản 5.5 trở lên bởi vì tính tương thích cao, dễ cấu hình, hỗ trợ cài đặt online tốt. Hình 1.8: Giao diện đăng nhập Ubuntu 12.04 Hệ điều hành mã nguồn mở Trang 22 Bài 2. Cơ bản về hệ điều hành và các ứng dụng trên hệ điều hành linux 2.1 Cấu hình cơ bản trƣớc khi cài đặt Linux 2.1.1 Giới thiệu trình tự cài đặt hệ điều hành Chuẩn bị Chuẩn bị các thiết bị cần thiết cho việc cài đặt Linux bao gồm: Nguồn cài đặt: Một LiveCD (DVD) chứa bộ cài Linux hoặc một USB khởi động chứa bộ cài Linux. Công việc tạo USB chứa bộ cài Linux thường khá đơn giản dựa trên một file ISO với phần mềm UnetBootin (Trên bản thân các hệ điều hành Linux đều chưa ứng dụng cho phép tạo bộ cài trên USB). Một bộ máy tính Pentium III với 256 MB RAM trở lên, có gắn một ổ đọc CD là đủ để sử dụng đĩa Live CD Ubuntu. Bộ nhớ RAM càng lớn thì càng tốt do môi trường làm việc đồ họa GNOME khá tốn về bộ nhớ. Máy tính không cần thiết phải gắn một ổ đĩa cứng. Tuy nhiên, nếu sau này muốn cài hệ điều hành Ubuntu vào đĩa cứng, thì cần một ổ cứng với 5-10 GB trống. Mainboard của máy tính phải hỗ trợ việc khởi động máy tính từ ổ đọc đĩa CD, đó là trường hợp của hầu như tất cả các mainboard máy tình từ năm 2000 trở lại đây. Khởi động Live CD Để khởi động từ thiết bị đĩa CD hoặc USB thông thường ta sử dụng 1 trong 2 cách:  Thay đổi thông tin khởi động trong BiOS  Sử dụng phím tắt khởi động trong quá trình bặt máy tính Cài đặt hệ thống vào đĩa cứng Việc cài đặt hệ điều hành lên ổ cứng sẽ giúp cho hệ thống chạy có tốc độ cao hơn cải thiện được hiệu năng sử dụng máy tính so với việc chạy hệ điều hành trên CDRom hoặc trên USB. Bƣớc 1: Chọn ngôn ngữ Hộp thoại thứ nhất cho phép bạn chọn được ngôn ngữ giao diện đồ họa của hệ thống. Nếu bạn chọn tiếng Việt, sau khi đã cài xong, bạn sẽ vẫn chọn được giao diện người dùng bằng tiếng anh, nếu bạn thích. Bƣớc 2: Chọn mũi giờ địa phƣơng Nếu bạn đã chọn ngôn ngữ là tiếng Việt, tiến trình cài đặt sẽ chọn mũi giờ của Việt Nam, đại diện là TP Hồ Chí Minh. Nếu bạn thấy giờ của hệ thống không chính xác, bạn sẽ có cơ hội đổi giờ sau khi đã cài đặt xong. Nếu bạn không đang sống ở Việt Nam, bạn có thể chọn mũi giờ địa phương thích hợp trên bản đồ. Bƣớc 3: Chọn bàn phím Đối với lựa chọn ngôn ngữ là tiếng Việt, lựa chọn sơ đồ bàn phím theo kiểu Hoa Kỳ (USA) là hợp lý bởi vì đây là loại bàn phím phổ biến nhất ở Việt Nam. Tuy nhiên nếu bạn đang dùng một bàn phím loại khác, bạn có thể chọn bàn phím đó bằng cách nhấn vào “Lựa chọn riêng của bạn” và tìm bàn phím thích hợp trong danh sách. Bạn cũng có thể gõ vài phím vào vùng thông tin cho hệ thống tự động xác định loại bàn phím mà bạn đang dùng là loại bàn phím gì. Bƣớc 4: Phân vùng ổ cứng Hệ điều hành mã nguồn mở Trang 23 Bạn phải giành tối thiểu 02 phân vùng trống để cài GNU/Linux: một phân vùng dành cho hệ thống tập tin root “/” và một phân vùng để tạo ra một bộ nhớ đệm (swap area) cho hệ thống trên ổ đĩa cứng. Tùy theo tình trạng sử dụng ổ cứng, trình cài đặt sẽ đề xuất nhiều giải pháp phân vùng ổ đĩa cứng để cài hệ thống. Bƣớc 5: Thiết lập tài khoản ngƣời dùng: Bạn sử dụng màn hình hỗ trợ để thiết lập các thông tin liên quan đến người dùng hệ thống bao gồm: Username, password, hình minh họa, họ tên người dùng, tên máy tính Bƣớc 6: Tiến hành cài đặt Ubuntu Sau khi bạn đã lựa chọn xong hết các thông tin trong hệ thống bạn tiến hành cài đặt cho hệ điều hành lên ổ cứng. Chú ý rằng trong quá trình cài đặt bạn phải cẩn thận trong vấn đề chia ổ cứng. Nếu trên máy tính của bạn đang tồn tại dữ liệu và một trong nhưng thao tác chia sai ổ cứng sẽ làm cho dữ liệu trên máy tính của bạn bị xóa. 2.1.2 Quản trị các phân vùng chính trên Linux Hệ thống Linux cần thiết ít nhất một phân vùng riêng. Phân vùng đó có thể chứa toàn bộ hệ điều hành, tất cả các ứng dụng và tập tin cá nhân. Vùng nhớ “chuyển đổi” (swap area) là chứa hỗn hợp cho hệ điều hành, cho phép hệ thống sử dụng bộ nhớ trên đĩa là “bộ nhớ ảo”. Bằng cách để chỗ trao đổi trên phân vùng riêng. Phần lớn người cũng lựa chọn cho hệ thống GNU/Linux có hơn số phân vùng tối thiểu. Có hai lý do bạn có thể muốn chia hệ thống tập tin ra nhiều phân vùng nhỏ hơn. Lý do thứ nhất là sự an toàn. Nếu cái gì xảy ra để hỏng hệ thống tập tin, thường chỉ một phân vùng riêng bị hại. Vì vậy bạn cần phải phục hồi chỉ một phần của hệ thống. Bạn nên tạo tối thiểu một phân vùng riêng thường được gọi như là “phân vùng gốc” (root partition), mà chứa những thành phần chủ yếu nhất của hệ thống. Nếu phân vùng khác nào bị hỏng, bạn vẫn còn có khả năng khởi động vào GNU/Linux trên phân vùng riêng này, để sửa chữa hệ thống. Phân vùng gốc này có thể tránh trường hợp mà bạn cần phải cài đặt lại toàn bộ hệ thống. Lý do thứ hai thường là quan trọng hơn trong trường hợp kinh doanh, nhưng nó thật sự phụ thuộc vào cách sử dụng máy tính. Chẳng hạn máy phục vụ thư tín tràn ngập bởi thư rác có thể chiếm dễ dàng toàn bộ phân vùng. Nếu bạn đã cấu hình vùng thư tín /var/mail là phân vùng riêng trên máy phục vụ thư tín, phần lớn của hệ thống còn lại hoạt động được thậm chí nếu nó bị rác tràn. Mặt không thuận lợi thật duy nhất khi sử dụng phân vùng thêm là thường khó biết trước các nhu cầu của mình. Nếu bạn cấu hình phân vùng quá nhỏ, bạn sẽ phải hoặc cài đặt lại hệ thống, hoặc cũng luôn chuyển các thứ ra để tạo chỗ trống trong phân vùng thấp nhỏ đó. Mặt khác, nếu bạn cấu hình phân vùng quá lớn, bạn sẽ hoài phí sức chứa có thể được tận dụng trên vùng khác. Hiện thời sức chứa trên đĩa là rẻ, nhưng ta không nên dùng lãng phí. 2.1.3 Sự phân mảnh của hệ thống file Nhiều người dùng Windows, kể cả những người không có nhiều kinh nghiệm thì đều cho rằng: chống phân mảnh định kỳ cho hệ thống file sẽ tăng tốc độ máy tính của mình. Cái mọi người không biết là tại sao lại thế. Nguyên nhân cụ thể như sau: một ổ đĩa cứng có nhiều sector trên nó, mỗi sector có thể chứa nhiều mẩu dữ liệu. Những file, đặc biệt là những file lớn phải được lưu qua nhiều sector khác nhau. Người dùng lưu nhiều loại file khác nhau trong ổ đĩa hệ thống. Mỗi một file trong đó sẽ được Hệ điều hành mã nguồn mở Trang 24 lưu trên một cụm sector liên tiếp. Sau đó, người dùng sửa đổi file lưu ban đầu, làm tăng kích thước file. Hệ thống file sẽ cố gắng lưu những phần mới của file gần những phần ban đầu. Không may là, nếu không đủ không gian liền kề, file phải được chia thành nhiều mẩu. Khi ổ đĩa cứng đọc file, đầu dò phải bỏ qua khoảng giữa những vị trí vật lý khác nhau trên ổ cứng để đọc từng đoạn sector một. Việc này làm chậm tốc độ đọc. Chống phân mảnh là một xử lý tập trung để chuyển các bit của file xung quanh để giảm phân mảnh, đảm bảo mỗi file được lưu liền mạch trên ổ đĩa. Tuy nhiên, với những ổ đĩa trạng thái rắn thì lại khác. Những ổ này không có bộ phận cơ học chuyển động và không nên thực hiện chống phân mảnh. Chống phân mảnh một ổ SSD thực tế sẽ làm giảm tuổi thọ ổ. Và ở những phiên bản mới nhất của Windows, bạn không thực sự cần phải lo lắng về chống phân mảnh hệ thống file. Windows sẽ tự động làm việc này. Hệ thống file trong Windows hoạt động như thế nào? Định dạng FAT cũ của Microsoft không cố sắp xếp file một cách thông minh. Định dạng này xuất hiện mặc định lần cuối trên Windows 98 và ME, mặc dù nó vẫn còn sử dụng trên các ổ USB hiện nay. Khi lưu một file vào hệ thống file kiểu FAT, máy sẽ lưu càng gần điểm bắt đầu của đĩa nhất có thể. Khi lưu file thứ hai, nó lưu file ngay sau file đầu tiên và cứ như vậy. Khi những file ban đầu tăng kích thước, chúng sẽ luôn bị phân mảnh. Không có không gian trống nào xung quanh để chúng mở rộng ra. Định dạng NTFS mới hơn của Microsoft xuất hiện trong Windows XP và 2000 thì thông minh hơn một chút. Nó cấp nhiều không gian trống “đệm” xung quanh các file trên ổ, mặc dù vậy, những hệ thống file NTFS vẫn trở nên phân mảnh theo thời gian. Do phương thức hoạt động như vậy nên hệ thống file của Windows cần được chống phân mảnh để đạt hiệu năng cao nhất. Microsoft đã xoa dịu vấn đề này bằng cách chạy chương trình chống phân mảnh trên chế độ nền ở những bản Windows mới nhất. Hệ thống file trong Linux hoạt động như thế nào? Các hệ thống file ext2, ext3 và ext4 của Linux đặc biệt là ext4 được sử dụng cho Ubuntu và hầu hết các bản phân phối Linux khác, cấp phát file một cách thông minh hơn. Thay vì để nhiều file gần nhau trên ổ đĩa cứng, những hệ thống file Linux rải nhiều file khác nhau trên toàn bộ đĩa cứng, để lại một lượng lớn không gian trống ở giữa chúng. Khi một file được chỉnh sửa và cần mở rộng thì thường có nhiều không gian trống xung quanh cho file. Nếu hiện tượng phân mảnh xảy ra, hệ thống file sẽ cố gắng di dời những file xung quanh để làm giảm phân mảnh tự động mà không cần tiện ích chống phân mảnh. Do cách hoạt động như vậy, hiện tượng phân mảnh sẽ xuất hiện nếu hệ thống file đầy. Nếu đầy 95% (hoặc thậm chí là 80%), người dùng sẽ gặp hiện tượng phân mảnh. Tuy nhiên, hệ thống file được thiết kế để tránh phân mảnh một cách tự nhiên. Nếu gặp vấn đề với phân mảnh trên Linux, bạn có thể cần một ổ đĩa cứng lớn hơn. Nếu thực sự cần chống phân mảnh hệ thống file, cách đơn giản và đáng tin cậy nhất là: Copy toàn bộ file khỏi phân vùng, dọn dẹp phân vùng, sau đó copy file lại phân vùng. Hệ thống file sẽ cấp phát file một cách thông minh khi copy chúng lại đĩa cứng. Đó cũng là lý do tại sao bạn copy dữ liệu trên Linux thường có tốc độ khá chậm so với windows. Hệ điều hành mã nguồn mở Trang 25 2.2 Linux kernel Linux kernel cung cấp một giao diện giữa các ứng dụng người dùng, hệ thống phần cứng và tài nguyên. Một vài chức năng của Linux là:  Quản lý bộ nhớ.  Quản lý hệ thống file.  Xử lý các lỗi và ngắt.  Thực hiện các dịch vụ I/O. Cấp phát tài nguyên hệ thống cho các người dùng 2.2.1 Giới thiệu Về bản chất, có nhiều cách để xây dựng cấu trúc và biên dịch 1 bộ kernel nhất định từ đầu. Nhìn chung, với hầu hết các kernel hiện nay, chúng ta có thể chia ra làm 3 loại: monolithic, microkernel, và hybrid. Linux sử dụng kernel monolithic trong khi OS X (XNU) và Windows 7 sử dụng kernel hybrid. Microkernel: Microkernel có đầy đủ các tính năng cần thiết để quản lý bộ vi xử lý, bộ nhớ và IPC. Có rất nhiều thứ khác trong máy tính có thể được nhìn thấy, tiếp xúc và quản lý trong chế độ người dùng. Microkernel có tính linh hoạt khá cao, vì vậy bạn không phải lo lắng khi thay đổi 1 thiết bị nào đó, ví dụ như card màn hình, ổ cứng lưu trữ... hoặc thậm chí là cả hệ điều hành. Microkernel với những thông số liên quan footprint rất nhỏ, tương tự với bộ nhớ và dung lượng lưu trữ, chúng còn có tính bảo mật khá cao vì chỉ định rõ ràng những tiến trình nào hoạt động trong chế độ user mode, mà không được cấp quyền như trong chế độ giám sát - supervisor mode. Ƣu điểm:  Tính linh hoạt cao  Bảo mật  Sử dụng ít footprint cài đặt và lưu trữ Nhƣợc điểm:  Phần cứng đôi khi “khó hiểu” hơn thông qua hệ thống driver  Phần cứng hoạt động dưới mức hiệu suất thông thường vì các trình điều khiển ở trong chế độ user mode  Các tiến trình phải chờ đợi để được nhận thông tin  Các tiến trình không thể truy cập tới những ứng dụng khác mà không phải chờ đợi Monolithic Kernel: Với Monolithic thì khác, chúng có chức năng bao quát rộng hơn so với microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng còn can thiệp vào trình điều khiển driver, tính năng điều phối file hệ thống, các giao tiếp qua lại giữa server... Monolithic tốt hơn khi truy cập tới phần cứng và đa tác vụ, bởi vì nếu 1 chương trình muốn thu thập thông tin từ bộ nhớ và các tiến trình khác, chúng cần có quyền truy cập trực tiếp và không phải chờ đợi các tác vụ khác kết thúc. Nhưng đồng thời, chúng cũng là nguyên nhân gây ra sự bất ổn vì nhiều chương trình chạy trong chế độ supervisor mode hơn, chỉ cần 1 sự cố nhỏ cũng khiến cho cả hệ thống mất ổn định. Ưu điểm: Hệ điều hành mã nguồn mở Trang 26  Truy cập trực tiếp đến các phần cứng  Dễ dàng xử lý các tín hiệu và liên lạc giữa nhiều thành phần với nhau  Nếu được hỗ trợ đầy đủ, hệ thống phần cứng sẽ không cần cài đặt thêm driver cũng như phần mềm khác  Quá trình xử lý và tương tác nhanh hơn vì không cần phải chờ đợi Nhược điểm:  Tiêu tốn nhiều footprint cài đặt và lưu trữ  Tính bảo mật kém hơn vì tất cả đều hoạt động trong chế độ giám sát - supervisor mode Hybrid Kernel: Khác với 2 loại kernel trên, Hybrid có khả năng chọn lựa và quyết định những ứng dụng nào được phép chạy trong chế độ user hoặc supervisor. Thông thường, những thứ như driver và file hệ thống I/O sẽ hoạt động trong chế độ user mode trong khi IPC và các gói tín hiệu từ server được giữ lại trong chế độ supervisor. Tính năng này thực sự rất có ích vì chúng đảm bảo tính hiệu quả của hệ thống, phân phối và điều chỉnh công việc phù hợp, dễ quản lý. Ưu điểm:  Các nhà phát triển có thể chọn và phân loại những ứng dụng nào sẽ chạy trong chế độ thích hợp  Sử dụng ít footprint hơn so với monolithic kernel  Có tính linh hoạt và cơ động cao nhất Nhược điểm:  Có thể bị bỏ lại trong quá trình gây treo hệ thống tương tự như với microkernel  Các trình điều khiển thiết bị phải được quản lý bởi người dùng Vậy những file Linux Kernel này ở đâu? Các file kernel này, trong Ubuntu chúng được lưu trữ tại thư mục /boot và đặt tên theo vmlinuz-version. Khi bộ nhớ ảo bắt đầu được phát triển để thực hiện các tác vụ đa luồng, tiền tố vm sẽ được đặt vào đầu các file kernel để phân biệt khả năng hỗ trợ công nghệ ảo hóa. Kể từ đó, Linux kernel được gọi là vmlinux, nhưng hệ thống kernel này đã phát triển với tốc độ quá nhanh, lớn hơn so với dung lượng bộ nhớ boot chuẩn của hệ điều hành, vì vậy những file kernel này đã được nén theo chuẩn zlib – và ký tự z được thêm vào là do như vậy. Ngoài ra còn 1 số định dạng nén thường gặp khác là LZMA hoặc BZIP2, nhưng chúng vẫn được gọi chung là zImage. Các phiên bản được sắp xếp thứ tự theo định dạng A.B.C.D, trong đó A.B thường là 2.6, C đại diện cho phiên bản, và D là ký hiệu các bản vá lỗi hoặc patch: 2.2.2 Kernel modules Trong những năm đầu của Linux, kernel Linux là một monolithic kernel. Monolithic kernel là tất cả các dịch vụ của Kernel được biên dịch hết vào trong nó và không có drivers ngoài nào được gọi. Với monolithic kernel, kernel phải được biên dịch lại mỗi khi có một thiết bị mới được gắn vào hệ thống. Khi sự hỗ trợ phần cứng của Linux tăng lên thì kích thước của Kernel tăng lên và cho thấy sự bất tiện của nó. thế là modular Linux kernel ra đời. Modular Linux kernel bao gồm một kernel tối tiểu và một tập các modules có thể được thêm vào khi kernel đang chạy để hỗ trợ các thiết bị và dịch vụ mới. Hệ điều hành mã nguồn mở Trang 27 2.2.3 Các chức năng của kernel Quản lý bộ nhớ: Quản lý các bộ nhớ trong và bộ nhớ ngoài trên máy tính Quản lý hệ thống file: Các dữ liệu trên máy tính được kiểm soát thông qua các hoạt động đọc ghi và kernel là hệ thống kiểm soát hoàn toàn các thông tin này. Xử lý các lỗi và ngắt. Thực hiện các dịch vụ I/O. Cấp phát tài nguyên hệ thống cho các người dung. GNU-GPL project (GNU General Public License) 2.3 Gnu-gpl project (gnu general public license) 2.3.1 Gnu-gpl là gì? GNU General Public License là một hình thức bản quyền cho phép đảm bảo việc trao đổi tự do các phần mềm, đảm bảo các phần mềm là miễn phí đối với tất cả các người sử dụng. General Public License áp dụng cho hầu hết các sản phẩm của Free Software Foundation's. Bạn có thể áp dụng GNU GPL cho phần mềm của bạn. Giấy phép phần mềm mã nguồn mở (Open Source) cho phép người dùng đọc, truy cập, thay đổi, làm lại mã nguồn của một sản phẩm phần mềm (OSI – Open Source Initiative). Các giấy phép phần mềm được OSI phê chuẩn và quản lý tại Open Source mang ý nghĩa “tự do” nhiều hơn là “miễn phí”. Mỗi loại giấy phép có những điều khoản quy định riêng. Ví dụ: BSD Licensing chỉ dài 1 trang với 3 điều khoản cần phải tuân thủ nhưng trong khi đó thì Mozilla Public License 1.1 dài đến 12 trang đề cập mọi thứ từ việc định nghĩa thuật ngữ đến cách thức áp dụng giấy phép cho chính phủ. Một trong những điều khoản quan trọng trong OS Licensing là: Nếu ta thay đổi mã nguồn thì phải lập lại tài liệu về các thay đổi và đính kèm mã nguồn theo phần mềm. Không được thông báo bản quyền của mình (copyright) mặc dù đã thay đổi mã nguồn của chương trình. Người ta còn nói GNU GPL là “Copyleft” để thay cho khái niệm “Copyright”. 2.3.2 Nội dung chính của GNU Tác giả vẫn giữ bản quyền phần mềm của mình bạn có thể copy và phân phối chương trình dưới bất cứ hình thức nào và giá tùy ý. Bạn có thể thay đổi một phần của chương trình và phân phối thay đổi của mình cùng toàn bộ chương trình ccho người khác với điều kiện nói rõ phần mình thay đổi. Nếu phần bạn thay đổi không thể tách rời tòan bộ chương trình thì GNU GPL sẽ mở rộng sang toàn bộ chương trình, kể cả phần bạn viết. Bạn không được thông báo bản quyền của bạn (copyright) mặc dù bạn đã thay đổi mã nguồn của chương trình. Bạn phải đảm bảo cung cấp mã nguồn khi bạn bán một sản phẩm theo GNU GPL để cho người khác có thể sử dụng và/hoặc bán tiếp sản phẩm. Open Source: Một sản phẩm là Open Source phải thỏa mãn các điều kiện:  Free Redistribution: có thể phân phối tới bất cứ đội tượng nào. Hệ điều hành mã nguồn mở Trang 28  Source Code: Luôn kèm theo source code.  Integrity of The Author‟s Source Code: Có thể có hạn chế chỉ cho phép thay đổi mã nguồnt hông qua các patch (chứ không được tự ý thay đổi), hoặc nếu thay đổi phải đổi qua tên khác. Đây là điểm khác với GNU GPL.  No Discrimination Against Fields of Endeavor: Không được phân biệt đối xử với cá nhân hay nhóm người nào trong quá trình phân phối phần mềm mã nguồn mở.  Distribution of License: quyền đối với phần mềm được tiếp tục chuyển đến những người nhận phần mềm.  License Must Not Be Specific to a Product: Các quyền đối với phần mềm được tiếp tục thực hiện không phụ thuộc vào các phân phối (distribution) chứa phần mềm.  License Must Not Restrict Other Software: Các sản phẩm khác đi cùng Open Source không nhất thiết phải tuân theo yêu cầu của Open Source.  License Must Be Technology-Neutral: License không được bắt buộc gắn kết với bất kỳ công nghệ hay kiểu kết nối nào. Chú ý: Bruce Perens Đã viết các quy định trên cho "The Debian Free Software Guidelines". Sau đó ông đã bỏ đi các phần đặc trưng cho Debian-specific và xây dựng thành "Open Source Definition.“ Open Source và GNU GPL thường kết hợp với nhau: Ethereal is Open Source software released under the GNU General Public Licens. 2.4 Cài đặt và sử dụng các ứng dụng văn phòng Các thành phần:  Công cụ soạn thảo – Writer  Công cụ bảng tính – Calc  Công cụ tạo thuyết trình – Impress  Công cụ tạo biểu đồ, minh họa – Draw  Quản lý cơ sở dữ liệu – Base  Công cụ vẽ biểu thức toán học – Math - Trang Web: Hình 2.1: Giao diện công cụ văn phòng 2.5 Cài đặt các công cụ hỗ trợ ngƣời dùng truy xuất internet Firefox: có rất nhiều phần mềm mở rộng. Chrome: nhẹ, tốc độ lướt web nhanh. Multiget: quản lý và tăng tốc tải xuống với khả năng xử lý đa luồng, khôi phục lại phiên tải xuống bị tạm dừng, Hệ điều hành mã nguồn mở Trang 29 FileZilla: hỗ trợ các giao thức FTP, FTPS (FTP over SSL/TLS) và SFTP (SSH File Transfer Protocol), hỗ trợ tải tập tin siêu lớn. Transmission: phần mềm tải torrent gọn nhẹ. 2.6 Cài đặt và sử dụng các công cụ hỗ trợ phát triển hệ thống Geany: IDE nhỏ gọn, chạy nhanh, hỗ trợ Syntax highlighting nhiều ngôn ngữ lập trình, Code navigation, quản lý dự án đơn giản, nhiều plug-in. IntelliJ IDEA CE: thông minh và mạnh mẽ, hỗ trợ JAVA và một số ngôn ngữ khác, nhiều tính năng hữu ích và chạy nhanh. Hỗ trợ lập trình cho Android. NetBeans: khá mạnh, hỗ trợ JAVA, PHP, C/C++, Eclipse: hỗ trợ nhiều ngôn ngữ lập trình, chậm. Hệ điều hành mã nguồn mở Trang 30 Bài 3. Quản trị tài nguyên của ngƣời dùng trên Linux 3.1 Quản trị hệ thống tập tin Mỗi hệ điều hành có cách tổ chức lưu trữ dữ liệu riêng. Ở mức vật lý, đĩa được định dạng từ các thành phần sector, track, cylinder. Ở mức logic, mỗi hệ thống sử dụng cấu trúc riêng, có thể dùng chỉ mục hay phân cấp để có thể xác định được dữ liệu từ mức logic tới mức vật lý. Cách tổ chức như vậy gọi là hệ thống tập tin (file system). 3.1.1 Cấu trúc và trật tự của hệ thống tập tin Hệ thống tập tin là một phần cơ bản của hệ điều hành Linux. Một hệ thống tập tin là thiết bị mà nó đã được định dạng để lưu trữ tập tin và thư mục. Hệ thống tập tin Linux bao gồm: đĩa mềm, CD-ROM, những partition của đĩa cứng. Những hệ thống tập tin thường được tạo trong quá trình cài đặt hệ điều hành. Nhưng bạn cũng có thể thay đổi cấu trúc hệ thống tập tin khi thêm thiết bị hay chỉnh sửa những partition đã tồn tại. Như vậy, việc biết và hiểu cấu trúc hệ thống tập tin trong Linux thật là quan trọng. Linux hỗ trợ rất nhiều loại hệ thống tập tin như: ext2, ext3, MS-DOS, proc. Hệ thống tập tin cơ bản của Linux là ext2 và ext3 hiện tại là ext4. Hệ thống tập tin này cho phép đặt tên tập tin tối đa 256 ký tự và kích thước tối đa là 4 terabytes. MS-DOS dùng để truy cập trực tiếp những tập tin MS-DOS. Bên cạnh đó, Linux còn hỗ trợ vfat cho phép đặt tên tập tin dài đối với những tập tin MS-DOS và những partition FAT32. Proc là một hệ thống tập tin ảo (/proc) nghĩa là không dành dung lượng đĩa phân phối cho nó. Ngoài ra còn có những hệ thống tập tin khác như iso9660, UMSDOS, Network File System (NFS). Các thành phần của hệ thống tập tin: Super Block: là một cấu trúc được tạo tại vị trí bắt đầu hệ thống tập tin. Nó lưu trữ thông tin về hệ thống tập tin như: Thông tin về block-size, free block, thời gian gắn kết(mount) cuối cùng của tập tin Inode (256 byte): Lưu những thông tin về những tập tin và thư mục được tạo ra trong hệ thống tập tin. Nhưng chúng không lưu tên tập tin và thư mục thực sự. Mỗi tập tin tạo ra sẽ được phân bổ một inode lưu thông tin sau:  Loại tập tin và quyền hạn truy cập tập tin  Người sở hữu tập tin.  Kích thước của tập tin và số hard link đến tập tin.  Ngày và thời gian chỉnh sửa tập tin lần cuối cùng.  Vị trí lưu nội dung tập tin trong hệ thống tập tin. Storageblock: Là vùng lưu dữ liệu thực sự của tập tin và thư mục. Nó chia thành những Data Block. Dữ liệu lưu trữ vào đĩa trong các data block. Mỗi block thường chứa 1024 byte. Ngay khi tập tin chỉ có 1 ký tự thì cũng phải cấp phát 1 block để lưu nó. Không có ký tự kết thúc tập tin. Data Block của tập tin thông thường lưu inode của tập tin và nội dung của tập tin Data Block của thư mục lưu danh sách những entry bao gồm inode number, tên của tập tin và những thư mục con. Loại tập tin. Trong linux tập tin dùng cho việc lưu trữ dữ liệu. Nó bao gồm cả thư mục và các thiết bị lưu trữ. Hệ điều hành mã nguồn mở Trang 31 Một tập tin dữ liệu, hay một thư mục đều được xem là tập tin. Khái niệm tập tin còn mở rộng dùng cho các thiết bị như máy in, đĩa cứng ngay cả bộ nhớ chính cũng được coi như là một tập tin,các tập tin trong linux được chia ra làm 3 loại chính: Tập tin dữ liệu: Đây là tập tin theo định nghĩa truyền thống, nó là dữ liệu lưu trữ trên các thiết bị lưu trữ như đĩa cứng, CD-ROM Bạn có thể đưa bất cứ dữ liệu nào vào tập tin này như đoạn source chương trình, tập tin văn bản hay tập tin thực thi dạng mã máy, các lệnh của Linux cũng như tất cả các tập tin được tạo ra bởi người dùng. Tập tin thƣ mục: Thư mục không chứa dữ liệu, mà chỉ chứa các thông tin của những tập tin và thư mục con trong nó. Thư mục chứa hai trường của một tập tin là tên tập tin và inode number. Liên kết tập tin: Link một liên kết, hiểu theo cách đơn giản nhất, là tạo ra một tên tập tin thứ hai cho một tập tin. Ví dụ, bạn có một tập tin /usr/lib/testfile và muốn có một tập tin giống như vậy trong thư mục /usr/tim, bạn không cần phải copy nó mà chỉ cần tạo một liên kết với lệnh sau: Code: #ln /usr/bill/testfile /usr/tim/testfile Cú pháp của lệnh ln: $ln Lý do cơ bản của việc tạo liên kết là nhân tập tin lên nhiều lần. Trong ví dụ trên, cả hai tập tin chính là một. Do đó, nếu có bất kỳ sự thay đổi nào trên một tập tin sẽ ảnh hưởng ngay đến tập tin còn lại. Hard Link: là một liên kết trong cùng hệ thống tập tin với hai inode entry tương ứng trỏ đến cùng một nội dung vật lý (cùng inode number vì chúng trỏ đến cùng dữ liệu). Nếu bạn muốn thấy điều này, dùng lệnh sau: Code: $ ls -i testfile 14253 testfile Sau đó tạo một liên kết có một tên khác và hiển thị thông tin của inode entry. Code: $ ln testfile test2 $ ls -i testfile test2 14253 testfile 14253 test2 Cả hai tập tin đều có inode number giống nhau Symbolic Link: Là một liên kết khác mà không sử dụng inode entry cho việc liên kết. Bạn sử dụng liên kết này khi muốn tạo ra những driver thiết bị, như /dev/modem thay cho /dev/cua1. Tùy chọn– của lệnh ln cho phép tạo ra một symbolic link. Code: $ ls -i bigfile 6253 bigfile $ ln -s bigfile anotherfile $ ls -i bigfile anotherfile 6253 bigfile 8358 anotherfile Như bạn thấy, nội dung inode number của các tập tin khác nhau. Liệt kê một thư mục sẽ thấy symbolic link: Hệ điều hành mã nguồn mở Trang 32 Code: lrwxrwxrwx 1 root root 6 Sep 16:35 anotherfile -> bigfile -rw-rw-r-- 1 root root 2 Sep 17:23 bigfile Lưu ý: khi xóa tập tin gốc, nội dung của tập tin hard link không bị ảnh hưởng nhưng nội dung tập tin symbolic link không xem được.. 3.1.2 Các quyền trên tập tin và thư mục Để xem các quyền hiện có trên tập tin và thư mục,sử dụng lệnh ls –l. Hình 5.1: Quyền trên tập tin và thư mục. Hình 5.2: Quyền trên tập tin ẩn. File type. d: Thư mục l: Là tập tin liên kết đến một thư mục hay tập tin nào đó. -: Tập tin bình thường. Các nhóm quyền. User (owner) Người tạo ra tập tin. Group Nhóm của tập tin, thư mục. Others Những người khác. Thay đổi quyền. Hệ điều hành mã nguồn mở Trang 33 Chúng ta có thể hiệu chỉnh các quyền trên tập tin hay thư mục bằng dòng lệnh chmod. Cú pháp: chmod mode filename Hình 5.3: Cấu trúc mode của dòng lệnh Chmod. Các loại quyền. r: Quyền đọc w: Quyền ghi x: Quyền thực thi -: Cấm quyền Các phép toán trên dòng lệnh. =: Gán quyền +: Thêm quyền -: Bớt quyèn Các nhóm quyền. u: Người tạo ra tập tin. g: Nhóm của tập tin thư mục. o: Những người khác. a: Tất cả những trường hợp trên. Hệ điều hành mã nguồn mở Trang 34 Mỗi quyền có một giá trị octal, chúng ta có thể dùng số octal này để gán quyền vào tập tin hay thư mục. Hình 5.4: Các giá trị Octal tương ứng với các quyền. Hình 5.5: Các giá trị Octal thường dùng. Cú pháp: chmod octal_mode filename 3.1.3 Các thư mục chính trên hệ điều hành Linux / root: Đúng với tên gọi của mình: nút gốc (root) đây là nơi bắt đầu của tất cả các file và thư mục. Chỉ có root user mới có quyền ghi trong thư mục này. Chú ý rằng /root là thư mục home của root user chứ không phải là /. /bin – Chương trình của người dùng: Thư mục này chứa các chương trình thực thi. Các chương trình chung của Linux được sử dụng bởi tất cả người dùng được lưu ở đây. Ví dụ như: ps, ls, ping /sbin – Chương trình hệ thống: Cũng giống như /bin, /sbinn cũng chứa các chương trình thực thi, nhưng chúng là những chương trình của admin, dành cho việc bảo trì hệ thống. Ví dụ như: reboot, fdisk, iptables /etc – Các file cấu hình: Thư mục này chứa các file cấu hình của các chương trình, đồng thời nó còn chứa các shell script dùng để khởi động hoặc tắt các chương trình khác. Ví dụ: /etc/resolv.conf, /etc/logrolate.conf Hệ điều hành mã nguồn mở Trang 35 /dev – Các file thiết bị: Các phân vùng ổ cứng, thiết bị ngoại vi như USB, ổ đĩa cắm ngoài, hay bất cứ thiết bị nào gắn kèm vào hệ thống đều được lưu ở đây. Ví dụ: /dev/sdb1 là tên của USB bạn vừa cắm vào máy, để mở được USB này bạn cần sử dụng lệnh mount với quyền root: # mount /dev/sdb1 /tmp /tmp – Các file tạm: Thư mục này chứa các file tạm thời được tạo bởi hệ thống và các người dùng. Các file lưu trong thư mục này sẽ bị xóa khi hệ thống khởi động lại. /proc – Thông tin về các tiến trình: Thông tin về các tiến trình đang chạy sẽ được lưu trong /proc dưới dạng một hệ thống file thư mục mô phỏng. Ví dụ thư mục con /proc/{pid} chứa các thông tin về tiến trình có ID là pid (pid ~ process ID). Ngoài ra đây cũng là nơi lưu thông tin về về các tài nguyên đang sử dụng của hệ thống như: /proc/version, /proc/uptime /var – File về biến của chương trình: Thông tin về các biến của hệ thống được lưu trong thư mục này. Như thông tin về log file: /var/log, các gói và cơ sở dữ liệu /var/lib /usr – Chương trình của người dùng: Chứa các thư viện, file thực thi, tài liệu hướng dẫn và mã nguồn cho chương trình chạy ở level 2 của hệ thống. Trong đó  /usr/bin chứa các file thực thi của người dùng như: at, awk, cc, less Nếu bạn không tìm thấy chúng trong /bin hãy tìm trong /usr/bin  /usr/sbin chứa các file thực thi của hệ thống dưới quyền của admin như: atd, cron, sshd Nếu bạn không tìm thấy chúng trong /sbin thì hãy tìm trong thư mục này.  /usr/lib chứa các thư viện cho các chương trình trong /usr/bin và /usr/sbin  /usr/local chứa các chương tình của người dùng được cài từ mã nguồn. Ví dụ như bạn cài apache từ mã nguồn, nó sẽ được lưu dưới /usr/local/apache2 /home – Thư mục người của dùng: Thư mục này chứa tất cả các file cá nhân của từng người dùng. Ví dụ: /home/john, /home/marie /boot – Các file khởi động: Tất cả các file yêu cầu khi khởi động như initrd, vmlinux. grub được lưu tại đây. Ví dụ vmlixuz-2.6.32-24-generic /lib – Thư viện hệ thống: Chứa cá thư viện hỗ trợ cho các file thực thi trong /bin và /sbin. Các thư viện này thường có tên bắt đầu bằng ld* hoặc lib*.so.*. Ví dụ như ld-2.11.1.so hay libncurses.so.5.7 /opt – Các ứng dụng phụ tùy chọn: Tên thư mục này nghĩa là optional (tùy chọn), nó chứa các ứng dụng thêm vào từ các nhà cung cấp độc lập khác. Các ứng dụng này có thể được cài ở /opt hoặc một thư mục con của /opt /mnt – Thư mục để mount: Đây là thư mục tạm để mount các file hệ thống. Ví dụ như # mount /dev/sda2 /mnt /media – Các thiết bị gắn có thể gỡ bỏ: Thư mục tạm này chứa các thiết bị như CdRom /media/cdrom. floppy /media/floopy hay các phân vùng đĩa cứng /media/Data (hiểu như là ổ D:/Data trong Windows) /srv – Dữ liệu của các dịch vụ khác: Chứa dữ liệu liên quan đến các dịch vụ máy chủ như /srv/svs, chứa các dữ liệu liên quan đến CVS. 3.2 Các kỹ năng thao tác với tập tin Lựa chọn, thay đổi thƣc mục thao tác Hệ điều hành mã nguồn mở Trang 36 Cú pháp: cd {đường dẫn đến thư mục} cd /home đến thư mục '/ home' cd.. quay ngược lại 1 bậc cd../.. quay ngược lại 2 bậc cd đến thư mục home cd ~user1 đến thư mục home cd - trở lại thư mục trước đây Hiển thị thƣc mục tạm thời Cú pháp: pwd Lệnh liệt kê Cú pháp: ls [thư mục cần liệt kê tài nguyên, nếu để chống thì là thư mục hiện tại] ls hiển thị tập tin và thư mục ls -F hiển thị tập tin trong thư mục ls -l hiển thị chi tiết tập tin và thư mục ls -a hiển thị tập tin ẩn ls *[0-9]* hiển thị tập tin và thư mục có chứa số Hiển thị tập tin và thƣ mục theo cấu trúc cây Cú pháp: tree hoặc lstree tree hiển thị tập tin và thư mục theo cấu trúc cây lstree hiển thị tập tin và thư mục theo cấu trúc cây Tạo thƣ mục Cú pháp: mkdir {tên thư mục tạo ra} mkdir dir1 tạo 1 thư mục có tên 'dir1' mkdir dir1 dir2 tạo cùng lúc 2 thư mục mkdir -p /tmp/dir1/dir2 tạo ra 1 cây thư mục xóa tài nguyên Cú pháp: rm –option {tên tài nguyên cần xóa} rm -f file1 xóa tập tin có tên 'file1' rmdir dir1 xóa thư mục có tên 'dir1' rm -rf dir1 xóa thư mục 'dir1' và tất cả các tập tin trong thư mục đó rm -rf dir1 dir2 xóa cùng lúc 2 thư thư mục và tất cả các tập tin trong hai thư mục đó Di chuyển tài nguyên, đổi tên Cú pháp: mv {nguồn} {đích} mv dir1 new_dir đổi tên/ di chuyển 1 tập tin hoặc thư mục Hệ điều hành mã nguồn mở Trang 37 Copy tài nguyên Cú pháp: cp {nguồn} {đích} cp file1 file2 sao chép 1 tập tin cp dir/*. sao chép tất cả các tập tin trong thư mục cp -a /tmp/dir1. sao chép thư mục đang làm việc cp -a dir1 dir2 sao chép một thư mục Tạo link liên kết Cú pháp: ln –option {nguồn} {đích} ln -s file1 lnk1 tạo một đường dẫn đến 1 tập tin hoặc thư mục ln file1 lnk1 tạo 1 đường dẫn vật lý đến 1 tập tin hoặc thư mục Tạo file dữ liệu và thay đổi thông tin Cú pháp: touch –option {tên file} touch -t 0712250000 file1 thay đổi thời gian tạo file hoặc thư mục- (YYMMDDhhmm) 3.3 Các kỹ năng tìm kiếm Câu lệnh Find Câu lệnh Find cho phép người dùng tìm file nếu biết gần đúng tên file. Đây là dạng câu lệnh đơn giản nhất tìm kiếm file trong thư mục hiện tại mà khớp với tiêu chí nhất định. Người dùng có thể tìm kiếm file theo tên, chủ sở hữu, nhóm, loại file, theo quyền, ngày tháng năm và theo nhiều tiêu chí khác. Gõ câu lệnh sau để liệt kê tất cả các file tìm được trong thư mục hiện tại: find. Dấu chấm chỉ thị thư mục hiện tại. Hình 5.6: Kết quả tìm kiếm Để tìm những file khớp với một mẫu đặc biệt, sử dụng tham số “-name”. Người dùng có thể sử dụng siêu ký tự (như “*”) nhưng phải đặt ký hiệu thoát “\” trước mỗi siêu ký tự. Ví dụ như, nếu ta muốn tìm tất cả các file mà bắt đầu với “pro” trong thư mục Documents, sử dụng câu lệnh cd Documents/ để chuyển tới thư mục Documents, sau đó gõ câu lệnh sau: find. –name pro\* Hệ điều hành mã nguồn mở Trang 38 Tất cả những file bắt đầu với “pro” trong thư mục sẽ được liệt kê ra. Nếu không có file nào phù hợp tiêu chí, sẽ không có kết quả nào hiển thị. Câu lệnh find có nhiều tùy chọn để lọc tìm kiếm. Để tìm hiểu rõ hơn, gõ “man find” trong cửa sổ Terminal và nhấn Enter. Sử dụng câu lệnh locate Câu lệnh locate nhanh hơn câu lệnh find vì nó sử dụng cơ sở dữ liệu được xây dựng trước đó trong khi lệnh find lại tìm kiếm trong hệ thống theo thời gian thực, từ tất cả các thư mục và file. Câu lệnh locate trả về một danh sách tất cả tên đường dẫn chứa nhóm các ký tự đặc biệt. Cơ sở dữ liệu được cập nhật định kỳ từ cron, nhưng người dùng cũng có thể tự cập nhật bất cứ lúc nào vì vậy có thể nhận được kết quả ngay. Để làm điều này, gõ câu lệnh sau: sudo updatedb Nhập mật khẩu. Dạng gốc của câu lệnh locate tìm ra tất cả các file trong hệ thống file, bắt đầu từ thư mục gốc mà chứa toàn bộ hay bất cứ phần nào của tiêu chí tìm kiếm. locate mydata Ví dụ như, câu lệnh sau đã tìm thấy 2 file chứa “mydata” và 1 file chứa “data”. Lệnh mlocate Lệnh mlocate là một biến thể của locate. Kết quả tìm kiếm chỉ gồm những file mà người dùng hiện tại đã truy cập tới. Khi bạn cập nhật cơ sở dữ liệu mlocate, nó duy trì thông tin tem thời gian trong cơ sở dữ liệu. Việc này cho phép mlocate biết được nếu các nội dung trong một thư mục bị thay đổi mà không cần đọc lại nội dung và cập nhật vào cơ sở dữ liệu nhanh hơn mà ít phụ thuộc vào ổ cứng. Khi cài đặt mlocate, file nhị phân /usr/bin/locate thay đổi và trỏ tới mlocate. Để cài đặt mlocate khi câu lệnh không có trong bản phân phối Linux, gõ câu lệnh sau: sudo apt-get install mlocate Lệnh mlocate không sử dụng cùng file cơ sở dữ liệu với câu lệnh locate chuẩn. Do vậy, người dùng có thể tạo cơ sở dữ liệu một cách thủ công bằng cách gõ câu lệnh sau: sudo /etc/cron.daily/mlocate 3.4 Quản trị ngƣời dùng và nhóm 3.4.1 Giới thiệu về tài khoản trong linux Cũng giống như Windows Linux cũng có các loại tài khoản khác nhau, xét về mặt tổng thể thì có 2 loại chính tài khoản người dùng và tài khoản quản trị hay còn gọi là root. Root là tài khoản quản trị có ảnh hưởng rất lớn đối với an toàn của hệ thống, tài khoản root có các các quyền như: tạo tài khoản người dùng, cài đặt phần mềm, thêm, xóa, sửa đổi các tài khoản Khi đăng nhập với tài khoản root thì tại giao diện terminal thường có kí hiệu:”#”. Các thông tin, dữ liệu về tài khoản người dùng khác thường được lưu trữ trong thư mục home. 3.4.2 Thêm, xóa, sửa tài khoản người dùng Tạo một tài khoản ngƣời dùng mới Hệ điều hành mã nguồn mở Trang 39 Để tạo một tài khoản người dùng mới vào hệ thống, chúng ta sử dụng câu lệnh useradd. Cú pháp: useradd [options] Lệnh useradd sẽ tự động tạo các file của người dùng trên hệ thống, tạo thư mục home của người dùng và một số thông tin cấu hình khác phụ thuộc vào các option sử dụng. Khi một tài khoản người dùng mới được tạo ra, một tài khoản nhóm người dùng cùng tên với người dùng cũng sẽ tự động được tạo ra trên hệ thống. Một số option với lệnh useradd:  d /home_directory: Tạo thư mục home cho người dùng. Chúng ta thường tạo thư mục home trùng với tên của người dùng và thường đặt là thư mục /home/.  e date: Xác định ngày mà tài khoản người dùng sẽ bị vô hiệu hóa trên hệ thống. Định dạng của ngày được đặt như sau YYYY-MM-DD (Năm-Tháng-Ngày).  g group: Xác định tài khoản người dùng thuộc nhóm người dùng nào trên hệ thống.  G groups: Xác định tài khoản người dùng thuộc những nhóm người dùng nào trên hệ thống (một người dùng có thể thuộc nhiều nhóm khác nhau).  s shell: Xác định shell mặc định của người dùng khi đặng nhập vào hệ thống.  u uid: Xác định số user id của người dùng. Ví dụ: Tạo tài khoản người dùng có tên ipmac, thư mục home là /home/ipmac, thuộc nhóm người dùng ipmac và có số user id là 722 sử dụng câu lệnh sau: # useradd ipmac -d /home/ipmac -g ipmac -u 722 Xóa một tài khoản ngƣời dùng Để xóa một tài khoản người dùng chúng ta sử dụng câu lệnh: userdel [options] Lệnh này sẽ xóa tài khoản người dùng trong 2 file /etc/passwd và /etc/shadow. Người dùng không thể đăng nhập vào hệ thống khi tài khoản của người dùng đã bị xóa. Chúng ta sử dụng thêm option -r để xóa thư mục home của người dùng và các file có trong thư mục home. Ví dụ: Để xóa tài khoản người dùng ipmac và thư mục home của người dùng ipmac trên hệ thống, chúng ta sử dụng câu lệnh sau: # userdel -r ipmac Chỉnh sửa một tài khoản ngƣời dùng Sau khi tạo một tài khoản người dùng, để chỉnh sửa một số thông tin của tài khoản người dùng chúng ta sử dụng câu lệnh usermod. Câu lệnh usermod cho phép chúng ta chỉnh sửa một tài khoản người dùng với các tiêu chí sau: thay đổi thư mục home của người dùng, thay đổi thời gian hết hạn của tài khoản, thay đổi nhóm của người dùng, thay đổi tên đăng nhập, thay đổi login shell Các option dùng với usermod giống với các option sử dụng với lệnh useradd. Cú pháp: usermod [options] Hệ điều hành mã nguồn mở Trang 40 3.4.3 Thêm, sửa, xóa một tài khoản nhóm Tạo một nhóm ngƣời dùng mới Để tạo một nhóm người dùng mới chúng ta sử dụng câu lệnh groupadd với các option tùy chọn. Cú pháp: # groupadd [options] Các option:  g gid: Đặt số group id cho nhóm người dùng.  f: Bắt câu lệnh chạy mà không thông báo lỗi nếu đã có một nhóm trên hệ thống trùng với tên nhóm định tạo.  Và một số option khác. Ví dụ: Tạo một nhóm có tên ipmac với số group id của nhóm là 721 # groupadd -g 721 ipmac Xóa một nhóm ngƣời dùng Để xóa một nhóm chúng ta sử dụng câu lệnh groupdel. Chức năng của lệnh groupdel giống với lệnh userdel sẽ xóa toàn bộ thông tin của nhóm khỏi hệ thống (thông tin trong file /etc/group). Trước khi xóa một nhóm khỏi hệ thống chúng ta cần đảm bảo rằng không có người dùng nào đang yêu cầu truy cập đến nhóm đó. Cú pháp: # groupdel Chỉnh sửa một nhóm ngƣời dùng Để chỉnh sửa một nhóm chúng ta sử dụng câu lệnh groupmod. Chức năng của lệnh groupmod giống chức năng của lệnh usermod. Cú pháp: # groupmod [options] Ví dụ: Thay đổi số group id của nhóm có tên ipmac # groupmod ipmac -g 400 3.5 Phân quyền thao tác với tài nguyên hệ thống 3.5.1 Cách thức quản lý và bảo mật tài nguyên trên Linux Mã hóa phân vùng ổ cứng Phiên bản đĩa cài đặt thay thế của Ubuntu cung cấp thêm cho người dùng 1 sự lựa chọn nữa để mã hóa phân vùng cài đặt Ubuntu, do vậy các bạn chỉ cần tải file ISO về máy, ghi ra đĩa CD/DVD hoặc tạo USB boot và tiến hành cài đặt Ubuntu sau đó. Với quy trình cài đặt khá giống với với Ubuntu nguyên bản, bước đầu người sử dụng sẽ phải chọn ngôn ngữ hiển thị, kiểu bàn phím, hệ thống network, và bước quan trọng nhất đương nhiên là phân vùng cài đặt với lựa chọn Guided – use entire disk and set up encrypted LVM để áp dụng trên toàn bộ ổ cứng: Khởi tạo khóa mật khẩu sử dụng để mã hóa ổ cứng khi đăng nhập vào Ubuntu: Hệ điều hành mã nguồn mở Trang 41 Hình 5.7: Mã hóa phân vùng ổ cứng Lựa chọn có muốn mã hóa thư mục gốc – home hay không, chỉ trong trường hợp chúng ta thay thế thư mục này bên ngoài phân vùng cài đặt Ubuntu: Hình 5.8: Mã hóa phân vùng ổ cứng Như vậy là chúng ta đã hoàn tất các bước cơ bản, các bạn chỉ cần thực hiện các bước tiếp theo để hoàn tất quá trình này. Mã hóa thƣ mục eCryptfs là 1 hệ thống mã hóa file dựa trên chuẩn PGP được tạo ra bởi Philip Zimmerman vào năm 1991. Điểm độc đáo của eCryptfs so với các công cụ mã hóa khác, như TrueCrypt, là không cần xác định trước dung lượng phân vùng hoặc ổ cứng chúng ta cần áp dụng. Để cài đặt eCryptfs, bạn hãy sử dụng lệnh sau: sudo aptitude install ecryptfs-utils eCryptfs sẽ tạo ra 1 thư mục private trên ổ cứng nơi chương trình h

Các file đính kèm theo tài liệu này:

  • pdf01200027_0456_1983566.pdf
Tài liệu liên quan