Bài thảo luận kiến thức khái quát về hệ điều hành Linux docx

23 1K 11
Bài thảo luận kiến thức khái quát về hệ điều hành Linux docx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux MỤC LỤC Trang Lời mở đầu 2 1. Giới thiệu về Hệ điều hành Linux 3 1.1. Thế nào là Linux? 1.2. Linux có gì hấp dẫn người dùng? 1.3. Các bản phân phối của Linux 1.4. Yêu cầu đối với máy tính 2. Thành phần của Hệ điều hành Linux 7 2.1. Hệ điều phối hoạt động – quản lý tiến trình 2.2. Các thành phần quản lý và phân phối tài nguyên 2.2.1. Quản lý bộ nhớ chính 2.2.2. Quản lý tập tin 2.2.3. Quản lý hệ thống xuất nhập 2.2.4. Quản lý bộ nhớ thứ cấp 2.3. Hoạt động mạng 2.4. Hệ thống bảo vệ 2.5. Hệ thống thông dịch lệnh 3. Nhân của Linux (Linux Kernel) 16 4. Các dịch vụ của Hệ điều hành Linux 18 5. Lời gọi hệ thống 20 Tổng kết 21 Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux LỜI MỞ ĐẦU Ngay từ những ngày mới xuất hiện, Microsoft nhìn thấy ở Linux khả năng cạnh tranh lớn và nhiều khi coi Linux như là một đối thủ không đội trời chung với mình. Nhiều tổ chức chính phủ cũng như phi chính phủ nhìn thấy ở Linux một Hệ điều hành hứa hẹn và hỗ trợ cho Linux. Những nước còn nghèo tìm thấy ở Linux một cách giải quyết cho vấn đề kinh tế. Một số công ty tìm thấy từ Hệ điều hành này một nguồn lợi lớn và phát triển công việc kinh doanh của mình từ Hệ điều hành này. Đối với Linus Torvards, Linux là niềm đam mê và “Just for fun”. Các nhà lập trình nhân (kernel) tìm thấy ở Linux sự quyến rũ và công việc phát triển của họ. Người dùng thì tìm thấy ở Linux một hệ thống mạnh, thuận tiện, có thể điều chỉnh theo ý muốn của mình. Linux là Hệ điều hành phát triển mạnh. Những năm đầu thập kỷ thứ chín của thế kỷ XX, Linux mới chỉ là đứa con tinh thần chưa biết nói của Torvads. Chỉ trong vài năm gần đây đã có nhiều bản phân phối Linux chiếm lĩnh được môi trường máy chủ cũng như máy để bàn của người dùng. Trên thị trường máy chủ hiện thời chỉ có một vài tên tuổi đang chú ý. Linux cho máy để bàn có phần đa dạng hơn. Mỗi bản phân phói thích hợp cho một nhóm người dùng cụ thể nào đó từ người dùng mới đến người dùng cao cấp (advanced) hay nói đúng hơn là mỗi người dùng có quyền lựa chọn cho mình một bản phân phối thích hợp và chuyển sang sử dụng bản khác khi nào mong muốn. Linux ngay từ ban đầu đã được xây dựng dựa trên cộng đồng, dựa trên sự cộng tác. Cộng đồng Linux không chỉ cung cấp cho người dùng máy tính một Hệ điều hành thân thiện, dễ sử dụng mà còn luôn luôn sẵn sàng giúp đỡ những người dùng mới, luôn mong muốn có thêm máy tính chạy dưới Linux. Với sự phát triển ngày một lớn mạnh của Linux, việc phân tích và tìm hiểu hoạt động của Linux đang trở nên một nhu cầu cấp thiết đối với những người nghiên cứu công nghệ thông tin. Tuy nhiên với đề tài “Tìm hiểu và phân tích kiến trúc tổng quát của Hệ điều hành Linux”, nhóm chúng tôi sẽ đi tìm hiểu về Hệ điều hành này theo hướng tiếp cận của người mới sử dụng, qua đó tổng kết lại những kiến thức chung nhất về Hệ điều hành cũng như những điểm nhấn của Linux, để từ đó có định hướng phát triển Hệ điều hành này về sau. Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux 1. GIỚI THIỆU VỀ HỆ ĐIỀU HÀNH LINUX Lịch sử luôn là điểm khởi đầu khi nghiên cứu một ngành khoa học nào đó. Không có ngoại lệ với Toán học, Vật lý, Hóa học… và tất nhiên cả hệ điều hành Linux. Trong phần đầu tiên của bài trình bày này, nhóm chúng tôi xin được giới thiệu đôi lời về những đặc điểm đặc biệt của Linux, yêu cầu của Linux đối với phần cứng, khái niệm bản phân phối của Linux, và cách có được những bản phân phối này. 1.1.Thế nào là Hệ điều hành dạng Linux? Hệ điều hành là một bộ các chương trình hỗ trợ cho việc điều khiển phần cứng của máy tính, tổ chức làm việc với các tập tin (trong đó có chạy và điều khiển việc thực hiện của các chương trình), và đông thời thực thi sự giao tiếp với người dùng, tức là dịch các câu lệnh của người dùng và hiển thị kết quả làm việc của những câu lệnh này. Không có Hệ điều hành thì máy tính không thực hiện được chức năng của mình. Trong trường hợp đó máy tính chỉ là một tập hợp các thiết bị điện tử không làm việc, không hiểu là để làm gì. Linux là tên gọi của một hệ điều hành máy tính và cũng là tên hạt nhân của hệ điều hành. Nó có lẽ là một ví dụ nổi tiếng nhất của phần mềm tự do và của việc phát triển mã nguồn mở. Phiên bản Linux đầu tiên do Linus Torvalds viết vào năm 1991, lúc ông còn là một sinh viên của Đại học Helsinki tại Phần Lan. Ông làm việc một cách hăng say trong vòng 3 năm liên tục và cho ra đời phiên bản Linux 1.0 vào năm 1994. Bộ phận chủ yếu này được phát triển và tung ra trên thị trường dưới bản quyền GNU General Public License. Do đó mà bất cứ ai cũng có thể tải và xem mã nguồn của Linux. Một cách chính xác, thuật ngữ "Linux" được sử dụng để chỉ Nhân Linux, nhưng tên này được sử dụng một cách rộng rãi để miêu tả tổng thể một hệ điều hành giống Unix (còn được biết đến dưới tên GNU/Linux) được tạo ra bởi việc đóng gói nhân Linux cùng với các thư viện và công cụ GNU, cũng như là các bản phân phối Linux. Thực tế thì đó là tập hợp một số lượng lớn các phần mềm như máy chủ web, các ngôn ngữ lập trình, các hệ quản trị cơ sở dữ liệu, các môi trường làm việc desktop như GNOME và KDE, và các ứng dụng thích hợp cho công việc văn phòng như OpenOffice.org. Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux Ban đầu, Linux được phát triển và sử dụng bởi những người say mê. Tuy nhiên, hiện nay Linux đã có được sự hỗ trợ bởi các công ty lớn như IBM và Hewlett- Packard, đồng thời nó cũng bắt kịp được các phiên bản Unix độc quyền và thậm chí là một thách thức đối với sự thống trị của Microsoft Windows trong một số lĩnh vực. Sở dĩ Linux đạt được những thành công một cách nhanh chóng là nhờ vào các đặc tính nổi bật so với các hệ thống khác: chi phí phần cứng thấp, tốc độ cao (khi so sánh với các phiên bản Unix độc quyền) và khả năng bảo mật tốt, độ tin cậy cao (khi so sánh với Windows) cũng như là các đặc điểm về giá thành rẻ, không bị phụ thuộc vào nhà cung cấp. Một đặc tính nổi trội của nó là được phát triển bởi một mô hình phát triển phần mềm nguồn mở hiệu quả. Tuy nhiên, hiện tại số lượng phần cứng được hỗ trợ bởi Linux vẫn còn rất khiêm tốn so với Windows vì các trình điều khiển thiết bị tương thích với Windows nhiều hơn là Linux. Nhưng trong tương lai số lượng phần cứng được hỗ trợ cho Linux sẽ tăng lên. 1.2.Linux có gì hấp dẫn người dùng? Có lẽ bạn đã quá quen với hệ điều hành Windows cũng như quá quen lập trình trên hệ điều hành này. Windows có thể nói là một hệ điều hành khá "hoàn hảo", dễ sử dụng, với rất nhiều tiện ích đáp ứng gần như mọi yêu cầu của người dùng. Vậy thì tại sao chúng ta lại phải tìm đến một hệ điều hành mới như Linux? Điều đó liệu có thực sự cần thiết không? Nhất là đối với sinh viên như chúng ta, những người mới chập chững bước vào con đường làm tin học? Câu trả lời là CÓ. 1.2.1. Vấn đề bản quyền Trong bối cảnh nền kinh tế thế giới đang có xu hướng toàn cầu hóa như hiện nay thì đây là một vấn đề nổi cộm. Ở Việt Nam, vấn đề vi phạm bản quyền phần mềm là rất phổ biến (nước ta dẫn đầu thế giới về số lượng phần mềm dùng không có bản quyền). Nếu tình trạng đánh cắp bản quyền phần mềm của Việt Nam là 100 triệu USD mỗi năm thì sẽ có một lượng hàng hóa có giá trị tương đương không bán được ở Mỹ và các nước phát triển. Và như vậy người thiệt hại đầu tiên sẽ chính là người lao động Việt Nam. Trước tình hình đó, việc tự xây dựng cho mình những phần mềm thương hiệu Việt Nam đang trở nên một vấn đề cấp bách. Phần mềm mã nguồn mở được xem là một giải pháp hữu hiệu nhất cho bài toán bản quyền ở nước ta hiện nay. Phần mềm mã nguồn mở một mặt có chi phí rẻ hơn so với các phần mềm truyền thống, mặt khác rất dễ nâng cấp, cải tiến (do cung cấp mã nguồn kèm theo). Chính vì thế, phát triển phần mềm mã nguồn mở chúng ta có thể tận dụng được những công nghệ tiên tiến có sẵn trên thế giới, cải tiến cho phù hợp với người Việt Nam, tiết kiệm được rất nhiều công sức so với việc phát triển từ đầu. Linux là một hệ điều hành mã nguồn mở như vậy!!! 1.2.2. Những ưu điểm kỹ thuật nổi bật của Linux Kinh tế, đó là một đặc điểm không thể bỏ qua của Linux (ít nhất là đối với nước ta hiện nay). Tuy nhiên đối với Linux đó vẫn chưa là tất cả. Hệ điều hành này còn rất nhiều ưu điểm khác mà không một hệ điều hành nào có. Chính những đặc điểm này mới là nguyên nhân khiến cho Linux ngày càng trở nên phổ biến không chỉ ở Việt Nam mà cả ở trên thế giới. * Linh hoạt, uyển chuyển Như tôi đã trình bày ở trên, Linux là một hệ điều hành mã nguồn mở nên bạn có thể tùy ý sửa chữa theo như mình thích (miễn là bạn có đủ kiến thức). Bạn có thể chỉnh sửa Linux và các ứng dụng trên đó sao cho phù hợp với mình nhất. Tính linh hoạt của Linux còn được thể hiện ở chỗ nó tương thích được với rất nhiều môi trường. Hiện tại, ngoài Linux dành cho server, máy tính để bàn nhân Linux (Linux Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux kernel) còn được nhúng vào các thiết bị điều khiển như máy tính palm, robot Phạm vi ứng dụng của Linux được xem là rất rộng rãi. * Độ an toàn cao Trước hết, trong Linux có một cơ cấu phân quyền hết sức rõ ràng. Chỉ có "root" (người dùng tối cao) mới có quyền cài đặt và thay đổi hệ thống. Ngoài ra Linux cũng có cơ chế để một người dùng bình thường có thể chuyển tạm thời chuyển sang quyền "root" để thực hiện một số thao tác. Điều này giúp cho hệ thống có thể chạy ổn định và tránh phải những sai sót dẫn đến đổ vỡ hệ thống. Trong những phiên bản Windows gần đây, cơ chế phân quyền này cũng đã bước đầu được áp dụng, nhưng so với Linux thì vẫn kém chặt chẽ hơn. Ngoài ra chính tính chất "mở" cũng tạo nên sự an toàn của Linux. Nếu như một lỗ hổng nào đó trên Linux được phát hiện thì nó sẽ được cả cộng đồng mã nguồn mở cùng sửa và thường thì chỉ sau 24h sẽ có thể cho ra bản sửa lỗi. Mặt khác đối với những hệ điều hành mã nguồn đóng như Windows, bạn không thể biết được người ta viết gì, và viết ra sao mà chỉ biết được chúng chạy như thế nào. Trong Linux mọi thứ đều công khai, người quản trị có thể tìm hiểu tới mọi ngõ ngách của hệ điều hành. Điều đó cũng có nghĩa là độ an toàn được nâng cao. * Thích hợp cho quản trị mạng Được thiết kế ngay từ đầu cho chế độ đa người dùng, Linux được xem là một hệ điều hành mạng rất giá trị. Nếu như Windows tỏ ra là một hệ điều hành thích hợp với máy tính Desktop thì Linux lại là hệ điều hành thống trị đối với các Server. Đó là do Linux có rất nhiều ưu điểm thỏa mãn đòi hỏi của một hệ điều hành mạng: tính bảo mật cao, chạy ổn định, các cơ chế chia sẻ tài nguyên tốt… Giao thức TCP/IP mà chúng ta vẫn thấy ngày nay chính là một giao thức truyền tin của Linux (sau này mới được đưa vào Windows) * Chạy thống nhất trên các hệ thống phần cứng Dù cho có rất nhiều phiên bản Linux được các nhà phân phối khác nhau ban hành nhưng nhìn chung đều chạy khá ổn định trên mọi thiết bị phần cứng, từ Intel 486 đến những máy Pentium mới nhất, từ những máy có dung lượng RAM chỉ 4MB đến những máy có cấu hình cực mạnh (tất nhiên là tốc độ sẽ khác nhau nhưng về nguyên tắc vẫn có thể chạy được). Nguyên nhân là Linux được rất nhiều lập trình viên ở nhiều môi trường khác nhau cùng phát triển (không như Windows chỉ do Microsoft phát triển) và bạn sẽ bắt gặp nhiều người có "cùng cảnh ngộ" như mình và dễ dàng tìm được các driver tương ứng với thiết bị của mình . Tính chất này hoàn toàn trái ngược với Windows. Mỗi khi có một phiên bản Windows mới ra đời thì bao giờ kèm theo đó cũng là một cơn khát về phần cứng vì hệ điều hành mới thường không hỗ trợ các thiết bị quá cũ. 1.3.Các bản phân phối của Linux. Linux hiện nay có nhiều bản phân phối khác nhau, một phần là bởi vì tính chất nguồn mở của nó. Sau đây là một số bản phân phối chủ yếu: Tên bản phân phối Phiên bản mới nhất Trang web chính thức Các bản tương tự Ubuntu 9.04 www.ubuntu.com Kubuntu, Xubuntu, Edubuntu Debian GNU/Linux 4.0 www.debian.org Ultimate Edition 1.7 Red Hat Enterprise Linux 5.0 www.redhat.com/rhel/ Fedora Core 10.0 www.fedoraproject.org Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux SUSE Linux Enterprise Desktop 10.1 www.novell.com/Linux/ OpenSUSE 10.3 Mint 6 www.Linuxmint.com Knoppix 5.3.1 www.knoppix.com/ PCLinuxOS 2008 www.pcLinuxos.com/ Mandrake 2007.0 www.madrivaLinux.com Mandriva CentOS www.gentoo.org/ Slackware 12.1 www.slackware.com/ Xandros SLAX Easys Sabayon DreamLinux OpenSolaris 2008 www.opensolaris.org/ Hồng kỳ Linux Puppy Linux Hacao Linux 2.16 http://www.hacao.com/ Vubuntu 1.0 Asianux 2.0 http://www.asianux.com/ Asianux Server 3 1.4.Yêu cầu đối với máy tính. Vì Hệ điều hành Linux sử dụng chế độ bảo vệ của bộ vi xử lý, nên để cài đặt Hệ điều hành này cần ít nhất là một máy tính có bộ xử lý 386. Yêu cầu đối với phần cứng của hệ thống muốn cài đặt Linux còn được xác định bởi lựa chọn phần mềm cảu người dùng (và tức là sẽ phụ thuộc vào phiên bản của các phần mềm và ít nhiều vào bản phân phối). Bảng dưới đây sẽ đưa ra một vài con số chỉ với mục địch làm quen, những con số này là không chính xác nhưng không khác biệt nhiều giữa các bản Linux khác nhau. Mong muốn của người dùng Yêu cầu, MB Bộ nhớ Đĩa cứng Yêu cầu nhỏ nhất, chỉ làm việc trong giao diện văn bản với dòng lệnh của shell, có đủ một số ứng dụng người dùng như vim, emacs, … 8 200 Dùng được giao diện đồ họa X Window cùng với một số trình quản lý cửa sổ nhỏ nhẹ như icewm, fluxbox, windowmaker. 32 400 Dùng môi trường làm việc đồ họa KDE 128 1000 Chạy các ứng dụng cần nhiều bộ nhớ (như GIMP, các ứng dụng nằm trong Koffice, OpenOfffice.org 256 1500 Như vậy Linux có một ưu điểm lớn là khả năng làm việc thậm chí trên những máy rất cũ, mà trước đây chỉ có thể dùng MS-DOS (tất nhiên là trong trường hợp này chúng ta chỉ có thể thu được chế độ dòng lệnh). Để bắt đầu học Linux thì chỉ cần có một máy tính với bộ vi xử lý 486, 16MB bộ nhớ và ổ cúng khoảng 300MB. Tất nhiên đối với dung lượng bộ nhớ cũng như cấu hình máy nói chung thì càng mạnh, càng nhiều bộ nhớ, ổ cứng càng rộng thì càng tốt. Không có gì là thừa thãi. 2. CÁC THÀNH PHẦN CỦA HỆ ĐIỀU HÀNH LINUX Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux Sau đây, chúng tôi sẽ đi vào nghiên cứu các thành phần của Hệ điều hành Linux. Một cách tổng quát về Hệ điều hành chung thì bao gồm các thành phần như sau: a. Điều phối hoạt động: Quản lý tiến trình (Process Management ) b. Thành phần quản lý và phân phối tài nguyên: - Quản lý bộ nhớ chính (Main Memory Management) - Quản lý tập tin (File Management) - Quản lý hệ thống vào-ra (I/O System Management) - Quản lý bộ nhớ thứ cấp (Secondary Storage Management) c. Hoạt động mạng (Networking) d. Hệ thống bảo vệ (Protection System) e. Hệ thống thông dịch lệnh (Command-Interpreter System) 2.1.Hệ điều phối hoạt động: Quản lý tiến trình. Những hệ thống máy tính ban đầu cho phép chỉ một chương trình được thực thi tại một thời điểm. Chương trình này có toàn quyền điều khiển hệ thống và có truy xuất tới tất cả tài nguyên của hệ thống. Những hệ thống máy tính hiện nay cho phép nhiều chương trình được nạp vào bộ nhớ và được thực thi đồng hành. Sự phát triển này yêu cầu sự điều khiển mạnh mẽ hơn và phân chia nhiều hơn giữa các quá trình. Yêu cầu này dẫn đến khái niệm quá trình, một chương trình đang thực thi. Quá trình là một đơn vị công việc trong một hệ điều hành chia thời hiện đại. Một hệ điều hành phức tạp hơn được mong đợi nhiều hơn trong việc thực hiện các hành vi của người dùng. Mặc dù quan tâm chủ yếu của hệ điều hành là thực thi chương trình người dùng, nhưng nó cũng quan tâm đến các tác vụ khác nhau bên ngoài nhân. Do đó, một hệ thống chứa tập hợp các quá trình: quá trình hệ điều hành thực thi mã hệ thống, quá trình người dùng thực thi mã người dùng. Tất cả quá trình này có tiềm năng thực thi đồng hành, với một CPU (hay nhiều CPU) được đa hợp giữa chúng. Bằng cách chuyển đổi CPU giữa các quá trình, hệ điều hành có thể làm cho máy tính hoạt động với năng suất cao hơn. Mỗi tiến trình trong Linux được biểu diễn bằng một cấu trúc dữ liệu task_struct (task có nghĩa là tiến trình trong Linux). Linux sử dụng task vector để quản lý các con trỏ đến các task_struct, mặc định là có 512 phần tử. Khi một tiến trình được tạo ra, một task_struct mới được cấp phát trong bộ nhớ và được thêm vào vector task. Linux hỗ trợ hai loại tiến trình là loại bình thường và loại thời gian thực. Cấu trúc task_struct gồn những trường như sau : trạng thái (thi hành, chờ, ngưng, lưng chừng), thông tin lập lịch, định danh, thông tin liên lạc giữa các tiến trình, liên kết, định thời gian, hệ thống tập tin, bộ nhớ ảo, ngữ cảnh. Trong Linux cũng như UNIX, chương trình và lệnh được thực hiện theo cơ chế thông dịch. Bộ thông dịch được gọi là shell. Linux hỗ trợ nhiều loại shell như sh, bash, tcsh. Tập tin thi hành có nhiều dạng, dạng được sử dụng thông dụng nhất trong Linux là EFL, ngoài ra Linux cũng có thể hiểu được nhiều dạng tập tin khác. Các cơ chế thông tin liên lạc giữa các tiến trình được sử dụng là tín hiệu (SIGNALS), đường ống (PIPE), sockets, semaphore và bộ nhớ chia sẻ. Có một tập hợp các tín hiệu được định nghĩa trước, các tính hiệu này có thể được phát sinh bởi hạt nhân hoặc những tiến trình khác trong bộ nhớ. Linux cài đặt các tín hiệu trong task_struct. Không phải mọi tiến trình trong hệ thống có thể gửi tín hiệu đến mọi tiến trình khác. Tín hiệu được phát sinh bằng cách thiết lập một bit thích hợp trong trường signal của cấu trúc task_struct. Tín hiệu không xuất hiện cho tiến trình ngay khi nó được tạo mà phải chờ đến khi tiến trình được thực hiện trở lại. Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux Trong Linux cơ chế đường ống cài đặt sử dụng hai cấu trúc file trỏ đến cùng inode VFS tạm thời xác định một trang vật lý trong bộ nhớ. Khi tiến trình ghi thực hiện việc ghi vào đường ống, các byte sẽ được chép vào trang dữ liệu chia sẻ. Linux phải đồng bộ quy trình truy xuất trong đường ống. Tiến trình ghi sử dụng các hàm thư viện ghi chuẩn. Các cơ chế socket, semaphores và bộ nhớ chia sẻ của Linux gần giống với hệ thống Unix System V. 2.2.Thành phần quản lý và phân phối tài nguyên 2.2.1. Quản lý bộ nhớ chính Trong hệ thống máy tính, bộ nhớ là một tài nguyên khan hiếm. Cho dù có bao nhiêu bộ nhớ đi chăng nữa thì vẫn không đáp ứng đủ nhu cầu của người sử dụng. Các máy tính cá nhân hiện nay đã trang bị ít nhất 128Mb bộ nhớ. Các máy chủ servercos thể lên đến hàng gigabyte bộ nhớ. Thế nhưng nhu cầu bộ nhớ vẫn không được thỏa mãn. Linux có cách tiếp cận và quản lý bộ nhớ rất rõ rang. Các ứng dụng trên linux được phép truy cập trực tiếp vào địa chỉ vật lý của bộ nhớ. Linux cung cấp cho các chương trình chạy dưới HĐH - còn gọi là tiến trình – một mô hình đánh giá địa chỉ phẳng không phân đoạn segment:offset như DOS. Mỗi tiến trình chỉ thấy được một vùng không gian địa chỉ của riêng nó. Hầu như tất cả các phiên bản của UNIX đều cung cấp cách bảo vệ bộ nhớ theo cơ chế bảo đảm không có tiến trình nào có thể ghi đè lên vùng nhớ của tiến trình khác đang hoạt động hoặc vùng nhớ của hệ thống. Nói chung, bộ nhớ mà hệ thống cấp phát cho một tiến trình không thể nào đọchoặc ghi bởi một tiến trình khác. Trong hầu hết các hệ thống Linux và UNIX, con trỏ được sử dụng là một số nguyên 32 bit trỏ đến một ô nhớ cụ thể. Với 32 bit, hệ thống có thể đánh địa chỉ lên đến 4GB bộ nhớ. Mô hình bộ nhớ phẳng này dễ truy xuất và xử lý hơn bộ nhớ phân đoạn segment:offset. Ngoài ra, một vài hệ thống còn sư dụng mô hình địa chỉ 64 bit, như vậy không gian địa chỉ có thể mở rộng ra đến terabyte. Để tăng dung lượng bộ nhớ sẵn có, Linux còn cài đặt chương trình phân trang đĩa tức là một lượng không gian hoán đổi nào đó có thể phân bố trên đĩa. Khi hệ thống yêu cầu nhiều bộ nhớ vật lý, nó sẽ đưa các trang không hoạt động ra đĩa, nhờ vậy bạn có thể chạy những ứng dụng lớn hơn và cùng lúc hỗ trợ nhiều người sử dụng. Tuy vậy, việc hoán đổi không thay được RAM vật lý, nó chậm hơn vì cần nhiều thời gian để truy cập đĩa. Kernel cũng cài đặt khối bộ nhớ hợp nhất cho các chương trình người sử dụng và bộ đệm đĩa tạm thời (disk cache). Theo cách này, tất cả bộ nhớ trống dành để nhớ tạm và bộ nhớ đệm (cache) sẽ giảm xuống khi bộ xử lý chạy những chương trình lớn. 2.2.2. Quản lý hệ thống tập tin 2.2.2.1. Tập tin Máy tính chỉ là công cụ để làm việc với thông tin không hơn không kém. Mà thông tin trên mỗi Hệ điều hành đưuọc lưu ở dạng tập tin trên các đĩa lưu. Từ phía của Hệ điều hành thì tập tin là một chuỗi liên tục các byte với chiều dài xác định. Hệ điều hành không quan tâm đến định dạng bên trong của tập tin, nhưng nó cần đặt cho tập tin một cái tên nào đó để người dùng (hay đúng hơn là chương trình ứng dụng) có thể làm việc với tập tin. Làm sao để người dùng có thể làm việc với tập tin, đó là công việc của hệ thống tập tin, người dùng thường không cần quan tâm đến. Vì thế, đối với người dùng thì hệ thống tập tin là một cấu trúc logic của các thư mục và tập tin. Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux Một trong những đặc điểm quan trọng của Linux là nó hỗ trợ nhiều hệ thống tập tin. Điều này làm cho nó rất linh động và có thể cùng tồn tại với nhiều hệ điều hành khác. Từ những phiên bản đầu tiên, Linux đã hỗ trợ 15 loại tập tin: ext, ext2, xia, minix, msdos, vfat, proc, smb, ncb, iso9660, sysv, hpfs, affs và ufs. Trong Linux, cũng như trong UNIX nói chung, hệ thống tập tin được truy xuất thông qua một cấu trúc cây thừa kế đơn thay vì là các thiết bị xác định (như tên ổ đĩa hoặc số hiệu của ổ đĩa). Linux thêm những hệ thống tập tin được thiết lập vào một thư mục và được gọi là thưu mục thiết lập. Khi một đĩa được khởi tạo, trên đĩa được chia thành nhiều partitions. Mỗi partition có một hệ thống tập tin. Hệ thống tập tin của Linux coi những thiết bị khối một cách đơn giản như là một tập hợp tuyến tính các khối mà không quan tâm đến tổ chức vật lý trên đĩa. Chương trình điều khiển thiết bị khối chịu trách nhiệm ánh xạ khối cần đọc thành vị trí vật lý cụ thể trên đĩa. Trong hệ thống tập tin của Linux, người sử dụng không quan tâm đến những khác biệt của chúng trên những thiết bị vật lý khác nhau. Hệ thống tập tin không chỉ trên hệ thống cục bộ mà còn là những ổ đĩa từ xa trên mạng. Hệ thống tập tin đầu tiên Linux hỗ trợ là Minix cho phép tập tin có tên tối đa là 14 ký tự và kích thước không vượt quá 64Mb. Hệ thống tập tin đặc thù đầu tiên của Linux là một hệ thống tập tin mở rộng (EXT) được giới thiệu vào tháng 4/1992, hệ thống này không hiệu quả nên sau đó vào năm 1993, một hệ thống tập tin mở rộng thế hệ 2 được thêm vào. 2.2.2.2. Cấu trúc của các thư mục Nếu như cấu trúc tập tin không cho phép sử dụng gì khác ngoài tên tập tin (tức là tất cả các tập tin nằm trên một danh sách chung giống như các hạt cát trên bãi biển) thì thậm chí cả khi không có giới hạn về độ dài của tên, rất khó để tìm đến tập tin cần thiết. Một hệ thống Linux hoàn chỉnh có số lượng tập tin lớn hàng nghìn, vì thế các tập tin được tổ chức vào các thư mục, các thư mục có thể nằm trong các thư mục khác, v.v… kết quả là chúng ta thu được một cấu trúc thưu mục có phân bậc bắt đầu từ một thư mục gốc. Mỗi thư mục con có thể chứa các tập tin riêng lẻ và các thư mục con của nó. Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux Cấu trúc phân bậc của thư mục thường được minh họa bằng “cây thư mục”, trên đó mỗi thư mục đó là một nút của “cây”, còn tập tin – là các “lá”. Trên MS-DOS hoặc Windows cấu trúc thư mục như vậy có trên mỗi ổ đĩa (tức là chúng ta có không phải một “cây” mà một “rừng” thư mục) và thư mục gốc của mỗi cấu trúc tập tin được đánh dấu bằng một chữ cái Latinh (và do đó đã có một số hạn chế). Trên Linux và UNIX nói chung thì chỉ có một cấu trúc thư mục duy nhất cho tất cả đĩa lưu, và thư mục duy nhất của cấu trúc này được ký hiệu bằng dấu gạch chéo “/”. Có thể đưa vào thư mục gốc này một số lượng không hạn chế các thư mục nằm trên các đĩa lưu khác nhau (thường nói là “gắn hệ thống tập tin” hoặc “gắn đĩa lưu”). Tên của thư mục cũng được đặt theo những quy định như đối với tên tập tin. Và nói chung ngoài cấu trúc bên trong của mình thì thư mục không khác gì so với những tập tin thông thường, ví dụ tập tin văn bản (text file). Ngoài thư mục hiện thời mỗi người dùng còn có một “thư mục nhà”, phương án dịch “thư mục cá nhân” được ưu tiên hơn. Đó là thư mục trong đó người dùng có toàn quyền: có thể tạo và xóa các tập tin, thay đổi quyền truy nhập đến chúng. Trong cấu trúc thư mục của Linux những thư mục cá nhân của người dùng thường nằm trong thư mục /home và thường có tên trùng với tên đăng nhập của người dùng vào hệ thống. Ví dụ: /home/nhom1 Mỗi người dùng có thể làm việc với thư mục của mình bằng ký hiệu ~, tức là người dùng nhom1 có thể làm việc với thư mục /home/nhom1/cautrucmaytinh bằng ~/cautrucmaytinh. Khi người dùng vào hệ thống, thư mục cá nhân sẽ trở thành thư mục hiện thời của người dùng này. 2.2.2.3. Công dụng của các thư mục chính: Trong Windows, người dùng hoàn toàn có quyền tổ chức cấu trúc thư mục, nhưng một số truyền thống vẫn được tuân theo. Ví dụ các tập tin hệ thống thường nằm trong thư mục C:\Windows, các chương trình thường được cái đặt vào C:\Program File… Trong Linux cũng có một cấu trúc thư mục kiểu như vậy và thậm chí cón nghiêm ngặt hơn. Hơn nữa có một tiêu chuẩn xác định cấu trúc thư mục cho các Hệ điều hành dòng UNIX. Tiêu chuẩn này được gọi là Filesystem Hierarchy Standart (FHS). Công dụng của các thư mục chính trong Linux: Thư mục Công dụng /bin Thư mục này gồm chủ yếu các chương trình, phần lớn trong số chúng cần cho hệ thống trong thời gian khởi động (hoặc trong chế độ một người dùng khi bảo trì hệ thống). Ở đây có lưu rất nhiều những câu lệnh thường dùng của Linux. /boot Gồm các tập tin cố định cần cho khởi động hệ thống, trong đó có nhân (kernel). Tập tin trong thư mục này chỉ cần trong thời gian khởi động. /dev Thư mục các tập tin đặc biệt hoặc các tập tin thiết bị phần cứng. /etc Thư mục này và các thư mục con của nó lưu phần ớn những dữ liệu cần cho quá trình khởi động ban đầu của hệ thống và lưu những tập tin cấ hình chính. /home Thông thường trong thư mục này là các thư mục cá nhân của người dùng (trừ root). /lib Thư mục này lưu các thư viện chia sẻ của các hàm mà trình biên dịch C và các mô đun cần. /lost+found Thư mục này sử dụng để phục hồi hệ thống tập tin bằng lệnh fsck. Nếu Nhóm 1 – Lớp 1101NWMG0411 [...]... nữa Hệ điều hành Linux, vẫn được coi là một Hệ điều hành của cộng đồng Nhóm 1 – Lớp 1101NWMG0411 1 Apr 25 Kiến trúc tổng quát về hệ điều hành Linux NHỮNG TÀI LIỆU THAM KHẢO SỬ DỤNG TRONG BÀI THẢO LUẬN: 1 Ebook Tự học và sử dụng Linux – tác giả Phan Vĩnh Thịnh 2 Kiến trúc UNIX /Linux – đại học dân lập Thăng Long 3 Kiến thức tổng quan về Linux – đại học Công nghệ Thành phố Hồ Chí Minh 4 Tổng quan về hệ điều. .. Nhóm 1 – Lớp 1101NWMG0411 1 Apr 25 Kiến trúc tổng quát về hệ điều hành Linux TỔNG KẾT Sau khi tìm hiểu về kiến trúc tổng quát của Hệ điều hành Linux, các bạn có thể sẽ có những cảm nhận khác nhau về Linux Nhưng nói chung, các vấn đề liên quan bao gồm những vấn đề sau đây: Về người dùng, nhiều người nghĩ rằng người dùng được hệ điều hành này phải là người thành thạo: Về mặt này, ai cũng nghĩ đây là một... 1101NWMG0411 1 Apr 25 Kiến trúc tổng quát về hệ điều hành Linux người sử dụng và để bảo vệ kernel từ những sai sót của người sử dụng, shell đã được xây dựng thành lớp bao quanh kernel Người sử dụng gửi yêu cầu tới shell, shell biên dịch chúng và său đó gửi tới kernel Chúng đơn giản, mạnh mẽ và giúp ích rất nhiều cho lập trình viên khi tiếp cận với những công cụ phát triển ứng dụng trên hệ điều hành Linux sau này... chọn hoặc module nào sẽ được nạp vào quá trình hệ thống khởi động Cấu trúc file Linux Kernel Nhóm 1 – Lớp 1101NWMG0411 1 Apr 25 Kiến trúc tổng quát về hệ điều hành Linux Thực tế, Windows đã có tất cả các trình điều khiển sẵn có và người sử dụng chỉ việc kích hoạt các trình điều khiển tương ứng để sử dụng Và đó cũng chính là nhiệm vụ các module kernel Linux đảm nhiệm, hay còn được gọi là loadable kernel... thay đổi thành phần của một nhóm nào đó Thành viên của các nhóm khác nhau có thể có quyền truy cập khác nhau đến tập tin, ví dụ nhóm các nhà quản trị có quyền nhiều hơn so với nhóm các nhà lập trình 2.2.3 Quản lý hệ thống xuất nhập I/O Như đã đề cập trong bài học tổng quan về Hệ điều hành, một trong những mục tiêu chính của hệ điều hành là giúp cho người sử dụng độc lập với thiết bị Trong Linux, các... cứng mà nó sẽ điều khiển Linux sử dụng cơ chế DMA và sử dụng một vector cấu trúc dma_chan để quản lý các kênh DMA (mỗi kênh có một vector) Nhóm 1 – Lớp 1101NWMG0411 1 Apr 25 Kiến trúc tổng quát về hệ điều hành Linux Mỗi lớp điều khiển thiết bị : ký tự, khối, mạng cung cấp những giao tiếp chung với hạt nhân Khi một thiết bị được khởi tạo, thanh ghi điều khiển thiết bị bên trong hạt nhân của Linux được... chuẩn TCP/IP, bộ giao thức truyền thông Unix-Unix, thường được gọi là UUCP (Unix to Unix Copy Protocol) - và nhiều phương thức truyền thông qua cổng tuần tự khác Tính năng mạng của Linux rất linh động, cho phép cấu hình hệ thống mạng với quy mô từ mạng SME LAN cho đến mạng cộng tác trải rộng khắp thế giới Bạn cũng Nhóm 1 – Lớp 1101NWMG0411 1 Apr 25 Kiến trúc tổng quát về hệ điều hành Linux nên biết rằng... Linux là Hệ điều hành nhiều người dùng, nên yêu cầu quy định truy cập đến các tập tin và thư mục là một trong những yêu cầu thiết yếu nhất mà Hệ điều hành phải giải quyết Cơ sở của cơ chế quy định quyền truy cập đó là tên người dùng và tên nhóm của người dùng Trong Linux mỗi người dùng có một tên riêng không lặp lại dùng để đăng nhập vào hệ thống Ngoài ra, trên hệ thống còn có nhóm người dùng, và Linux. .. tổng quát về hệ điều hành Linux 3.1 Nhân của Linux Khái niệm kernel ở đây nói đến những phần mềm, ứng dụng ở mức thấp (lowlevel) trong hệ thống, có khả năng thay đổi linh hoạt để phù hợp với phần cứng Chúng tương tác với tất cả ứng dụng và hoạt động trong chế độ user mode, cho phép các quá trình khác – hay còn gọi là server, nhận thông tin từ các thành phần khác qua inter-process communication (IPC) Về. .. Windows đã nhận xét rằng Linux là đối thủ đáng lo ngai hơn cả Mac OS của Apple Với con số 1% cũng xin mọi người đừng lo lắng rằng mình cô đơn, trong vài triệu người dùng máy tính thì con số đó được gắn kết chặt trong một thứ mà người ta gọi là “cộng đồng” Qua bà trình này này, hy vọng mọi người sẽ có một cách hiểu tổng quát và cơ bản nhất về Hệ điều hành nói chung và Hệ điều hành Linux nói riêng, từ đó, . THÀNH PHẦN CỦA HỆ ĐIỀU HÀNH LINUX Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux Sau đây, chúng tôi sẽ đi vào nghiên cứu các thành phần của Hệ điều hành Linux. . tích kiến trúc tổng quát của Hệ điều hành Linux , nhóm chúng tôi sẽ đi tìm hiểu về Hệ điều hành này theo hướng tiếp cận của người mới sử dụng, qua đó tổng kết lại những kiến thức chung nhất về Hệ. về Hệ điều hành cũng như những điểm nhấn của Linux, để từ đó có định hướng phát triển Hệ điều hành này về sau. Nhóm 1 – Lớp 1101NWMG0411 A p r . 2 5 1 Kiến trúc tổng quát về hệ điều hành Linux

Ngày đăng: 08/08/2014, 20:23

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan