Linux hay GNU/Linux và cấu trúc nhân Linux
Số trang: 7
Loại file: pdf
Dung lượng: 403.50 KB
Lượt xem: 11
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Khi thì người ta gọi “hệ điều hành Linux”, lúc lại gọi là “hệ điều hành GNU/Linux”. Lí do là vì Linux thực ra là phần nhân của hệ điều hành. Nhiều các ứng dụng khác bổ xung kết hợp với nhân Linux làm thành một hệ điều hành sử dụng được, các ứng dụng đó phần lớn là phần mềm GNU. Vì vậy nhiều người coi gọi “hệ điều hành GNU/Linux” là đúng, còn tên Linux dùng để chỉ phần nhân của hệ điều hành đó. GNU là các phần mềm của GNU Project, được gọi là GNU...
Nội dung trích xuất từ tài liệu:
Linux hay GNU/Linux và cấu trúc nhân LinuxLinux hay GNU/Linux và cấu trúc nhân LinuxI.Tóm tắt lịch sử LinuxLinux hay GNU/Linux?Khi thì người ta gọi “hệ điều hành Linux”, lúc lại gọi là “hệ điều hành GNU/Linux”. Lído là vì Linux thực ra là phần nhân của hệ điều hành. Nhiều các ứng dụng khác bổ xungkết hợp với nhân Linux làm thành một hệ điều hành sử dụng được, các ứng dụng đó phầnlớn là phần mềm GNU. Vì vậy nhiều người coi gọi “hệ điều hành GNU/Linux” là đúng,còn tên Linux dùng để chỉ phần nhân của hệ điều hành đó.GNU là các phần mềm của GNU Project, được gọi là GNU packages or GNU programs.Các thành phần chính gồm: bộ dịch GNU Compiler Collection (GCC), các công cụ mãnhị phân GNU Binary Utilities (binutils), lớp vỏ bash shell, thư viện C GNU C library(glibc), và các công cụ lõi GNU Core Utilities (coreutils).(GNU Project cũng có dự án làm phần nhân hệ điều hành nhưng chưa xong. Vì vậy hiệnnay các hệ điều hành mà ta vẫn gọi là Linux dùng nhân Linux của Linus Tovarlds kết hợpvới các gói phần mềm nói trên của GNU Project. Do đó gọi hệ điều hành GNU/Linux thìhợp lý hơn – lời ND)GNU là tên tắt đệ quy của GNU’s Not Unix: thiết kế phần mềm giống Unix nhưng làphần mềm tự do (free software) và không chứa mã Unix.Tóm tắt lịch sửTrong khi hiện nay Linux khá phổ biến thì lịch sử của nó lại khá mới. Thời kỳ bình minhcủa máy tính, các nhà lập trình viết chương trình cho phần cứng bằng ngôn ngữ của phầncứng đó. Do chưa có hệ điều hành nên chỉ một ứng dụng (và một user) có thể dùng mộtphần cứng lớn và đắt tiền tại một thời điểm. Đến 1950 mới bắt đầu có những hệ điềuhành sơ khai.Trong những năm 60, học viện Công nghệ Massachusetts (MIT) và một số công ty kếthợp xây dựng một hệ điều hành thí nghiệm gọi là Multics (Multiplexed Information andComputing Service) cho máy tính GE-645. Một trong những công ty đó, AT&T, bỏMultics và xây dựng hệ điều hành riêng của mình vào năm 1970 gọi là hệ Unics. Cùngvới Unics, ngôn ngữ lập trình C cũng được phát triển và được dùng để viết hệ điều hànhsao cho nó không phụ thuộc vào kiến trúc phần cứng.Hai mươi năm sau, Andrew Tanenbaum tạo nên một phiên bản vi nhân (microkernel) củaUnix dùng để chạy trên các máy tính cá nhân nhỏ gọi là hệ MINIX (minimal UNIX). Đólà hệ điều hành nguồn mở đầu tiên tạo cảm hứng cho Linus Torvalds xây dựng nên Linuxvào đầu những năm 90.Hình 1: Lịch sử các phiên bản nhân LinuxTrục đứng là số dòng lệnh, trục ngang là thời điểm công bố. Phiên bản đầu 0.11(tháng12/1991) có 10.239 dòng lệnh. Phiên bản 2.6.0 (tháng12/2003) có gần 6 triệudòng lệnh.Linux phát triển nhanh từ dự án của một người thành một dự án lập trình toàn cầu gồmhàng nghìn nhà lập trình. Một trong những quyết định quan trọng nhất của Linux là nóchấp nhận tuân theo giấy phép phần mềm nguồn mở GPL (GNU General Public License).Giấy phép đó tránh cho nhân Linux không bị khai thác thương mại và cũng cho phép nókết hợp được với các ứng dụng của GNU Project.II.Giới thiệu nhân LinuxMột hệ điều hành GNU/Linux có thể phân thành hai vùng: vùng người dùng (User Space)gồm các thư viện C và các phần mềm ứng dụng (soạn văn bản, …); vùng nhân (KernelSpace) gồm ba thành phần chính như hình 2.Trên cùng là lớp các ứng dụng của người dùng (User Applications). Bên dưới là lớp cácthư viện C (GNU C Library). Lớp thư viện phục vụ cho giao diện các lời gọi hệ thống tạoliên kết giữa các ứng dụng và nhân Linux. Giao diện này quan trọng vì nhân Linux và cácứng dụng chiếm các vùng địa chỉ bộ nhớ được bảo vệ khác nhau. Mỗi ứng dụng có vùngđịa chỉ ảo riêng còn nhân có một vùng địa chỉ duy nhất.Nhân Linux có thể chia thành ba lớp. Trên cùng là giao diện các lời gọi hệ thống thựchiện các chức năng cơ bản như đọc, ghi. Bên dưới là phần mã nhân hệ điều hành (kernelcode) hoặc chính xác hơn là mã nhân độc lập với kiến trúc vi xử lý (processor). Các mãlệnh trong lớp này dùng chung cho mọi loại processor mà Linux hỗ trợ. Lớp dưới cùng làcác mã lệnh phụ thuộc vào kiến trúc từng loại processor (x86, x86-64, …).III. Các hệ thống con chính của nhân LinuxHình 3 dưới đây mô tả các hệ thống con chính của nhân Linux.Hình 3: Các hệ thống con chính của nhân LinuxIII.1Nhân là gì?Như hình 3, nhân Linux thực ra là bộ quản lý các tài nguyên. Các tài nguyên gồm: cáctiến trình (process), bộ nhớ (memory) và thiết bị phần cứng. Nhân Linux quản lý các tàinguyên đó và là người điều hành việc truy cập tài nguyên đồng thời của nhiều user. (Usertrong bài này được hiểu theo nghĩa rộng bao gồm tất cả những gì có nhu cầu sử dụng tàinguyên hệ thống: các tiến trình, các phần mềm, v.v….)III.2Giao diện lời gọi hệ thống (System call interface -SCI)SCI thực hiện các lời gọi hệ thống từ vùng ứng dụng vào nhân Linux. Giao diện này độclập với kiến trúc bộ vi xử lý ngay cả trong cùng một họ vi xử lý. SCI có thể thực hiện cácdịch vụ gọi hàm dồn kênh và tách kênh.III.3 Quản lý các tiến trình (Process management hayProcess Scheduler)Quản lý tiến trình đảm bảo ...
Nội dung trích xuất từ tài liệu:
Linux hay GNU/Linux và cấu trúc nhân LinuxLinux hay GNU/Linux và cấu trúc nhân LinuxI.Tóm tắt lịch sử LinuxLinux hay GNU/Linux?Khi thì người ta gọi “hệ điều hành Linux”, lúc lại gọi là “hệ điều hành GNU/Linux”. Lído là vì Linux thực ra là phần nhân của hệ điều hành. Nhiều các ứng dụng khác bổ xungkết hợp với nhân Linux làm thành một hệ điều hành sử dụng được, các ứng dụng đó phầnlớn là phần mềm GNU. Vì vậy nhiều người coi gọi “hệ điều hành GNU/Linux” là đúng,còn tên Linux dùng để chỉ phần nhân của hệ điều hành đó.GNU là các phần mềm của GNU Project, được gọi là GNU packages or GNU programs.Các thành phần chính gồm: bộ dịch GNU Compiler Collection (GCC), các công cụ mãnhị phân GNU Binary Utilities (binutils), lớp vỏ bash shell, thư viện C GNU C library(glibc), và các công cụ lõi GNU Core Utilities (coreutils).(GNU Project cũng có dự án làm phần nhân hệ điều hành nhưng chưa xong. Vì vậy hiệnnay các hệ điều hành mà ta vẫn gọi là Linux dùng nhân Linux của Linus Tovarlds kết hợpvới các gói phần mềm nói trên của GNU Project. Do đó gọi hệ điều hành GNU/Linux thìhợp lý hơn – lời ND)GNU là tên tắt đệ quy của GNU’s Not Unix: thiết kế phần mềm giống Unix nhưng làphần mềm tự do (free software) và không chứa mã Unix.Tóm tắt lịch sửTrong khi hiện nay Linux khá phổ biến thì lịch sử của nó lại khá mới. Thời kỳ bình minhcủa máy tính, các nhà lập trình viết chương trình cho phần cứng bằng ngôn ngữ của phầncứng đó. Do chưa có hệ điều hành nên chỉ một ứng dụng (và một user) có thể dùng mộtphần cứng lớn và đắt tiền tại một thời điểm. Đến 1950 mới bắt đầu có những hệ điềuhành sơ khai.Trong những năm 60, học viện Công nghệ Massachusetts (MIT) và một số công ty kếthợp xây dựng một hệ điều hành thí nghiệm gọi là Multics (Multiplexed Information andComputing Service) cho máy tính GE-645. Một trong những công ty đó, AT&T, bỏMultics và xây dựng hệ điều hành riêng của mình vào năm 1970 gọi là hệ Unics. Cùngvới Unics, ngôn ngữ lập trình C cũng được phát triển và được dùng để viết hệ điều hànhsao cho nó không phụ thuộc vào kiến trúc phần cứng.Hai mươi năm sau, Andrew Tanenbaum tạo nên một phiên bản vi nhân (microkernel) củaUnix dùng để chạy trên các máy tính cá nhân nhỏ gọi là hệ MINIX (minimal UNIX). Đólà hệ điều hành nguồn mở đầu tiên tạo cảm hứng cho Linus Torvalds xây dựng nên Linuxvào đầu những năm 90.Hình 1: Lịch sử các phiên bản nhân LinuxTrục đứng là số dòng lệnh, trục ngang là thời điểm công bố. Phiên bản đầu 0.11(tháng12/1991) có 10.239 dòng lệnh. Phiên bản 2.6.0 (tháng12/2003) có gần 6 triệudòng lệnh.Linux phát triển nhanh từ dự án của một người thành một dự án lập trình toàn cầu gồmhàng nghìn nhà lập trình. Một trong những quyết định quan trọng nhất của Linux là nóchấp nhận tuân theo giấy phép phần mềm nguồn mở GPL (GNU General Public License).Giấy phép đó tránh cho nhân Linux không bị khai thác thương mại và cũng cho phép nókết hợp được với các ứng dụng của GNU Project.II.Giới thiệu nhân LinuxMột hệ điều hành GNU/Linux có thể phân thành hai vùng: vùng người dùng (User Space)gồm các thư viện C và các phần mềm ứng dụng (soạn văn bản, …); vùng nhân (KernelSpace) gồm ba thành phần chính như hình 2.Trên cùng là lớp các ứng dụng của người dùng (User Applications). Bên dưới là lớp cácthư viện C (GNU C Library). Lớp thư viện phục vụ cho giao diện các lời gọi hệ thống tạoliên kết giữa các ứng dụng và nhân Linux. Giao diện này quan trọng vì nhân Linux và cácứng dụng chiếm các vùng địa chỉ bộ nhớ được bảo vệ khác nhau. Mỗi ứng dụng có vùngđịa chỉ ảo riêng còn nhân có một vùng địa chỉ duy nhất.Nhân Linux có thể chia thành ba lớp. Trên cùng là giao diện các lời gọi hệ thống thựchiện các chức năng cơ bản như đọc, ghi. Bên dưới là phần mã nhân hệ điều hành (kernelcode) hoặc chính xác hơn là mã nhân độc lập với kiến trúc vi xử lý (processor). Các mãlệnh trong lớp này dùng chung cho mọi loại processor mà Linux hỗ trợ. Lớp dưới cùng làcác mã lệnh phụ thuộc vào kiến trúc từng loại processor (x86, x86-64, …).III. Các hệ thống con chính của nhân LinuxHình 3 dưới đây mô tả các hệ thống con chính của nhân Linux.Hình 3: Các hệ thống con chính của nhân LinuxIII.1Nhân là gì?Như hình 3, nhân Linux thực ra là bộ quản lý các tài nguyên. Các tài nguyên gồm: cáctiến trình (process), bộ nhớ (memory) và thiết bị phần cứng. Nhân Linux quản lý các tàinguyên đó và là người điều hành việc truy cập tài nguyên đồng thời của nhiều user. (Usertrong bài này được hiểu theo nghĩa rộng bao gồm tất cả những gì có nhu cầu sử dụng tàinguyên hệ thống: các tiến trình, các phần mềm, v.v….)III.2Giao diện lời gọi hệ thống (System call interface -SCI)SCI thực hiện các lời gọi hệ thống từ vùng ứng dụng vào nhân Linux. Giao diện này độclập với kiến trúc bộ vi xử lý ngay cả trong cùng một họ vi xử lý. SCI có thể thực hiện cácdịch vụ gọi hàm dồn kênh và tách kênh.III.3 Quản lý các tiến trình (Process management hayProcess Scheduler)Quản lý tiến trình đảm bảo ...
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật viễn thông Tự động hóa Cơ khí chế tạo máy Điện – điện tử Kiến trúc xây dựngTài liệu liên quan:
-
Đề cương chi tiết học phần Trí tuệ nhân tạo
12 trang 441 0 0 -
Đề cương chi tiết học phần Vi xử lý
12 trang 298 0 0 -
Đồ án tốt nghiệp: Thiết kế hệ thống điều khiển máy phay CNC 3 trục
88 trang 255 0 0 -
79 trang 231 0 0
-
33 trang 227 0 0
-
Đồ án: Kỹ thuật xử lý ảnh sử dụng biến đổi Wavelet
41 trang 220 0 0 -
Báo cáo thực tập tại Nhà máy in Quân Đội 1
36 trang 208 0 0 -
Đồ án tốt nghiệp: Điều khiển cầu trục giàn RTG dùng PLC S71200
90 trang 206 1 0 -
127 trang 192 0 0
-
Luận văn Thạc sĩ Kỹ thuật: Ứng dụng Blockchain trong bảo mật IoT
90 trang 191 1 0