dự án TCCBOOT là một bộ nạp khởi động có thể biên dịch và khởi động hạt nhân Linux trực tiếp từ mã nguồn của nó.
TCCBOOT chỉ 138 KB lớn (mã không nén) và nó có thể biên dịch và chạy một hạt nhân Linux điển hình trong vòng chưa đầy 15 giây trên một Pentium 4 2.4 GHz.
TCCBOOT được dựa trên TinyCC trình biên dịch, lắp ráp và mối liên kết. TinyCC là một thử nghiệm để sản xuất một trình biên dịch C rất nhỏ và đơn giản tương thích với các trình biên dịch GNU C và các tiện ích nhị phân.
TCCBOOT khởi động theo cùng một cách như là một hạt nhân Linux, vì vậy bất kỳ bộ nạp khởi động có thể chạy một hình ảnh hạt nhân Linux 'bzImage' có thể chạy TCCBOOT. Tôi chỉ thử nghiệm nó với isolinux, nhưng LILO hoặc GRUB nên làm việc quá.
TCCBOOT đọc C hoặc lắp ráp nguồn từ một hệ thống tập tin ROMFS gzipped lưu trữ trong một Ram đĩa ban đầu (initrd). Nó đầu tiên đọc các tập tin 'boot / tccargs' trong đó có các dòng lệnh TinyCC (cùng một cú pháp như thực thi tcc). Các TinyCC gọi nên sản lượng một ảnh nhị phân 'hạt nhân'. Hình ảnh này được tải tại địa chỉ 0x00100000. TCCBOOT sau đó thực hiện một bước nhảy tới địa chỉ 0x00100000 trong căn hộ chế độ 32 bit. Điều này là tương thích với các ABI của 'vmlinux' ảnh hạt nhân.
Biên dịch:
TCCBOOT chỉ được thử nghiệm với Linux 2.4.26. Để xây dựng TCCBOOT, trước tiên bạn phải biên dịch hạt nhân 2.4.26 vì tính đơn giản TCCBOOT sử dụng một số các tập tin nhị phân và các tiêu đề từ các hạt nhân Linux. TCCBOOT cũng cần mã nguồn của TinyCC (thử nghiệm với phiên bản 0.9.21 TinyCC). Bạn có thể sửa đổi các Makefile để cung cấp cho các đường dẫn cần thiết.
Ví dụ:
Một phân vùng "Hello World" ROMFS được bao gồm (initrd.img). Bạn có thể xây dựng lại nó từ ví dụ / thư mục. Bạn có thể thử nghiệm nó với QEMU PC emulator với 'qemu-tccboot' kịch bản.
Kernel biên dịch:
Để biết thông tin của bạn, các bản vá 'linux-2.4.26-tcc.patch' cho những sửa đổi cần thiết để xây dựng một hạt nhân Linux với TCCBOOT (Chú ý: nó không phải là suffisant để xây dựng hạt nhân với Makefiles riêng của mình - Tôi không bao giờ cố gắng). Các cấu hình hạt nhân tương ứng là trong file linux-2.4.26-config. Bản vá lỗi là cần thiết vì những lý do sau đây:
- Chỉ lắp ráp không được hỗ trợ: .rept, .endr, .subsection
- '#define __ASSEMBLY__' Cần thiết trong các nguồn lắp ráp
- Biến tĩnh không thể được nhìn thấy từ các mã lắp ráp nội tuyến
- Vấn đề gõ / giá trị trái với '? : '
- Các lĩnh vực bit không lâu dài
- 'Phù hợp' thuộc tính không được hỗ trợ cho toàn bộ cấu trúc, chỉ cho các lĩnh vực
- Lỗi obscur tiền xử lý
Một số vấn đề có thể dễ dàng được cố định, nhưng tôi quá lười biếng bây giờ. Nó chắc chắn rằng vẫn còn rất nhiều lỗi trong nhân tạo ra bởi TinyCC / TCCBOOT, nhưng ít nhất nó có thể khởi động và khởi động một shell.
Các chi tiết về phần mềm:
Phiên bản: 0.1
Ngày tải lên: 3 Jun 15
Giấy phép: Shareware
Giá: 0.00 $
Phổ biến: 58
Bình luận không