Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
281,93 KB
Nội dung
TRƯỜNG ĐẠI HỌC CẦN THƠ KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG BỘ MƠN MẠNG MÁY TÍNH & TRUYỀN THƠNG Tiến trình khởi động Linux Trình bày: TS NGƠ BÁ HÙNG Email: nbhung@cit.ctu.edu.vn Tiến trình khởi động Linux Khởi động (booting) • Là tiến trình nạp chương trình mồi (bootstrapping) để khởi động hệ điều hành người dùng bật/khởi động lại máy tính • Bao gồm chuỗi thao tác mà máy tính phải thực để nạp hệ điều hành máy tính bật khởi động lại 07/08/12 Ngơ Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux Tiến trình khởi động máy tính 07/08/12 Bật máy tính CPU nhảy đến địa BIOS (0xFFFF0) BIOS chạy chương trình POST (Power-On Self Test) BIOS tìm thiết bị khởi động Nạp thực thi chương trình khởi động chứa cung khởi động (boot sector), đĩa cứng MBR (Master Boot Record) Nạp hệ điều hành Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux Tiến trình khởi động Linux • Các chương trình liên quan tiến trình khởi động 07/08/12 Ngơ Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux BIOS (Basic Input/Output System) • Là chương trình nạp sẵn EEPROM (Electrically Erasable Programmable ROM) mainboard máy tính • Được thực thi khởi động máy tính • Nhận tham số thơng qua giao diện CMOS BIOS on board 07/08/12 BIOS on screen Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux BIOS (Basic Input/Output System) • Thực chức ● ● ● ● 07/08/12 Thực trình tự kiểm tra (POST) để xem thiết bị thiết yếu có trạng thái sẵn sàng sử dụng không Các thiết bị ngoại vi khởi động Tìm hệ điều hành phương tiện lưu trữ vào cấu hình thiết đặt CMOS Khi tìm thấy cung khởi động (boot sector) hợp lệ, copy vào RAM thực thi Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux MBR (Master Boot Record) • Là cung đĩa cứng (sector cylinder 0, head 0) • Có kích thước 512 bytes • Chứa nạp chương trình khởi động (Boot loader) • Được nạp vào RAM BIOS sau chiếm quyền điều khiển máy tính • Có thể xem Linux lệnh ● ● 07/08/12 dd if=/dev/hda of=mbr.bin bs=512 count=1 od -xa mbr.bin Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux MBR (Master Boot Record) 0xAA55 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux Boot loader • Là chương trình chứa MBR để nạp kernel hệ điều hành điều khiển máy tính • Có nhiều Boot loader ● MS-DOS boot loader: mặc định đĩa cứng ● GRUB LILO: dùng phổ biến cho máy Linux ● NTLDR: Windows NT, 2000, ● Bootman, NTLDR, XOSL , BootX ,loadlin, Gujin, Boot Camp, Syslinux, GAG , 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ Tiến trình khởi động Linux GRUB: GRand Unified Bootloader • Một nạp hệ điều hành chuẩn độc lập hệ điều hành • Gói phần mềm khởi động đa hệ điều hành phát hành từ dự án GNU • Giao diện dòng lệnh linh hoạt • Truy cập nhiều hệ thống tập tin • Hỗ trợ nhiều dạng tập tin thực thi • Hỗ trợ hệ thống khơng đĩa cứng • Tải hệ điều hành từ mạng • 07/08/12 Ngơ Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 10 Tiến trình khởi động Linux Tiến trình khởi động với GRUB BIOS tìm thiết bị khởi động (đĩa cứng) chuyển quyền điều khiển cho boot loader MBR MBR chứa mã thực thi giai đoạn GRUB với nhiệm vụ load giai đoạn (1,5) GRUB Giai đoạn 1,5 GRUB nằm 30 kilobytes tiếp sau MBR nạp tiếp giai đoạn GRUB Giai đoạn GRUB nhận điều khiển máy tính hiển thị boot menu để người dùng chọn hệ điều hành khởi động cho máy tính GRUB nạp kernel hệ điều hành chọn (hoặc mặc định) chuyển quyền điều khiển máy tính cho hệ điều hành 07/08/12 Ngơ Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 11 Tiến trình khởi động Linux Tập tin cấu hình GRUB 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 12 Tiến trình khởi động Linux Hạt nhân hệ điều hành (Kernel) • Là thành phần cốt lõi hệ điều hành • Quản lý tài nguyên máy tính giao tiếp thành phần phần mềm phần cứng • Được lưu nhớ tắt máy • Cần phải có kích thước nhỏ • Được nén lại thành tập tin ảnh (kernel image) ● ● 07/08/12 /boot/vmlinuz-2.6.x: Mount đĩa cứng /boot/initrd.img-2.6.x: Mount RamDisk Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 13 Tiến trình khởi động Linux Tiến trình khởi động Kernel • Khởi tạo thiết bị ngoại vi • Chuyển CPU từ Real mode sang Procected Mode • Giải nén kernel • Gọi thực thi hàm start_kernel() với PID =0 • Khởi động tiến trình init() với PID = 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 14 Tiến trình khởi động Linux Init process • Là tiến trình kernel tạo trước • Là cha/gốc tất tiến trình lại Linux • Có nhiệm vụ khởi tạo tiến trình khác mơ tả tập tin /etc/inittab • Dựa mức độ thực thi (run level): ● Trạng thái máy tính tương ứng với tập tiến trình thực thi ● Có giá trị từ 0-6 • /etc/inittab mơ tả tiến trình mà init cần thực thị tương ứng với run level 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 15 Tiến trình khởi động Linux Runlevels Runlevel Scripts thực thi Trạng thái máy tính /etc/rc.d/rc0.d/ shutdown/halt system /etc/rc.d/rc1.d/ Single user mode /etc/rc.d/rc2.d/ Multiuser with no network services exported /etc/rc.d/rc3.d/ Default text/console only start Full multiuser /etc/rc.d/rc4.d/ Reserved for local use Also X-windows (Slackware/BSD) /etc/rc.d/rc5.d/ XDM X-windows GUI mode (Redhat/System V) /etc/rc.d/rc6.d/ Reboot s or S Single user/Maintenance mode (Slackware) M Multiuser mode (Slackware) 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 16 Tiến trình khởi động Linux Init - Ubuntu • Tập tin /etc/inittab thay /etc/init.d/rcS • rcS thực thi /etc/init.d/rc S • rc tìm thực thi script thưc mục /etc/rcN ● Liên kết đến tập tin thư mục /etc/init.d • Qui tắt đặt tên /etc/rcN 07/08/12 ● SxyFunctionName KxyFunctionName ● S: Start; K: Kill; Scrip K thực thi trước script S ● xy: Thứ tự thực Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 17 Tiến trình khởi động Linux Tài liệu tham khảo • http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_: _Ch07_:_The_Linux_Boot_Process • http://www.ibm.com/developerworks/linux/library/l-linuxboot/ • http://www.thegeekstuff.com/2011/02/linux-boot-process/ • http://www.cs.sfu.ca/CC/471/tront/otherInfo/boot.pdf • http://free-7.blogspot.com/2010/10/linux-boot-process.html http://www.ibm.com/developerworks/linux/library/l-initrd.html • http://www.yolinux.com/TUTORIALS/LinuxTutorialInitProcess.html • http://www.zdnetasia.com/linux-101-get-control-with-secure-servicemanagement-39375848.htm • http://www.linuxlinks.com/article/201202180625569/BootUtilities.html 07/08/12 Ngô Bá Hùng - Khoa CNTT&TT - ĐH Cần Thơ 18