1. .: CÔNG NGHỆ LINUX :. Giảng viên: TS. Tô Tuấn (Viện CNTT, BQP) Email: totuan4@yahoo.com Trợ lý kỹ thuật: Nguyễn Vạn Phúc, Vũ Mạnh Cường Môn học: KHÓA 3 CHƯƠNG TRÌNH ĐÀO TẠO THẠC SĨ CNTT QUA MẠNG ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
2.
3.
4.
5.
6.
7. .: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:. -------------------- Xenix c ủa Microsoft. Xenix 1980 Unix được hoàn thiện đáng kể . Th êm Bourne shell. Chuy ển sang họ máy VAX v ới nhân khoảng 40 KB. Seventh Edition 1979 Unix l ần đầu lộ diện ngoài khuôn khổ Bell Labs. Sixth Edition 1975 Được viết lại bằng C. C ó tính khả chuyển (Portable) . Nh ững thay đổi có tính cách mạng đối với toàn lịch sử phát triển hệ điều hành. Fourth Edition 1973 Assembler cho PDP-11/20, File system, fork() v à ed. First Edition 1971 Kenneth Thompson, Dennis Ritchie kh ởi công "little-used PDP-7 in a corner" t ại Bell Labs (AT&T), ti ền thân của UNIX sau n ày . The Beginning 1969
8. .: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:. -------------------- System V Release 2. H ơn 100.000 b ản UNIX được cài trên toàn thế giới . SVR2 1984 University of California at Berkeley đưa ra 4.2BSD. X/Open thành lập . 4.2BSD 1984 Computer Research Group (CRG), UNIX System Group (USG) h ợp nhất thành UNIX System Development Lab. AT&T c ông bố System V, phi ên bản đầu tiên được hỗ trợ . H ơn 45.000 b ản Unix . System V 1983 AT&T's UNIX System Group (USG) đưa ra System III. SunOS 1.0, HP-UX, Ultrix-11. System III 1982
9. .: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:. -------------------- UNIX System V Release 4 th ố ng nhất System V, BSD v à Xenix. H ơn 1.2 tri ệu bản Unix . SVR4 1989 Chu ẩn POSIX.1 (Portable Operating System Interface for Unix). Open Software Foundation (OSF) v à UNIX International (UI) th ành lập . 1988 System V Release 3. H ơn 750.000 b ản Unix . SVR3 1987 NFS (Network File System). AIX được phát hành . H ơn 250.000 b ản Unix . 4.3BSD 1986
10. .: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:. -------------------- X/Open c ông bố Single UNIX Specification nh ằm tách thương hiệu UNIX kh ỏi các mã nguồn . Single UNIX Specification 1994 Novell chuy ển thương hiệu "UNIX" v à Single UNIX Specification cho X/Open. Th áng 12, Novell đưa ra SVR4.2MP. SVR4.2MP Late 1993 4.4BSD phi ên bản cuối cùng của Berkeley. Th áng 6, Novell mua USL. 4.4BSD 1993 USL ph át hành UNIX System V Release 4.2. Solaris 2.0. SVR4.2 1992 UNIX System Laboratories (USL) tr ở thành công ty do AT&T l àm sở hữu chính . Linus Torvalds b ắt đầu phát triển Linux. Solaris 1.0. 1991
11. .: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:. -------------------- The Open Group c ông bố UNIX 98. UNIX 98 1998 Version 2 of the Single UNIX Specification bao g ồm h ỗ trợ Thời gian thực ( realtime), Đa luồng và bộ xử lý từ 64-bit tr ở lên . IRIX 6.4, AIX 4.3 v à HP-UX 11. Single UNIX Specification, Version 2 1997 X/Open đưa ra UNIX 95 th ực thi Single UNIX Specification. UNIX 95 1995
12. .: TÓM TẮT LỊCH SỬ PHÁT TRIỂN HĐH UNIX:. -------------------- N ội dung của Version 3 of the Single UNIX Specification tr ở thành chuẩn quốc tế . Solaris 9.0. Linux 2.6 kernel. ISO/IEC 9945:2003 2003 Version 3 c ủa Single UNIX Specification l à kết quả hợp nhất với POSIX c ủa IEEE . Linux 2.4 kernel. AIX 5L. T ổng giá trị liên quan đến dòng Unix vượt 25 t ỉ USD . Single UNIX Specification, Version 3 2001 UNIX tr òn 30 tuổi . Linux 2.2 kernel. The Open Group c ùng IEEE c ùng xem xét lại POSIX v à Single UNIX Specification. Nh ững hội thảo đầu tiên của LinuxWorld. Tru64 UNIX UNIX at 30 1999
13. .: CÂY TIẾN HÓA CỦA HĐH UNIX :. --------------------
14.
15. - Kernel của Linux được phân phối dưới giấy phép GNU GPL ( General Public License ) và mã nguồn của nó được phân phối tự do tới mọi người. - Phiên bản Kernel cuối hiện nay là 2.6 ( 2.6.19 – phân phối ngày 26/11/2006 tại trang Web: http://www.kernel.org/pub/linux/kernel/v2.6/) - Ngoài Kernel, có nhiều phần mềm và dịch vụ được xây dựng để chạy trên Linux (Software Packages) - Người dùng có xu thế lựa chọn Linux Kernel với một số ứng dụng cần thiết cho mình và đó là nguồn gốc của các Linux Distribution.
16. Linus Torvalds 1969 Sinh tại Helsinki, Phần Lan. 1983 Richard Stallman sáng lập the Free Software Foundation (GNU project). 1986 Thiết kế The Unix Operating System của Marice J. Bach được công bố. 1988. Vào đại học . Những ý tưởng ban đầu của Minix. 1990 Những bài học đầu tiên về lập trình C. 1991 Bắt đầu phát triển Linux. Tham khảo thiết kế của Marice J Bach. Tháng 10, công bố bản “chính thức” của Linux (bản 0.02) mới chỉ có Bash Shell và GCC. 1992 Tháng 1, Linux 0.12. Chuyển sang dùng General Public License . Tháng 3, Linux 0.95.
17. Linus Torvalds 1994 Version 0.99 sau đó là Version 1.0 được công bố trên Internet. Cuộc cách mạng WEB đi cùng với Linux. 1995 Tháng 1, FreeBSD 2.0. Red Hat có giám đốc điều hành mới là Robert Yong (người sáng lập Linux Journal). 1996 Con gái đầu lòng của Linus ra đời. Sự phát triển của Linux có chậm lại. Tháng 12, Linux 2.0. 1997 Linus tiếp xúc với Microsoft: Kết thúc gian đoạn hàn lâm tại Phần Lan (từ 1988-1997, đúng 10 năm học tập và nghiên cứu tại University of Helsinki). Nay về Bay Area (Santa Clara) để làm việc với Transmeta (Paul Allen của Microsoft là một trong những người sáng lập chính).
18.
19. - Linux là một HĐH 32-bit, th ậm chí tới 64-bit ( tính tương thích ). Cộng đồng trên mạng hiện nay sử dụng HĐH này nhiều, do đó có thể yên tâm rằng chúng ta luôn có “hậu phương” đông đảo và vững mạnh sẵn sàng trợ giúp trong khoảng thời gian sớm nhất ( tính nhân văn ) Linux thích hợp cho những người muốn đi vào nghiên cứu HĐH chuyên nghiệp và là công cụ tốt cho việc đào tạo tại các trường đại học .
38. 1.2. Đĩa cứng và phân vùng đĩa 1.2.1. Đĩa cứng và phân vùng đĩa - Đĩa cứng được thiết kế để có nhiều HĐH cùng tồn tại. - Đĩa cứng có thể được chia làm nhiều phân vùng (thường gọi là partition). - Mỗi HĐH sẽ được cài trên một phân vùng riêng biệt và có toàn quyền (Full Control) định dạng hệ thống lưu trữ ( File System ) do HĐH quy định. Hình 1-1 dưới đây là phân vùng đĩa cứng cài đặt các HĐH khác nhau:
39. A. Đĩa cứng 10GB, chưa cài HĐH nào B. Đĩa cứng gồm 1 vùng 10GB cài toàn bộ HĐH DOS/Win98 C. Đĩa cứng gồm 1 vùng 3GB cài HĐH DOS/Win98 và 7GB còn lại chưa dùng D. Đĩa cứng gồm 1 vùng 3GB cài HĐH DOS/Win98, một vùng 2GB cài HĐH Linux và 5Gb còn lại cài HĐH Windows NT/2000/XP Hình 1.1 Phân vùng đĩa và HĐH 10GB 10GB DOS/WIN98 3GB DOS/WIN98 7GB 3GB DOS/WIN98 2GB LINUX 5GB WinNT/2000 A B C D
40. - Về mặt vật lý thì ta chỉ có thể phân chia đĩa cứng thành 4 phân vùng chính (gọi là Primary Partition ). Do vậy, nếu sử dụng phân vùng chính thì cao nhất là ta chỉ có thể cài được 4 HĐH lên trên cùng một ổ đĩa cứng (giới hạn này do sector khởi động MBR - Master Boot Record quy định). - Để khắc phục giới hạn kể trên co thể dùng Extended Partition . Thực ra, phân vùng mở rộng này cũng là phân vùng chính nhưng với tính năng có thể mở rộng cho phép chia tiếp thành nhiều phân vùng con bên trong. Mỗi phân vùng con như vậy được gọi là Logic Partition . Hình 1.2 cho thấy sự khác biệt giữa Primary Partition và Extended Partition. - Do vậy, nếu có nhu cầu nhiều hơn 4 partition, có thể tạo ra phân vùng EXTENDED
41. Hình 1.2 Phân vùng trên ổ cứng 10 GB 3GB DOS/Win 2GB 1GB 1.5GB 0.5GB 1.5GB 0.5GB Primary Partition (3GB) Extended Partition (5GB) Chưa phân vùng Primary Partition (1.5GB) Chưa phân vùng Logical Partition
42. 1.2.2. Phân vùng của DOS và Windows - Trên HĐH thông dụng như DOS và Windows thì khái niệm tên ổ đĩa được đặt bằng các ký tự chữ cái thông dụng như: C:, D:, E:, F:, v.v... Trong đó ổ đĩa C: chính là Primary Partition (vì thông thường thì người ta thường lấy tên ổ đĩa chính để cài đặt HĐH) - Thông thường, những ổ đĩa khác C: như D:, E:, F: đều là tên ổ đĩa gán cho phân vùng Logic - Hình 1.3 dưới đây là mô hình phân vùng thường thấy trên các máy cài Windows Hình 1.3 Phân vùng của HĐH Windows C: 2GB Windows 98 C: 2GB Windows 98 D: G: E: F: Primary Partition Extended Partition C: 2GB Windows 98 D: WinNT G: E: F: A B C
43. - Nếu máy chỉ có ổ đĩa C: thì có thể là chỉ có một phân vùng Primary. - Nếu máy có thêm ổ D:, E:, F:, thì có nghĩa là bạn đã có phân vùng Extended và bên trong các ổ đĩa D:, E:, F: là những phân vùng Logic của Extended Partition. - Để xem được cấu hình phân vùng trên đĩa cứng vật lý, sử dụng lệnh FDISK của MS-DOS.
44. 1.2.3. Phân vùng của Linux - Trên HĐH Windows thì yêu cầu cài đặt thì chỉ cần có 1 Primary Partition. Tuy nhiên, trên HĐH Linux thì yêu cầu tối thiểu là hai phân vùng (Primary Partition hoặc Logic Partition): Phân vùng gốc chứa nhân (kernel) và hệ thống file gọi là “ root partition ” (hay còn gọi là Linux Native Partition). Bắt buộc phải có khi cài đặt Phân vùng tạm gọi là “ swap partition ” dùng là không gian hoán đổi khi bộ nhớ vật lý đầy Windows sử dụng tập tin ( .swp, .tmp hay pagefile.sys ) để lưu trữ bộ nhớ ảo, trong khi Linux sử dụng nguyên hẳn 1 phân vùng ... Kích thước của phân vùng SWAP này được nên bằng 2 lần dung lượng bộ nhớ vật lý
45. - Windows sử dụng ký tự C gán cho phân vùng chính trong DOS, thay vào đó Linux sử dụng ký tự / gán cho phân vùng gốc nơi Linux được cài đặt và lưu trữ file. “ C: ~ “/”
46. 1.2.4. Cài đặt Linux chung với Windows Hình 1.5 Sắp xếp dữ liệu cho việc cài đặt Window s A. Đĩa cứng với dữ liệu bị phân tán B. Đĩa cứng với dữ liệu đ ự ợc sắp xếp lại và chia vùng Window s Linux
47. - Yêu cầu: Phải giảm phân mảnh trên đĩa cứng dự định sẽ cài đặt Windows (bằng trình Defragment của Windows hoặc SpeedDisk của Norton) nhằm mục đích sắp xếp dữ liệu lại thành một nhóm (giảm phân mảnh). - Nếu phân vùng chứa Linux còn quá ít mà trong khi đó phân vùng chứa Windows hiện tại lại quá nhiều (chú ý là Linux khi cài đặt phải có ít nhất 2 phân vùng) thì ta tiến hành thay đổi kích thước của phân vùng chứa Windows bằng trình Partition Magic của hãng PowerQuest (chương trình này được đánh giá là tốt và không làm mất dữ liệu khi Phân hoạch lại đĩa)
48.
49.
50. .: MỘT SỐ MÀN HÌNH DEMO VIỆC GÁN CÁC KÝ HIỆU PHÂN VÙNG :. Hình 1.7 - Hình 1.8 Cài đặt và kết gán phân vùng
51.
52.
53.
54. - Hình 1.10 dưới đây sẽ cho thấy HĐH Windows và Linux được cài đặt ở hai phân vùng khác nhau. Hình 1.10 Boot Sector khởi động của từng phân vùng Windows Windows Active Linux MBR Boot Sector Boot Sector MBR Boot Sector
55. - Như vậy thì với nhiều HĐH được cài đặt trên cùng một ổ cứng thì làm thế nào để đánh dấu ( Active ) cho mỗi phân vùng mà mình muốn khởi động? ĐƠN GIẢN nhất là sử dụng công cụ sẵn có như FDISK cho việc chuyển đổi trạng thái này, ... - Có một số chương trình chiếm giữ MBR (thường gọi là Boot Manager/Boot Loader). Những chương trình này sẽ hiển thị menu cho phép người dùng chọn lựa giữa các HĐH trình Boot Loader này sẽ nạp Boot Sector tương ứng với phân vùng chứa HĐH được chọn. - Các bản cài đặt Linux đều cung cấp sẵn các trình Boot Loader có tên là LILO ( The Linux boot Loader ) hoặc GRUB ( GRand Unified Boot loader ). Có một số lựa chọn sau:
56. Install Boot Loader record on Floppy : Đây được xem là trường hợp an toàn vì LILO sẽ cài lên Sector đầu tiên của đĩa mềm không ảnh hưởng gì đến MBR của đĩa cứng. Boot Loader sẽ được khởi động từ đĩa mềm, tiếp theo đọc thông tin về phân vùng của Linux và cuối cùng là nạp hạt nhân chứa HĐH (Hình 1.10.1) Install Boot Loader record on MBR : LILO chiếm toàn quyền điều khiển khi khởi động từ ổ cứng và xác định danh sách các HĐH hiện có trong các phân vùng để người dùng lựa chọn (Hình 1.10.2) Install Boot Loader record on first sector of boot partition : Cho phép trình LILO cài vào Boot sector của phân vùng chứa HĐH khởi động (ví dụ Linux). Nếu đã có trình quản lý như Boot Magic hay System Commander , nên chọn chức năng này để bảo tồn các trình quản lý trên (Hình 1.10.3) Install Boot Loader record on Extended partition : LILO được cài vào sector đầu tiên của phân vùng mở rộng (không cài vào sector đầu tiên của phân vùng Logic)
57. .: MỘT SỐ MÀN HÌNH DEMO VIỆC CÀI ĐẶT BOOT LOADER:. Hình 1.10.1 Install Boot Loader record on Floppy
58. .: MỘT SỐ MÀN HÌNH DEMO VIỆC CÀI ĐẶT BOOT LOADER:. Hình 1.10.2 Install Boot Loader record on MBR
59. .: MỘT SỐ MÀN HÌNH DEMO VIỆC CÀI ĐẶT BOOT LOADER:. Hình 1.10.3 Install Boot Loader record on first sector of boot partition
60.
61. Linux không có khái niệm ổ đĩa như trong DOS/Windows mà sử dụng phép kết gán (mount) phân vùng (thiết bị) với một thư mục bất kỳ (Hình 1.11) DOS/Windows không đọc được hệ tập tin của Linux nên không gán cho phân vùng này ký hiệu ổ đĩa nào (Có một số driver bổ sung dùng truy cập Linux Partition từ Windows) Hình 1.11 Phân vùng và ký hiệu ổ đĩa trong DOS A: DOS Primary C: Linux D: E:
62. .: QUY TRÌNH KẾT GÁN Ổ ĐĨA VÀ PHÂN VÙNG TRONG LINUX :. Hình 1.12 . Kết gán ổ đĩa và phân vùng trong Linux - Hình 1.12 A là danh sách các phân vùng và ổ đĩa được Linux lưu thành công ở dạng file trong thư mục /dev/fd0 , /dev/had1 ,... A . Các phân vùng chưa được kết gán với thư mục gốc sau khi Linux khởi động B . Các phân vùng sau khi được kết gán với thư mục gốc
63. - Nếu muốn truy xuất các phân vùng hda1 , hda5 , hda6 , hda7 hay ổ đĩa mềm fd0 (những phân vùng này không phải thuộc dạng Linux Partition), phải thực hiện bước KẾT GÁN bằng lệnh mount Ví dụ: ( được thực hiện dưới quyền root - người dùng có quyền cao nhất ) # mount /dev/fd0 /a_drive Kết gán ổ đĩa mềm (ổ đĩa mềm được đại diện bằng tập tin /dev/fd0 ) và cho phép truy xuất như với thư mục /a_drive # mount /dev/hda1 /mydos Kết gán phân vùng thứ 1 của ổ đĩa cứng đầu tiên và cho phép truy xuất như với thư mục /mydos # mount /dev/hda6 /data Kết gán và cho phép truy xuất phân vùng hda6 như truy xuất thư mục /data # mount /dev/hda7 /programs Kết gán và cho phép truy xuất phân vùng hda7 như truy xuất thư mục /programs - Khi không muốn sử dụng thiết bị (được gán bằng lệnh mount ), có thể tháo kết gán bằng lệnh umount Ví dụ: ( được thực hiện dưới quyền root ) # umount /a_drive # umount /data
64.
65. .: MỘT SỐ MÀN HÌNH GIAO DIỆN :. Hình 1.12.1 Giao tiếp bằng console trong Linux
66. .: MỘT SỐ MÀN HÌNH GIAO DIỆN :. Hình 1.12.2 Giao tiếp bằng graphic trong Linux
67.
68. - Hình 1.13 sẽ cho thấy màn hình đăng nhập dạng Console Mode. - Hình 1.14 sẽ cho thấy màn hình đăng nhập dạng Graphic Mode. - Do tính đa nhiệm, Linux có thể chạy nhiều chương trình cùng lúc ngay từ dòng lệnh.
69. .: MÀN HÌNH ĐĂNG NHẬP GIAO DIỆN CONSOLE :. Hình 1.13 Đăng nhập từ dòng lệnh
70. .: MÀN HÌNH ĐĂNG NHẬP GIAO DIỆN GRAPHIC :. Hình 1.14 Đăng nhập qua GUI
71. .: MINH HỌA CHỨC NĂNG MULTI-USER :. Hình 1.15 Các console ảo - Chức năng multi-user