Hệ điều hành (HDH) cho phép người sử dụng tương tác với phần cứng của máy tính . Chúng được tạo ra từ hàng trăm ngàn dòng mã khác nhau . HDH được tạo ra bởi các ngôn ngữ truyền thống như C# , C++ , C , và Assembly ( ngôn ngữ máy ) .

Chức năng chính của HDH là

  • Quản lý chia sẻ tài nguyên
    • Tài nguyên của hệ thống (CPU, bộ nhớ, thiết bị ngoại vi,…) vốn rất giới hạn, nhưng trong các hệ thống đa nhiệm, nhiều người sử dụng có thể đồng thời yêu cầu nhiều tài nguyên. Để thỏa mãn yêu cầu sử dụng chỉ với tài nguyên hữu hạn và nâng cao hiệu quả sử dụng tài nguyên, hệ điều hành cần phải có cơ chế và chiến lược thích hợp để quản lý việc phân phối tài nguyên.

      Ngoài yêu cầu dùng chung tài nguyên để tiết kiệm chi phí, người sử dụng còn cần phải chia sẻ thông tin (tài nguyên phần mềm) lẫn nhau, khi đó hệ điều hành cần đảm bảo việc truy xuất đến các tài nguyên này là hợp lệ, không xảy ra tranh chấp, mất đồng nhất,…

  • Giả lập một máy tính mở rộng
    • Hệ điều hành làm ẩn đi các chi tiết phần cứng, người sử dụng được cung cấp một giao diện đơn giản, dễ hiểu, dễ sử dụng và không phụ thuộc vào thiết bị phần cứng cụ thể.

      Thực tế, ta có thể xem Hệ điều hành như là một hệ thống bao gồm nhiều máy tính trừu tượng xếp thành nhiều lớp chồng lên nhau, máy tính mức dưới phục vụ cho máy tính mức trên. Lớp trên cùng là giao diện trực quan nhất để điều khiển.

      Ngoài ra có thể chia chức năng của Hệ điều hành theo bốn chức năng sau:

      • Quản lý quá trình (process management)
      • Quản lý bộ nhớ (memory management)
      • Quản lý hệ thống lưu trữ
      • Giao tiếp với người dùng (user interaction)

Với mong muốn tạo ra một hệ điều hành của riêng mình thì cần có nguồn kiến thức sâu về phương thức hoạt động của phần mềm cũng như phần cứng .

Dưới đây là một số bước và chú ý cơ bản về thiết kế HDH

Bước 1 : Assembly là ngôn ngữ rất cần thiết cho việc lập trình nên 1 HDH , bạn nên học thêm các ngôn ngữ bậc cao hơn như ngôn ngữ C.

Image result for assembly

Bước 2 : Quyết định phương tiện nào bạn muốn tải HDH của bạn : Có thể 1 vài gợi ý nhỏ như CD drive, DVD drive, flash drive, a hard disk, a floppy disk, …

Bước 3 : Quyết định ý tưởng cốt lõi của bạn về HDH : ví dụ ở Windows , GUI rất dễ sử dụng và có nhiều tính năng bảo mật là ý tưởng cốt lõi …

Image result for he dieu hanh

Bước 4 : Hướng tới mục tiêu nền tảng mà HDH của bạn hỗ trợ : IA-32, ARM và x86_64 phổ biến nhất đối với máy tính cá nhân vì vậy chúng là sự lựa chọn tốt nhất của bạn.

Bước 5 :  Quyết định xem bạn có muốn xây dựng ngay từ đầu hay sử dụng nhân kernel có sẵn :  Linux từ đầu là một dự án cho những người muốn xây dựng distro Linux của riêng họ

Quyết định xem bạn sẽ sử dụng bộ tải khởi động của riêng mình hay một bộ tạo sẵn trước đó như Grand Unified Bootloader  (GRUB) .  Vì mã hoá bộ tải khởi động của bạn sẽ đòi hỏi phải có kiến thức sâu rộng về phần cứng và BIOS .

Image result for BIOS

Bước 7 : Quyết định xem ngôn ngữ nào bạn sử dụng để lập trình lên HDH của riêng bạn . Trong khi có thể tạo ra 1 HDH bằng ngôn ngữ Pascal hoặc BASIC . Bạn có thể làm tốt hơn nếu sử dụng C hoặc Assembly .

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

Bước 8 : Quyết định giao diện lập trình ứng dụng ( API ) . Một API tốt để chọn là POSIX, vì nó là tài liệu tốt. Tất cả các hệ thống Unix đều có ít nhất hỗ trợ một phần cho POSIX

Bước 9 : Quyết định thiết kế của bạn . Có hạt nhân nguyên khối (monolithic kernels) và hạt nhân vi mô (micro kernels) . Hạt nhân nguyên khối sẽ thực hiện tất cả dịch vụ trong hạt nhân còn hạt nhân vi mô sẽ kết hợp với DAEMON của người sử dụng để thực hiện dịch vụ . Hạt nhân nguyên khối thực hiện nhanh hơn , hạt nhân vi mô có độ tin cậy hơn .

Image result for daemon tools

Bước 10 : Xem xét ý tưởng và làm việc cùng 1 nhóm . Bằng cách nào đó , cần làm việc teamwork cùng 1 nhóm để tiết kiệm thời gian và đảm bảo chất lượng của HDH .

Bước 11 : Không lau ổ cứng của bạn hoàn toàn. Hãy nhớ rằng, lau ổ đĩa của bạn sẽ xóa sạch tất cả dữ liệu của bạn một cách không thể đảo ngược! Sử dụng GRUB hoặc 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ệ thống của bạn hoạt động đầy đủ..

Image result for GRUB

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à ngắt kết nối trước khi chuyển sang những thứ như quản lý bộ nhớ và đa tác vụ. Cũng đảm bảo bạn thực hiện một phiên bản 32 bit và 64 bit.

Bước 13 : Giữ sao lưu các nguồn làm việc cuối cùng. Điều này cung cấp một biện pháp bảo vệ trong trường hợp có điều gì đó sai trái khủng khiếp với phiên bản hiện tại của hệ điều hành hoặc sự phát triển của bạn. Nếu máy tính của bạn gặp trục trặc và không thể khởi động, bạn nên có một bản sao thứ hai để làm việc với nhau để bạn có thể khắc phục sự cố.

Bước 14 : Xem xét thử nghiệm hệ điều hành mới của bạn với một máy ảo. Thay vì khởi động lại máy tính mỗi khi bạn thực hiện thay đổi hoặc phải chuyển các tệp từ máy tính phát triển sang máy tính thử nghiệm của mình, 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 vẫn đang chạy. Các ứng dụng VM bao gồm VMWare (cũng có một sản phẩm máy chủ tự do sẵn có), nguồn mở thay thế, Bochs, Microsoft Virtual PC (không tương thích với Linux) và Oracle VirtualBox.

Image result for GRUB

Bước 15 : Phát hành một “ứng cử viên giải phóng.” Điều này sẽ cho phép người dùng nói cho bạn biết về các vấn đề tiềm ẩn với hệ điều hành của bạn.

Bước 16 : Một hệ điều hành có thể thân thiện với người dùng, vì vậy hãy đảm bảo thêm các tính năng thân thiện với người dùng, làm cho thiết kế của bạn trở thành một phần thiết yếu.

Chúc các bạn thành công !

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s