* Kernel ₋ Là trung tâm điều khiển của hệ điều hành Hacao, chứa các mã điều khiển hoạt động toàn bộ hệ thống ₋ Được thiết kế theo dạng modul nên có kích thước thật của Kernel rất nhỏ ₋ C
Trang 1CẤU TRÚC, SỬ DỤNG, NGUYÊN LÝ, PHÂN TÍCH MÃ NGUỒN HACAO
Trang 31. Giới thiệu về hacao và Lịch sử phát triển
2. Cấu trúc hệ thống tập tin
I Tổng quan về hacao
Trang 4* Giới thiệu:
₋ Là một bản phân phối linux dành cho người dùng tiếng việt và tiếng anh
₋ Đây là bản phân phối Linux hỗ trợ tiếng Việt có kích thước nhỏ nhất cho đến thời điểm hiện tại
₋ Tất cả các phần mềm trong Hacao Linux đều mang giấy phép mã nguồn mở
1 Giới thiệu về hacao và
Lịch sử phát triển
Trang 7* Các phiên bản hacao
₋ Hacao Linux 1.06
₋ Hacao Linux 2.0
₋ Hacao Linux 2.01 Professional
₋ Hacao Linux 2.12 Professional
₋ Hacao Linux 2.16 Professional
₋ Hacao Linux 4.21
₋ Hacao Linux 2009 CE
1 Giới thiệu về hacao và
Lịch sử phát triển
Trang 9* Kernel
₋ Là trung tâm điều khiển của hệ điều hành Hacao, chứa các mã điều khiển hoạt động toàn
bộ hệ thống
₋ Được thiết kế theo dạng modul nên có kích thước thật của Kernel rất nhỏ
₋ Chỉ tải những bộ phận cần thiết lên bộ nhớ nên không lãng phí bộ nhớ
₋ Có thể truy xuất tới toàn bộ tính năng phần cứng của máy
2 Cấu trúc hệ thống tập tin
Trang 11* Cây thư mục
2 Cấu trúc hệ thống tập tin
Trang 12₋ /bin > chứa các tập tin nhị phân của người dùng
₋ /sbin > chứa các tập tin nhị phân của hệ thống
₋ /etc > chứa các tập tin cấu hình
₋ /dev > chứa các tập tin thiết bị
₋ /proc > chứa thông tin về các tiến trình
2 Cấu trúc hệ thống tập tin
Trang 13₋ /var > chứa các tập tin biến
₋ /tmp > chứa các tập tin tạm
₋ /usr >chứa các chương trình của người dùng
₋ /home > chứa thư mục nhà của người dùng
₋ /boot > chứa các tập tin dành cho quá trình khởi động
2 Cấu trúc hệ thống tập tin
Trang 14₋ /lib > chứa các thư viện của hệ thống
₋ /opt > chứa các chương trình khác (cài thêm, tự build, )
₋ /mnt > dành cho việc mount các thiết bị
₋ /media > dành cho các thiết bị di động như : usb,
₋ /srv > chứa dữ liệu của các dịch vụ
2 Cấu trúc hệ thống tập tin
Trang 15II Cài đặt sử dụng
Bước 1
Trang 16II Cài đặt sử dụng
Bước 2
Trang 17Bước 3
II Cài đặt sử dụng
Trang 18II Cài đặt sử dụng
Bước 4
Trang 19II Cài đặt sử dụng
Bước 5
Trang 22* Tạo một tiến trình - lệnh fork
int fork() tạo ra một tiến trình con
Giá trị trả lại là 0 cho tiến trình con và dấu hiệu pid cho tiến trình cha Giá trị sẽ là -1 nếu không tạo được tiến trình mới
Tiến trình con và cha sẽ có cùng đoạn mã, tuy nhiên tiến trình con vẫn khác tiến trình cha ở pid, thời gian xử lý
1 Quản lý tiến trình
Trang 23* Dừng một tiến trình
Dùng lệnh kill của Shell để chấm dứt hoạt động của một tiến trình Ví dụ khi muốn dừng tiến trình 234 ta dùng lệnh: kill 234
C cũng có lệnh kill như sau:
int kill(pid, sig);
int pid; là dấu hiệu nhận biết của một tiến trình.
int sig; hằng tín hiệu giao tiếp tiến trình.
1 Quản lý tiến trình
Trang 24* Hiển thị sự hoạt động của các tiến trình
Với lệnh đơn giản top, ta có thể hiển thị sự hoạt động của các tiến trình, đặc biệt là các thông tin về tài nguyên hệ thống cũng như việc sử dụng tài nguyên đó của từng tiến trình
1 Quản lý tiến trình
Trang 251 Quản lý tiến trình
Trang 27 Giao tiếp giữa các tiến trình
• Việc giao tiếp giữa các tiến trình được thực hiện thông qua các tín hiệu chuẩn của hệ thống
• Tín hiệu là một sự ngắt quãng logic được gửi đến các tiến trình bởi hệ thống để thông báo cho chúng về những sự việc không bình thường trong môi trường hoạt động của chúng, nó cũng cho phép các tiến trình liên lạc với nhau
1 Quản lý tiến trình
Trang 28• Một tín hiệu (trừ SIGKILL) có thể được xem xét theo ba cách khác nhau:
• Tiến trình có thể được bỏ qua: đó là sự bỏ qua khi một tiến trình đang được sử dụng ở phần nền
• Tiến trình có thể được thực hiện:khi nhận được 1 tín hiệu, việc thực hiện 1 tiến trình được chuyển về một quy trình do người sử dụng xác định trước, sau đó trở lại nơi nó bị ngắt
• Lỗi có thể được tiến trình trả về sau khi nhận được tín hiệu này.Dưới đây là một số tín hiệu thường gặp
1 Quản lý tiến trình
Trang 31* Liên lạc giữa hai tiến trình
Các tiến trình có thể liên lạc trực tiếp với nhau bằng cách sử dụng các lệnh phát và nhận tín hiệu
Nhược điểm:
‒ Một tín hiệu có thể bị bỏ qua, kết thúc một tiến trình hoặc bị chặn lại
‒ Các tín hiệu có quyền rất lớn, khi đến chúng làm ngắt quãng công việc hiện tại
1 Quản lý tiến trình
Trang 32* Liên lạc qua "đường ống
Ống dẫn là một cơ chế cơ bản để liên lạc gián tiếp giữa các tiến trình
Là các file đặc biệt (FIFO), ở đó các thông tin được truyền đi 1 đầu và thoát ra ở một đầu khác
Đặc điểm
‒ Chỉ mang tính chất tạm thời, chỉ tồn tại trong thời gian thực hiện của một tiến trình tạo
ra nó
1 Quản lý tiến trình
Trang 33 Muốn tạo ra một ống dẫn phải bắt đầu bằng một lệnh đặc biệt: pipe()
Nhiều tiến trình có thể viết và đọc trên cùng một ống dẫn Tuy nhiên, không có cơ chế
để phân biệt thông tin cho các tiến trình ở đầu ra
Dung lượng ống dẫn bị hạn chế (khoảng 4KB)
Các tiến trình liên lạc qua ống dẫn phải có mối quan hệ họ hàng và các ống dẫn nối phải được mở trước khi tạo ra các tiến trình con
Không thể tự thay đổi vị trí thông tin trong ống
1 Quản lý tiến trình
Trang 34• Giá trị trả về là 0 nếu thành công, -1 nếu thất bại.
• p_desc[0] : chứa các số hiệu mô tả nhờ đó có thể đọc trong ống dẫn.
• p_desc[1] : chứa các số hiệu mô tả nhờ đó có thể viết trong ống dẫn
1 Quản lý tiến trình
Trang 35 Hacao linux thiết đặt mặc định là người dùng root để tăng cường khả năng kiểm soát tối đa nhất cho bạn
2 Quản lý người dùng
Trang 38chỉ cần chọn phần mềm và nhấn nút “Install” để chương trình tự động download & cài đặt đối với Dotpup và nhấn mũi tên qua phải để cài đặt đối với Pupget và nhấn mũi tên qua trái cho phần mềm cần gỡ bỏ
3 Quản lý ứng dụng
Trang 40* Cài đặt một gói phần mềm đơn lẻ
Đối với các phần mềm khác không có dạng *.pup thì bạn hãy cài bổ sung các phần hỗ trợ bung nén các gói phần mềm dạng RPM, DEB, có tên là “unpm” hay “undeb” trong phần quản lý phần mềm
Sau khi bạn cài đặt các phần mềm hỗ trợ trên thì bạn có thể bung nén các file phần mềm thuộc các dạng trên bằng lệnh: unrpm *.rpm hay undeb *.deb vào “/”
3 Quản lý ứng dụng
Trang 43 Lúc khởi động Hacao hoạt động như thế nào?
File initrd.gz được nạp vào bộ nhớ RAM
IV Phân tích mã nguồn
Trang 45IV Phân tích mã nguồn
Trang 46 Hình ảnh minh họa
IV Phân tích mã nguồn
Trang 48CẢM ƠN THẦY VÀ CÁC BẠN ĐÃ LẮNG NGHE