Bài viết này là bước đầu tiên hướng tới sự hiểu biết về cách kHTTPd có thể chơi công việc của một máy chủ web trong khi không bao giờ để lại không gian phần.
Các cuộc gọi hệ thống: Sự kiện
Điểm nổi bật trong số những điểm nổi bật nhất của Unix là phẩm chất không thể nhầm lẫn giữa '' không gian bit '' và '' không gian khách hàng ''. Các cuộc gọi hệ thống đáng tin cậy là các phương thức mà qua đó các dự án không gian của khách hàng có thể nhận được các phần quản trị. Việc thực thi mảnh Linux cho phép phá vỡ trình độ hoàn hảo này bằng cách cho phép mã bit để triệu tập một phần của các cuộc gọi hệ thống. Điều này sử dụng năng lực của phần để kết hợp một phần của việc lặt vặt thường được giữ trong không gian của khách hàng.
Để giữ cho hộp thoại đơn giản, tất cả thông qua bài viết tôi sẽ đề cập đến giai đoạn PC và các điểm nổi bật của bộ xử lý x86, đôi khi bỏ qua mọi vấn đề ở giai đoạn chéo. Trong khi tôi soạn bài viết này, bit chính thức là phiên bản 2.4.0-test8 và đó là điều mà tôi ám chỉ trong cả diễn ngôn và mã. Mã kiểm tra có thể truy cập dưới dạng ksyscall.tar.gz từ đây.
Nếu nó không quá rắc rối thì lưu ý rằng các cuộc gọi hệ thống từ không gian mảnh không phải là tất cả những gì đáng để biết ơn. Với mục đích theo kịp, khắc phục sự cố và chuyển mã, những gì đã được thực hiện một cách đáng tin cậy trong không gian máy khách không nên thay đổi để tiếp tục chạy trong không gian mảnh, trừ khi điều đó hoàn toàn quan trọng để đáp ứng nhu cầu thực thi hoặc kích thước.
Việc bổ sung trong thực thi muốn trốn tránh thay đổi không gian khách hàng / phần không gian đắt tiền và thông tin liên quan đi qua; sự gia tăng kích thước bắt nguồn từ việc trốn tránh một thực thi khác với libc và tài liệu liên quan của nó.
Các cuộc gọi hệ thống: các cơ chế
Để hiểu được lợi ích tốc độ đạt được bằng cách triệu tập các cuộc gọi hệ thống từ không gian phần, ban đầu chúng ta nên kiểm tra các tiến bộ chính xác được thực hiện bởi một cuộc gọi hệ thống thông thường, tương tự như peruse. Công việc của năng lực là sao chép thông tin từ một nguồn, (thường xuyên hơn không phải là một tiện ích, hoặc là dự trữ hàng loạt hoặc phương tiện tương ứng) sang các đệm được giữ trong ứng dụng.
Hình 1 biểu thị các phương tiện tham gia vào việc thực hiện lệnh gọi peruse từ công việc không gian máy khách, tương tự như phương thức chính của chương trình C. Bạn có thể kiểm tra các bước chính xác bằng cách chạy objdump trên mã được thu thập cho phần không gian của máy khách và các tài liệu nguồn phần khó hiểu cho phần không gian mảnh.
Một cuộc gọi hệ thống được thực hiện bởi một '' xâm nhập sản phẩm trên '' để trao đổi quyền kiểm soát thành mã phần; trong Linux / i386, đây là '' cản trở 0x80 ''. Cuộc gọi hệ thống cụ thể được triệu tập được đưa vào thanh ghi EAX, abd sự tranh chấp của nó được giữ trong các thanh ghi bộ xử lý khác. Trong tiền lệ của chúng tôi, số liên quan đến peruse là __NR_read, được đặc trưng trong <asm / unistd.h>.
Sau khi thay đổi chế độ bit, bộ xử lý phải dành phần lớn các thanh ghi của nó và gửi thực thi cho công việc chính xác, trong bối cảnh xem xét liệu EAX có thuộc phạm vi hay không. Cuộc gọi hệ thống mà chúng ta đang thực hiện một cách ngông cuồng được hiện thực hóa trong khả năng sys_read và nó phải (giống như một vài cuộc gọi hệ thống khác) gửi thực thi đến một đối tượng bản ghi. Bản thân đối tượng bản ghi ban đầu nên được xem xét phụ thuộc vào bộ mô tả tài liệu mà ứng dụng khách đi đến cuộc gọi hệ thống. Chiến lược đọc cho đối tượng bản ghi cuối cùng diễn ra việc trao đổi thông tin và tất cả những tiến bộ trong quá khứ được nới lỏng cho công việc của khách hàng đang gọi.
Mỗi bu-lông trong hình nói lên một luồng nảy trong luồng hướng dẫn CPU và mỗi bước nhảy có thể yêu cầu tuôn ra dòng tìm nạp trước và có thể hiểu là một dịp '' dự phòng ''. Những tiến bộ giữa máy khách và không gian bit đặc biệt quan trọng, vì chúng tốn kém nhất trong việc xử lý thời gian và tiến hành tìm nạp trước.
Địa chỉ: 432 Nguyễn Thị Minh Khai, Quận 3, Tphcm
Phone: +84 977 689 733
Email: contact@vu-review.com
Website:
Google Folder: http://bit.ly/2XCN9WD
Twitter: https://twitter.com/vu_review
Blog này là nơi chia sẻ các thông tin kiến thức về công nghệ mà mình học và sưu tập được.
Bài viết liên quan
Các liên kết liên quan
Quang Vũ Blog
Địa chỉ: 432 Nguyễn Thị Minh Khai, Phường 5, Quận 3, Hồ Chí Minh
Phone: +84 977 689 733
Email: contact@vu-review.com
Giờ hoạt động: