PROTECT NGUYÊN LÝ HỆ ĐIỀU HÀNH - UBUNTU

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

PROJECT - NGUYÊN LÝ HỆ ĐIỀU HÀNH 

Học kỳ I – 2020-2021 






HỌ VÀ TÊN:                   MSSV: B1805684

Tuyên bố: Project này là do chính tôi,  họ và tên Chau Si Quých Đi  (MSSV: B1805684), 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 hoàn toà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) 

$sudo  -s  

A. CHUẨN BỊ LINUX KERNEL CODE

1. Download và cài đặt tool cần thiết vào hệ thống thực hiện ở Ubuntu: 

$sudo apt-get install -y gcc libncurses5-dev make wget 






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


$sudo apt-get install bison 










$sudo apt-get install flex 


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

# uname –r


Khoa Công nghệ Thông tin và Truyền thông, Đại học Cần Thơ GV: Lâm Nhựt Khang 

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

3. Truy cập http://kernel.org hoặc https://cdn.kernel.org/pub/linux/kernel/ 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: 

kerenl hien tai 5.4


# wget http://www.kernel.org/pub/linux/kernel/v5.x/linux-5.9.tar.gz 




# tar xvzf linux-5.9.tar.gz 



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. 

2. Tạo file cấu hình (config file) 

  • chay lenh #cd linux-5.9

  • # make menuconfig 


C. BIÊN DỊCH KERNEL 

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

# make –j4 

2. Biên dịch kernel modules: 

# make modules 

  • truoc khi chay lenh make modules  chay lenh  #make 


D. CÀI ĐẶT KERNEL 

1. Cài đặt kernel modules 

# make modules_install 

2. Cài đặt the kernel 

# make install 

E. THAY ĐỔI FILE CẤU HÌNH GRUB (GRUB CONFIGURATION FILE) 

Thay đổi file cấu hình grub: 

# vim /etc/default/grub 

Thực hiện các thay đổi sau: 

GRUB_DEFAULT=0 

GRUB_TIMEOUT=25 

F. REBOOT VM 

1. Reboot kernel mới: 

# reboot 

2. Sau khi boot, kiểm tra thông tin kernel mới có đúng chưa: 

# uname -r 

Kết quả sẽ có dạng: 5.9

Khoa Công nghệ Thông tin và Truyền thông, Đại học Cần Thơ GV: Lâm Nhựt Khang 

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

PHẦN 2: THÊM LỜI GỌI HỆ THỐNG VÀO LINUX KERNEL  

Thực hiện thêm lời gọi hệ thống helloworld vào Linux kernel. Lời gọi hệ thống thực hiện in ra thông điệp  “Xin chao. Ten toi la XXX ” vào syslog (XXX là tên và MSSV của anh/chị). Anh/chị cần cài đặt lời gọi hệ thống  ở mức kernel và viết một chương trình ở mức người dùng (user-level) để kiểm tra lời gọi hệ thống đã tạo

Khoi tao thu muc helloworld trong thu muc linux-5.9

su dung thu muc helloworld tao file helloworld.c va Makefile voi noi dung nhu sau:


quay lai thu muc linux-5.9 truy cap vao file Makefile them heloworld/ vao cuoi nhu sau.

core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ helloworld/


truy cap vao duong dan sau

them noi dung nhu hinh o cuoi va tren #endif


truy cap vao file syscall_64.tbl theo duong dan sau va them vao dong lenh nhu trong hinh

sau do bien dich va dat lai kernel:

kiem tra so loi cua may bang lenh : #nproc

sau do make -jn, trong do n la so loi

#make modules

#make modules_install install

sau do reboot lai may.

de kiem tra xem da them loi goi he thong chua ,thi lam theo cac buoc sau.


test thu:






bien dich file test.c neu ket qua: return 0 thi goi he thong thanh cong. neu -1 thi khong thanh cong.

thanh cong

dung lenh #dmesg de goi he thong

hoan tat.



PHẦN 3: ĐỊNH THỜI CPU 

Anh/chị viết chương trình tên MSSVdtcpu.c để thực hiện các thuật toán định thời CPU đã học (FCFS, SJF  không trưng dụng, SJF trưng dụng và Round Robin). Chương trình MSSVdtcpu.c sẽ nhận vào các tham số của  n tiến trình. Mỗi bộ định thời sẽ tạo một biểu đồ Gantt thể hiện trạng thái của tiến trình (dạng chuỗi string): sử dụng R cho trạng thái running W cho trạng thái waiting. Cuối cùng, chương trình sẽ thực hiện tính toán các  giá trị trung bình của thời gian waiting time, respond time và turnaround time của mỗi bộ định thời tương ứng. 


// Thực thi



PHẦN 4: QUẢN LÝ BỘ NHỚ 

Xét một hệ thống máy tính với không gian bộ nhớ thật 1KB, không gian bộ nhớ ảo cần 12 bit  để biểu diễn. Giả sử kích thước của trang bằng với kích thước của khung và bằng 128 bytes.  Với bảng trang như dưới đây 


-

-

-

Bảng  

trang






7

6

5

4

3

2

1

0

Khung



Viết chương trình MSSVqlbn.c nhận vào một tham số (parameter) là filename. Trong filename chứa một dãy  truy cập các địa chỉ luận lý, mỗi địa chỉ được lưu trữ dưới dạng 8bytes (unsigned long type). Chương trình  MSSVqlbn.c sẽ đọc và phân tích các địa chỉ, chuyển đổi địa chỉ trong file sang địa chỉ vật lý tương ứng và in  ra màn hình. 

--

PHẦN 5: MÁY ẢO 

Trình bày tất cả những gì anh/chị hiểu về máy ảo (virtual machine). 

  • Máy ảo (Virtual Machine - VM) được xem là một chương trình máy tính (client) được chạy trên một hệ điều hành chủ (host) và hoạt động giống như một máy tính thật, tức là có chạy hệ điều hành và các phần mềm trên đó.

  • Máy ảo cũng giống như máy thật có HĐH, RAM, CPU, CARD MẠNG,...

Ví dụ: VirutalBox là một hypervisor phổ biến. Phần mềm này đảm nhận việc phân bổ các phần CPU, RAM, đĩa lưu trữ và các thành phần khác để máy ảo có thể dùng nó chạy bình thường. Khi dùng VirutalBox để cài một bản sao hệ điều hành trong đĩa ảo, sẽ có một máy ảo đầy đủ tính năng.

  • Một máy ảo chạy sẽ chia sẻ tài nguyên phần cứng cùng với máy thật, điều này sẽ gây ảnh hưởng lớn tới máy thật

*******************HẾT*******************