Cảm ơn bạn đã gửi yêu cầu! Một thành viên trong đội ngũ của chúng tôi sẽ liên hệ với bạn ngay lập tức.
Cảm ơn bạn đã gửi đặt chỗ! Một thành viên trong đội ngũ của chúng tôi sẽ liên hệ với bạn ngay lập tức.
Đề cương khóa học
Giới thiệu
- Mục tiêu
- Bạn là ai?
- Tổ chức Linux Foundation
- Khóa học của Linux Foundation
- Chương trình chứng chỉ và huy hiệu kỹ thuật số
- Các bản phân phối Linux
- Nền tảng
- Chuẩn bị hệ thống của bạn
- Sử dụng và tải xuống máy ảo
- Các thay đổi trong Linux
Tiểu phẩm
- Quy trình
- Tiêu chuẩn và LSB
Cách làm việc trong các dự án OSS **
- Tổng quan về cách đóng góp đúng cách
- Duy trì gần với mã chính để đảm bảo an ninh và chất lượng
- Nghiên cứu và hiểu DNA của dự án
- Xác định vấn đề bạn muốn giải quyết
- Định danh các quản trị viên và phương pháp làm việc của họ
- Lấy ý kiến sớm và làm việc công khai
- Đóng góp từng phần nhỏ, không phải một lượng lớn mã
- Bỏ qua tự ái: Đừng dễ bị tổn thương
- Nhẫn nại, xây dựng mối quan hệ lâu dài, và sẵn lòng giúp đỡ
Biên dịch viên
- GCC
- Các trình biên dịch khác
- Các tùy chọn gcc chính
- Trình tiền xử lý
- Môi trường phát triển tích hợp (IDE)
- Bài thực hành
Thư viện
- Thư viện tĩnh
- Thư viện chia sẻ
- Kết nối với thư viện
- Tải trình động liên kết
- Bài thực hành
Make
- Sử dụng make và Makefiles
- Xây dựng dự án lớn
- Các quy tắc phức tạp hơn
- Các quy tắc mặc định
- Bài thực hành
Quản lý mã nguồn
- Quản lý mã nguồn
- RCS và CVS
- Subversion
- git
- Bài thực hành
Gỡ lỗi và các tệp core dump
- gdb
- Các tệp core dump là gì?
- Sản xuất core dumps
- Xem xét core dumps
- Bài thực hành
Công cụ gỡ lỗi
- Lấy thời gian
- Phân tích và hiệu suất
- valgrind
- Bài thực hành
Hàm gọi hệ thống
- Hàm gọi hệ thống so với hàm thư viện
- Cách tạo các hàm gọi hệ thống
- Giá trị trả về và mã lỗi
- Bài thực hành
Quản lý bộ nhớ và phân bổ
- Quản lý bộ nhớ
- Phân bổ động
- Tối ưu hóa malloc()
- Gắn trang vào bộ nhớ
- Bài thực hành
Tệp và hệ thống tệp trong Linux **
- Tệp, thư mục và thiết bị
- Hệ thống tệp ảo
- Hệ thống tệp ext2/ext3
- Hệ thống tệp ghi nhật ký
- Hệ thống tệp ext4/
- Bài thực hành
Đọc/ghi tệp
- Đọc/ghi tệp trong UNIX
- Mở và đóng tệp
- Đọc, ghi và tìm kiếm
- Đọc/ghi vị trí và vectơ
- Thư viện I/O chuẩn
- Hỗ trợ tệp lớn (LFS)
- Bài thực hành
Các thao tác tệp nâng cao
- Các hàm stat
- Các hàm thư mục
- inotify
- Gắn bộ nhớ
- flock() và fcntl()
- Tạo các tệp tạm thời
- Các hàm gọi hệ thống khác
- Bài thực hành
Quy trình I
- Quy trình là gì?
- Hạn chế quy trình
- Nhóm quy trình
- Hệ thống tệp proc
- Các phương pháp giao tiếp giữa quy trình
- Bài thực hành
Quy trình II
- Sử dụng system() để tạo quy trình
- Sử dụng fork() để tạo quy trình
- Sử dụng exec() để tạo quy trình
- Sử dụng clone()
- Kết thúc
- Hàm khởi tạo và hàm hủy
- Chờ đợi
- Các quy trình deamon
- Bài thực hành
Ống dẫn (Pipes) và ống dẫn đặt tên (Fifos)
- Ống dẫn và giao tiếp giữa quy trình
- popen() và pclose()
- pipe()
- Các ống dẫn đặt tên (FIFOs)
- splice(), vmsplice() và tee()
- Bài thực hành
I/O không đồng bộ **
- I/O không đồng bộ là gì?
- API I/O không đồng bộ POSIX
- Triển khai trong Linux
- Bài thực hành
Tín hiệu I
- Tín hiệu là gì?
- Các tín hiệu có sẵn
- Gửi tín hiệu
- Đặt thời gian, tạm dừng và ngủ
- Thiết lập trình xử lý tín hiệu
- Các tập hợp tín hiệu
- sigaction()
- Bài thực hành
Tín hiệu II
- Các hàm xử lý tín hiệu và tính tái nhập
- Nhảy và trả về không địa phương
- siginfo và sigqueue()
- Các tín hiệu thời gian thực
- Bài thực hành
Lũy thừa POSIX I
- Lập trình đa luồng dưới Linux
- Cấu trúc chương trình cơ bản
- Tạo và hủy các luồng
- Tín hiệu và luồng
- Forking so với threading
- Bài thực hành
Lũy thừa POSIX II
- Điểm chết và điều kiện đua
- Các thao tác mutex
- Semaphore
- Futexes
- Các thao tác điều kiện
- Bài thực hành
Mạng lưới và socket
- Các lớp mạng
- Socket là gì?
- Socket stream
- Socket datagram
- Socket thô
- Xếp hạng byte
- Bài thực hành
Địa chỉ và máy chủ của socket
- Cấu trúc địa chỉ socket
- Chuyển đổi địa chỉ IP
- Thông tin máy chủ
- Bài thực hành
Cổng và giao thức của socket
- Thông tin cổng dịch vụ
- Thông tin giao thức
- Bài thực hành
Máy khách của socket
- Danh sách cơ bản cho máy khách
- socket()
- connect()
- close() và shutdown()
- Máy khách UNIX
- Máy khách Internet
- Bài thực hành
Máy chủ của socket
- Danh sách cơ bản cho máy chủ
- bind()
- listen()
- accept()
- Máy chủ UNIX
- Máy chủ Internet
- Bài thực hành
Các thao tác I/O của socket
- write(), read()
- send(), recv()
- sendto(), recvfrom()
- sendmsg(), recvmsg()
- sendfile()
- socketpair()
- Bài thực hành
Các tùy chọn của socket
- Lấy và đặt các tùy chọn socket
- fcntl()
- ioctl()
- getsockopt() và setsockopt()
- Bài thực hành
Socket netlink **
- Socket netlink là gì?
- Mở socket netlink
- Các thông điệp netlink
- Bài thực hành
Multiplexing và máy chủ đồng thời của socket
- I/O multiplexed và không đồng bộ của socket
- select()
- poll()
- pselect() và ppoll()
- epoll
- I/O tín hiệu và không đồng bộ
- Máy chủ đồng thời
- Bài thực hành
Thông tin liên lạc giữa quy trình
- Các phương pháp IPC
- IPC POSIX
- IPC System V **
- Bài thực hành
Bộ nhớ chia sẻ
- Bộ nhớ chia sẻ là gì?
- Bộ nhớ chia sẻ POSIX
- Bộ nhớ chia sẻ System V **
- Bài thực hành
Semaphore
- Semaphore là gì?
- Semaphore POSIX
- Semaphore System V **
- Bài thực hành
Hang đợi thông điệp
- Hang đợi thông điệp là gì?
- Hang đợi thông điệp POSIX
- Hang đợi thông điệp System V **
- Bài thực hành
Yêu cầu
Khóa học này dành cho các nhà phát triển có kinh nghiệm. Học viên nên thành thạo lập trình C và quen thuộc với các tiện ích cơ bản và trình soạn thảo văn bản của Linux.
Đối tượng
Khóa học này dành cho các nhà phát triển có kinh nghiệm. Học viên nên thành thạo lập trình C và quen thuộc với các tiện ích cơ bản và trình soạn thảo văn bản của Linux.
Mức độ kinh nghiệm: Trung cấp
28 Giờ học