BIGtheme.net http://bigtheme.net/ecommerce/opencart OpenCart Templates

Biên dịch nhân linux – Compiling the Linux kernel

Quản trị mạng linux – Biên dịch nhân linux – Compiling the Linux kernel

  1. Kernel version
  2. Kernel modules
  3. Compiling kernel

1. Kernel version

  • Version của kernel có format như sau:

linux-major.minor.patchlevel

Vd: linux-2.6.18.8

major: version chính của kernel

minor: những thay đổi quan trọng của version.

số chẵn: version này đã được kiểm tra và công bố sử dụng. 2.4, 2.6…

số lẻ: version này dùng cho mục đích thử nghiệm. Các kernel developer thường sử dụng.

patchlevel: dùng để vá lỗi.

  • Để xác định kernel version, dùng lệnh:

uname –a

uname –r

  • Kernel mặc định đã được dịch với các module cần thiết, khi có nhu cầu có thể tiến hành dịch lại kernel => có một hệ điều hành mới.

2. Kernel modules

  • Kernel thường được biên dịch với các module cần thiết nhất.
  • Các module ít sử dụng có thể được insert vào kernel khi cần thiết.
  • Các module của kernel là một file object, nằm trong thư mục

  /lib/modules/kernel-version/kernel/

  • Một số kernel modules:

block: module cho những thiết bị phần cứng đặc biệt: RAID controller, IDE tape drivers.

cdrom: module cho CDROM.

fs: module cho file systems.

ipv4: module cần thiết cho việc hoạt động với TCP/IP networking.

net: module cho network interface.

scsi: module cho SCSI controller.

video: module cho video adapter.

misc: các module không thuộc các module kể trên.

  • Lệnh lsmod: liệt kê những module đang được kernel hỗ trợ.
  • Lệnh insmod: thêm một module vào kernel.
  • Lệnh rmmod: xóa bỏ một module ra khỏi kernel.
  • Lệnh modinfo: xem thông tin một module.
  • File modules.dep: liệt kê mối quan hệ phụ thuộc giữa các module.

3. Compiling kernel

kernel.org

  • Để biên dịch được kernel, cần cài đặt bộ C compiler.
  • Các lệnh để biên dịch:

make mrproper

make config, hoặc make menuconfig, make xconfig, hoặc make oldconfig.

Sau khi tạo file config xong, có thể edit trong makefile, và thực hiện tiếp các lệnh sau.

  • Các lệnh để biên dịch kernel:

make dep

make clean

make bzImage

make modules

make modules_install

make install

  • Các lệnh để biên dịch kernel:

make dep: những file source C sẽ được kiểm tra các mối quan hệ phụ thuộc.

make clean: remove những output file cũ có thể đã tồn tại trong source.

make bzImage: tạo một file kernel image.

make modules: biên dịch những driver thiết bị, và những module đã chọn lựa để biên dịch.

make modules_install: tất cả những modules đã được biên dịch sẽ được cài đặt vào thư mục /lib/modules/kernel-version/

make install: kernel image và initrd được đưa vào thư mục boot.

  • Sau khi biên dịch kernel hoàn tất, sẽ tạo ra một kernel image và một initrd mới.
  • Khởi động lại máy, boot loader sẽ nhận thêm một hệ điều hành mới.
  • File system của hệ điều hành mới cũng là file system của hệ điều hành cũ.
  • Hệ điều hành mới chỉ khác hệ điều hành cũ các modules được biên dịch trong kernel.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>