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
344,5 KB
Nội dung
CẤUTRÚCMÁYTÍNHVÀHỆĐIỀU HÀNH ĐỀ TÀI: PhântíchtấtcấutrúcchứcusermodeWindowsXp Home? Mở đầu: Mỗi trình bắt đầu Windows (với ngoại lệ "quá 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 tin nhắn trực tiếp khơng có cách truy cập vào nhớ chương trình khác ngoại trừ thơng qua chức API Các chương trình chế độ người dùng can thiệp làm gián đoạn 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áytí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ântí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 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ầuhệ 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ấutrú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 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 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ớ : 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 *Ư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 yê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 UserMode 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 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 Tronghệđiều hành đại, CPU thực dành thời gian hai chế độ khác biệt: UsermodeTrong chế độ user mode, mã thực thi khơng có khả truy cập trực tiếp phần cứng tham chiếu nhớ Mã chạy chế độ usermode 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ị cô lập, bị treo chế độ usermode luôn phục hồi Hầu hết mã chạy máytính bạn thực chế độ usermode 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 usermode Hai chế độ không nhãn, họ thực thi phần cứng CPU Nếu mã thực thi chế độ usermode 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 tồn hệ thống bị treo, treo ứng dụng cụ thể Đó giá trị chế độ usermodephầ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 Máytínhhệđ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úchệ thống máytí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, 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ế độ 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áytính bị treo tất thời gian máytí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ụ, WindowsXP 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ềuhành, giám sát người dùng Hiện có quan tâm cấutrúc thiết kế, với gia tăng phần mềm Xen VMM, thảoluậ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ấutrúcphầ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áytính phục vụ đăng ký nhẫn Vì mã thực thi với máytí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 số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ấutrú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 Ngoà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ệ 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 Trongmáytí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áytí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ế độ usermode Các loại hệđiềuhà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 khác khách máy chủ lưu trữ hệđiều hành Nhiều kiến trúcphầ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ínhphầ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úcphầ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ầnhệ 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ấtphầ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 - 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 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, xem ngắt trình gọi chương trình chương trình tạo sẵn máytính q trình gọi xảy thời điểm không xác định trước Sự kiện (Event) tác động lên đối tượng mơi trường Windows Khi có kiện xảy ra, Windows gởi thông điệp (message) đến đối tượng Các 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 bảng vector ngắt Q trình ngắt mơ tả sau: Hình 2.1 – Quá trình thực ngắt Trong trình ngắt, ta phân biệt thành loại: ngắt cứng ngắt mềm Ngắt mềm ngắt gọi lệnh chương trình ngơn ngữ máy Ngắt mềm 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 biên dịch thành lệnh INT hợp ngữ mời thực Khác với ngắt mềm, ngắt cứng không khởi động bên máytính mà 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) cấm ngắt lệnh STI (Set Interrupt Flag) cho phép ngắt hoạt động Các loại ngắt khác mơ tả sau: Hình 2.2 – Các loại ngắt Khi thực lệnh gọi ngắt đó, chương trình phục vụ cho ngắt gọi Để thực ngắt tương ứng, địa thực chương trình phục vụ ngắt đặ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ử bảng vector ngắt chứa địa chỉ: địa ghi đoạn đưa vào CS địa offset chương trình phục vụ ngắt đưa vào IP Bảng vector ngắt mơ tả sau: Địa 0000h:0000h Địa ISR CS Số thứ tự ngắt IP 0000h:0002h CS 0000h:0004h IP 0000h:0006h CS 0000h:0008h IP 0000h:000Ah … … … 0000h:03FCh CS 255 0000h:03FEh IP Khi có q trình ngắt xảy ra, CPU tìm địa bắt đầu chương trình ngắt 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 bảng vector ngắt, ta cần nhân số thứ tự ngắt với Danh sách ngắt mô tả sau: STT Địa Chức 00h cho 0000h – 0003h CPU: chia 01h lệnh 0004h – 0007h CPU: thực 02h RAM 0008h – 000Bh CPU: Lỗi 03h đến điểm dừng 000Ch – 000Fh 04h số 0010h – 0013h CPU: tràn 05h hình (Print Screen) 0014h – 0017h In trang 06h, 07h riêng 0018h – 001Fh Dành 08h đồng hồ (18.2 lần / giây) 0020h – 0023h IRQ0: ngắt 09h bàn phím 0024h – 0027h IRQ1: ngắt 0Ah Dành riêng 0028h – 002Bh IRQ2: 0Bh tiếp nối tiếp 002Ch – 002Fh IRQ3: Giao 0Ch Giao tiếp nối tiếp 0030h – 0033h IRQ4: 0Dh Đĩa cứng 0034h – 0037h IRQ5: 0Eh Đĩa mềm 0038h – 003Bh IRQ6: 0Fh Máy in 003Ch – 003Fh IRQ7: 10h hình 0040h – 0043h CPU: thực BIOS: 11h xác định cấu hình máytính 0044h – 0047h 12h xác định kích thước RAM 0048h – 004Bh 13h truy nhập đĩa cứng / đĩa mềm 004Ch – 004Fh 14h truy nhập giao tiếp nối tiếp 0050h – 0053h BIOS: 15h 0054h – 0057h truy nhập cassette hay mở rộng ngắt BIOS: 16h kiểm tra bàn phím 0058h – 005Bh BIOS: 17h truy nhập máy in 005Ch – 005Fh BIOS: 18h trình xâm nhập ROM BASIC 0060h – 0063h Chương 19h 0064h – 0067h động hệ thống (khi nhấn Ctrl-Alt-Del) BIOS: BIOS: BIOS: BIOS: khởi 1Ah đọc / ghi ngày / 0068h – 006Bh BIOS: 1Bh phím Break 006Ch – 006Fh Nhấn 1Ch INT 08h 0070h – 0073h Gọi sau 1Dh bảng tham số hình 0074h – 0077h 1Eh bảng tham số đĩa mềm 0078h – 007Bh Địa Địa 1Fh bảng font có ký tự mở rộng 007Ch – 007Fh Địa 20h thúc chương trình 0080h – 0083h DOS: kết 21h hàm DOS 0084h – 0087h DOS: gọi 22h kết thúc chương trình 0088h – 008Bh Địa 23h Ctrl-Break 008Ch – 008Fh Nhấn 24h chương trình xử lý lỗi 0090h – 0093h Địa 25h đĩa mềm / đĩa cứng 0094h – 0097h DOS: đọc 26h ghi đĩa mềm / đĩa cứng 0098h – 009Bh DOS: 27h 009Ch – 009Fh kết thúc chương trình thường trú DOS: 28h – 3Fh riêng cho DOS 00A0h – 00FFh Dành 40h phục vụ đĩa mềm 0100h – 0103h BIOS: 41h bảng tham số đĩa cứng 0104h – 0107h Địa 42h – 45h riêng 0108h – 0117h Dành 46h bảng tham số đĩa cứng 0118h – 011Bh Địa 47h – 49h cho user 011Ch – 0127h Dành 4Ah 0128h – 012Bh Hẹn 4Bh – 67h cho user 012Ch – 019Fh Dành 68h – 6Fh dùng 01A0h – 01BFh Không 70h đồng hồ thời gian thực 01C0h – 01C3h IRQ8: 71h IRQ9 01C4h – 01C7h 72h IRQ10 01C8h – 01CBh 73h IRQ11 01CCh – 01CFh 74h IRQ12 01D0h – 01D3h 75h IRQ13: từ 80x87 01D4h – 01D7h 76h IRQ14: đĩa cứng 01D8h – 01DBh 77h IRQ15 01DCh – 01DFh 78h – 7Fh riêng 01E0h – 01FFh Dành 80h – F0h cho thông dịch BASIC 0200h – 03C3h Dùng F1h – FFh Không sử dụng 03C4h – 03FFh Gọi ngắt chặn ngắt Quá trình gọi ngắt từ hợp ngữ đơn giản thực lệnh INT STT_ngắt sau nạp tham số cần thiết cho ngắt Khi thực lệnh gọi ngắt, CPU tìm kiếm bảng vector ngắt địa chương trình phục vụ ngắt Người sử dụng xây dựng mơt chương trình sở chương trình xử lý ngắt Sau đó, chương trình khác gọi ngắt để sử dụng Một chương trình gọi chương trình loại mà khơng cần biết địa Như vậy, muốn thay đổi ngắt, ta thay đổi nội dung bảng vector ngắt để đến chương trình phục vụ người sử dụng tự xây dựng chương trình thực ngắt gọi Để làm điều này, ta cần tìm vị trí vector ngắt tương ứng bảng thay đổi giá trị Điều thực bảng vector ngắt đặt RAM nạp khởi động hệ thống Quá trình lấy gán địa chương trình phục vụ ngắt thực thông qua ngắt 21h hàm sau: Hàm 35h: lấy địa ngắt Vào: AL = số thứ tự ngắt Ra: ES:BX = địa chương trình phục vụ ngắt Hàm 25h: gán địa 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: 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ảoluậ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ụ, q 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 xảy gọi hệ thống? Một đoạn mã hạt nhân chạy yêu cầu q 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ấthệ 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ó 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 usermodeva kernel mode - Kernel Mode 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 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 - UserMode chế độ hoạt động CPU chương trình nằm UserMode 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ấtphần mềm ứng dụng (Application Program – thuộc Untrusted Software) khởi chạy đưa vừa UserMode 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 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 UserMode Với việc phân chia đặc quyền Kernel ModeUserMode 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 TRONGHỆĐIỀU HÀNH LINUX Với 13 triệu dòng lệnh, Linux kernel dự án mã nguồn mở rộng lớn giới, xác chúng chúng làm hệ thống? Kernel gì? Khái niệm kernel 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 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 trình khác – hay 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 Về chất, có nhiều cách để xây dựng cấutrú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, 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ý vi xử lý, nhớ IPC Có nhiều thứ khác máytính nhìn thấy, tiếp xúc quản lý chế độ người dùng Microkernel có tính linh hoạt cao, bạn khơng phải lo lắng thay đổi thiết bị đó, 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ó 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 “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ế độ usermode - 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 khác, chúng có chức bao quát rộng so với microkernel, không tham gia quản lý vi xử lý, nhớ, IRC, chúng 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 đa tác vụ, chương trình muốn thu thập thơng tin từ nhớ tiến trình khác, chúng cần có quyền truy cập trực tiếp chờ đợi tác vụ khác kết thúc Nhưng đồng thời, chúng nguyên nhân gây bất ổn nhiều chương trình chạy chế độ supervisor mode hơn, cần cố nhỏ khiến cho hệ thống ổ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 - 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ả chọn lựa định ứng dụng phép chạy chế độ user supervisor Thông thường, thứ driver file hệ thống I/O hoạt động chế độ usermode 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 Vậy file Linux Kernel đâu? Các file kernel này, Ubuntu chúng lưu trữ thư mục /boot đặt tên theo vmlinuz-version Khi nhớ ảo bắt đầu phát triển để thực tác vụ đa luồng, tiền tố vm đặ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 vmlinux, hệ thống kernel phát triển với tốc độ nhanh, lớn so với dung lượng nhớ boot chuẩn hệđiềuhành, file kernel nén theo chuẩn zlib – ký tự z thêm vào Ngồi số định dạng nén thường gặp khác LZMA BZIP2, chúng gọi chung zImage Các phiên xếp thứ tự theo định dạng A.B.C.D, A.B thường 2.6, C đại diện cho phiên bản, D ký hiệu vá lỗi patch: Trong thư mục /boot có nhiều file quan trọng khác như, initrd.imgversion, system.map-version, config-version File initrd dùng ổ đĩa RAM để giải nén kích hoạt file kernel thực sự, 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ấutrúc file Linux Kernel Thực tế, Windows có tất trình điều khiển sẵn có người sử dụng việc kích hoạt trình điều khiển tương ứng để sử dụng Và nhiệm vụ module kernel Linux đảm nhiệm, hay gọi loadable kernel module (LKM), cần thiết để giữ chức kèm với tồn hệ thống phần cứng hoạt động mà khơng ảnh hưởng đến nhớ module thông thường gán chức tới kernel điều khiển driver, file hệ thống… LKM có phần mở rộng ko lưu trữ thư mục /lib/modules, người sử dụng 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 Các module hãng thứ thường có sẵn số distributor, ví dụ 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 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 không ... 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ệ. .. 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. .. 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