Thêm lời gọi hệ thống vào linux kernel

Linux Kernel Linux Kernel Trình bày: TS. NGÔ BÁ HÙNG Website: http://sites.google.com/site/nbhung 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 2 Linux kernel Linux kernel • Hệ điều hành • Hệ điều hành Unix • Lịch sử của Linux • Hạt nhân Linux & Hệ điều hành Linux • Kiến trúc hạt nhân Linux • Tình hình phát triển hạt nhân Linux 12-2012 Ngô Bá Hùng - http://sites.google.com/site/nbhung 3 Linux kernel Hệ điều hành • Là một phần mềm đặc biệt – Cung cấp một nền tảng phần mềm mà trên đó các phần mềm khác (ứng dụng) có thể chạy – Giao tiếp và quản lý phần cứng máy tính • Người dùng giao tiếp với hệ điều hành thông quan một phần mềm dạng đồ họa hay dòng lệnh 12-2012 Ngô Bá Hùng - http://sites.google.com/site/nbhung 4 Linux kernel 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 5 Linux kernel Lịch sử Unix • Được phát triển bởi bởi Dennis Ritchie and Ken Thompson, các lập trình viên của Bell Lab vào năm 1969 từ hệ điều hành đa người dùng Multics • 1973 được viết lại hoàn toàn bằng ngôn ngữ C • Version 6 được sử dụng rộng rãi ngoài Bell Lab 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 6 Linux kernel Các dòng Unix • Bell Labs: Unix System III năm 1977, hỗ trợ nhiều chủng loại máy tính • AT&T: System V năm 1983 • University of California at Berkeley: – 3BSD năm 1979, 4.3 BSD thêm vào Bộ nhớ ảo, quản lý phân trang, TCP/IP – 4.4BSD năm 1993, thương mại hóa – Darwin, Dragonfly BSD, FreeBSD, NetBSD, và OpenBSD • AT&T và BSD dùng nhiều trong thương mại 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 7 Linux kernel Điểm mạnh của Unix • Thiết kế đơn giản, trong sáng chỉ vài trăm lời gọi hệ thống • Tất cả đều là tập tin, giúp đơn giản hóa thao tác xử lý dữ liệu và xuất nhập • Hỗ trợ việc tạo tiến trình nhanh • Cung cấp cơ chế giao tiếp liên quá trình hiệu quả • Dễ dàng tạo ra các công cụ nhỏ, đơn giản «Do one thing and do it well» • Dễ dàng tích hợp nhiều công cụ nhỏ để hoàn thành các tác vụ phức tạp 12-2012 Ngô Bá Hùng - http://sites.google.com/site/nbhung 8 Linux kernel Linux là gì ? • Là thành phần cốt lõi/nhân (kernel) của một hệ điều hành • Được phát triển bởi Linus Torvalds -1991 • Cần được tích hợp với các phần mềm khác để tạo thành một hệ điều hành hoàn chỉnh 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 9 Linux kernel Lịch sử của Linux • Linus Torvalds, sinh viên đại học Helsinki - Phần lan – Cần một Hệ điều hành có các tính năng như Unix, miễn phí, dễ dàng sửa đổi và phân phối lại mã nguồn để sử dụng cho máy tính cá nhân 386 với bộ nhớ 4Mbytes, đĩa cứng 40 Mbytes – Viết Terminal emulator nối kết vào hệ thống Unix; – Tích hợp vào hệ thống mới những kết quả mà anh ta đã thực hiện từ năm 1984 trong dự án của tổ chức phần mềm tự do – Công bố lên Internet năm 1991 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 10 Linux kernel Hạt nhân Linux (Linux Kernel) • Tạo ra bởi Linus Torvald, 1991, phát hành dưới license GPL vào năm 1992 • Chỉ là một thành phần của hệ điều hành, thành phần hạt nhân (Kernel), cốt lỗi nhất của một hệ điều hành: – Trừu tượng hóa các thiết bị phần cứng, giới thiệu một máy ảo cho các chương trình người dùng – Hỗ trợ đa nhiệm (multi tasking) – Hỗ trợ giao tiếp liên quá trình [...]... http://sites.google.com/site/nbhung 27 Linux kernel http://en.wikipedia.org/wiki /Linux_ kernel# Development_model 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 28 Linux kernel 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 29 Linux kernel 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 30 Linux kernel Mã nguồn của Linux kernel • Download từ http://www .kernel. org • Giải nén – tar xvjf linux- x.y.z.tar.bz2... http://sites.google.com/site/nbhung 18 Linux kernel Kiến trúc hạt nhân Linux Giao tiếp liên quá trình: Hộ trợ cơ chế giao tiếp giữa các tiến trình trên cùng một máy tính 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 19 Linux kernel Division of Developer Responsibilities 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 20 Linux kernel Linux Kernel so với Unix Kernel • Hỗ trợ nạp động các mođun của kernel •... Ngô Bá Hùng - http://sites.google.com/site/nbhung 11/10/13 33 Linux kernel Ai đang xây dựng Linux kernel Tính từ version 2.6.12 đến 3.2 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 34 Linux kernel Ai đang xây dựng Linux kernel 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 35 Linux kernel Ai đang xây dựng Linux kernel 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung.. .Linux kernel Hệ điều hành Linux • Là các hệ điều hành sử dụng hạt nhân Linux • Được gọi với tên Bản phân phối Linux (Linux Distribution), gọi tắt là Linux Distro • Được phát hành bởi các nhà phân phối hệ điều hành (Linux Distributor) • Hơn 500 bản phân phối Linux • Phát hành dưới bản quyền (licence) GPL (General Public License) 28/12/2009 Ngô Bá Hùng - http://sites.google.com/site/nbhung 11 Linux kernel. .. http://sites.google.com/site/nbhung 13 Linux kernel Kiến trúc hạt nhân Linux 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 14 Linux kernel Kiến trúc hạt nhân Linux Bộ định thời Điều khiển việc truy cập đến CPU 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 15 Linux kernel Kiến trúc hạt nhân Linux Bộ quản lý bộ nhớ: Đảm bảo nhiều tiến trình cùng sử dụng bộ nhớ máy tính một cách... – tar xvzf linux- x.y.z.tar.gz • Patch là đơn vị mã nguồn dùng để trao đổi trong cộng đồng phát triển – Phân phối những thay đổi trên mã nguồn – Dùng để nâng cấp version mà không download toàn bộ mã nguồn version mới • patch p1 < /patch-x.y.z 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 31 Linux kernel Tình hình phát triển Linux kernel http://go.linuxfoundation.org/who-writes -linux- 2012... Ngô Bá Hùng - http://sites.google.com/site/nbhung 16 Linux kernel Kiến trúc hạt nhân Linux Hệ thống tập tin trừu tượng Trừu tượng hóa những chi tiết khác biệt của các loại thiết bị bằng cách giới thiệu một giao diện tập tin chung cho tất cả các thiết bị 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 17 Linux kernel Kiến trúc hạt nhân Linux Giao diện mạng: Cung cấp truy cập đến nhiều chuẩn... • Hỗ trợ đa bộ xử lý đồng bộ (Symetrical MultiProcessor) • Là kernel theo kiểu trưng dụng (Preemptive) • Hỗ trợ đa luồng • Hỗ trợ mô hình thiết bị hướng đối tượng, gắn nóng, hệ thống tập tin trên không gian người dùng • Linux là tự do (Free) 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 21 Linux kernel Đánh số phiên bản Linux Kernel (1) • Từ version 1.0 → 2.6.0 sử dụng sơ đồ đánh phiên... đây Ngô Bá Hùng - http://sites.google.com/site/nbhung 23 Linux kernel Đánh số phiên bản Linux Kernel (3) • Từ May 2011 phát hành phiên bản 3.0 để kỷ niệm sinh nhật lần thứ 20 của Linux, • Sơ đồ 3 số 3.x.y – X: tăng lên cho mỗi phiên bản mới (mỗi 2-3 tháng) – Y: Được thêm vào khi có sử sửa lỗi hoặc khắc phục các vấn đề về bảo mật cho phiên bản kernel hiện tại – 3.x-rc: Latest release candidate – 3.x-tip:... http://sites.google.com/site/nbhung 22 Linux kernel Đánh số phiên bản Linux Kernel (2) • Từ sau 2.6.0 → trước 3.0: sử dụng sơ đồ 4 số 2.6.x.y để hỗ trợ mô thình « timebased release» 11/10/13 – 2.6 được giữ nguyên cho các phiên bản – X: tăng lên cho mỗi phiên bản mới (mỗi 2-3 tháng) – Y: Được thêm vào khi có sử sửa lỗi hoặc khắc phục các vấn đề về bảo mật cho phiên bản kernel hiện tại – Không sử dụng sơ . Linux Kernel Linux Kernel Trình bày: TS. NGÔ BÁ HÙNG Website: http://sites.google.com/site/nbhung 11/10/13 Ngô Bá Hùng - http://sites.google.com/site/nbhung 2 Linux kernel Linux kernel •. sử của Linux • Hạt nhân Linux & Hệ điều hành Linux • Kiến trúc hạt nhân Linux • Tình hình phát triển hạt nhân Linux 12-2012 Ngô Bá Hùng - http://sites.google.com/site/nbhung 3 Linux kernel Hệ. http://sites.google.com/site/nbhung 10 Linux kernel Hạt nhân Linux (Linux Kernel) • Tạo ra bởi Linus Torvald, 1991, phát hành dưới license GPL vào năm 1992 • Chỉ là một thành phần của hệ điều hành, thành phần hạt nhân (Kernel) ,