Hệ điều hành mã nguồn mở
Hệ điều hành mã nguồn mở Trang 1 Hệ điều hành mã nguồn mở Trang 2 Contents Bài 1: Tìm hiểu về hệ điều hành linux (3 tiết) . 9 1.1 Lịch sử hình thành và phát triển . 9 1.1.1 Lịch sử unix 9 1.1.2 Hai dòng unix . 9 1.1.3 Các phiên bản của unix 10 1.2 Giới thiệu về linux . 10 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 . 10 1.2.2 Sự phát triển của Linux và các công nghệ liên quan 11 1.2.3 Các bản phát hành của linux 12 1.2.4 Lợi thế của linux 14 1.2.5 Ai phát triển linux 14 1.2.6 Thương mại hóa linux 15 1.2.7 So sánh Unix và linux 15 1.2.8 Tác quyền và bản quyền linux . 16 1.3 Làm quen với Linux trong chương trình học . 17 1.3.1 Ubuntu Desktop 12.04 17 1.3.2 CentOS 6.0 server . 17 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 (3 tiết) 18 2.1 Cấu hình cơ bản trước khi cài đặt Linux 18 2.1.1 Giới thiệu trình tự cài đặt hệ điều hành 18 2.1.2 Quản trị các phân vùng chính trên Linux . 19 2.1.3 Sự phân mảnh của hệ thống file . 19 2.2 Linux kernel . 21 2.2.1 Giới thiệu . 21 2.2.2 Kernel modules 22 2.2.3 Các chức năng của kernel . 23 2.3 Gnu-gpl project (gnu general public license) . 23 2.3.1 Gnu-gpl là gì? . 23 2.3.2 Nội dung chính của GNU . 23 2.4 Cài đặt và sử dụng các ứng dụng văn phòng 24 2.5 Cài đặt các công cụ hỗ trợ người dùng truy xuất internet 24 Hệ điều hành mã nguồn mở Trang 3 2.6 Cài đặt và sử dụng các công cụ hỗ trợ phát triển hệ thống 25 Bài 4:Thảo luận 1: Sử dụng ứng dụng trên hệ điều hành Linux (3 tiết) . 27 Bài 5:Quản trị tài nguyên của người dùng trên Linux (3 tiết) 28 5.1 Quản trị hệ thống tập tin . 28 5.1.1 Cấu trúc và trật tự của hệ thống tập tin 28 5.1.2 Các quyền trên tập tin và thư mục 30 5.1.3 Các thư mục chính trên hệ điều hành Linux 32 5.2 Các kỹ năng thao tác với tập tin . 33 5.3 Các kỹ năng tìm kiếm 35 5.4 Quản trị người dùng và nhóm 36 5.4.1 Giới thiệu về tài khoản trong linux 36 5.4.2 Thêm, xóa, sửa tài khoản người dùng 36 5.4.3 Thêm, sửa, xóa một tài khoản nhóm 37 5.5 Phân quyền thao tác với tài nguyên hệ thống . 38 5.5.1 Cách thức quản lý và bảo mật tài nguyên trên Linux . 38 5.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 40 Bài 7: Phát triển ứng dụng trên môi trường Linux (3 tiết) . 41 7.1 Lập trình điều khiển trên hệ thống shell script . 41 7.1.1 Tổng quan về lập trình Shell script . 41 7.1.2 Một số ứng dụng trong lập trình Shell 41 7.2 Kỹ thuật lập trình C và C++ trên Linux . 42 7.2.1 Tổng quan về lập trình C và C++ trên Linux 42 7.2.2 Các trình biên dịch và thực thi 43 7.3 Lập trình winform trên Linux 43 7.3.1 Giới thiệu về lập trình Java . 43 7.3.2 Các hướng phát triển cho lập trình ứng dụng trên Linux 44 7.3.3 Công cụ hỗ trợ phát triển ứng dụng 45 Bài 9: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 (3 tiết) 47 Bài 10: Quản lý dịch vụ và bảo mật (3 tiết) . 48 10.1 Cập nhật phần mềm trên Linux . 48 10.2 Quản lý Firewall và SELinux 48 10.2.1 Quản lý firewall trên Linux. . 48 10.2.2 Quản lý hệ thống SELinux . 50 10.3 Quản lý các tác vụ khác trên Linux . 52 Hệ điều hành mã nguồn mở Trang 4 10.3.1 Quản lý dịch vụ (service) . 52 10.3.2 Duyệt web và download dữ liệu trên hệ thống server 52 10.3.3 Quản lý hệ thống soạn thảo trên Server . 53 10.3.4 Lập lịch cho hệ thống . 54 Bài 12: Cấu hình dịch vụ mạng căn bản trên Linux (3 tiết) . 55 12.1 Cấu hình dịch vụ đồng bộ thời gian NTP 55 12.2 Truy cập từ xa. . 55 12.2.1 Xinetd. 55 12.2.2 Tập tin /etc/services. . 56 12.2.3 Khởi động xinetd. . 57 12.3 Telnet server. 57 12.3.1 Khái niệm telnet. 57 12.3.2 Cài đặt. . 57 12.3.3 Cấu hình. 57 12.3.4 Bảo mật telnet. . 58 12.4 SSH server (secure shell). 59 12.4.1 Cài đặt ssh server trên server linux. . 59 12.4.2 Các phương pháp khai thác SSH 59 Bài 14: Cài đặt và cấu hình dhcp server và dns server trên linux (3 tiết) . 62 14.1 Cài đặt và cấu hình dịch vụ dns (domain name system). . 62 14.1.1 Giới thiệu. 62 14.1.2 Cơ chế phân giải tên. 62 14.1.3 Phân loại domain name server. 64 14.1.4 Cài đặt bind bằng dòng lệnh. 65 14.2 Cài đặt và cấu hình dịch vụ dhcp server . 71 14.2.1 Giới thiệu. 71 14.2.2 Nguyên tắc hoạt động. 71 14.2.3 Cài đặt. . 72 14.2.4 Tìm hiểu tập tin cấu hình dhcp.conf. 72 14.2.5 Kích hoạt. . 73 14.2.6 Cấu hình linux client sử dụng dhcp. . 73 14.2.7 Cấu hình windows client sử dụng dhcp 74 Bài 15: 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 (3 tiết) . 74 Hệ điều hành mã nguồn mở Trang 5 Bài 16: Dịch vụ chia sẻ dữ liệu (3 tiết) 75 16.1 Cài đặt và cấu hình dịch vụ nfs (network file system). 75 16.1.1 Giới thiệu. 75 16.1.2 Cài đặt dịch vụ nfs. . 75 16.1.3 Cấu hình dịch vụ nfs. . 75 16.2 Cài đặt, cấu hình dịch vụ ftp server (file tranfer protocol). 78 16.2.1 Giới thiệu. 78 16.2.2 Cài đặt. . 82 16.2.3 Cấu hình. 82 16.2.4 User của server vsftpd. . 83 16.2.5 Một số option quan trọng. 83 16.2.6 Kích hoạt dịch vụ. 84 16.2.7 Kết nối tới ftp server. . 84 Bài 18: Thảo luận 4: về các dịch vụ mạng nâng cao trong linux (3 tiết) . 86 Bài 19: Dịch vụ quản lý tài nguyên tập chung (3 tiết) . 87 19.1 Cài đặt và cấu hình dịch vụ samba. 87 19.1.1 Giới thiệu. 87 19.1.2 Cài đặt. . 88 19.1.3 Cấu hình. 88 19.1.4 Quản trị tài khoản samba. . 92 19.2 Sử dụng dịch vụ smb. . 93 19.3 Cài đặt và cấu hình dịch vụ samba-swat. . 94 19.3.1 Giới thiệu. 94 19.3.2 Cài đặt samba-swat. . 94 19.3.3 Tập tin cấu hình samba-swat. . 94 19.3.4 Khởi tạo swat và cấu hình samba cơ bản. 95 19.3.5 Cấu hình chia sẻ trên samba-swat. . 96 19.3.6 Tạo các tài khoản trên samba-swat. . 98 19.3.7 Xem tập tin cấu hình smb. 99 19.3.8 Đổi port truy cập mặc định cho samba-swat. . 99 19.4 Cài đặt và triển khai hệ thống Domain sử dụng Samba . 99 Bài 21: Cài đặt và cấu hình dịch vụ webserver (3 tiết) 103 21.1 Cài đặt và cấu hình dịch vụ dịch vụ wed server. 103 21.1.1 Giới thiệu. 103 Hệ điều hành mã nguồn mở Trang 6 21.1.2 Cài đặt. . 103 21.1.3 Cấu hình. 103 21.2 Cài đặt và cấu hình mysql và php. . 110 21.3 Cấu hình một số hệ thống cơ bản với webserver . 111 21.3.1 Hệ thông Userdir . 111 21.3.2 Cấu hình Virtual hosting . 112 21.3.3 Cấu hình hệ thống bảo mật SSL 112 21.4 Cấu hình hệ thống webmail 113 21.4.1 Cấu hình squirrelmail 113 21.4.2 Cấu hình hệ thống roundcube 113 21.5 Cấu hình hệ thống Blog mã nguồn mở WordPress 114 Bài 23: 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 (3 tiết) 115 Hệ điều hành mã nguồn mở Trang 7 DANH MỤC HÌNH ẢNH Hình 1.1: Sơ đồ các phiên bản của Unix. . 10 Hình 1.2: Hệ điều hành Mint . 12 Hình 1.3: Hệ điều hành Ubuntu . 12 Hình 1.4: Hệ điều hành Ubuntu . 13 Hình 15: Hệ điều hành Ubuntu 13 Hình 1.6: Hệ điều hành Ubuntu . 13 Hình 1.7: Hệ điều hành Ubuntu . 13 Hình 1.8: Giao diện đăng nhập Ubuntu 12.04 . 17 Hình 1.9:Một vài hình ảnh của phiên bản 12.04 LTS: . 17 Hình 2.1: Giao diện công cụ văn phòng . 24 Hình 5.1: Quyền trên tập tin và thư mục. . 30 Hình 5.2: Quyền trên tập tin ẩn. . 30 Hình 5.3: Cấu trúc mode của dòng lệnh Chmod. . 31 Hình 5.4: Các giá trị Octal tương ứng với các quyền. . 32 Hình 5.5: Các giá trị Octal thường dùng. . 32 Hình 5.6: Kết quả tìm kiếm . 35 Hình 5.7: Mã hóa phân vùng ổ cứng 39 Hình 5.8: Mã hóa phân vùng ổ cứng 39 Hình 5.9: Mã hóa thư mục . 40 Hình 5.10: Dữ liệu mã hóa . 40 Hình 5.11: Thay đổi Group. . 40 Hình 7.1: Sử dụng Geany để lập trình C 43 Hình 10.1. Security policy and enforcement are independent using SELinux. 51 Hình 10.2. Layered Linux security process . 52 Hình 10.3: Duyệt web bằng w3m 53 Hình 10.4: Duyệt web bằng w3m 53 Hình10.5: Duyệt web bằng w3m . 53 Hình 12.1: Phần mềm putty . 59 Hình 12.2: Thẻ Windows. 60 Hình 12.3: Thẻ Proxy . 60 Hình 12.4: Đăng nhập từ xa. 61 Hình 14.1: Mô hình phân cấp DNS. 62 Hình 14.2: Mô hình hoạt động của DNS. 62 Hình 14.3: Cơ chế phân giải địa chỉ IP. . 63 Hình 14.4: Phân giải IP thành tên máy tính. 64 Hình 2.16: Cấu hình Linux client sử dụng DHCP. 74 Hình 14.5: Phương thức kết nối. 74 Hình 14.6: Cấu hình địa chỉ Ip động. . 74 Hình 16.1: Liệt kê danh sách các portmap. 77 Hình 16.2: Sơ đồ kết nối Active. . 79 Hình 16.3: Sơ đồ kết nối Passive. 80 Hình 16.4: kết nối FTP server bằng trình duyệt IE. . 84 Hình 16.5: nhập thông tin tài khoản. 85 Hình 16.6: Sau khi login thành công 85 Hình 19.1: Quá trình cài đặt dịch vụ samba. 88 Hình 19.2: Kiểm tra dịch vụ đã được cài đặt trên hệ thống. 88 Hình 19.3: Đăng nhập samba swat với user root. 95 Hình 19.4: Giao diện chính của swat. 95 Hình 19.5: Phần global. . 96 Hình 19.6: Phần share. . 97 Hình 19.7: Phần status. 98 Hệ điều hành mã nguồn mở Trang 8 Hình 19.8: Tạo user cho samba 98 Hình 21.1: Kiểm tra hoạt động của apache. . 104 Hình 21.2: Kiểm tra số phiên bản. . 109 Hình 21.3: Truy cập vào Mysql. 109 Hình 21.4: Gọi trang default.php. 110 Hình 21.5: Test hệ thống PHP . 111 Hình 21.6: Test thử hệ thống virtual hosting . 112 Hệ điều hành mã nguồn mở Trang 9 Bài 1: Tìm hiểu về hệ điều hành linux (3 tiết) Nhắc đến hệ điều hành, OS X và Windows là hai cái tên được nhiều người dùng nhớ tới nhiều nhất hiện nay. Tuy nhiên, vẫn còn một nền tảng khác vẫn đang thầm lặng phục vụ cho cuộc sống con người đó là Linux. Jim Zemlin, Giám đốc điều hành Linux Foundation, cho biết nhiều người dùng Linux trong công việc hàng ngày mà không hề biết tới sự tồn tại của nó. "Thế giới nếu không có Linux sẽ trở thành một nơi rất khác biệt: Đồng nhất và kém hấp dẫn. Thậm chí, nếu đó là sự thật thì giờ bạn vẫn phải dùng hệ điều hành Windows CE trên những chiếc điện thoại bỏ đi". 1.1 Lịch sử hình thành và phát triển 1.1.1 Lịch sử unix Giữa năm 1960, AT&T Bell Laboratories và một số trung tâm khác tham gia vào một cố gắng nhằm tạo ra một hệ điều hành mới được đặt tên là Multics (Multiplexed Information and Computing Service). Đến năm 1969, chương trình Multics bị bãi bỏ vì đó là một dự án quá nhiều tham vọng và do đó không khả thi. Thậm trí nhiều yêu cầu đối với Multics thời đó đến nay vẫn chưa có được trên các Unix mới nhất. Nhưng Ken Thompson, Dennis Ritchie, và một số đồng nghiệp của Bell Labs đã không bỏ cuộc. Thay vì xây dựng một hệ điều hành làm nhiều việc một lúc như Multics, họ quyết định phát triển một hệ điều hành đơn giản chỉ làm tốt một việc là chạy chương trình (run program). hệ điều hành sẽ có rất nhiều các công cụ (tool) nhỏ, đơn giản, gọn nhẹ (compact) và chỉ làm tốt một công việc. Bằng cách kết hợp nhiều công cụ lại với nhau, họ sẽ có một chương trình thực hiện một công việc phức tạp. Đó cũng là cách thức người lập trình viết ra chương trình. Peter Neumann đặt tên Unix cho hệ điều hành "đơn giản" này. Vào năm 1973, sử dụng ngôn ngữ C của Ritchie, Thompson đã viết lại toàn bộ hệ điều hành Unix và đây là một thay đổi quan trọng của Unix, vì nhờ đó Unix từ chỗ là hệ điều hành cho một máy PDP-xx trở thành hệ điều hành của các máy khác với một cố gắng tối thiểu để chuyển đổi. Khoảng 1977 bản quyền của UNIX được giải phóng và hệ điều hành UNIX trở thành một thương phẩm. 1.1.2 Hai dòng unix System V: Các phiên bản UNIX cuối cùng do AT&T xuất bản là System III và một vài phát hành (releases) của System V. Hai bản phát hành gần đây của System V là Release 3 (SVR3.2) và Release 4.2 (SVR4.2). Phiên bản SYR 4.2 là phổ biến nhất cho từ máy PC cho tới máy tính lớn. BSD: Từ 1970 Computer Science Research Group của University of California tại Berkeley (UCB) xuất bản nhiều phiên bản UNIX, được biết đến dưới tên Berkeley Software Distribution, hay BSD. Cải biến của PDP-11 được gọi là 1BSD và 2BSD. Trợ giúp cho các máy tính của Digital Equipment Corporation VAX được đưa vào trong 3BSD. Phát triển của VAX được tiếp tục với 4.0BSD, 4.1BSD, 4.2BSD, và 4.3BSD. Trước 1992, UNIX là tên thuộc sở hữu của AT&T. Từ 1992, khi AT&T bán bộ phận Unix cho Novell, tên Unix thuộc sở hữu của X/Open foundation. Tất cả các hệ điều hành thỏa mãn một số yêu cầu đều có thể gọi là Unix. Ngoài ra, Institute of Electrical and Electronic Engineers (IEEE) đã thiết lập chuẩn "An Industry-Recognized Operating Systems Interface Standard based on the UNIX Hệ điều hành mã nguồn mở Trang 10 Operating System." Kết quả cho ra đời POSIX.1 (cho giao diện C) và POSIX.2 (cho hệ thống lệnh trên Unix). Kết luận, vấn đề chuẩn hóa UNIX vẫn còn rất xa kết quả cuối cùng. Nhưng đây là quá trình cần thiết có lợi cho sự phát triển của ngành tin học nói chung và sự sống còn của hệ điều hành UNIX nói riêng. 1.1.3 Các phiên bản của unix Sau đây là một số bản phân phối chủ yếu của Unix: Hình 1.1: Sơ đồ các phiên bản của Unix. 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. . Hệ điều hành mã nguồn mở Trang 1 Hệ điều hành mã nguồn mở Trang 2 Contents Bài 1: Tìm hiểu về hệ điều hành linux (3 tiết) .................................................................................... diện đăng nhập Ubuntu 12.04 Hệ điều hành mã nguồn mở Trang 18 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 (3 tiết) 2.1 Cấu hình