Professional Documents
Culture Documents
Trên trang nguồn (Linux Kernel Teaching — The Linux Kernel documentation (linux-kernel-
labs.github.io)), chúng ta có thể thấy phần học liệu được chia làm hai phần, là phần lectures (bài giảng)
và phần labs (bài thực hành).
Trong cả phần bài giảng lẫn phần thực hành đều có code, thế nhưng sẽ có sự khác biệt:
- Phần bài giảng sẽ có code dưới dạng demonstrative and didactic (mang tính minh họa, dùng
trong giảng dạy) và minimally reproducible (đoạn code ngắn nhất có thể tái tạo), tức để chạy
được code này người lập trình bắt buộc phải có sẵn các thành phần khác, và thường cần phải
chỉnh sửa rất nhiều để có thể chạy được.
- Phần thực hành sẽ có code dưới dạng hands-on exercise (code sẽ được cung cấp dưới dạng một
khung xương trống, tức chỉ có nguyên hàm và hướng dẫn dưới dạng comment, còn học viên bắt
buộc phải theo chỉ dẫn để implement các hàm đó).
Phần này của bài báo cáo sẽ hướng dẫn cách thiết lập môi trường và cài đặt các dependencies để hoàn
thành được các bài thực hành.
Trước hết, chúng ta sẽ thống nhất về phiên bản hệ điều hành Linux chúng ta cần sử dụng. Trong khuôn
khổ bài thực hành này, các bạn được khuyên dùng Ubuntu phiên bản 32 bit. Các bạn có thể sử dụng
phiên bản 64 bit, thế nhưng các bạn sẽ cần phải đối mặt với lỗi không tương thích. Lỗi này có thể được
giải quyết thông qua việc cài các thư viện 32-bit để giải quyết, thế nhưng lượng thời gian bỏ ra để vá các
lỗi này là rất lớn. Để tiết kiệm thời gian và công sức, xin hãy sử dụng phiên bản 32 bit.
Ảnh minh họa: lỗi không tương thích với các thư viện 32 bit
Bài báo cáo này sử dụng phiên bản Ubuntu 16.04, phiên bản 32 bit (i386).
Tiếp theo, sau khi cài đặt hệ điều hành, ta cần lấy phần khung xương của các bài thực hành. Khung
xương này bao gồm:
Để lấy được phần khung xương này, trước hết cần cài đặt git:
flex
bison
build-essential
gcc-multilib
libncurses5-dev
qemu-system-x86
qemu-system-arm
python3
minicom
kvm
Để cài các phần mềm này một cách nhanh chóng, học viên có thể viết script và chạy file script để cài đặt.
Sau đó, ta cần cài đặt các package sau để có thể lập trình:
Thêm path:
Nếu sử dụng hệ điều hành 64-bit, cần cài tiếp các packages sau (nếu cần thiết, học viên có thể chạy đoạn
code này trên hệ điều hành 32-bit, nhưng rất có thể đã có sẵn):
Tiếp theo, chúng ta cần đảm bảo chắc chắn rằng chúng ta đang sử dụng gcc-6 trở lên. Chúng ta có thể
làm thế qua các câu lệnh sau:
Bước đầu tiên cần làm là cài đặt máy ảo qemu. Để làm vậy, trước hết cần mở terminal trong thư mục
tools/labs và chạy dòng lệnh:
make boot
Để khởi động qemu ta cũng chỉ cần chạy lệnh make boot.
Sau khi máy ảo đã được cài và chạy, ta cần sử dụng một cửa sổ terminal thứ 2 để kết nối với qemu:
minicom -D serial.pts
Lúc này, kết quả 2 terminal của máy sẽ hiện ra như sau:
Giờ, chúng ta có thể đóng máy ảo và bắt đầu quá trình sinh khung mã.
make clean
make build
make copy
make boot.
Sau đó các bạn có thể kiểm thử code bằng cách chạy các lệnh được hướng dẫn trên các bài thực hành
Nếu code chính xác và qua các test case của bài thực hành, terminal sẽ hiện ra như trên.
THAM KHẢO:
How to choose the default gcc and g++ version? - Ask Ubuntu