Hướng dn thc hành H điu hành Biên dch và cài đặt Nachos
Khoa CNTT – ĐH Khoa Hc T Nhiên 1
BIÊN DCH VÀ CÀI ĐẶT NACHOS
Khuyến cáo: nên s dng phiên bn Linux: Redhat 9 hoc Fedora core 3
1. Gii thiu Nachos
Nachos là mt phn mm mã ngun m (open-source) gi lp mt máy
tính o và mt s thành phn cơ bn ca h điu hành chy trên máy
tính o này nhm giúp cho vic tìm hiu và xây dng các thành phn
phc tp hơn ca h điu hành
+ Máy o được gi lp có kiến trúc MIPS vi hu hết các thành phn
và chc năng ca mt máy tht như: thanh ghi, b nh, b x lý, b
lnh, chu k thc thi lnh, cơ chế ngt, chu k đồng h, …
+ H điu hành Nachos chy trên máy o Nachos hin là mt h điu
hành đơn chương
Ti đây, tm thi chưa quan tâm ti hot động ca Nachos, xem nó như
mt hp đen. Nhim v đầu tiên là cài đặt thành công Nachos và chy
được mt s chương trình ví d sn có (trong thư mc code/test).
+ Làm sao để biên dch Nachos? Để biên dch Nachos (hay bt k
chương trình C nào khác) trên Linux, s dng trình biên dch gcc.
Mt đim cn lưu ý đây là các kiến trúc máy khác nhau (x86,
MIPS,…) s dùng các trình biên dch gcc khác nhau (ngoài ra còn
khác nhau vi tng bn phân phi (distro) ca Linux (Fedora core,
Ubuntu,…), thm chí tng phiên bn trong cùng 1 bn phân phi).
+ Làm sao để biên dch các chương trình C (các ví d kèm theo trong
thư mc code/test và các chương trình s viết sau này) trên Nachos?
Cn lưu ý là các chương trình này được biên dch để chy trên h
điu hành Nachos cho kiến trúc máy MIPS ch không phi trên h
điu hành Linux cho kiến trúc máy x86. Như vy, không th dùng
trình biên dch gcc trên h điu hành Linux ca máy tht (x86) được
mà cn phi to ra mt trình biên dch gi là Cross-compiler để thc
hin biên dch các chương trình C trên h điu hành Nachos cho kiến
trúc máy MIPS.
2. Cài đặt Cross-compiler
a. Cross-compiler là gì?
Tham kho http://en.wikipedia.org/wiki/Cross-compiler
b. Vai trò ca Cross-compiler khi s dng Nachos
Cross-compiler được dùng để biên dch các chương trình C thành
các chương trình thc thi trên h điu hành Linux cho kiến trúc máy
MIPS (COFF).
Công c “coff2noff” (được viết sn trong phn mm Nachos) được
dùng để chuyn đổi định dng COFF thành định dng NOFF, định
dng chy trên h điu hành Nachos cho kiến trúc máy MIPS.
Hướng dn thc hành H điu hành Biên dch và cài đặt Nachos
Khoa CNTT – ĐH Khoa Hc T Nhiên 2
c. Cài đặt Cross-compiler
i. Yêu cu:
Đã cài đặt gcc-3.x trên h điu hành Linux
ii. Các bước thc hin
Gi s đang làm vic ti thư mc /root
To thư mc lưu bài tp h điu hành
% mkdir hdh
Copy các tp tin sau vào thư mc hdh (có th dùng WinSCP)
binutils-2.11.2.tar.gz
gcc-2.95.3.tar.gz
Vào thư mc hdh, gii nén các tp tin này
% cd hdh
% tar -xzvf binutils-2.11.2.tar.gz
% tar –xzvf gcc-2.95.3.tar.gz
To thư mc cha Cross-compiler s được cài đặt
% mkdir cross-compiler
Biên dch binutils trước
% cd binutils-2.11.2/
% ./configure --host=i686-pc-linux-gnu --target=decstation-
ultrix --prefix=/root/hdh/cross-compiler
% make
% make install
Cài đặt binutils thành công s to các file sau trong thư mc
/root/hdh/cross-compiler/decstation-ultrix/bin/:
ar as ld nm ranlib strip
Lưu ý, không nên biên dch gcc ngay trong thư mc cha mã ngun
(gcc-2.95.3). Do đó, trước khi tiến hành biên dch gcc, cn to thư
mc cha kết qu biên dch (thư mc này nên đặt cùng cp vi thư
mc cross-compiler to trên).:
% cd ..
% mkdir gcc-obj
Và to thư mc gi system-include
% mkdir cross-compiler/decstation-ultrix/sys-include
Vào thư mc gcc-obj, thc hin cu hình gcc
% cd gcc-obj
To Cross-compiler cho
kiến trúc má
y
MIPS
Hướng dn thc hành H điu hành Biên dch và cài đặt Nachos
Khoa CNTT – ĐH Khoa Hc T Nhiên 3
% ../gcc-2.95.3/configure --host=i686-pc-linux-gnu --
target=decstation-ultrix --prefix=/root/hdh/cross-compiler
--with-gnu-as --with-gnu-ld --with-as=/root/hdh/cross-
compiler/decstation-ultrix/bin/as --with-ld=/root/hdh/cross-
compiler/decstation-ultrix/bin/ld --enable-languages=c --disable-
multilib --disable-libgcj
Biên dch gcc
% make
Nếu quá trình biên dch có li to libgcc2.a thì c thc hin tiếp cài đặt
(vì Nachos không ph thuc vào bt k thư vin nào)
% make -k install
Cài đặt gcc thành công s to thêm file gcc trong thư mc
/root/hdh/cross-compiler/decstation-ultrix/bin/
3. Biên dch và cài đặt Nachos
a. Yêu cu
Đã cài đặt gcc-2.x hoc gcc-3.x trên Linux
Đã cài đặt thành công Cross-compiler
b. Các bước thc hin:
Copy tp tin sau vào thư mc hdh (có th dùng WinSCP)
nachos-3.4.tar.gz
Gi s đang làm vic ti thư mc /root
Vào thư mc hdh, gii nén các tp tin này
% cd hdh
% tar -xzvf nachos-3.4.tar.gz
Trước khi biên dch Nachos, cn sa li trong file
~/nachos/code/test/Makefile đường dn ca Cross-compiler
(GCCDIR) ti thư mc cha Cross-compiler đã cài đặt thành công
bước trên (/root/hdh/cross-compiler/decstation-ultrix/bin/). Hoàn
toàn có th copy thư mc cross-compiler/decstation-ultrix/ và thư
mc cha mã ngun Nachos nachos-3.4 ti máy khác để biên dch
Nachos mà không cn biên dch li Cross-compiler. Thường 2 thư
mc này cùng cp vi nhau nên khi chnh đường dn ti Cross-
compiler có th để đường dn tương đối như sau:
# if you are cross-compiling, you need to point to the right
# executables and change the flags to ld and the build