Tổ chức hệ thống Tổ chức hệ thống Bởi: Giảng viên Trần Hạnh Nhi Hệ thống tập tin Một đặc điểm quan trọng Linux hỗ trợ nhiều hệ thống tập tin Điều làm cho linh động tồn với nhiều hệ điều hành khác Từ phiên đầu tiên, Linux hỗ trợ 15 loại tập tin : ext, ext2, xia, minix, umsdos, msdos, vfat, proc, smb, ncp, iso9660, sysv, hpfs, affs ufs Trong Linux, Unix, hệ thống tập tin truy xuất thông qua cấu trúc thừa kế đơn thay thiết bị xác định (như tên ổ đĩa số hiệu ổ đĩa) Linux thêm hệ thống tập tin vào thiết lập (mount) Tất hệ thống tập tin thiết lập vào thư mục gọi thư mục thiết lập Khi đĩa khởi tạo, đĩa chia thành nhiều partitions Mỗi partition có hệ thống tập tin Hệ thống tập tin Linux coi thiết bị khối cách đơn giản tập hợp tuyến tính khối mà không quan tâm đến tổ chức vật lý đĩa Chương trình điều khiển thiết bị khối chịu trách nhiệm ánh xạ khối cần đọc thành vị trí vật lý cụ thể đĩa Trong hệ thống tập tin Linux, người sử dụng không quan tâm đến khác biệt chúng thiết bị vật lý khác Hệ thống tập tin không hệ thống cục mà ổ đĩa từ xa mạng Ví dụ hệ thống tập tin Linux : Hệ thống tập tin Linux hỗ trợ Minix cho phép tập tin có tên tối đa 14 ký tự kích thước không vượt 64Mb Hệ thống tập tin đặc thù Linux ‘hệ thống tập tin mở rộng’ (EXT) giới thiệu vào tháng 4/1992, hệ thống không hiệu nên sau vào năm 1993 ‘hệ thống tập tin mở rộng hệ 2’ thêm vào Có điểm quan trọng hệ thống tập tin EXT đưa vào Linux Hệ thống tập tin thật bị tách khỏi hệ điều hành dịch vụ hệ thống tầng giao tiếp gọi hệ thống tập tin ảo VFS VFS cho phép Linux hỗ trợ nhiều loại hệ thống tập tin khác nhau, 1/6 Tổ chức hệ thống loại xem giao tiếp phần mềm với VFS Tất chi tiết hệ thống tập tin chuyển đổi cho chúng xuất phần lại hạt nhân Linux chương trình thi hành hệ thống Lớp VFS cho phép thiết lập cách suốt nhiều hệ thống tập tin khác lúc VFS cài đặt cho việc truy xuất tập tin nhanh đảm bảo tính xác truy xuất VFS đặt thông tin hệ thống tập tin vào nhớ chúng thiết lập sử dụng Các cấu trúc liệu mô tả tập tin thư mục truy xuất tạo hủy thường trực Khi khối truy xuất, chúng đặt vào vùng đệm Vùng đệm không lưu giữ liệu mà hỗ trợ quản lý giao tiếp không đồng với phận điều khiển thiết bị khối ‘hệ thống tập tin mở rộng hệ 2’ EXT2 Là hệ thống tập tin thành công Linux Hệ thống này, hệ thống tập tin khác, xây dựng sở khối liệu Các khối liệu có kích thước kích thước tập tin làm tròn thành số nguyên khối EXT2 định nghĩa hệ thống tập tin cách mô tả tập tin hệ thống cấu trúc I-node inode có số để định danh Các I-node đặt bảng I-node Các thư mục EXT2 xem tập tin đặc biệt chứa trỏ đến i-node entry Hình 15.1 cho thấy tổng quan hệ thống tập tin EXT2 Hệ thống chia partitions mà quản lý vào Block Group 2/6 Tổ chức hệ thống Điều khiển thiết bị Như đề cập phần quản lý nhập xuất, mục tiêu hệ điều hành giúp cho người sử dụng độc lập với thiết bị Trong Linux, thiết bị phần cứùng xem tập tin thông thường : chúng mở, đóng , đọc , ghi, sử dụng lời gọi hệ thống để thao tác Mọi thiết bị hệ thống biểu diễn tập tin thiết bị, ví dụ đĩa IDE hệ thống biểu diễn /dev/hda Linux ánh xạ tập tin thiết bị vào lời gọi hệ thống Linux hỗ trợ ba loại thiết bị : ký tự, khối mạng Có nhiều chương trình điều khiển thiết bị khác hạt nhân Linux chúng chia xẻ thuộc tính chung : Mã nguồn hạt nhân : chương trình điều khiển thiết bị phần hạt nhân đoạn mã nguồn khác bị lỗi đe dọa nghiêm trọng đến hệ thống Chương trình điều khiển thiết bị cung cấp giao tiếp chuẩn với hạt nhân Linux Chúng sử dụng dịch vụ chuẩn từ hạt nhân Hầu hết chương trình điều khiển thiết bị Linux nạp đơn thể hạt nhân có yêu cầu gỡ không sử dụng Khi khởi động hệ thống chương trình điều khiển thiết bị khởi tạo tìm thiết bị phần cứng mà điều khiển Linux sử dụng chế DMA sử dụng vector cấu trúc dma_chan để quản lý kênh DMA (mỗi kênh có vector) Mỗi lớp điều khiển thiết bị : ký tự, khối, mạng cung cấp giao tiếp chung với hạt nhân Khi thiết bị khởi tạo, ghi điều khiển thiết bị bên hạt nhân Linux thêm entry vector chrdevs cấu trúc devive_struct Một định danh(id) xác định cho vector cố định Mỗi entry vector chrdevs, device_struct gồm hai phần tử : trỏ đến tên ghi điều khiển thiết bị trỏ tới khối tập tin thao tác Khối tập tin thao tác địa thủ tục chương trình điều khiển thiết bị mà chúng kiểm soát thao tác mở, đóng, đọc, ghi Nội dung /proc/devices cho thiết bị ký tự lấy từ vector chrdevs Các thiết bị khối truy xuất tập tin Linux quản lý ghi thiết bị khối vector blkdevs, tương tự vector chrdevs entry cấu trúc device_struct có hai loại thiết bị khối : SCSI IDE Mỗi chương trình điều khiển thiết bị khối phải cung cấp giao tiếp với vùng đệm thao tác 3/6 Tổ chức hệ thống tập tin thôn thường Cấu trúc blk_dev_struct bao gồm địa thủ tục yêu cầu trỏ đến cấu trúc liệu cần thiết, cấu trúc đại diện cho yêu cầu từ vùng đệm cho điều khiển đọc ghi khối liệu Trong Linux, thiết bị mạng thực thể nhận gửi gói liệu Mỗi thiết bị mạng biểu diễn cấu trúc device Các chương trình điều khiển thiết bị mạng ghi nhận thiết bị mà chúng điều khiển trình khởi tạo mạng lúc khởi động hệ thống Cấu trúc device chứa thông tin thiết bị địa hàm hỗ trợ nghi thức dịch vụ mạng khác Nhữõng hàm chủ yếu tập trung vào việc chuyển liệu sử dụng thiết bị mạng thiết bị sử dụng chế hỗ trợ mạng chuẩn để chuyển liệu nhận cho lớp nghi thức thích hợp Tất gói liệu chuyển nhận biểu diễn cấu trúc sk_buff, cấu trúc linh động cho phép tiêu đề (header) nghi thức mạng dể dàng thêm vào loại bỏ Cấu trúc device lưu thông tin thiết bị mạng : tên, thông tin đường truyền, cờ trạng thái giao tiếp(mô tả thuộc tính khả thiết bị mạng), thông tin nghi thức, hàng đợi gói tin(đây hàng đợi gói sk_buff chờ chuyển liệu thiết bị mạng đó), hàm hỗ trợ (mỗi thiết bị cung cấp tập hợp thủ tục chuẩn gọi lớp nghi thức) Quản lý tiến trình Mỗi tiến trình Linux biểu diễn cấu trúc liệu task_struct (task có nghĩa tiến trình Linux) Linux sử dụng task vector để quản lý trỏ đến task_struct, mặc định có 512 phần tử Khi tiến trình tạo ra, task_struct cấp phát nhớ thêm vào vector task Linux hỗ trợ hai loại tiến trình loại bình thường loại thời gian thực Cấu trúc task_struct gồn trường sau : trạng thái (thi hành, chờ, ngưng, lưng chừng), thông tin lập lịch, định danh, thông tin liên lạc tiến trình, liên kết, định thời gian, hệ thống tập tin, nhớ ảo, ngữ cảnh Trong Linux Unix, chương trình lệnh thực theo chế thông dịch Bộ thông dịch gọi shell Linux hỗ trợ nhiều loại shell sh, bash, tcsh Tập tin thi hành có nhiều dạng, dạng sử dụng thông dụng Linux EFL, Linux hiểu nhiều dạng tập tin khác Các chế thông tin liên lạc tiến trình sử dụng tín hiệu (SIGNALS), đường ống (PIPE), sockets, semaphore nhớ chia xẻ Có tập hợp tín hiệu định nghĩa trước, tính hiệu phát sinh hạt nhân tiến trình khác nhớ Linux cài đặt tín hiệu task_struct Không phải tiến trình hệ thống gửi tín hiệu đến 4/6 Tổ chức hệ thống tiến trình khác Tín hiệu phát sinh cách thiết lập bit thích hợp trường signal cấu trúc task_struct Tín hiệu không xuất cho tiến trình tạo mà phải chờ đến tiến trình thực trở lại Trong Linux chế đường ống cài đặt sử dụng hai cấu trúc file trỏ đến inode VFS tạm thời xác định trang vật lý nhớ Khi tiến trình ghi thực việc ghi vào đường ống, byte chép vào trang liệu chia sẻ Linux phải đồng trình truy xuất đường ống Tiến trình ghi sử dụng hàm thư viện ghi chuẩn Các chế socket, semaphores nhớ chia sẻ Linux gần giống với hệ thống Unix System V Quản lý nhớ Linux hỗ trợ hệ thống chia sẻ nhớ IPC (Inter Process Communication- thông tin liên lạc tiến trình) Unix System V Linux sử dụng nhớ ảo chế phân trang Trên hệ thống Alpha AXP trang có kích thước 8Kb hệ thống Intel x86 trang có kích thước 4Kb Chiến lược thay trang áp dụng LRU Linux có số cấp bảng trang tùy vào khác (Alpha 3, Intel x86 2) Bảng trang chuyển thành tiến trình đặc thù khác nhau, điều giúp cho việc thao tác bảng trang không lệ thuộc vào Linux sử dụng thuật toán Buddy để thực việc cấp phát thu hồi khối trang ( khối = 1, 2, trang ) Câu hỏi kiểm tra kiến thức Cho biết trình phát triển hệ điều hành Linux Nêu đặc điểm bật hệ điều hành Linux Hệ thống quản lý tập tin Linux có đặc biệt ? Linux quản lý nhập xuất nào? Theo anh(chị), tương lai hệ điều hành Linux sử dụng rộng rãi Windows ngày không ? Tại 5/6 Tổ chức hệ thống Nếu phải chọn hệ điều hành để cài lên máy PC mình, anh (chị) chọn hệ điều hành ? Tại ? 6/6 ... 15.1 cho thấy tổng quan hệ thống tập tin EXT2 Hệ thống chia partitions mà quản lý vào Block Group 2/6 Tổ chức hệ thống Điều khiển thiết bị Như đề cập phần quản lý nhập xuất, mục tiêu hệ điều hành... tiếp không đồng với phận điều khiển thiết bị khối hệ thống tập tin mở rộng hệ 2’ EXT2 Là hệ thống tập tin thành công Linux Hệ thống này, hệ thống tập tin khác, xây dựng sở khối liệu Các khối.. .Tổ chức hệ thống loại xem giao tiếp phần mềm với VFS Tất chi tiết hệ thống tập tin chuyển đổi cho chúng xuất phần lại hạt nhân Linux chương trình thi hành hệ thống Lớp VFS cho