Cách tạo hệ điều hành máy tính (có hình ảnh)

Mục lục:

Cách tạo hệ điều hành máy tính (có hình ảnh)
Cách tạo hệ điều hành máy tính (có hình ảnh)

Video: Cách tạo hệ điều hành máy tính (có hình ảnh)

Video: Cách tạo hệ điều hành máy tính (có hình ảnh)
Video: Hướng dẫn hạ từ Windows 10 xuống Windows 7 | Tinhoconline 2024, Tháng mười một
Anonim

Hệ điều hành cho phép người dùng tương tác với phần cứng máy tính. Hệ thống được tạo thành từ hàng trăm nghìn dòng mã. Thông thường hệ điều hành được tạo bằng cách sử dụng C #, C, C ++ và các ngôn ngữ lập trình hợp ngữ. Hệ điều hành cho phép bạn duyệt máy tính của mình trong khi lưu và thực hiện các lệnh. Đừng nghĩ rằng việc tạo một hệ điều hành là dễ dàng. Cần rất nhiều kiến thức để làm ra nó.

Bươc chân

Tạo hệ điều hành máy tính Bước 1
Tạo hệ điều hành máy tính Bước 1

Bước 1. Trước hết, hãy tìm hiểu về lập trình

Hợp ngữ là rất quan trọng; Bạn nên học một ngôn ngữ cấp cao bổ sung khác, chẳng hạn như ngôn ngữ C.

Tạo hệ điều hành máy tính Bước 2
Tạo hệ điều hành máy tính Bước 2

Bước 2. Quyết định phương tiện nào bạn muốn sử dụng để tải hệ điều hành

Phương tiện này có thể là ổ CD, ổ DVD, ổ flash, ổ cứng, đĩa mềm hoặc một PC khác.

Tạo hệ điều hành máy tính Bước 3
Tạo hệ điều hành máy tính Bước 3

Bước 3. Xác định ý tưởng cốt lõi của SO

Ví dụ, trên Windows, ý tưởng cốt lõi là GUI dễ sử dụng và nhiều bảo mật.

Tạo hệ điều hành máy tính Bước 4
Tạo hệ điều hành máy tính Bước 4

Bước 4. Xác định nền tảng bộ xử lý mà hệ điều hành của bạn sẽ hỗ trợ

IA-32, ARM và x86_64 là các nền tảng phổ biến nhất cho máy tính cá nhân. Vì vậy, tất cả chúng đều là sự lựa chọn tốt nhất của bạn.

Tạo hệ điều hành máy tính Bước 5
Tạo hệ điều hành máy tính Bước 5

Bước 5. Quyết định xem bạn muốn tự mình làm mọi thứ từ đầu hay đã có sẵn nhân mà bạn muốn xây dựng

Ví dụ, Linux từ đầu là một dự án dành cho những người muốn xây dựng bản phân phối Linux của riêng họ.

Tạo hệ điều hành máy tính Bước 6
Tạo hệ điều hành máy tính Bước 6

Bước 6. Quyết định xem bạn sẽ sử dụng bộ nạp khởi động của riêng mình hay bộ nạp sẵn như Bộ nạp khởi động hợp nhất Grand (GRUB)

Việc tự mã hóa bộ nạp khởi động sẽ yêu cầu kiến thức sâu rộng về phần cứng và BIOS. Do đó, bước này có thể cản trở lịch trình lập trình hạt nhân thực tế.

Tạo hệ điều hành máy tính Bước 7
Tạo hệ điều hành máy tính Bước 7

Bước 7. Quyết định ngôn ngữ lập trình sẽ sử dụng

Có một hệ điều hành bằng ngôn ngữ như Pascal hoặc BASIC là tốt, nhưng bạn nên sử dụng C hoặc Assembly. Assembly là rất cần thiết, vì một số phần quan trọng của hệ điều hành yêu cầu nó. Mặt khác, ngôn ngữ C ++ chứa các từ khóa yêu cầu SO đầy đủ khác để chạy.

Để biên dịch hệ điều hành từ mã C hoặc C ++, tất nhiên bạn sẽ sử dụng trình biên dịch này hoặc trình biên dịch kia. Do đó, bạn nên tham khảo hướng dẫn sử dụng / sổ tay / tài liệu cho trình biên dịch C / C ++ mà bạn chọn, cho dù có trong phần mềm hay có sẵn trên trang web của nhà phân phối. Bạn cần biết nhiều điều phức tạp về trình biên dịch và để phát triển C ++, bạn cần biết về lược đồ mangling của trình biên dịch và ABI của nó. Bạn phải hiểu các định dạng thực thi khác nhau (ELF, PE, COFF, nhị phân cơ bản, v.v.) và hiểu rằng định dạng Windows độc quyền, PE (.exe), được bảo vệ bản quyền

Tạo hệ điều hành máy tính Bước 8
Tạo hệ điều hành máy tính Bước 8

Bước 8. Xác định giao diện lập trình ứng dụng (API) của bạn

Một API tốt để lựa chọn là POSIX vì nó được ghi chép đầy đủ. Tất cả các hệ thống Unix đều có hỗ trợ ít nhất một phần cho POSIX. Vì vậy, kết nối các chương trình Unix với hệ điều hành của bạn sẽ dễ dàng.

Tạo hệ điều hành máy tính Bước 9
Tạo hệ điều hành máy tính Bước 9

Bước 9. Quyết định thiết kế của bạn

Có một thứ như một hạt nhân nguyên khối và một hạt nhân vi mô. Các hạt nhân nguyên khối thực hiện tất cả các dịch vụ trong hạt nhân, trong khi các hạt nhân vi mô có các hạt nhân nhỏ đi kèm với các dịch vụ triển khai daemon của người dùng. Nói chung, các hạt nhân nguyên khối nhanh hơn, nhưng các kênh vi mô có độ tin cậy và cách ly lỗi tốt hơn.

Tạo hệ điều hành máy tính Bước 10
Tạo hệ điều hành máy tính Bước 10

Bước 10. Cân nhắc việc phát triển và làm việc theo nhóm

Bằng cách đó, sẽ mất ít thời gian hơn để giải quyết nhiều vấn đề hơn, điều này có thể sẽ tăng tốc độ xây dựng một hệ điều hành tốt hơn.

Tạo hệ điều hành máy tính Bước 11
Tạo hệ điều hành máy tính Bước 11

Bước 11. Không xóa hoàn toàn ổ cứng của bạn

Hãy nhớ rằng, việc xóa một ổ đĩa sẽ xóa tất cả dữ liệu trên đó mà không thể phục hồi được! Sử dụng GRUB hoặc một trình quản lý khởi động khác để khởi động kép hệ thống của bạn với một hệ điều hành khác cho đến khi hệ điều hành của bạn hoạt động đầy đủ.

Tạo hệ điều hành máy tính Bước 12
Tạo hệ điều hành máy tính Bước 12

Bước 12. Bắt đầu nhỏ

Bắt đầu với những việc nhỏ như hiển thị văn bản và tạm dừng trước khi chuyển sang những việc như quản lý bộ nhớ và công việc tổng hợp. Ngoài ra, hãy đảm bảo rằng bạn tạo phiên bản 32 bit và 64 bit.

Tạo hệ điều hành máy tính Bước 13
Tạo hệ điều hành máy tính Bước 13

Bước 13. Giữ một bản sao lưu của mã nguồn hoạt động cuối cùng

Bước này hữu ích như một biện pháp bảo vệ trong trường hợp có sự cố xảy ra với phiên bản SO hiện tại hoặc sự phát triển. Nếu máy tính của bạn gặp sự cố và không khởi động được, bạn nên có một bản sao thứ hai để làm việc để bạn có thể khắc phục sự cố.

Tạo hệ điều hành máy tính Bước 14
Tạo hệ điều hành máy tính Bước 14

Bước 14. Cân nhắc thử nghiệm hệ điều hành mới của bạn bằng máy ảo

Thay vì khởi động lại máy tính của bạn mỗi khi bạn thực hiện thay đổi hoặc sau khi gửi tệp từ máy tính phát triển đến máy thử nghiệm, bạn có thể sử dụng ứng dụng máy ảo để chạy hệ điều hành của mình trong khi hệ điều hành hiện tại của bạn đang chạy. Các ứng dụng VM hiện tại bao gồm: VMWare (cũng có sản phẩm máy chủ miễn phí), các lựa chọn thay thế nguồn mở, Bochs, Microsoft Virtual PC (không tương thích với Linux) và Oracle VirtualBox.

Tạo hệ điều hành máy tính Bước 15
Tạo hệ điều hành máy tính Bước 15

Bước 15. Khởi chạy "ứng cử viên phát hành" hoặc phiên bản Beta

Bước này sẽ cho phép người dùng thông báo cho bạn về các sự cố tiềm ẩn với hệ điều hành của bạn.

Tạo hệ điều hành máy tính Bước 16
Tạo hệ điều hành máy tính Bước 16

Bước 16. Hệ điều hành cũng phải thân thiện với người dùng

Đảm bảo bạn thêm các tính năng thân thiện với người dùng, biến những tính năng này trở thành một phần không thể thiếu trong thiết kế của bạn.

Lời khuyên

  • Kiểm tra các lỗi tiềm ẩn và các lỗi khác. Lỗi, bế tắc và các vấn đề khác sẽ ảnh hưởng đến dự án xây dựng hệ điều hành của bạn.
  • Đảm bảo rằng bạn triển khai các tính năng bảo mật là ưu tiên hàng đầu nếu bạn muốn hệ thống chạy bình thường.
  • Sử dụng các trang web như OSDev và OSDever để giúp bạn phát triển hệ điều hành của riêng mình. Xin vui lòng lưu ý rằng đối với hầu hết các mục đích, cộng đồng OSDev.org sẽ rất vui nếu bạn sử dụng wiki của họ và không tham gia diễn đàn. Nếu bạn quyết định tham gia một diễn đàn, có một điều kiện tiên quyết: bạn cần thực sự biết về C hoặc C ++ và hợp ngữ x86. Bạn cũng nên hiểu các khái niệm lập trình chung và phức tạp như Danh sách được liên kết, Hàng đợi, v.v. Cộng đồng OSDev, trong các quy định của mình, tuyên bố rõ ràng rằng cộng đồng của họ không được tạo ra để nuôi dưỡng các lập trình viên mới.
  • Không tham gia với diễn đàn OSDev.org và sau đó đặt câu hỏi rõ ràng. Bạn sẽ chỉ được yêu cầu đọc hướng dẫn. Đọc Wikipedia và hướng dẫn về bất kỳ thiết bị nào bạn muốn sử dụng.
  • Nếu bạn đang cố gắng phát triển một hệ điều hành, bạn chắc chắn được coi là "thần" của lập trình.
  • Bạn cũng nên đọc hướng dẫn sử dụng bộ xử lý cho kiến trúc bộ xử lý mà bạn đã chọn; cho dù x86 (Intel), ARM, MIPS, PPC, v.v. Dễ dàng tìm thấy hướng dẫn sử dụng cho kiến trúc bộ xử lý bằng cách sử dụng tìm kiếm trên Google ("hướng dẫn sử dụng Intel", "hướng dẫn sử dụng ARM", v.v.).
  • Khi tất cả công việc phát triển hoàn tất, hãy quyết định xem bạn muốn phát hành mã dưới dạng mã mở hay theo bản quyền.
  • Đừng bắt đầu một dự án hệ điều hành để bắt đầu học lập trình. Nếu bạn không biết từ trong ra ngoài về C, C ++, Pascal hoặc một số ngôn ngữ phù hợp khác, bao gồm thao tác con trỏ, thao tác bit cấp thấp, dịch chuyển bit, ngôn ngữ hợp ngữ nội tuyến, v.v., bạn chưa sẵn sàng cho hệ điều hành sự phát triển.
  • Tạo một phân vùng hoàn toàn mới để 'mở rộng' SO có thể là một lựa chọn tốt.
  • Nếu bạn muốn một cách dễ dàng, hãy xem xét các bản phân phối Linux như Fedora Revisor, Custom Nimble X, Puppy Remaster, PCLinuxOS Mk LiveCD hoặc SUSE Studio và SUSE KIWI. Tuy nhiên, hệ điều hành bạn tạo thuộc về công ty đã bắt đầu dịch vụ trước (mặc dù bạn có quyền tự do phân phối nó, sửa đổi nó và chạy nó như bạn muốn theo GPL).

Cảnh báo

  • Bạn sẽ không nhận được hệ điều hành đầy đủ trong vòng hai tuần. Bắt đầu với SO có khả năng khởi động, sau đó chuyển sang những thứ mát mẻ hơn.
  • Việc ghi hệ điều hành của bạn vào ổ cứng một cách bất cẩn có thể làm hỏng nó hoàn toàn. Hãy cẩn thận.
  • Nếu bạn làm điều gì đó không được khuyến nghị, chẳng hạn như ghi các byte ngẫu nhiên trên các cổng I / O ngẫu nhiên, bạn sẽ làm hỏng hệ điều hành của mình và (về lý thuyết) có thể làm phần cứng của bạn bị cháy xém.
  • Đừng mong đợi rằng hệ điều hành dễ xây dựng. Có rất nhiều mối quan hệ phụ thuộc lẫn nhau phức tạp. Ví dụ: để tạo một hệ điều hành có khả năng xử lý nhiều bộ xử lý, Trình quản lý bộ nhớ của bạn phải có cơ chế "khóa" để ngăn nhiều bộ xử lý truy cập cùng một tài nguyên cùng một lúc. "Khóa" được sử dụng cho điều này sẽ yêu cầu một bộ lập lịch để đảm bảo rằng chỉ một bộ xử lý truy cập vào các tài nguyên quan trọng tại bất kỳ thời điểm nào và tất cả những người khác phải đợi. Trên thực tế, bộ lập lịch phụ thuộc vào sự hiện diện của Trình quản lý bộ nhớ. Đây là một ví dụ về sự phụ thuộc vào ngõ cụt. Không có cách tiêu chuẩn nào để giải quyết loại vấn đề này; mọi lập trình viên hệ điều hành phải đủ kỹ năng để biết cách xử lý của riêng mình.

Tài nguyên bổ sung

  • Nguyên tắc: Linux Từ Scratch
  • Bộ nạp khởi động: GRUB
  • Các ứng dụng máy ảo: Bochs, VM Ware, XM Virtual Box.
  • Hướng dẫn sử dụng bộ xử lý: Hướng dẫn sử dụng Intel
  • Các trang web phát triển SO: OSDev, OSDever

Đề xuất: