Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 26 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
26
Dung lượng
349,27 KB
Nội dung
CẤU TRÚC MÁY TÍNH VÀ HỆ ĐIỀU HÀNH ĐỀ TÀI: Phân tích tất cấu trúc chức user mode Windows Xp Home? Mở đầu: Mỗi quá trình bắt đầu bởi Windows (với ngoại lệ của "q trình" Hệ thống) chạy trongchế độ người dùng. Trong chế độ này, chương trình khơng thể sửa đổi bằng tin nhắn trực tiếp và vì vậy khơng có cách nào truy cập vào bộ nhớ chương trình khác ngoại trừ thơng qua chức năng API. Các chương trình trong chế độ người dùng cũng không thể can thiệp làm gián đoạn và chuyển ngữ cảnh Bộ nhớ ảo: Bộ nhớ ảo ( vietual memory ) : vùng không gian lưu trữ gần giống nhớ Ram lại đặt đĩa cứng khoản không gian cố định ( thay đổi địa vật lý ổ nhớ HDD) *Tại phải dùng nhớ ảo ? :Hầu hết máy tính trước có khoảng 64- 128 MB Ram thừa để sử dụng cho CPU , dĩ nhiên lượng Ram khơng đủ để chạy tất chương trình mà người dùng muốn chạy lúc VD: bạn chạy hệ điều hành Windows, chương trình email , trình duyệt web chương trình Word lúc nhớ Ram 64MB không đủ *Công dụng nhớ ảo ? -Cho phép thực lúc nhiều tiến trình, tiến trình có khơng gian định vị riêng -Đơn giản hóa việc nạp chương trình vào nhớ để thi hành nhờ chế gọi tái định địa Cơ chế cho phép chương trình thi hành nằm vị trí nhớ *Cấu tạo nhớ ảo : -Bộ nhớ ảo bao gồm nhớ nhớ phân tích thành khối để cung cấp cho chương trình số khối cần thiết cho việc thực chương trình *Ngun lý hoạt động nhớ ảo : Bộ nhớ ảo thường thực với kỹ thuật phân trang theo yêu cầu (demand paging) Cũng sử dụng kỹ thuật phân đoạn theo yêu cầu ( demand segmentation) để cài đặt nhớ ảo, nhiên việc cấp phát LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thay phân đoạn phức tạp thao tác trang, kích thước khơng đoạn Phân trang theo yêu cầu ( demand paging) Một hệ thống phân trang theo yêu cầu hệ thống sử dụng kỹ thuật phân trang kết hợp với kỹ thuật swapping Một tiến trình xem tập trang, thường trú nhớ phụ ( thường đĩa) Khi cần xử lý, tiến trình nạp vào nhớ Nhưng thay nạp tồn chương trình, trang cần thiết thời điểm nạp vào nhớ Như trang nạp vào nhớ có u cầu Với mơ hình này, cần cung cấp chế phần cứng giúp phân biệt trang nhớ trang đĩa Có thể sử dụng lại bit valid-invalid với ngữ nghĩa mới: valid : trang tương ứng hợp lệ nhớ invalid : trang bất hợp lệ (không thuộc không gian địa tiến trình) trang hợp lệ lưu nhớ phụ Một phần tử bảng trang mộ tả cho trang không nằm nhớ chính, đánh dấu invalid chứa địa trang nhớ phụ Cơ chế phần cứng hỗ trợ kỹ thuật phân trang theo yêu cầu kết hợp chế hỗ trợ kỹ thuật phân trang kỹ thuật swapping: Bảng trang: Cấu trúc bảng trang phải cho phép phản ánh tình trạng trang nằm nhớ hay nhớ phụ Bộ nhớ phụ: Bộ nhớ phụ lưu trữ trang không nạp vào nhớ Bộ nhớ phụ thường sử dụng đĩa, vùng không gian đĩa dùng để lưu trữ tạm trang kỹ thuật swapping gọi không gian swapping LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Truy xuất đến trang đánh dấu bất hợp lệ làm phát sinh lỗi trang (page fault) Khi dị tìm bảng trang để lấy thơng tin cần thiết cho việc chuyển đổi địa chỉ, nhận thấy trang yêu cầu truy xuất bất hợp lệ, chế phần cứng phát sinh ngắt để báo cho hệ điều hành Hệ điều hành xử lý lỗi trang sau : Kiểm tra truy xuất đến nhớ hợp lệ hay bất hợp lệ Nếu truy xuất bất hợp lệ : kết thúc tiến trình Ngược lại : đến bước Tìm vị trí chứa trang muốn truy xuất đĩa Tìm khung trang trống nhớ : Nếu tìm thấy : đến bước Nếu khơng cịn khung trang trống, chọn khung trang « nạn nhân » chuyển trang « nạn nhân » nhớ phụ (lưu nội dung trang chiếm giữ khung trang lên đĩa), cập nhật bảng trang tương ứng đến bước Chuyển trang muốn truy xuất từ nhớ phụ vào nhớ chính : nạp trang cần truy xuất vào khung trang trống chọn (hay vừa làm trống ) ; cập nhật nội dung bảng trang, bảng khung trang tương ứng Tái kích hoạt tiến trình người sử dụng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com *Ưu điểm nhớ ảo -Chương trình khơng bị buộc khơng gian nhớ vật lý sẵn có Người dùng viết chương trình có khơng gian địa ảo lớn , đơn giản hóa tác vụ lập trình -Vì chương trình người dùng lấy nhớ vật lý nên nhiều chương trình thực thi thời điểm -Nó mang lại lợi ích lớn cho người dùng mà khơng phí cao -Do u cầu nhập xuất để nạp hay hốn vị chương trình người dùng nhớ chương trình người dùng chạy nhanh -Bộ nhớ ảo thực tác vụ lập trình dễ nhiều người lập trình khơng cần lo lắng lượng nhớ vật lý sẵn có hay mã thay việc phụ lắp , thay vào người lập trình quan tâm vấn đề cần lập trình *Nhược điểm nhớ ảo : -bộ nhớ ảo không dễ cài đặt thực chất giảm lực dùng thiếu thận trọng -sử dụng nhớ ảo nhiều , làm giảm tuổi thọ ổ cứng User Mode Hầu hết hệ điều hành có số phương pháp hiển thị sử dụng CPU Trong Windows, điều Task Manager LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CPU thường đại diện tỷ lệ phần trăm đơn giản CPU dành thời gian vào nhiệm vụ không nhàn rỗi Nhưng chút đơn giản hóa Trong hệ điều hành đại, CPU thực dành thời gian hai chế độ khác biệt: User mode Trong chế độ user mode, mã thực thi khả truy cập trực tiếp phần cứng tham chiếu nhớ Mã chạy chế độ user mode phải ủy quyền cho API hệ thống để truy cập vào phần cứng nhớ Do có bảo vệ loại bị lập, bị treo chế độ user mode luôn phục hồi Hầu hết mã chạy máy tính bạn thực chế độ user mode Có thể cho phép hiển thị thời gian kenel mode công tác quản lý, thể hình Dịng màu xanh tổng thời gian CPU, dòng màu đỏ thời gian kenal mode Khoảng cách hai thời gian user mode Hai chế độ không nhãn, họ thực thi phần cứng CPU Nếu mã thực thi chế độ user mode cố gắng để làm ngồi phạm vị hoạt động - như, nói, truy cập vào dẫn CPU đặc quyền đặc lợi, sửa chữa nhớ khơng có quyền truy cập vào - ngoại lệ ném trappable Thay toàn hệ thống bị treo, treo ứng dụng cụ thể Đó giá trị chế độ user mode phần cứng CPU x86 thực cung cấp bốn vòng bảo vệ: 0, 1, 2, Vòng (kenal) (user) thường sử dụng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Máy tính hệ điều hành cung cấp mức độ khác nguồn tài nguyên Một vòng bảo vệ hai nhiều cấp độ phân cấp lớp đặc quyền kiến trúc hệ thống máy tính Đây phần cứng thường thực thi số kiến trúc CPU cung cấp chế độ CPU khác cấp độ phần cứng mã vi Nhẫn xếp theo hệ thống phân cấp từ hầu hết đặc quyền đặc lợi (đáng tin cậy nhất, thường số khơng) để đặc quyền đặc lợi (ít đáng tin cậy, thường với số vòng cao nhất) Trên hệ điều hành nhất, Ring mức với đặc quyền tương tác trực tiếp với phần cứng vật lý CPU nhớ Nếu sử dụng hai vịng cách ly, chút không rõ ràng, nơi điều khiển thiết bị nên - mã cho phép sử dụng card video, bàn phím chúng tơi, chuột, máy in, vv Do trình điều khiển chạy chế độ hạt nhân, cho hiệu suất tối đa, hay họ chạy chế độ người dùng, cho ổn định tối đa khơng? Trong Windows, nhất, câu trả lời phụ thuộc trình điều khiển thiết bị chạy chế độ người dùng hạt nhân Hầu hết driver shunted vào bên dùng hàng rào nay, với ngoại bật driver card hình, mà cần thực chế độ đốt trần kernel Nhưng thay đổi, Windows Vista, LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com trình điều khiển video chia nhỏ thành phần người dùng hạt nhân Có lẽ lý game thủ phàn nàn Vista thực khoảng 10 phần trăm trò chơi chậm Các biên giới xác chế độ cịn rõ ràng Mã nên chạy chế độ người dùng? Mã nên chạy chế độ hạt nhân? Hoặc xác định lại tầng tầng hầm - lên ảo hóa lái xe tạo vịng tất người khác, Ring -1, mà biết ảo hóa phần cứng x86 Chế độ người dùng rõ ràng công net tốt, kèm với chi phí Chuyển tiếp người dùng chế độ hạt nhân tốn Thực tốn Đó lý phần mềm mà ném ngoại lệ chậm, ví dụ Trường hợp ngoại lệ bao hàm chuyển tiếp chế độ hạt nhân Cấp, thực nhiều mà có quan tâm đến hiệu suất chuyển đổi, bạn cần thực cuối cùng, bạn chắn bắt đầu quan tâm đến cơng cụ Có lẽ ví dụ công vẽ lại cho người sử dụng / kernel dòng máy chủ web Microsoft IIS di chuyển đoạn lớn chức cốt lõi vào chế độ hạt nhân, đặc biệt sau máy chủ web mã nguồn mở cụ thể thừa hưởng chế độ hạt nhân để tạo chuẩn công nghiệp chiến thắng lớn Đó loại chiến tranh vơ nghĩa, bạn hỏi tơi, kể từ tối ưu hóa hạt nhân (cả trại) áp dụng cho nội dung HTML tĩnh Nhưng cách tất chiến tranh, chuẩn hay không cách ly nghiêm ngặt CPU mã người dùng chế độ hạt nhân hoàn toàn minh bạch hầu hết chúng ta, nghĩa khác biệt máy tính bị treo tất thời gian máy tính mà bị treo catastrophically tất thời gian Đây lập trình ngồi crashy-mã-viết để gọi "tiến bộ" Triển khai thực Phần cứng hỗ trợ vịng khái niệm mang tính cách mạng giới thiệu hệ điều hành Multics, người tiền nhiệm bảo mật cao gia đình UNIX ngày hệ điều hành Tuy nhiên, hầu hết mục đích chung hệ thống sử dụng hai vịng, họ chạy phần cứng cung cấp chế độ CPU nhiều Ví dụ, Windows XP LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com sử dụng hai vòng, với ring tương ứng với chế độ kenal vòng đến chế độ user Nhiều kiến trúc CPU đại (bao gồm kiến trúc x86 Intel phổ biến) bao gồm số hình thức bảo vệ ring, hệ điều hành Windows NT, giống Unix, không khai thác tính người tiền nhiệm nó, OS / 2, đến mức độ đó, sử dụng ba vòng: ring cho mã hạt nhân điều khiển thiết bị, vòng cho mã đặc quyền đặc lợi (chương trình người dùng với I / O cho phép truy cập), vòng cho mã khơng có đặc quyền (gần tất chương trình người dùng), OpenVMS sử dụng bốn phương thức gọi (theo thứ tự giảm dần quyền) hạt nhân, điều hành, giám sát người dùng Hiện có quan tâm cấu trúc thiết kế, với gia tăng phần mềm Xen VMM, thảo luận hạt nhân nguyên khối-vs-vi (đặc biệt nhóm tin Usenet diễn đàn Web), Microsoft Ring-1 thiết kế cấu trúc phần họ NGSCB siêu giám sát chủ động nhúng vào phần mềm Intel VT-x (trước Vanderpool) Các Multics hệ thống ban đầu có tám nhẫn, nhiều hệ thống đại có phần cứng nhận thức vòng thread hướng dẫn thực tất lần, nhờ vào sổ đăng ký máy đặc biệt Trong số hệ thống, khu vực nhớ ảo thay cho số vịng phần cứng Một ví dụ Eclipse MV/8000 liệu chung, ba bit đầu máy tính phục vụ đăng ký nhẫn Vì mã thực thi với máy tính ảo thiết lập để 0xE200000, ví dụ, tự động vòng 7, kêu gọi chương trình phần khác nhớ tự động gây chuyển vòng Phần cứng hạn chế tối cách thức mà kiểm sốt truyền từ ring khác, thi hành hạn chế loại nhớ truy cập thực ring Thơng thường có cổng đặc biệt hướng dẫn kiểm soát gọi để chuyển cách an toàn cửa xác định trước cấp thấp hơn, điều có chức gọi giám sát nhiều hệ điều hành sử dụng cấu trúc ring Những hạn chế phần cứng thiết kế để hạn chế hội cho vi phạm tình cờ hay cố ý an ninh Ngồi ra, special ring khả đặc biệt, (ví dụ nhớ thực giải vấn đề mà qua phần cứng ảo, nhớ) Bảo vệ Ring kết hợp với chế độ xử lý số hệ LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com thống( master/ kernel/ privileged mode versus slave/ user/ unprivileged mode)sử dụng hai hình thức bảo hộ, có Hiệu sử dụng kiến trúc vòng đòi hỏi phải hợp tác chặt chẽ phần cứng hệ điều hành Hệ điều hành thiết kế để làm việc nhiều tảng phần cứng làm cho sử dụng hạn chế nhẫn họ khơng có mặt tất tảng hỗ trợ Thường mơ hình bảo mật đơn giản hóa để "kenal" "user" phần cứng cung cấp độ chi tiết tốt thơng qua vịng Hình thức giám sát Trong máy tính chế độ giám sát hardware-mediated flag gian thay đổi mã chạy hệ thống cấp phần mềm Hệ thống cấp nhiệm vụ chủ đề có flag họ chạy, ứng dụng người dùng không gian không Flag định để thực thi lệnh mã máy chẳng hạn thay đổi đăng ký cho bảng mô tả khác nhau, hoạt động thực vơ hiệu hố ngắt Các ý tưởng có hai chế độ khác để hoạt động xuất phát từ "với kiểm soát nhiều đến trách nhiệm nhiều hơn" - chương trình chế độ giám sát đáng tin cậy khơng thất bại, thất bại gây hệ thống máy tính tồn sụp đổ Giám sát chế độ "Một chế độ thực số vi xử lý cho phép thực tất hướng dẫn, bao gồm hướng dẫn đặc quyền Nó cung cấp cho truy cập vào không gian địa khác nhau, đến phần cứng quản lý nhớ thiết bị ngoại vi khác Đây chế độ hệ điều hành thường chạy " Trong kenal nguyên khối, hệ điều hành chạy chế độ giám sát ứng dụng chạy chế độ user mode Các loại hệ điều hành, giống người có exokernel microkernel khơng thiết chia sẻ hành vi Chế độ hypervisor CPU Intel AMD cung cấp công nghệ ảo hóa x86, hướng dẫn cho hypervisor để kiểm soát Ring truy cập vào phần cứng Mặc dù họ khơng tương thích lẫn nhau, Intel VT-x (tên mã Vanderpool ") AMD-V (tên mã là" Pacifica ") tạo một" Ring -1 "để có hệ thống điều hành khách chạy Ring hoạt động tự nhiên mà không ảnh hưởng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com khác khách máy chủ lưu trữ hệ điều hành Nhiều kiến trúc phần cứng CPU linh hoạt nhiều so với khai thác hệ điều hành mà họ thường chạy Việc sử dụng chế độ CPU phức tạp đòi hỏi phải chặt chẽ hợp tác hệ điều hành CPU, có xu hướng để buộc hệ điều hành với kiến trúc CPU Khi hệ điều hành CPU thiết kế đặc biệt dành cho nhau, điều vấn đề (mặc dù số tính phần cứng chưa khai thác trái), hệ điều hành thiết kế để tương thích với nhiều kiến trúc CPU khác nhau, phần lớn CPU tính chế độ bỏ qua hệ điều hành Ví dụ, Windows lý sử dụng hai cấp độ (vòng vòng 3) số kiến trúc phần cứng hỗ trợ khứ (như PowerPC hay MIPS) thực có hai mức độ đặc quyền [3] Multics hệ điều hành thiết kế đặc biệt cho kiến trúc CPU đặc biệt (mà thiết kế đặc biệt dành cho Multics), lợi dụng đầy đủ chế độ CPU có sẵn cho Tuy nhiên, ngoại lệ cho quy tắc Ngày nay, mức độ cao interoperation hệ điều hành phần cứng thường không hiệu quả, bất chấp lợi tiềm an ninh ổn định Cuối cùng, mục đích chế độ hoạt động riêng biệt cho CPU cung cấp bảo vệ phần cứng chống tham nhũng vơ tình hay cố ý môi trường hệ thống (và vi phạm an ninh tương ứng hệ thống) phần mềm Chỉ có "tin cậy" phần hệ thống phần mềm phép thực môi trường không hạn chế chế độ hạt nhân, sau hoàn toàn cần thiết Tất phần mềm khác thực nhiều chế độ người dùng Nếu xử lý tạo tình trạng lỗi ngoại lệ chế độ người dùng, nhiều trường hợp hệ thống ổn định không bị ảnh hưởng, xử lý tạo tình trạng lỗi ngoại lệ chế độ hạt nhân, hệ điều hành tạm dừng lại hệ thống với lỗi khôi phục Khi hệ thống phương thức tồn (ring-cơ sở an ninh), lỗi ngoại lệ mức độ đặc quyền làm ổn định có mức ưu đãi cao số Như vậy, lỗi Ring (các chế độ hạt nhân với đặc quyền cao nhất) sụp đổ toàn hệ thống, lỗi vòng ảnh hưởng đến vịng vượt ngồi Ring thân, nhiều Quá trình chuyển đổi chế độ theo ý chủ đề thực LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Bản thân chương trình thực bị lỗi, ví dụ như: chia cho 0, … - Do tác động thiết bị ngoại vi, ví dụ như: thực lệnh in máy in lỗi, ghi dữ liệu vào đĩa khơng có đĩa, … - Do lập trình viên chủ động gọi ngắt có sẵn Một cách đơn giản, có thể xem ngắt như là q trình gọi chương trình chương trình này tạo sẵn máy tính và q trình gọi có thể xảy thời điểm không xác định trước Sự kiện (Event) là một tác động lên một đối tượng mơi trường Windows Khi có một sự kiện xảy ra, Windows sẽ gởi thông điệp (message) đến đối tượng Các sự kiện thường xảy là: - Sự kiện chuột: Click, Double Click, … - Sự kiện bàn phím: nhấn phím, nhả phím, … - Sự kiện cửa sổ: Activate, Load, Unload, … Các loại ngắt và bảng vector ngắt Q trình ngắt có thể mơ tả như sau: Hình 2.1 – Quá trình thực ngắt Trong quá trình ngắt, ta phân biệt thành loại: ngắt cứng và ngắt mềm Ngắt mềm là ngắt được gọi lệnh chương trình ngơn ngữ máy Ngắt mềm được thục hợp ngữ thông qua lệnh INT Đối với ngôn ngữ bậc cao hơn, cho phép thực gọi ngắt phải được biên dịch thành lệnh INT hợp ngữ mời thực LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Khác với ngắt mềm, ngắt cứng khơng khởi động bên máy tính mà do các linh kiện điện tử tác đông lên hệ thống Ngắt cứng chia thành loại: ngắt che ngắt khơng che Ngắt che ngắt cho phép hay không cho phép thực thi phần mềm thông qua cờ ngắt IF (Interrupt Flag): lệnh CLI (Clear Interrupt Flag) sẽ cấm ngắt và lệnh STI (Set Interrupt Flag) sẽ cho phép ngắt hoạt động Các loại ngắt khác có thể mơ tả như sau: Hình 2.2 – Các loại ngắt Khi thực lệnh gọi ngắt nào đó, chương trình phục vụ cho ngắt sẽ được gọi Để thực ngắt tương ứng, địa chỉ thực chương trình phục vụ ngắt được đặt bảng, gọi bảng vector ngắt Bảng vector ngắt gồm có 256 phần tử, phần tử gồm byte ứng với 256 ngắt (từ ngắt đến ngắt 0FFh) Mỗi phần tử trong bảng vector ngắt chứa địa chỉ: địa chỉ thanh ghi đoạn đưa vào CS và địa offset chương trình phục vụ ngắt đưa vào IP Bảng vector ngắt có thể mơ tả như sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Địa chỉ Địa chỉ ISR Số thứ tự ngắt 0000h:0000h CS 0000h:0002h 0000h:0004h 0000h:0006h 0000h:0008h 0000h:000Ah … IP … … 0000h:03FCh CS 255 0000h:03FEh IP CS IP CS 2 IP Khi có một q trình ngắt xảy ra, CPU sẽ tìm địa chỉ bắt đầu chương trình ngắt được chứa bảng vector ngắt theo số thự tự ngắt Do phần tử bảng vector ngắt chiếm byte nên để tìm giá trị địa chỉ trong bảng vector ngắt, ta chỉ cần nhân số thứ tự ngắt với Danh sách ngắt mô tả như sau: STT Địa chỉ Chức 00h 0000h – 0003h CPU: chia cho 01h 0004h – 0007h CPU: thực lệnh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 02h 0008h – 000Bh CPU: Lỗi RAM 03h 000Ch – 000Fh CPU: thực đến điểm dừng 04h 0010h – 0013h CPU: tràn số 05h 0014h – 0017h In trang hình (Print Screen) 06h, 07h 0018h – 001Fh Dành riêng 08h 0020h – 0023h IRQ0: ngắt đồng hồ (18.2 lần / giây) 09h 0024h – 0027h IRQ1: ngắt bàn phím 0Ah 0028h – 002Bh IRQ2: Dành riêng 0Bh 002Ch – 002Fh IRQ3: Giao tiếp nối tiếp 0Ch 0030h – 0033h IRQ4: Giao tiếp nối tiếp 0Dh 0034h – 0037h IRQ5: Đĩa cứng 0Eh 0038h – 003Bh IRQ6: Đĩa mềm 0Fh 003Ch – 003Fh IRQ7: Máy in 10h 0040h – 0043h BIOS: hình LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 11h 0044h – 0047h BIOS: xác định cấu hình máy tính 12h 0048h – 004Bh BIOS: xác định kích thước RAM 13h 004Ch – 004Fh BIOS: truy nhập đĩa cứng / đĩa mềm 14h 0050h – 0053h BIOS: truy nhập giao tiếp nối tiếp 15h 0054h – 0057h BIOS: truy nhập cassette hay mở rộng ngắt 16h 0058h – 005Bh BIOS: kiểm tra bàn phím 17h 005Ch – 005Fh BIOS: truy nhập máy in 18h 0060h – 0063h Chương trình xâm nhập ROM BASIC 19h 0064h – 0067h BIOS: khởi động hệ thống (khi nhấn Ctrl-Alt-Del) 1Ah 0068h – 006Bh BIOS: đọc / ghi ngày / 1Bh 006Ch – 006Fh Nhấn phím Break 1Ch 0070h – 0073h Gọi sau INT 08h 1Dh 0074h – 0077h Địa bảng tham số hình 1Eh 0078h – 007Bh Địa bảng tham số đĩa mềm LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 1Fh 007Ch – 007Fh Địa bảng font có ký tự mở rộng 20h 0080h – 0083h DOS: kết thúc chương trình 21h 0084h – 0087h DOS: gọi hàm DOS 22h 0088h – 008Bh Địa kết thúc chương trình 23h 008Ch – 008Fh Nhấn Ctrl-Break 24h 0090h – 0093h Địa chương trình xử lý lỗi 25h 0094h – 0097h DOS: đọc đĩa mềm / đĩa cứng 26h 0098h – 009Bh DOS: ghi đĩa mềm / đĩa cứng 27h 009Ch – 009Fh DOS: kết thúc chương trình thường trú 28h – 3Fh 00A0h – 00FFh Dành riêng cho DOS 40h 0100h – 0103h BIOS: phục vụ đĩa mềm 41h 0104h – 0107h Địa bảng tham số đĩa cứng 42h – 45h 0108h – 0117h Dành riêng 46h 0118h – 011Bh Địa bảng tham số đĩa cứng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 47h – 49h 011Ch – 0127h Dành cho user 4Ah 0128h – 012Bh Hẹn 4Bh – 67h 012Ch – 019Fh Dành cho user 68h – 6Fh 01A0h – 01BFh Không dùng 70h 01C0h – 01C3h IRQ8: đồng hồ thời gian thực 71h 01C4h – 01C7h IRQ9 72h 01C8h – 01CBh IRQ10 73h 01CCh – 01CFh IRQ11 74h 01D0h – 01D3h IRQ12 75h 01D4h – 01D7h IRQ13: từ 80x87 76h 01D8h – 01DBh IRQ14: đĩa cứng 77h 01DCh – 01DFh IRQ15 78h – 7Fh 01E0h – 01FFh Dành riêng 80h – F0h 0200h – 03C3h Dùng cho thông dịch BASIC LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com F1h – FFh 03C4h – 03FFh Không sử dụng Gọi ngắt và chặn ngắt Quá trình gọi ngắt từ hợp ngữ đơn giản là thực lệnh INT STT_ngắt sau nạp các tham số cần thiết cho ngắt Khi thực lệnh gọi ngắt, CPU sẽ tìm kiếm bảng vector ngắt địa chỉ chương trình phục vụ ngắt Người sử dụng có thể xây dựng mơt chương trình cơ sở như các chương trình xử lý ngắt Sau đó, chương trình khác có thể gọi ngắt để sử dụng Một chương trình có thể gọi chương trình loại mà khơng cần biết địa chỉ của nó. Như vậy, muốn thay đổi ngắt, ta có thể thay đổi nội dung bảng vector ngắt để chỉ đến chương trình phục vụ người sử dụng tự xây dựng chương trình sẽ được thực ngắt được gọi Để làm điều này, ta chỉ cần tìm vị trí của vector ngắt tương ứng bảng và thay đổi giá trị của nó. Điều thực hiện được bảng vector ngắt đặt RAM và được nạp khởi động hệ thống Quá trình lấy và gán địa chỉ của chương trình phục vụ ngắt có thể thực hiện thơng qua ngắt 21h hàm sau: Hàm 35h: lấy địa chỉ ngắt Vào: AL = số thứ tự ngắt Ra: ES:BX = địa chỉ của chương trình phục vụ ngắt Hàm 25h: gán địa chỉ chương trình phục vụ cho ngắt Vào: AL = số thứ tự ngắt, DS:DX Ra: khơng có Để thực chặn ngắt, ta cần thực sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 2.2 – Quá trình chặn ngắt Cuộc gọi hệ thống Linux thực Bắt đầu với phiên 2.5, Linux hạt nhân giới thiệu hệ thống gọi nhập vào chế Pentium II + vi xử lý Do vấn đề hiệu suất vi xử lý Pentium IV với phương pháp phần mềm gián đoạn, thay hệ thống gọi nhập cảnh chế thực cách sử dụng SYSENTER / SYSEXIT hướng dẫn có sẵn vi xử lý Pentium II + Bài viết khám phá chế Thảo luận giới hạn kiến trúc x86, tất mã nguồn Danh sách dựa hạt nhân Linux 2.6.15.6 a,Hệ thống gọi gì? Hệ thống cung cấp cho gọi UserLand quy trình cách yêu cầu dịch vụ từ hạt nhân Những loại dịch vụ? Dịch vụ quản lý hệ điều hành lưu trữ, nhớ, mạng lưới, quy trình quản lý vv Ví dụ, trình sử dụng muốn đọc tập tin, phải làm 'mở' 'các gọi hệ thống chi' Nói chung gọi hệ thống khơng gọi q trình trực tiếp Thư viện C cung cấp giao diện với hệ thống tất gọi b,Điều gì xảy gọi hệ thống? LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Một đoạn mã hạt nhân chạy yêu cầu trình sử dụng Mã chạy vòng (với đặc quyền cấp-CPL-0), cao cấp đặc quyền x86 kiến trúc Mọi người sử dụng quy trình chạy vịng (CPL 3) Vì vậy, để thực hệ thống chế gọi, cần 1) cách để gọi ring mã từ nhẫn 2) số mã hạt nhân vào dịch vụ yêu cầu c,Tốt cũ cách làm việc đó Cho đến thời gian trở lại, Linux sử dụng để thực gọi tất hệ thống x86 tảng phần mềm sử dụng ngắt Để thực gọi hệ thống, người sử dụng trình chép mong muốn số gọi hệ thống để eax% thực thi 'int 0x80' Điều tạo ngắt 0x80 gián đoạn dịch vụ thường lệ gọi Để ngắt 0x80, điều thường lệ "tất hệ thống gọi xử lý "thường lệ thường trình thực vịng Điều thường lệ, định nghĩa tập tin/usr/src/linux/arch/i386/kernel/entry.S, tiết kiệm trạng gọi thích hợp hệ thống xử lý gọi dựa giá trị eax% d, Mới sáng bóng cách làm nó Nó đã được phát phần mềm Phương pháp gián đoạn chậm ngày Bộ vi xử lý Pentium IV Để giải vấn đề, Linus triển khai thực thay hệ thống chế gọi đến tận dụng lợi SYSENTER / SYSEXIT hướng dẫn cung cấp tất Pentium II + vi xử lý So sánh user mode va kernel mode - Kernel Mode là chế động hoạt động CPU. Nếu chương trình hoạt động Kernel Mode nắm quyền sử dụng tài nguyên hệ thống như: sử dụng tất lệnh CPU, truy cập tới vùng nhớ RAM… Khi CPU đặt Kernel Mode, bạn phải CPU thực thi đoạn code Trusted-Software VD: Kernel, Device Driver, System Program… phần mềm đáng tin cậy. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com VD như: Khi bạn cài đặt Device Driver cho phần cứng mà Driver chưa xác nhận Windows (chữ ký kèm Driver khơng có CSDL Windows) hệ thống đưa thơng điệp cảnh báo, tình bạn ln click Contiune Anyway chứ! Hãy cẩn thận Malware giả mạo phần mềm Driver, điều tồi tệ xảy Malware chạy Kernel Mode hình dung được - User Mode cũng chế độ hoạt động CPU. chương trình nằm User Mode có đặc quyền truy cập tới tài nguyên hệ thống như: số lượng lệnh CPU sử dụng bị giới hạn, bị cấm truy cập tới vùng nhớ cấp phát cho Kernel chương trình khác (cũng User Mode)… Tất phần mềm ứng dụng (Application Program – thuộc Untrusted Software) khởi chạy đưa vừa User Mode Vậy ví dụ ứng dụng Web Browser muốn mở kết nối mạng (1 tài nguyên hệ thống nằm Kernel Mode) phải làm sao? Giải pháp hệ thống xây dựng cơ chế Mode Switch Tức App yêu cầu dịch vụ cung cấp Kernel (với VD Web Browser có System Call tương ứng để tạo Socket) hệ thống chuyển Process App vào Kernel Mode Sau Kernel đáp ứng xong yêu cầu App, hệ thống lại đưa App User Mode. Với việc phân chia đặc quyền Kernel Mode User Mode nhằm bảo vệ liệu hệ điều hành khỏi bị lỗi (dẫn tới hệ thống bị crash) bị truy cập, chỉnh sửa trái phép (dẫn tới hệ thống bị cơng) cách vơ ý (do phần mềm có bug) có chủ đích (do nhiễm Malware) ứng dụng người dùng. TÌM HIỂU TRONG HỆ ĐIỀU HÀNH LINUX Với 13 triệu dòng lệnh, Linux kernel là dự án mã nguồn mở rộng lớn thế giới, xác chúng là gì và chúng làm gì hệ thống? Kernel gì? Khái niệm kernel ở đây nói đến phần mềm, ứng dụng ở mức thấp (low-level) hệ thống, có khả thay đổi linh hoạt để phù hợp với LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com phần cứng Chúng tương tác với tất ứng dụng hoạt động chế độ user mode, cho phép q trình khác – hay cịn gọi server, nhận thông tin từ thành phần khác qua inter-process communication (IPC) Các loại kernel khác nhau Về chất, có nhiều cách để xây dựng cấu trúc biên dịch kernel định từ đầu Nhìn chung, với hầu hết kernel nay, chia làm loại: monolithic, microkernel, và hybrid Linux sử dụng kernel monolithic OS X (XNU) Windows sử dụng kernel hybrid Microkernel: Microkernel có đầy đủ tính cần thiết để quản lý bộ vi xử lý, bộ nhớ và IPC Có nhiều thứ khác máy tính có thể nhìn thấy, tiếp xúc và quản lý trong chế độ người dùng Microkernel có tính linh hoạt khá cao, vì vậy bạn khơng phải lo lắng thay đổi thiết bị nào đó, ví dụ card hình, ổ cứng lưu trữ… chí hệ điều hành Microkernel với thông số liên quan footprint nhỏ, tương tự với nhớ dung lượng lưu trữ, chúng cịn có tính bảo mật cao định rõ ràng tiến trình hoạt động chế độ user mode, mà không cấp quyền chế độ giám sát – supervisor mode Ưu điểm: - Tính linh hoạt cao - Bảo mật - Sử dụng footprint cài đặt lưu trữ Nhược điểm: - Phần cứng đơi “khó hiểu” thơng qua hệ thống driver - Phần cứng hoạt động mức hiệu suất thông thường trình điều khiển chế độ user mode - Các tiến trình phải chờ đợi để nhận thơng tin - Các tiến trình khơng thể truy cập tới ứng dụng khác mà chờ đợi Monolithic Kernel: Với Monolithic thì khác, chúng có chức bao quát rộng so với microkernel, không chỉ tham gia quản lý bộ vi xử lý, bộ nhớ, IRC, chúng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com cịn can thiệp vào trình điều khiển driver, tính điều phối file hệ thống, giao tiếp qua lại server… Monolithic tốt truy cập tới phần cứng và đa tác vụ, vì nếu chương trình muốn thu thập thơng tin từ bộ nhớ và các tiến trình khác, chúng cần có quyền truy cập trực tiếp và khơng phải chờ đợi tác vụ khác kết thúc Nhưng đồng thời, chúng là nguyên nhân gây sự bất ổn vì nhiều chương trình chạy chế độ supervisor mode hơn, chỉ cần sự cố nhỏ cũng khiến cho cả hệ thống mất ổn định Ưu điểm: - Truy cập trực tiếp đến phần cứng - Dễ dàng xử lý tín hiệu liên lạc nhiều thành phần với nhau - Nếu hỗ trợ đầy đủ, hệ thống phần cứng không cần cài đặt thêm driver phần mềm khác - Quá trình xử lý tương tác nhanh khơng cần phải chờ đợi Nhược điểm: - Tiêu tốn nhiều footprint cài đặt lưu trữ - Tính bảo mật tất hoạt động chế độ giám sát – supervisor mode Hybrid Kernel: Khác với loại kernel trên, Hybrid có khả năng chọn lựa và quyết định ứng dụng nào được phép chạy chế độ user supervisor Thông thường, thứ driver file hệ thống I/O hoạt động chế độ user mode IPC gói tín hiệu từ server giữ lại chế độ supervisor Tính thực có ích chúng đảm bảo tính hiệu hệ thống, phân phối điều chỉnh công việc phù hợp, dễ quản lý Ưu điểm: - Các nhà phát triển chọn phân loại ứng dụng chạy chế độ thích hợp - Sử dụng footprint so với monolithic kernel - Có tính linh hoạt động cao Nhược điểm: - Có thể bị bỏ lại trình gây treo hệ thống tương tự với microkernel - Các trình điều khiển thiết bị phải quản lý người dùng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Vậy file Linux Kernel này ở đâu? Các file kernel này, Ubuntu chúng lưu trữ tại thư mục /boot và đặt tên theo vmlinuz-version Khi bộ nhớ ảo bắt đầu phát triển để thực tác vụ đa luồng, tiền tố vm sẽ được đặt vào đầu file kernel để phân biệt khả hỗ trợ cơng nghệ ảo hóa Kể từ đó, Linux kernel gọi là vmlinux, hệ thống kernel này đã phát triển với tốc độ quá nhanh, lớn so với dung lượng bộ nhớ boot chuẩn hệ điều hành, vì vậy file kernel này đã được nén theo chuẩn zlib – và ký tự z thêm vào là do như vậy Ngoài số định dạng nén thường gặp khác là LZMA BZIP2, chúng vẫn được gọi chung là zImage Các phiên bản xếp thứ tự theo định dạng A.B.C.D, A.B thường là 2.6, C đại diện cho phiên bản, và D là ký hiệu vá lỗi patch: Trong thư mục /boot cịn có rất nhiều file quan trọng khác như, initrd.imgversion, system.map-version, và config-version File initrd dùng như 1 ổ đĩa RAM để giải nén và kích hoạt file kernel thực sự, cịn file system.map dùng để quản lý nhớ trước kernel tải đầy đủ, file config làm nhiệm vụ thông báo cho kernel biết lựa chọn module nạp vào trình hệ thống khởi động Cấu trúc file Linux Kernel Thực tế, Windows có tất cả các trình điều khiển sẵn có và người sử dụng chỉ việc kích hoạt trình điều khiển tương ứng để sử dụng Và là nhiệm vụ các module kernel Linux đảm nhiệm, hay còn được gọi là loadable kernel module (LKM), cần thiết để giữ các chức kèm với toàn bộ hệ thống phần cứng hoạt động mà không ảnh hưởng đến bộ nhớ module thông thường sẽ gán chức cơ tới kernel như điều khiển driver, file hệ thống… LKM có phần đi mở rộng là ko và được lưu trữ trong thư mục /lib/modules, người sử dụng có thể thiết lập thuộc tính tự khởi động, cho phép tải khơng hệ điều hành khởi động, cách dùng lệnh menuconfig, can thiệp vào file /boot/config, cách sử dụng lệnh modprobe LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Các module hãng thứ 3 thường có sẵn số distributor, ví dụ như Ubuntu, khơng tích hợp sẵn ở chế độ mặc định Các nhà phát triển phần mềm (ví dụ nVidia, ATI hãng khác), khơng cung cấp mã nguồn họ đã tự xây dựng và biên dịch module cần thiết, sau cung cấp cho người sử dụng file ko Và tất nhiên, có nhiều module hồn tồn miễn phí, số khác thì khơng LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... vào Kernel Mode Sau Kernel đáp ứng xong yêu cầu App, hệ thống lại đưa App User Mode. Với việc phân chia đặc quyền Kernel Mode User Mode nhằm bảo vệ liệu hệ điều hành khỏi bị lỗi (dẫn tới hệ. .. bị ngoại vi khác Đây chế độ hệ điều hành thường chạy " Trong kenal nguyên khối, hệ điều hành chạy chế độ giám sát ứng dụng chạy chế độ user mode Các loại hệ điều hành, giống người có exokernel... trọng Kernel mode, ngắt và? ? gọi hệ? ?thống Kernel mode Trong hệ? ?WIN NT , chương trình có thể truy nhập trực tiếp vào phần cứng, dữ liệu hệ? ?thống như các tài nguyên hệ? ? thống khác Kernel -mode bao gồm