2010-02-03 6 views
14

Ai đó có thể hướng dẫn tôi về những con đường/bước cần thực hiện để tạo chương trình chào mừng thế giới đơn giản? Tôi có kiến ​​thức cơ bản về C/C++.Bắt đầu tạo chương trình C khởi động đơn giản

Mục tiêu của tôi là tạo Hệ điều hành rất đơn giản.

Tôi muốn càng nhiều liên kết có liên quan đến tham chiếu và mẫu càng tốt.

+3

Tìm kiếm thuật ngữ bộ nạp khởi động. Tấn tài nguyên có sẵn trực tuyến. Xem: http://www.codeproject.com/KB/tips/boot-loader.aspx – dirkgently

+0

Tôi nghĩ câu hỏi lớn ở đây sẽ là "về bộ xử lý nào?" Trong hầu hết các trường hợp, tôi khuyên bạn nên xem bộ nạp khởi động cho bộ xử lý đó để có ý tưởng - và có, bạn sẽ viết một số trình biên dịch, các thường trình đầu ra cơ bản của bạn, v.v. nếu bạn muốn chương trình thực sự đứng một mình. –

+0

Hơi liên quan đến http://stackoverflow.com/questions/2145501/writing-an-operating-system-in-c/2145556#2145556 – sud03r

Trả lời

5

Xem this. Đó là hướng dẫn cho trình tải khởi động rất cơ bản. Nó không có nhiều việc phải làm với C/C++, nhưng nó có một số thông tin thực sự tốt về các khối xây dựng cơ bản của bộ nạp khởi động.

Nếu bạn thực sự tò mò về các khối xây dựng, có nhiều tài nguyên chuyên sâu hơn dưới dạng sách giáo khoa. Hướng dẫn này, ví dụ, không giải thích tại sao bộ tải khởi động phải kết thúc bằng 55 AA. Ngoài ra, nó tương đối hẹp.

+1

Cảm ơn bạn đã cắm OSdever.net. Nếu có ai có câu hỏi, hãy thử forums.osdever.net. Chúng tôi khá giỏi trong việc giúp đỡ lẫn nhau;) – Brenden

+1

Câu trả lời này không thực sự theo tinh thần của SO. Tôi đến trễ, tôi biết. – corazza

0

Bạn muốn xây dựng một nhị phân liên kết tĩnh (không có ld.so liên quan), và bạn bắt đầu nó bằng cách nhảy đến điểm vào của nó. Điểm vào thường là phần bắt đầu của phần .text. Maye chạy objdump --section-headers image trên đó để tìm địa chỉ của nó.

Nếu bạn đang cố gắng chạy trên một thiết bị nhúng, hãy kiểm tra xem hạt nhân của một hệ điều hành nhúng được xây dựng và khởi động như thế nào. Ví dụ, xem cách U-Boot sẽ trả về một hệ thống dựa trên Linux Ångström.