PDF Lập trình truyền thông Linux, Nguyễn Thành Sơn, Trần Thanh Hoàng, Lê Thị Minh Châu, Nguyễn Trần Thi

Tin đăng trong 'Lập trình, Công Nghệ Thông Tin | IT docs' bởi mod_luong, Cập nhật cuối: 01/11/2022.

  1. mod_luong

    mod_luong Moderator Staff Member Quản trị viên Thành viên VIP

    Tham gia :
    09/10/2019
    Bài viết:
    3.942
    Lượt thích:
    97
    Điểm thành tích:
    36.428
    [​IMG]

    [​IMG]
    Lập trình truyền thông Linux, Nguyễn Thành Sơn, Trần Thanh Hoàng, Lê Thị Minh Châu, Nguyễn Trần Thi Văn

    MỤC LỤC
    LỜI TỰA .................................................................................................. 3
    MỤC LỤC ................................................................................................ 5
    Chương 1. LỊCH SỬ UNIX VÀ CÀI ĐẶT LINUX ............................ 13
    1.1. TÓM LƯỢC LỊCH SỬ UNIX VÀ C .............................................. 13
    1.1.1. Từ phiên bản Unix đầu tiên đến phiên bản thứ sáu .............. 13
    1.1.2. Sự ra đời của BSD và hệ thống V ........................................ 14
    1.1.3. Dự án GNU và sự ra đời của Linux ..................................... 15
    1.1.4. Chuẩn hóa (posix) ................................................................ 16
    1.2. CÀI ĐẶT LINUX ............................................................................. 16
    Chương 2. SỬ DỤNG LINUX .............................................................. 31
    2.1. KHAI THÁC DESKTOP ................................................................. 31
    2.2. KHAI THÁC CÁC LỆNH THÔNG QUA BỘ THÔNG
    DỊCH LỆNH (SHELL) ............................................................................ 38
    2.2.1. Nhóm lệnh thao tác trên tập tin ............................................ 39
    2.2.2. Nhóm lệnh thao tác trên thư mục ......................................... 40
    2.2.3. Nhóm lệnh thực thi lệnh dưới danh nghĩa người sử
    dụng khác ........................................................................... 47
    2.2.4. Nhóm lệnh thao tác trên hệ thống tập tin ............................. 49
    2.2.5. Nhóm lệnh thao tác về hiển thị nội dung tập tin .................. 58
    2.2.6. Nhóm lệnh thao tác nhập xuất chuẩn ................................... 63
    2.2.7. Nhóm lệnh thao tác về sự tìm kiếm ...................................... 65
    2.2.8. Nhóm lệnh thao tác về lưu trữ và nén tập tin ....................... 66
    2.2.9. Nhóm lệnh thao tác với tiến trình ......................................... 69
    2.2.10. Nhóm lệnh thông tin phần cứng ......................................... 72
    2.2.11. Nhóm lệnh khởi động và tắt máy ....................................... 73
    2.2.12. Nhóm lệnh về mạng ........................................................... 75
    6
    Chương 3. SỬ DỤNG TRÌNH BIÊN DỊCH GCC .............................. 81
    3.1. BIÊN DỊCH MỘT TẬP TIN .c ........................................................ 81
    3.2. BIÊN DỊCH NHIỀU TẬP TIN .c ..................................................... 91
    3.3. TẠO THƯ VIỆN TĨNH (STATIC) .................................................. 92
    Chương 4. CÁC VẤN ĐỀ CƠ BẢN ..................................................... 95
    4.1. NHÂN HỆ ĐIỀU HÀNH ................................................................. 95
    4.2. BỘ THÔNG DỊCH LỆNH ............................................................... 95
    4.3. TIẾN TRÌNH .................................................................................... 95
    4.4. LỜI GỌI HỆ THỐNG ...................................................................... 96
    4.5. HÀM THƯ VIỆN ............................................................................. 96
    4.6. QUẢN LÝ LỖI ................................................................................. 97
    4.7. BỘ NHỚ HỆ THỐNG ...................................................................... 98
    4.7.1. malloc() ............................................................................. 100
    4.7.2. calloc() ............................................................................... 100
    4.7.3. realloc() ............................................................................. 101
    4.7.4. free() .................................................................................. 102
    4.8. TÍN HIỆU ....................................................................................... 102
    4.8.1. signal() ............................................................................... 106
    4.8.2. signaction() ........................................................................ 106
    4.8.3. sigemptyset() và sigfillset() ............................................... 107
    4.8.4. sigaddset() và sigdelset() ................................................... 108
    4.8.5. sigismember() .................................................................... 108
    4.8.6. sigprocmask() .................................................................... 108
    4.8.7. sigpending() ....................................................................... 109
    4.8.8. sigsuspend() ....................................................................... 109
    4.8.9. kill() ................................................................................... 110
    4.8.10. pause() ............................................................................. 110
    4.8.11. sleep() ............................................................................. 110
    7
    4.9. LUỒNG .......................................................................................... 111
    4.10. FILE DESCRIPTOR .................................................................... 111
    4.10.1.open() .............................................................................. 112
    4.10.2.read() ............................................................................... 114
    4.10.3.write() .............................................................................. 114
    4.10.4.close() .............................................................................. 114
    4.10.5.lseek() .............................................................................. 116
    4.10.6. Tính nguyên tử và kết quả của các sự kiện không
    thể kiểm soát được .......................................................... 123
    4.10.7. Các thao tác điều khiển tập tin ....................................... 123
    4.10.8. dup() ............................................................................... 125
    4.10.9. dup2() ............................................................................. 126
    4.10.10. pread() và pwrite() ........................................................ 127
    4.10.11. readv() và writev() ........................................................ 128
    4.10.12. preadv() và pwritev() ..................................................... 130
    4.10.13. truncate() và ftruncate() ................................................ 130
    4.10.14. mkstemp() ..................................................................... 130
    Chương 5. TIẾN TRÌNH (PROCESS) .............................................. 133
    5.1. TẠO TIẾN TRÌNH ......................................................................... 133
    5.1.1. getpid(); getppid() ............................................................ 133
    5.1.2. fork() ................................................................................. 134
    5.2. KẾT THÚC TIẾN TRÌNH ............................................................. 142
    5.2.1. _exit() ............................................................................... 142
    5.2.2. exit() ................................................................................. 142
    5.3. GIÁM SÁT TIẾN TRÌNH CON .................................................... 142
    5.3.1. wait() ................................................................................ 142
    5.3.2. waitpid() ........................................................................... 145
    5.3.3. waitid() ............................................................................. 146
    8
    5.4. THỰC THI TIẾN TRÌNH .............................................................. 147
    5.4.1. execve() ............................................................................ 147
    5.4.2. Các hàm thư viện exec() ................................................... 150
    5.4.3. system() ............................................................................ 152
    Chương 6. TRUYỀN THÔNG GIỮA CÁC TIẾN TRÌNH
    SỬ DỤNG ỐNG DÒNG (PIPE) .................................... 155
    6.1. TẠO ỐNG DÒNG ĐỂ TRUYỀN THÔNG ................................... 156
    6.2. SỬ DỤNG ỐNG DÒNG ĐỂ ĐỒNG BỘ CÁC TIẾN TRÌNH .......... 161
    6.3. SỬ DỤNG ỐNG DÒNG ĐỂ TRUYỀN THÔNG VỚI SHELL .......... 165
    6.4. SỬ DỤNG ỐNG DÒNG ĐỂ LỌC ................................................. 167
    6.5. BÀI LUYỆN TẬP .......................................................................... 169
    Chương 7. TRUYỀN THÔNG GIỮA CÁC TIẾN TRÌNH
    SỬ DỤNG HÀNG ĐỢI THÔNG ĐIỆP
    (MESSAGE QUEUE) ..................................................... 171
    7.1. HÀNG ĐỢI HỆ THỐNG V ........................................................... 171
    7.1.1. Phát sinh khóa .................................................................... 171
    7.1.2. Cấu trúc dữ liệu được kết hợp ............................................ 172
    7.1.3. Tạo một hàng đợi thông điệp ............................................. 173
    7.1.4. Gửi và nhận thông điệp ...................................................... 175
    7.1.5. Điều khiển hàng đợi thông điệp ......................................... 181
    7.1.6. Lập trình Client-Server ....................................................... 184
    7.2. HÀNG ĐỢI POSIX ........................................................................ 192
    7.2.1. Mở một hàng đợi ................................................................ 192
    7.2.2. Đóng một hàng đợi ............................................................. 193
    7.2.3. Gỡ bỏ một hàng đợi ............................................................ 194
    7.2.4. Thuộc tính của hàng đợi ..................................................... 194
    7.2.5. Gửi thông điệp .................................................................... 197
    9
    7.2.6. Nhận thông điệp ................................................................. 198
    7.2.7. Thông báo có thông điệp đến hàng đợi .............................. 201
    7.3. SO SÁNH HÀNG ĐỢI HỆ THỐNG V
    VÀ HÀNG ĐỢI POSIX ................................................................. 213
    7.4. BÀI LUYỆN TẬP .......................................................................... 213
    Chương 8. TRUYỀN THÔNG GIỮA CÁC TIẾN TRÌNH
    SỬ DỤNG CỜ HIỆU (SEMAPHORE) ........................ 215
    8.1. CỜ HIỆU HỆ THỐNG V ............................................................... 215
    8.1.1. Cấu trúc dữ liệu được kết hợp ............................................ 216
    8.1.2. Tạo cờ hiệu ......................................................................... 216
    8.1.3. Điều khiển cờ hiệu ............................................................. 217
    8.1.4. Thao tác trên cờ hiệu .......................................................... 220
    8.1.5. Hiện thực cờ hiệu nhị phân ................................................ 221
    8.2. CỜ HIỆU POSIX ............................................................................ 223
    8.2.1. Cờ hiệu có tên ..................................................................... 223
    8.2.2. Cờ hiệu không tên .............................................................. 230
    8.3. SO SÁNH CỜ HIỆU HỆ THỐNG V VÀ CỜ HIỆU POSIX......... 232
    8.4. BÀI LUYỆN TẬP .......................................................................... 232
    Chương 9. TRUYỀN THÔNG GIỮA CÁC TIẾN TRÌNH
    SỬ DỤNG VÙNG NHỚ CHUNG
    (SHARED MEMORY) ................................................... 233
    9.1. VÙNG NHỚ CHUNG HỆ THỐNG V ........................................... 233
    9.1.1. Cấu trúc dữ liệu được kết hợp ............................................ 233
    9.1.2. Tạo một vùng nhớ chung .................................................... 235
    9.1.3. Sử dụng vùng nhớ chung .................................................... 236
    9.1.4. Điều khiển vùng nhớ chung ............................................... 238
    9.2. VÙNG NHỚ CHUNG POSIX ....................................................... 248
    9.2.1. Tạo một vùng nhớ chung .................................................... 248
    10
    9.2.2. Gỡ bỏ vùng nhớ chung ....................................................... 254
    9.3. SO SÁNH VÙNG NHỚ CHUNG HỆ THỐNG V VÀ
    VÙNG NHỚ CHUNG POSIX ....................................................... 255
    9.4. BÀI LUYỆN TẬP .......................................................................... 255
    Chương 10. ÁNH XẠ VÙNG NHỚ VÀ KHÓA TẬP TIN ............... 257
    10.1. ÁNH XẠ MỘT TẬP TIN VÀO VÙNG NHỚ ............................. 257
    10.2. KHÓA TẬP TIN ........................................................................... 260
    10.3. BÀI LUYỆN TẬP ........................................................................ 270
    Chương 11. TRUYỀN THÔNG GIỮA CÁC TIẾN TRÌNH
    SỬ DỤNG TCP/IP (SOCKET) ..................................... 271
    11.1. TỔNG QUÁT ............................................................................... 271
    11.1.1. Domain truyền thông ........................................................ 271
    11.1.2. Kiểu Socket ...................................................................... 272
    11.1.3. Lời gọi hệ thống về Socket............................................... 272
    11.2. TRUYỀN THÔNG GIỮA CÁC ỨNG DỤNG TRÊN
    CÙNG MÁY (DOMAIN AF_UNIX) .......................................... 277
    11.2.1. Cấu trúc địa chỉ socket ..................................................... 277
    11.2.2. Socket kiểu stream ........................................................... 278
    11.2.3. Socket kiểu datagram ....................................................... 283
    11.2.4. Nối một cặp socket ........................................................... 288
    11.3. TRUYỀN THÔNG GIỮA CÁC ỨNG DỤNG TRÊN
    CÁC MÁY KHÁC NHAU CÓ KẾT NỐI MẠNG ...................... 289
    11.3.1. Cấu trúc địa chỉ socket ..................................................... 289
    11.3.2. Sử dụng cấu trúc địa chỉ socket ........................................ 290
    11.3.3. Socket kiểu stream ........................................................... 299
    11.3.4. Socket kiểu datagram ....................................................... 305
    11.4. BÀI LUYỆN TẬP ........................................................................ 308
    11
    Chương 12. LUỒNG (THREAD) ....................................................... 309
    12.1. TỔNG QUAN ............................................................................... 310
    12.1.1. Các kiểu dữ liệu Pthreads ................................................. 310
    12.1.2. Biến errno ......................................................................... 311
    12.1.3. Giá trị trả về của các Pthreads .......................................... 311
    12.1.4. Biên dịch các chương trình Pthreads ................................ 311
    12.2. CÁC HÀM THƯ VIỆN LUỒNG ................................................. 311
    12.2.1. pthread_creat() ............................................................... 311
    12.2.2. pthread_exit() ................................................................. 312
    12.2.3. pthread_self() ................................................................. 314
    12.2.4. pthread_equal() ............................................................... 314
    12.2.5. pthread_join() ................................................................. 315
    12.2.6. pthread_detach() ............................................................. 317
    12.2.7. Thiết đặt thuộc tính joinable hay detached cho luồng ........ 318
    12.3. ĐỒNG BỘ LUỒNG ..................................................................... 319
    12.3.1. Bảo vệ sự truy nhập tài nguyên chung bằng Mutexes ........ 319
    12.3.2. Báo hiệu sự thay đổi trạng thái của biến chung
    (shared variable) bằng biến trạng thái .............................. 325
    12.4. BÀI LUYỆN TẬP ........................................................................ 331
    PHỤ LỤC ............................................................................................. 333
    LỜI KẾT............................................................................................... 344
    BÀI GIẢI ............................................................................................. 345
    TÀI LIỆU THAM KHẢO ................................................................... 379
     
    pdf : Bạn cần để tải tài liệu
    Đang tải...

Chia sẻ trang này