Tin mới nhất

Menu

Browsing "Older Posts"

Chia Sẻ Khóa Học Phát Triển Một Multithreaded Kernel Từ Đầu [Update Tháng 6-2022] [Khóa 7956 A]

14 tháng 7 2022 / No Comments

Xây dựng một multitasking operating system và kernel với một interactive shell!

Bạn sẽ học được gì:

  • ✓ Cách tạo một kernel từ đầu.
  • ✓ Cách tạo một multi-tasking kernel.
  • ✓ Cách xử lý các chương trình độc hại hoặc có vấn đề trong hệ điều hành của bạn. Chấm dứt chúng nếu chúng cư xử sai.
  • ✓ Cách bộ nhớ hoạt động trong máy tính.
  • ✓ Sự khác biệt giữa kernel land, user land và protection rings tạo nên máy tính hiện đại.
  • ✓ Các Kernel design pattern được sử dụng bởi chính Linux kernel.
  • ✓ Bạn sẽ tìm hiểu tất cả về virtual memory và cách ánh xạ địa chỉ ảo với địa chỉ thực.
  • ✓ Bạn sẽ học cách làm cho kernel hiểu các quy trình và tác vụ.
  • ✓ Bạn sẽ học cách load ELF file.
  • ✓ Bạn sẽ học cách debug disassembled machine code.
  • ✓ Bạn sẽ học cách debug kernel của mình trong một trình giả lập với GDB.

Khóa học này được thiết kế để hướng dẫn bạn cách tạo multitasking operating system và kernel của riêng bạn từ đầu. Giả sử bạn không có kinh nghiệm lập trình kernel và bạn được dạy từ đầu.

Real Mode Development:

Real mode là một legacy mode trong tất cả các bộ vi xử lý Intel khiến bộ xử lý khởi động ở trạng thái legacy, nó hoạt động giống như các bộ xử lý Intel 8086 cũ đã làm trước đây.

Trong phần "Real Mode Development" của khóa học, chúng tôi bắt đầu bằng cách tìm hiểu về quá trình khởi động và cách bộ nhớ hoạt động, sau đó chúng tôi chuyển sang tạo boot loader của riêng mình mà chúng tôi thử nghiệm trên máy thực của chúng tôi! Boot loader này sẽ xuất ra thông báo đơn giản "Hello World!" thông báo ra màn hình và chúng tôi viết boot loader này bằng ngôn ngữ assembly hoàn toàn.

Trong phần này, chúng ta cũng đọc một sector (512 byte) từ đĩa cứng và tìm hiểu tất cả về interrupts trong real mode và cách tạo chúng.

Phần này cung cấp cho bạn một trải nghiệm thú vị về kernel development mà không cần cung cấp thông tin cho bạn. Bạn được dạy những kiến ​​thức cơ bản và đầy đủ về các bộ xử lý legacy để có thể tiếp tục phát triển kernel hiện đại hơn trong khóa học này.

Protected Mode Development:

Trong phần này, chúng ta tạo một multi-tasking kernel 32 bit có FAT16 filesystem. Kernel của chúng tôi sẽ sử dụng các cơ chế bảo vệ và bảo mật bộ nhớ được tích hợp sẵn của Intel cho phép chúng tôi hướng dẫn bộ xử lý bảo vệ nhân của chúng tôi và ngăn các chương trình người dùng làm hỏng nó.

Phần này rất chuyên sâu, bạn được dạy tất cả về phân trang và bộ nhớ ảo. Chúng tôi tận dụng các hướng dẫn thông minh trong bộ xử lý Intel để cho phép tất cả các process chia sẻ cùng một địa chỉ bộ nhớ, điều này được gọi là memory virtualization. Chúng tôi ánh xạ các địa chỉ bộ nhớ để trỏ đến các địa chỉ bộ nhớ vật lý khác nhau để tạo ra ảo tưởng rằng mọi tiến trình đang chạy đều được tải tại cùng một address. Đây là một kỹ thuật rất phổ biến trong phát triển kernel và cũng là cách thức hoạt động của các swap file (Những tệp được sử dụng để bù đắp khi bạn hết RAM có thể sử dụng).

Chúng tôi tạo virtual filesystem layer của riêng mình sử dụng một thiết kế tương tự như nhân Linux. Bạn được dạy về thiết kế của FAT16 filesystem và cách FAT16 filesystem được chia thành các cluster và chúng có thể liên kết với nhau. Sau đó, chúng tôi triển khai trình FAT16 filesystem driver của riêng mình cho phép các tệp được sinh ra!

Chúng tôi triển khai chức năng cho các tác vụ và quy trình cũng như viết keyboard driver của riêng mình.

Trong khóa học này, bạn cũng có thể tìm hiểu cách quản lý bộ nhớ hoạt động, chúng tôi triển khai các function "malloc" và "free" tạo ra heap của riêng chúng tôi được thiết kế để theo dõi bộ nhớ đang được sử dụng. Quản lý bộ nhớ là điều cần thiết trong bất kỳ hệ điều hành và kernel nào.

Đừng quên rằng chúng tôi thậm chí còn tạo một ELF file loader, chúng tôi sẽ biên dịch tất cả các chương trình hệ điều hành của chúng tôi thành file ELF và cho phép loading các chương trình nhị phân hoặc chương trình ELF. Các file ELF chứa nhiều thông tin mô tả chương trình của chúng tôi, ví dụ như nơi chương trình của chúng tôi sẽ được load vào bộ nhớ và các phần khác nhau của chương trình.

Vào cuối khóa học này, bạn sẽ có một nhân đa tác vụ 32 bit hoạt động đầy đủ có thể có nhiều tiến trình và tác vụ chạy cùng một lúc. Bạn sẽ có một shell hoạt động mà chúng tôi cũng có thể sử dụng.

Assembly language:

Đây là một phần thưởng được thiết kế để nâng cao kỹ năng assembly của bạn nếu bạn gặp khó khăn một chút với ngôn ngữ assembly trong khóa học này. Tuy nhiên, chúng tôi khuyên bạn nên đến với khóa học này với kinh nghiệm về ngôn ngữ assembly, chúng tôi sử dụng nó và điều quan trọng của nó. Không bao giờ ít hơn nếu bạn muốn có cơ hội tham gia khóa học này mà không có kinh nghiệm assembly thì phần này sẽ giúp bạn đi đúng hướng để bạn có thể lấy những gì đã học và áp dụng nó vào kernel.

Được giảng dạy bởi một chuyên gia đã tạo ra các module Linux kernel một cách chuyên nghiệp tại nơi làm việc. 15 năm kinh nghiệm làm kỹ sư phần mềm.

Khóa học này dành cho ai:

  • ✓ Các kernel developer mới bắt đầu muốn học cách tạo kernel.


NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU




Copyright Disclaimer:
This site does not store any files on its server. We only index and link to content provided by other sites. Please contact the content providers to delete copyright contents if any and email us, we'll remove relevant links or contents immediately.
Tuyên bố miễn trừ bản quyền:
Trang web này không lưu trữ bất kỳ tệp nào trên máy chủ của nó. Chúng tôi chỉ lập chỉ mục và liên kết đến nội dung được cung cấp bởi các trang web khác. Vui lòng liên hệ với các nhà cung cấp nội dung để xóa nội dung bản quyền nếu có và gửi email cho chúng tôi, chúng tôi sẽ xóa các liên kết hoặc nội dung có liên quan ngay lập tức.