Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 25 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
25
Dung lượng
1,07 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG BÁO CÁO BÀI TẬP LỚN HỆ ĐIỀU HÀNH Đề tài: Tìm Hiểu Về Biên Dịch Kernel Cấu Hình Lại Trên Một Hệ Điều Hành Nhân Unix Để Cài Đặt Trên Máy Chưa Có Hệ Điêu Hành Giảng Viên Hướng Dẫn: TS Phạm Dỗn Tĩnh Nhóm:10 Trần Văn Huyện 20153 Nguyễn Thanh Lộc 20152304 Nguyễn Sĩ Khiêm 2015 Nguyễn Văn Thanh 20153332 Nguyễn Anh Tuấn Hà Nội, 11-2019 He LỜI NHẬN XÉT CỦA GIẢNG VIÊN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Hà Nôi,Ngày tháng năm 2019 Giảng Viên MỤ C LỤ C MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC BẢNG BIỂU PHẦN A LỜI NÓI ĐẦU PHẦN B.NỘI DUNG .7 Chương I.Cơ sở lý thuyết .7 1.1.Hệ điều hành nhân unix/linux .8 1.1.1 Hệ điều hành nhân unix 1.2.Kernel .10 1.2.1 Cấu trúc .10 1.2.2 Hoạt động kernel 13 Bộ nhớ RAM chứa lệnh/dữ liệu dạng nhị phân của Linux kernel tiến trình RAM chia làm miền .13 Chương II.Cài đặt .17 2.1 Biên dịch cài đặt kernel .17 2.2 Tùy chỉnh file ISO phần mềm cubic 21 PHẦN C KẾT LUẬN 25 PHẦN D.DANH MỤC TÀI LIỆU THAM KHẢO 26 DANH MỤ C HÌNH Ả NH Hình 1 Kiến trúc kernel đứng góc độ quản lý 10 Hình kiến trúc linux kernel đứng góc độ thực thi 13 Hình Các chế độ hoạt động cpu 14 Y Hình kiểm tra phiên kernel .17 Hình 2 giải nén file tar 18 Hình Thiết lập cấu hình cho kernel 19 Hình Quá trình dịch kernel 20 Hình Cài đăt kernel 20 Hình Phiên kernel sau cài đặt 21 Hình Phần mềm cubic .22 Hình Chọn file iso 23 Hình Cài đặt loại bỏ phần mềm 23 Hình 10 Cài đặt kernel 24 DANH MỤ C BẢ NG BIỂ U PHẦ N A LỜ I NÓ I ĐẦ U Hệ điều hành (Operating System-OS) phần mềm chạy máy tính thiết bị di động ,dùng để điều hành,quản lý thiết bị phần cứng tài nguyên phần mềm máy tính thiết bị di động Hệ điều hành quản lý tài nguyên máy tính bao gồm:Các thiết bị đầu vào bàn phím cht, Các thiết bị đầu hình hiển thị, máy in máy quét, Các thiết bị mạng modem, định tuyến kết nối mạng, Các thiết bị lưu trữ ổ đĩa Hệ điều hành cung cấp dịch vụ để tạo thuận lợi cho việc thực quản lý hiệu phân bổ nhớ cho chương trình ứng dụng phần mềm cài đặt bổ sung Hệ điều hành bao gồm nhiều thành phần tính Những tính định nghĩa phần hệ điều hành khác tùy theo hệ điều hành Tuy nhiên, ba thành phần dễ dàng xác định là: Kernel: Kernel cung cấp điều khiển mức tất thiết bị phần cứng máy tính Các vai trị bao gồm: đọc liệu từ nhớ ghi liệu vào nhớ, xử lý lệnh thực hiện, xác định cách liệu nhận gửi thiết bị hình, bàn phím, chuột xác định cách diễn giải liệu nhận từ mạng Giao diện người dùng: User Interface cho phép việc tương tác với người dùng thông qua graphical icons desktop thông qua command line Giao diện lập trình ứng dụng: Application Programming Interfaces cho phép application developers viết modular code Các thành phần hệ điều hành phức tạp , khuôn khổ tập lớn chúng em tập trung vào việc tiềm hiểu nhân kernel thành phần trung tâm hệ điều hành.Vì chúng em lựa chọn đề tài “Tìm Hiểu Về Biên Dịch Kernel Cấu Hình Lại Trên Một Hệ Điều Hành Nhân Unix Để Cài Đặt Trên Máy Chưa Có Hệ Điêu Hành” Trong thời gian tìm hiểu làm đề tài dựa vào kiến thức học trường, qua số sách, tài liệu có liên quan với giúp đỡ tận tình thầy giáo,các bạn đặc biệt với hướng dẫn tận tình thầy Phạm Dỗn Tĩnh Mặc dù cố gắng hoàn thành với kinh nghiệm khả cịn hạn chế nên chúng em khơng thể tránh khỏi sai sót nhầm lẫn, chúng em mong thầy, cô giáo bạn đóng góp ý kiến quý báu để chúng em hồn thiện đề tài Chúng em xin chân thành cảm ơn! PHẦ N B.NỘ I DUNG Chương I.Cơ sở lý thuyết 1.1.Hệ điều hành nhân unix/linux 1.1.1 Hệ điều hành nhân unix Unix hay Unix hệ điều hành tính viết vào năm 1960 1970 số nhân viên công ty AT&T Bell Labs bao gồm Ken Thompson,Dennis Ritchie Douglas Mcllroy.Từ góc nhìn người dùng chun nghiệp lập trình viên,Hệ thống Unix có đặc điểm thiết kế theo module,đơi gọi triết lý Unix,nghĩa hệ điều hành cung cấp tập hợp công cụ đơn giản,mỗi công cụ thực chức giới hạn định nghĩa rõ ràng ,với hệ thống file hợp phương tiện để giao tiếp phần lập trình vỏ ngơn ngữ lệnh để kết hợp công cụ để thực chức phức tập,Ngày hệ điều hành Unix phân thành nhiều nhánh khác nhau,nhánh AT&T,nhánh số nhà phân phối thương mại nhánh tổ chức phi lợi nhuận.Unix chạy nhiều loại máy tính khác nhau,,từ máy tính cá nhân máy chủ dịch vụ.Nó hệ điều hành đa nhiệm hỗ trợ cách lý tưởng ứng dụng nhiều người dùng.Unix viết ngơn ngữ lập trình C,một ngơn ngữ mạnh mềm dẻo.Unix hỗ trợ ứng dụng mạng hỗ trợ nhiều mơi trường lập trình khác nhau.Với hàng trăm lệnh số lượng lớn tùy chọn,Unix thực khó khăn người bắt đầu.Với phát triển shell Unix hệ điều hành trở nên phổ dụng lĩnh vực điện tốn Vì Bell Laboratories bị cấm khơng cho phép tiếp thị Unix lệnh chống độc quyền AT&T nên Unix cung cấp miễn phí cho trường đại học tồn Bắc Mỹ từ năm 1976.Sau ưa thích lĩnh vực công nghệ,AT&T giành quyền tiếp thị Unix cho đời System V vào năm 1983.Cho đến Unix sử dụng rộng rãi thị trường máy chủ 1.1.2 Hệ điều hành nhân linux Linux hệ điều hành nguồn mở dựa Unix Nói cách xác, thuật ngữ “Linux” sử dụng để nhân Linux (Linux kernel).Phiên Linux Torvalds viết vào năm 1991,lúc ơng cịn sinh viên của Đại học Helsinki tại Phần Lan Ơng làm việc cách hăng say vịng năm liên tục cho đời phiên Linux 1.0 vào năm 1994 HĐH hoàn chỉnh dựng lên từ Linux Kernel kết hợp với ứng dụng khác làm việc gọi vắn tắt Linux OS, phiên biến thể khác Linux OS cộng đồng xây dựng sẵn gọi các Linux distro, Linux distro lại có nhiều version Hệ điều hành Linux có giao diện người dùng đồ họa (GUI) giao diện dòng lệnh (CLI) KDE GNOME môi trường GUI khác HĐH Linux Linux thường phân phối miễn phí, tải xuống miễn phí, có số phân phối Linux có phí Red Hat Linux, chúng thường rẻ Windows Linux hệ điều hành linh hoạt tương thích với hầu hết hệ thống phần cứng Hệ điều hành Linux cài đặt thực thi hầu hết thiết bị có xử lý Vì linh hoạt nhanh nhẹn, Linux cài đặt nhiều loại phần cứng máy tính, từ điện thoại di động, máy tính bảng máy chơi game, đến máy tính lớn siêu máy tính Linux OS HĐH mã nguồn mở, mã nguồn có sẵn miễn phí Do đó, bạn đọc, sửa đổi triển khai máy Tuy nhiên, bạn khơng thể bán thuộc Giấy phép GPL GNU Linux có khả mở rộng cao hỗ trợ tập hợp lớn hệ thống file (file systems) như: xfs, ramfs, nfs, vfat, cramfsm ext3, ext4, ext2, ext1, ufs, autofs, devpts, ntfs… Việc cài đặt Linux nói chung kinh tế so với Unix khơng u cầu phần cứng đặc biệt để chạy thân hệ điều hành nói, miễn phí rẻ Linux có số distro sau: Redhat Kali Slackware Debian ArchLinux Solaris Ubuntu CentOS Fedora HĐH Linux an toàn Linux có khoảng 60 – 100 virus liệt kê nay, nhiên, ngày khơng có loại virus tích cực lây lan Linux ban đầu phát triển cho CPU Intel86 x86 Tuy nhiên, support nhiều loại CPU khác bao gồm ARM 1.2.Kernel 1.2.1 Cấu trúc Vào năm 1991, dựa UNIX kernel, Linus Torvalds tạo Linux kernel chạy máy tính ơng Dựa vào chức hệ điều hành, Linux kernel chia làm 6 thành phần Hình Kiến trúc kernel đứng góc độ quản lý Process management: có nhiệm vụ quản lý tiến trình, bao gồm cơng việc: Tạo/hủy tiến trình Lập lịch cho tiến trình Đây thực chất lên kế hoạch: CPU thực thi chương trình nào, thực thi bao lâu, chương trình Hỗ trợ tiến trình giao tiếp với Đồng hoạt động tiến trình để tránh xảy tranh chấp tài nguyên Memory management: có nhiệm vụ quản lý nhớ, bao gồm công việc: Cấp phát nhớ trước đưa chương trình vào, thu hồi nhớ tiến trình kết thúc Đảm bảo chương trình có hội đưa vào nhớ Bảo vệ vùng nhớ tiến trình Device management: có nhiệm vụ quản lý thiết bị, bao gồm công việc: Điều khiển hoạt động thiết bị Giám sát trạng thái thiết bị Trao đổi liệu với thiết bị Lập lịch sử dụng thiết bị, đặc biệt thiết bị lưu trữ (ví dụ ổ cứng) Networking management: có nhiệm vụ quản lý các gói tin (packet) theo mơ hình TCP/IP System call Interface: có nhiệm vụ cung cấp dịch vụ sử dụng phần cứng cho tiến trình Mỗi dịch vụ gọi một system call File system management: có nhiệm vụ quản lý liệu thiết bị lưu trữ (như ổ cứng, thẻ nhớ) Quản lý liệu gồm cơng việc: thêm, tìm kiếm, sửa, xóa liệu Khi triển khai thực tế Linux gồm thư mục sau: Thư mục Vai trò /arch Chứa mã nguồn giúp Linux kernel thực thi nhiều kiến trúc CPU khác x86, alpha, arm, mips, mk68, powerpc, sparc,… /block Chứa mã nguồn triển khai nhiệm vụ lập lịch cho thiết bị /drivers Chưa mã nguồn để triển khai nhiệm vụ điều khiển,giám sát,trao đổi liệu với thiết bị /fs Chứa mã nguồn triển khai nhiệm vụ quản lý liệu thiết bị /ipc Chứa mã nguồn triển khai nhiệm vụ giao tiếp giữa tiến trình /kernel Chứa mã nguồn triển khai nhiệm vụ lập lịch đồng hoạt động tiến trình /mm Chứa mã nguồn triển khai nhiệm vụ quản lý nhớ /net Chứa mã nguồn triển khai nhiệm vụ xử lý gói tin theo mơ hình TCP/IP Bảng Một số thư mục mã nguồn linux kernel 1.2.2 Hoạt động kernel Bộ nhớ RAM chứa lệnh/dữ liệu dạng nhị phân của Linux kernel tiến trình RAM chia làm miền Kernel space là vùng không gian chứa lệnh liệu kernel User space là vùng không gian chứa lệnh liệu tiến trình Hình kiến trúc linux kernel đứng góc độ thực thi CPU có chế độ thực thi (hình 1.2): Khi CPU thực thi lệnh kernel, hoạt động chế độ kernel mode Khi chế độ này, CPU thực lệnh tập lệnh nó, CPU truy cập địa không gian địa Khi CPU thực thi lệnh tiến trình, hoạt động chế độ user mode Khi chế độ này, CPU thực hiện một phần tập lệnh nó, CPU phép truy cập phần không gian địa Để cho dễ hình dung, ta liên tưởng này: CPU giống bạn, tiến trình giống như cơng việc sếp giao cho bạn, cịn kernel giống công việc của vợ giao cho bạn Khi bạn thực thi việc sếp, bạn thực cho xong, không nỗ lực hết mình, việc mà ảnh hưởng đến quyền lợi bạn bạn khơng làm Thái độ làm việc bạn giống như chế độ user mode CPU. Khi bạn thực thi việc vợ, bạn thực việc tồn tâm tồn ý, nỗ lực hết mình, việc Thái độ làm việc bạn giống như chế độ kernel mode CPU Để hiểu rõ hơn, ta xét tiến trình hình 1.2 Tiến trình gồm nhiều lệnh nhị phân, tương ứng với 2 lệnh C CPU lấy lệnh và thực thi Lệnh thứ nhất, "a = + 10", lệnh tính tốn, CPU thực thi chế độ user mode Lệnh thứ hai, "printf("%d", a)", là lệnh vào/ra Hàm "printf" gọi system call "write" để yêu cầu Linux kernel in thông tin hình Khi đó, CPU chuyển sang chế độ kernel mode để thực thi lệnh Linux kernel Hình Các chế độ hoạt động cpu Khi tiến trình cần sử dụng dịch vụ kernel, tiến trình gọi một system call System call tương tự hàm bình thường khác (library call) Chỉ có điều, library call được cung cấp thư viện user space, system call cung cấp kernel Do đó, khi tiến trình gọi library call, CPU giữ nguyên chế độ thực thi user mode Cịn tiến trình gọi system call, CPU phải chuyển sang chế độ kernel mode để thực thi lệnh kernel (hình 2.3) Lúc này, ta nói rằng, CPU thực thi chế độ kernel mode, ngữ cảnh process context Sau kernel thực xong yêu cầu, kernel gửi trả kết cho tiến trình Lúc này, CPU lại chuyển sang chế độ user mode để thực thi tiếp lệnh tiến trình Ngồi system call, ngắt nguyên nhân khiến CPU chuyển chế độ thực thi sang kernel mode (hình 5) Khi có thiết bị muốn trao đổi liệu với CPU, gửi tín hiệu ngắt tới CPU cách nâng điện áp chân INT CPU Khi đó, CPU ngừng thực thi lệnh tiến trình lại, chuyển sang chế độ kernel mode thực thi chương trình đặc biệt kernel để xử lý tín hiệu ngắt Lúc này, ta nói CPU thực thi chế độ kernel mode, ngữ cảnh interrupt context Sau xử lý xong, CPU trở lại chế độ user mode tiếp tục thực lệnh tiến trình Chương II.Cài đặt 2.1 Biên dịch cà i đặ t kernel Kiểm tra phiên kernel dùng: uname –r Hình kiểm tra phiên kernel Chạy câu lệnh sau để cài gói phần mềm cần thiết trình biên dịch sudo apt-get update(trước cài đặt cần cập nhập index package) sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex bison Truy cập trang kernel.org để tải phiên kernel (trong phần phiên 5.3.8) Truy cập trang kernel.org để tải phiên kernel (trong phần phiên 5.3.8) Tại thư mục tải về, mở terminal giải nén file vừa tải lệnh: tar xvf linux-5.3.8.tar.xz Hình giải nén file tar Truy cập thư mục vừa giải nén lệnh: cd linux-5.3.8 Thiết lập cấu hình cho kernel (sử dụng cấu hình phiên dùng ): cp /boot/config-$(uname -r) config make menuconfig Hình Thiết lập cấu hình cho kernel Nếu khơng có thay đổi lưu lại Nếu khơng có thay đổi lưu lại Dịch kernel (-j$(nproc) chọn số luồng) : make -j$(nproc) Hình Quá trình dịch kernel Cài đặt kernel: sudo make install Hình Cài đăt kernel Khởi động lại máy: reboot Sau máy khởi động xong ta kiểm tra phiên kernel: uname –r Hình Phiên kernel sau cài đặt 2.2 Tùy chỉnh file ISO phần mềm cubic Cài đặt phần mềm Cubic: apt-add-repository ppa:cubic-wizard/release apt-key adv keyserver keyserver.ubuntu.com recv-keys 6494C6D6997C215E apt update && apt install cubic Truy cập trang releases.ubuntu.com để tải file iso của phiên bản ubuntu cần cài đặt, trong ví dụ này là ubuntu-18.04.1-desktopamd64.iso Mở Cubic: Hình Phần mềm cubic Chọn thư mục làm việc nhấn next Chọn file iso vừa tải nhấn next chờ giải nén Hình Chọn file iso Sau phần mềm tạo Chroot Environment từ file iso, ta cài đặt loại bỏ gói phần mềm Hình Cài đặt loại bỏ phần mềm Ta cài kernel cho file iso: mkdir kernel-5-1 cd kernel-5-1 wgethttps://kernel.ubuntu.com/~kernel-ppa/mainline/v5.1/linux-headers-5.1.0050100_5.1.0-050100.201905052130_all.deb wget https://kernel.ubuntu.com/~kernel- ppa/mainline/v5.1/linux-headers-5.1.0-050100-generic_5.1.0050100.201905052130_amd64.deb wget https://kernel.ubuntu.com/~kernel- ppa/mainline/v5.1/linux-image-unsigned-5.1.0-050100generic_5.1.0-050100.201905052130_amd64.deb wget https://kernel.ubuntu.com/~kernel- ppa/mainline/v5.1/linux-modules-5.1.0-050100-generic_5.1.0050100.201905052130_amd64.deb Hình Cài đặt kernel PHẦ N C KẾ T LUẬ N Kinh nghiệm thu Hiểu hệ điều hành Biết cấu trúc hoạt động nhân kernel Làm quen với hệ điều hành (ubuntu) Vận dụng tổng hợp nhiều kiến thức học để giải vấn đề.Cơ họi thực hành kiến thức học Nâng cao khả làm việc nhóm tinh thần trách nhiệm cá nhân công việc chung Kết đạt Biên dịch cài đặt kernel thành cơng Nhóm chưa thể hồn thành việc cài đặt file system Nhóm sinh viên chúng em xin chân thành cảm ơn giảng dạy tận tình giáo, giảng viên, TS.Phạm Dỗn Tĩnh giúp chúng em có kiến thức sở định hướng để hoàn thiện đề tài PHẦ N D.DANH MỤ C TÀ I LIỆ U THAM KHẢ O https://vi.wikipedia.org/wiki/Unix https://quantrimang.com/unix-linux-la-gi-156576 https://vi.wikipedia.org/wiki/Linux https://tinhte.vn/threads/phan-biet-giua-unix-va-linux.816063/ ... Dịch Kernel Cấu Hình Lại Trên Một Hệ Điều Hành Nhân Unix Để Cài Đặt Trên Máy Chưa Có Hệ Điêu Hành? ?? Trong thời gian tìm hiểu làm đề tài dựa vào kiến thức học trường, qua số sách, tài liệu có liên... Các thành phần hệ điều hành phức tạp , khuôn khổ tập lớn chúng em tập trung vào việc tiềm hiểu nhân kernel thành phần trung tâm hệ điều hành. Vì chúng em lựa chọn đề tài ? ?Tìm Hiểu Về Biên Dịch Kernel. .. B.NỘ I DUNG Chương I.Cơ sở lý thuyết 1.1 .Hệ điều hành nhân unix/ linux 1.1.1 Hệ điều hành nhân unix Unix hay Unix hệ điều hành tính viết vào năm 1960 1970 số nhân viên công ty AT&T Bell Labs bao gồm