Tải bản đầy đủ (.docx) (28 trang)

Project nguyen lý Hệ điều hành ct178 ct104

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.61 MB, 28 trang )

TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THƠNG

BÁO CÁO PROJECT
NGUN LÝ HỆ ĐIỀU HÀNH
HỌC KÌ I 2021-2022

Sinh Viên Thực Hiện:
Họ & Tên
MSSV: ...
Mail


aCT178 – Nguyên lý hệ điều hành

MỤC LỤC

2


aCT178 – Nguyên lý hệ điều hành

3


aCT178 – Nguyên lý hệ điều hành
HỌ VÀ TÊN:

MSSV:...

Tuyên bố: Project này là do chính tơi, (MSSV: ...), tự thực hiện khơng sao chép của


bất kỳ ai. Nếu có bất cứ sao chép nào, tơi hồn tồn chịu trách nhiệm.

PHẦN 1: XÂY DỰNG LINUX KERNEL
Thực hiện ở chế độ người dùng root (root user)
$su A. CHUẨN BỊ LINUX KERNEL CODE
1. Download và cài đặt tool cần thiết vào hệ thống
#sudo apt-get install -y gcc libncurses5-dev make wget

Hình 1: #sudo apt-get install -y gcc libncurses5-dev make wget

# sudo apt-get install -y gcc libssl-dev

4


aCT178 – Nguyên lý hệ điều hành

Hình 2: # sudo apt-get install -y gcc libssl-dev

#sudo apt-get install bison

Hình 3: #sudo apt-get install bison

#sudo apt-get install flex

5


aCT178 – Nguyên lý hệ điều hành


Hình 4: #sudo apt-get install flex

2. Xác định phiên bản hiện tại của kernel:
# uname –r

Hình 5: # uname –r

3. Truy cập hoặc và
download source code của kerenl hiện tại. Kế tiếp, download kernel 5.9 và giải nén
source code:
# wget />
6


aCT178 – Nguyên lý hệ điều hành

Hình 6: # wget />
Giải nén

Hình 7: # tar xvzf linux-5.9.tar.gz

7


aCT178 – Nguyên lý hệ điều hành
B. CẤU HÌNH KERNEL MỚI
1. Đảm bảo đường dẫn hiện tại ở ~/linux-5.9 và “linux-5.9” ở top directory của
kernel source.
#cd linux-5.9


Hình 8: #cd linux-5.9

2. Tạo file cấu hình (config file)
- Để sử dụng lệnh “make” chạy lệnh sudo apt-get install make
#sudo apt-get install make

Hình 9: #sudo apt-get install make

# make menuconfig

Hình 10: #make menuconfig

8


aCT178 – Nguyên lý hệ điều hành
Chú ý, không thay đổi thơng tin gì cả. Nhấn ESC để save và thốt khỏi menu cấu hình
(configuration menu). File cấu hình sẽ được tạo ra.
C. BIÊN DỊCH KERNEL
Chỉnh sửa dòng CONFIG_SYSTEM_TRUSTED_KEYS=” debian/canonical-certs-pem”
thành CONFIG_SYSTEM_TRUSTED_KEYS=””
#nano .config

Hình 11: #nano .config

1. Tại ~/linux-5.9, tạo kernel image nén (compressed kernel image)
# make –j4

9



aCT178 – Nguyên lý hệ điều hành

Hình 12: # make –j4

2. Biên dịch kernel modules:
# make modules

Hình 13: # make modules

10


aCT178 – Nguyên lý hệ điều hành
D. CÀI ĐẶT KERNEL
1. Cài đặt kernel modules
#make modules_install

Hình 14: #make modules_install p1

Hình 15: #make modules_install

2.Cài đặt the kernel
#make install

Hình 16: #make install

11



aCT178 – Nguyên lý hệ điều hành

Hình 17: #make install

E. THAY ĐỔI FILE CẤU HÌNH GRUB (GRUB CONFIGURATION FILE)
Thay đổi file cấu hình grub:
# nano /etc/default/grub
Thực hiện các thay đổi sau:
GRUB_DEFAULT=0
GRUB_TIMEOUT=25

Hình 18: # nano /etc/default/grub

F. REBOOT VM
1. Reboot kernel mới:
12


aCT178 – Nguyên lý hệ điều hành
# reboot
2. Sau khi boot, kiểm tra thơng tin kernel mới có đúng chưa:
# uname –r

Hình 19: # uname –r

PHẦN 2: THÊM LỜI GỌI HỆ THỐNG VÀO LINUX KERNEL
A. CHUẨN BỊ LINUX CODE
1. Download source code của kernel 4.16.3
#wget />
Hình 20: #wget />

2. Giải nén source code của kernel 4.16.3
#tar xvzf linux-4.16.3.tar.gz

13


aCT178 – Nguyên lý hệ điều hành

Hình 21: #tar xvzf linux-4.16.3.tar.gz

B. TẠO LỜI GỌI HỆ THỐNG
1. Định nghĩa lời gọi hệ thống mới
#cd /root/linux-4.16.3
#mkdir hello
- Truy cập vào thư mục vừa tạo

Hình 22: #mkdir hello

#cd hello

Hình 23: #nano hello.c

2. Viết chương trình hello.c
#nano hello.c
Nội dung

14


aCT178 – Nguyên lý hệ điều hành

#inlcude <linux/kernel.h>
asmlinkage long sys_hello(void){
Printk(“xin chao ……”);
Return 0;
}
Hình 24: hello.c

3. Tạo tập tin Makefile
#nano Makefile

Hình 25: #nano Makefile

4. Chỉnh sửa tập tin Makefile
Truy cập thư mục /root/linux-4.16.3/ và sửa đổi tập tin Makefile
#cd /root/linux4.16.3/ #nano Makefile
Thêm “hello/” vào cuối dòng:
core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ hello/

15


aCT178 – Nguyên lý hệ điều hành

Hình 26: #cd /root/linux4.16.3/ #nano Makefile

5. Thêm lời gọi hệ thống mới vào bảng gọi hệ thống
Truy cập vào đường dẫn
#cd /root/linux-4.16.3/arch/x86/entry/syscalls/

Hình 27: #cd /root/linux-4.16.3/arch/x86/entry/syscalls/


Sau đó
Chỉnh sửa tập tin syscall_64.tbl
#nano syscall_64.tbl
Thêm 1 dịng như sau
548
64
hello
sys_hello

16


aCT178 – Nguyên lý hệ điều hành

Hình 28: #nano syscall_64.tbl

6. Thêm lời gọi hệ thống sys_hello() vào system call header file
#cd /root/linux-4.16.3/include/linux
#nano syscalls.h
Thêm dòng “asmlinkage long sys_hello(void);” vào trước dòng #endif cuối cùng

Hình 29: #nano syscalls.h

C. BIÊN DỊCH LẠI KERNEL
1. Biên dịch lại Kernel
#cd /root/linux-4.16.3/
#make menuconfig
Không thay đổi nội dung, nhấn ESC để lưu và thoát.
17



aCT178 – Nguyên lý hệ điều hành

Hình 30: #cd /root/linux-4.16.3/

Hình 31: #make menuconfig

18


aCT178 – Nguyên lý hệ điều hành

Hình 32: #make menuconfig

2. THAY ĐỔI .CONFIG
Chỉnh sửa dòng CONFIG_SYSTEM_TRUSTED_KEYS=””
#nano .config

19


aCT178 – Nguyên lý hệ điều hành

Hình 33: #nano .config

#make –j4
Hình 34: #make –j4

20



aCT178 – Nguyên lý hệ điều hành

Hình 35: #make –j4

3. Biên dịch modules
#make modules

Hình 36: #make modules

4. Cài đặt kernel modules
#make modules_install
21


aCT178 – Nguyên lý hệ điều hành

Hình 37: #make modules_install

#make install

22


aCT178 – Nguyên lý hệ điều hành

Hình 38: #make install

D. CHỈNH SỬA CẤU HÌNH GRUB

1. Cấu hình Grub
#nano /etc/default/grub
GRUB_DEFAULT=0
GRUB_TIMEOUT=25

23


aCT178 – Nguyên lý hệ điều hành

Hình 39: #nano /etc/default/grub

E. REBOOT VM
1. Reboot
#reboot
Hình 40: #reboot

2. Kiểm tra phiên bản
Chọn kernel linux-4.16.3
#uname -r

Hình 41: #uname -r

F. TẠO LỜI GỌI HỆ THỐNG
1. Kiểm tra lời gọi hệ thống
#nano uesrspace.c

Hình 42:#nano uesrspace.c

24



aCT178 – Nguyên lý hệ điều hành
2. Nội dung userspace.c

Hình 43: uesrspace.c

3. Biên dịch và chạy file vừa tạo
$gcc userspace.c
$./a.out

Hình 44: $gcc userspace.c

4. Xem thơng điệp
$dmesg

Hình 45: $dmesg

25


×