Đang chuẩn bị liên kết để tải về tài liệu:
Bài giảng Chương 6: Linux System Calls

Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ

Bài giảng Chương 6: Linux System Calls do Phạm Quang Dũng biên soạn sau đây giúp các bạn hiểu rõ hơn về các nhóm hàm, sử dụng strace, kiểm tra quyền truy nhập file, flushing disk buffer, giới hạn tài nguyên, thiết lập quyền bộ nhớ. | Chương 6. Linux System Calls Phạm Quang Dũng http://fita.hua.edu.vn/pqdung Các nhóm hàm Các hàm liên quan đến hệ thống được chia thành 2 nhóm dựa vào cách chúng được thực thi: Hàm thư viện: là hàm bình thường đặt trong thư viện bên ngoài chương trình. Các tham số được đặt trong các thanh ghi của CPU hoặc trên stack. Sự thực hiện được truyền đến đoạn mã đầu của hàm (thường trong thư viện chia sẻ được nạp) System call: được thực thi trong Linux kernel. Các tham số được chuyển đến và xử lý trong kernel đến khi lời gọi kết thúc. 2 Linux cung cấp khoảng 200 system call. Một số được sử dụng cho chính hệ thống, số còn lại được sử dụng chỉ trong việc thực thi các hàm thư viện đặc biệt Liệt kê trong /usr/include/asm/unistd.h Hầu hết các system call được khai báo trong 3 6.1. Sử dụng strace Lệnh strace theo dõi sự thực hiện của một chương trình khác, liệt kê bất cứ system call nào chương trình gọi và bất kỳ signal nào nó nhận được. % strace tên_CT [các_tham_số] Vd: % strace hostname 4 6.2. access: kiểm tra quyền truy nhập file system call access xác định xem tiến trình gọi có quyền truy nhập file hay không. access(ts1, ts2) ts1: đường dẫn tới file ts2: chuỗi bit hoặc F_OK, R_OK, W_OK, X_OK Giá trị trả về: = 0 nếu tiến trình có các quyền trong ts2 = -1 nếu có lỗi, mã lỗi được thiết lập thích hợp là ENOENT (file không tồn tại) EACCES (không có quyền tới file hoặc thư mục chứa file) EROFS (khi yêu cầu ghi lên file có thuộc tính chỉ .