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

Mục lục:

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

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

Video: Cách tạo hệ điều hành máy tính: 13 bước (có hình ảnh)
Video: Các ứng dụng cơ bản trên Ubuntu dành cho người mới chuyển qua từ Windows 2024, Tháng tư
Anonim

WikiHow này hướng dẫn bạn cách lập kế hoạch và phát triển hệ điều hành nếu bạn không biết cách viết mã bằng C hoặc C ++. Hệ điều hành quản lý phần cứng máy tính và cung cấp tài nguyên mà các ứng dụng cần để chạy. Viết một hệ điều hành từ đầu đòi hỏi trình độ khoa học máy tính vững vàng, ngôn ngữ lập trình như C hoặc C ++, thực hành quản lý hợp ngữ và mã.

Các bước

Phần 1/2: Học kiến thức cơ bả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. Tham gia một số khóa học Khoa học Máy tính cơ bản

Không giống như phát triển cho web, việc tạo ra một hệ điều hành đòi hỏi sự hiểu biết sâu sắc về các thuật toán, cấu trúc dữ liệu, phần cứng máy tính và quản lý tài nguyên. Mọi người đều có bằng cấp về những thứ này, vì vậy đừng mong đợi sẽ viết được toàn bộ hệ điều hành sau khi đọc một hướng dẫn trực tuyến! Khóa học Giới thiệu về Khoa học Máy tính của Harvard có sẵn trực tuyến thông qua EDX miễn phí.

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. Học một ngôn ngữ lập trình cấp cao như Python

Khi bạn đã có kiến thức nền tảng vững chắc về khoa học máy tính, bước tiếp theo là thành thạo C và / hoặc C ++. Giống như học về khoa học máy tính, thành thạo một ngôn ngữ không phải là tùy chọn - bạn sẽ không thể viết mã hệ điều hành nếu bạn không thể viết các ứng dụng vững chắc.

Nếu bạn là người mới làm quen với C, hãy xem khóa học Lập trình C: Bắt đầu của Dartmouth, miễn phí thông qua EDX. Sau khi hoàn thành khóa học đó, bạn có thể tham gia khóa học tiếp theo trong loạt bài: Lập trình C: Cơ sở ngôn ngữ. Sau đó, chuyển sang các khóa học tiếp theo như Lập trình mô-đun và Quản lý Bộ nhớ và Con trỏ và Quản lý Bộ nhớ

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 3. Tìm hiểu một hợp ngữ

Hợp ngữ là ngôn ngữ cấp thấp được thiết kế để giao tiếp với các bộ xử lý khác nhau. Vì lắp ráp khác nhau đối với các loại bộ xử lý khác nhau (ví dụ: Ngôn ngữ lắp ráp x86 cho Intel, AMD, VIA và các bộ xử lý khác), bạn sẽ cần tìm hiểu phiên bản cho loại bộ xử lý mà bạn đang mã hóa.

  • Cuốn sách mã nguồn mở này, nếu được đọc toàn bộ, có thể cung cấp cho bạn một kiến thức đủ vững chắc để xây dựng một hệ điều hành.
  • Nghệ thuật của ngôn ngữ lắp ráp là một cuốn sách rất được khuyến khích về lắp ráp có sẵn cả trên mạng và ngoại tuyến.
  • Bạn cũng nên nghiên cứu nhiều về loại (các) bộ xử lý mà hệ điều hành của bạn sẽ chạy. Bạn có thể dễ dàng tìm thấy các hướng dẫn về kiến trúc bộ xử lý bằng cách sử dụng tìm kiếm của Google ("Hướng dẫn sử dụng Intel", "Sách hướng dẫn sử dụng ARM", v.v.).
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 4. Hoàn thành hướng dẫn về hệ điều hành

Hướng dẫn về hệ điều hành sẽ hướng dẫn bạn quá trình tạo một hệ điều hành cơ bản. Điều này giúp bạn làm quen với quy trình và giúp bạn tìm ra liệu có bất kỳ phần nào bạn còn thiếu không. Khi bạn đã hoàn thành một hoặc hai hướng dẫn, bạn sẽ hoàn thành tốt con đường tạo hệ điều hành của riêng mình.

  • Bare Bones là một hướng dẫn giúp bạn viết kernel 32-bit đơn giản đầu tiên. Sau khi hoàn thành hướng dẫn, bước tiếp theo là sử dụng Meaty Skeleton để cấu trúc hệ điều hành của riêng bạn.
  • Linux từ Scratch là một cuốn sách trực tuyến hướng dẫn bạn cách tạo hệ điều hành Linux của riêng mình.
  • Các hệ điều hành từ 0 đến 1 là một cuốn sách miễn phí về việc tạo các hệ điều hành khác nhau từ đầu đến cuối.
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 5. Tìm ra mục tiêu hệ điều hành của bạn

Bạn muốn hệ điều hành của mình làm gì? Nó phải trông như thế nào? Bạn có thực sự cần viết toàn bộ một hệ điều hành hay bạn chỉ muốn tạo một giao diện nhất định cho màn hình của mình? Đây là tất cả những điều cần xem xét trước khi bắt đầu viết mã.

  • Cân nhắc phát triển với một nhóm các lập trình viên khác. Có một nhóm các nhà phát triển làm việc trong dự án sẽ cắt giảm đáng kể thời gian phát triển.
  • Thêm các mục tiêu, kế hoạch và câu hỏi của dự án vào kho lưu trữ công khai của bạn để những người khác có thể dễ dàng giúp bạn.

Phần 2 của 2: Xây dựng hệ điều hành của bạn

Vui chơi với máy tính Bước 16
Vui chơi với máy tính Bước 16

Bước 1. Chọn môi trường phát triển

Đây là nền tảng bạn sẽ sử dụng để viết mã hệ điều hành mới của mình. Đó là vấn đề của sở thích cá nhân, nhưng hầu hết mọi người đều sử dụng Windows hoặc một phiên bản UNIX. Nếu bạn đang sử dụng Windows, bạn nên cài đặt một môi trường UNIX như Cygwin hoặc MinGW. Nói chung, bạn sẽ muốn đảm bảo rằng bất kỳ môi trường nào bạn đang sử dụng đều bao gồm những điều sau:

  • GCC (trình biên dịch Gnu). Nếu đang sử dụng Windows, bạn có thể cài đặt nó trong Cygwin hoặc MinGW.
  • Binutils là một tập hợp các công cụ được sử dụng để thao tác với các tệp đối tượng. Một lần nữa, nếu bạn đang sử dụng Windows, bạn có thể cài đặt nó trong Cygwin.
  • Một trình soạn thảo văn bản tốt. Vim và emac thường được sử dụng trong môi trường UNIX. Người dùng Windows có thể sử dụng Notepad hoặc xem Notepad ++ để nâng cấp nhiều tab.
  • Perl và / hoặc Python. Nên dùng một hoặc cả hai để thao tác chuỗi.
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 2. Thiết lập hệ thống kiểm soát phiên bản của bạn

Viết một hệ điều hành có nghĩa là bạn có thể sẽ tạo ra hàng trăm (hoặc hàng nghìn!) Dòng mã. Khi bạn đang làm việc trên các bản sửa đổi, điều này có thể trở nên khó hiểu. Một số tùy chọn để kiểm tra là CVS, Mercurial và Subversion.

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 3. Quyết định bộ nạp khởi động

Nếu bạn không muốn tạo của riêng mình, bạn có thể sử dụng một cái có sẵn như Grand Unified Bootloader (GRUB). Nếu bạn cảm thấy đủ táo bạo để viết mã một bộ nạp khởi động, hãy kiểm tra Rolling Your Own Bootloader trên OSDev.org.

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 4. Chọn một thiết kế nhân

Kernel là cốt lõi của hệ điều hành của bạn, cung cấp giao diện giữa người dùng và phần cứng máy tính. Có nhân nguyên khối và nhân vi mô. Các hạt nhân nguyên khối thực thi tất cả các dịch vụ trong hạt nhân, trong khi các kênh vi mô có một hạt nhân nhỏ kết hợp với các daemon của người dùng triển khai các dịch vụ. 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 12
Tạo hệ điều hành máy tính Bước 12

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

Bắt đầu với những việc nhỏ như hiển thị văn bản và ngắt trước khi chuyển sang những việc như quản lý bộ nhớ và đa nhiệm. Bạn cũng có thể thử tạo Hệ điều hành 16 bit đơn giản, thay vì thực hiện một bước nhảy vọt.

Bạn sẽ không có một hệ thống đầy đủ trong hai tuần. Bắt đầu với một hệ điều hành khởi động, sau đó chuyển sang những thứ hay ho

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 6. Kiểm tra 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 các thay đổi hoặc phải chuyển các tệp từ máy tính phát triển sang máy kiểm tra, hãy sử dụng một ứng dụng máy ảo. VMWare là một tùy chọn phổ biến hoạt động với cả Windows và Linux, và Bochs cũng vậy. Kiểm tra các bế tắc tiềm ẩn và các lỗi khác và sửa chữa chúng nếu cần.

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 7. Phát hành một “ứng cử viên phát hành

Bạn có thể thực hiện việc này bằng cách tải mã đã thử nghiệm lên kho lưu trữ công cộng của mình. Điều này sẽ cho phép mọi người kiểm tra hệ điều hành của bạn và báo cáo lại về bất kỳ sự cố nào họ gặp phải.

Vui chơi với máy tính Bước 28
Vui chơi với máy tính Bước 28

Bước 8. Kết nối mạng với các nhà phát triển hệ điều hành khác

Có toàn bộ cộng đồng các nhà phát triển hệ điều hành tụ tập trên các diễn đàn khác nhau, bao gồm / r / osdev trên Reddit và Software Engineering Stack Exchange. Một khi bạn đã nắm được cách phát triển một hệ điều hành cơ bản, hãy đọc các bài đăng hiện có để xem những điều gì sẽ xảy ra trong quá trình phát triển.

Video - Bằng cách sử dụng dịch vụ này, một số thông tin có thể được chia sẻ với YouTube

Lời khuyên

  • Đảm bảo triển khai các tính năng bảo mật làm ưu tiên hàng đầu của bạn nếu bạn muốn hệ thống của mình khả thi.
  • Sau khi tất cả quá trình 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ã nguồn mở hay độc quyền.
  • Để làm cho hệ điều hành có thể 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. Các "khóa" được sử dụng cho việc này sẽ yêu cầu sự hiện diện của bộ lập lịch để đảm bảo rằng chỉ một bộ xử lý truy cập vào một tài nguyên quan trọng tại bất kỳ thời điểm nào và tất cả các bộ xử lý khác phải chờ đợi. Tuy nhiên, 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 trường hợp phụ thuộc bị bế tắc. Không có cách tiêu chuẩn nào để giải quyết những vấn đề như thế này; là một lập trình viên, bạn phải đủ kỹ năng để tìm ra cách xử lý vấn đề của riêng mình.
  • Một hệ điều hành cũng có thể thân thiện với người dùng. Đảm bảo 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.
  • Không tham gia diễn đàn OSDev.org và bắt đầu đặt những câu hỏi rõ ràng. Nó chỉ đơn giản là sẽ dẫn đến "Đọc hướng dẫn sử dụng" các câu trả lời. Bạn nên thử đọc Wikipedia và hướng dẫn sử dụng các công cụ khác nhau mà bạn muốn sử dụng.
  • Đừ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 chưa biết C, C ++, Pascal hoặc một số ngôn ngữ phù hợp khác từ trong ra ngoài, bao gồm thao tác con trỏ, thao tác bit cấp thấp, dịch chuyển bit, hợp ngữ nội tuyến, v.v., bạn chưa sẵn sàng để phát triển hệ điều hành.
  • Nếu bạn làm điều gì đó không tốt, chẳng hạn như ghi các byte ngẫu nhiên vào 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 hỏng phần cứng của bạn.

Đề xuất: