Cấu trúc của hệ điều hành Linux Linux Linux. Cấu trúc của hệ điều hành Linux

Linux (Linux) là một hệ điều hành mà ngày nay gần như là hệ điều hành duy nhất thay thế thay thế Hệ điều hành Windows của Microsoft. Của bạn sự khởi đầu của Linux diễn ra từ năm 1991, khi một lập trình viên trẻ đến từ Phần Lan Linus Torvalds bắt đầu làm việc trên phiên bản đầu tiên của hệ thống, được đặt theo tên của anh ấy. Buổi bình minh của sự phổ biến của Linux bắt đầu ngay từ khi nó ra đời. Điều này trước hết là do nhân của hệ điều hành này, giống như hầu hết các chương trình được viết cho nó, có những phẩm chất rất quan trọng.

Hạt nhân Hạt nhân là một hệ điều hành cấp thấp Phần phụ thuộc vào máy của cấp độ truyền thống xử lý các tệp, chạy từ hạt nhân hệ điều hành UNIX bao gồm các thành phần sau: đĩa, mạng và thực hiện các hoạt động cần thiết khác. (hiện tại nó phụ thuộc vào đặc tính của thiết bị); Nhân của hệ điều hành Linux bao gồm các thành phần của kiến ​​trúc hệ thống vi nhân nguyên khối. thúc đẩy và khởi tạo hệ thống ở mức độ thấp với các ngắt; Khi biên dịch kernel, bạn có thể kích hoạt xử lý ban đầu động của kernel bên trong và Kiểm soát bên ngoài bộ nhớ (phần liên quan đến việc tải và dỡ nhiều thành phần hạt nhân - các tính năng hỗ trợ phần cứng cho cái gọi là mô-đun ảo. Tại thời điểm tải mô-đun bộ nhớ); mã của nó được tải ở cấp hệ thống và được liên kết với phần còn lại của kernel. Các chức năng có thể được sử dụng trong một mô-đun. bất kỳ bối cảnh tiến trình xuất hạt nhân nào cũng chuyển đổi giữa chế độ người dùng và chế độ hạt nhân; các bộ phận của trình điều khiển thiết bị liên quan đến đặc điểm của nền tảng đích.

Cấu trúc tập tin(hệ thống) /bin – mô-đun người dùng nhị phân cơ bản /boot – tệp khởi động tĩnh /cdrom – điểm gắn kết được chọn theo lịch sử cho đĩa CD /dev – tệp thiết bị /etc – tệp cấu hình /home – thư mục chính /lib – thư viện chia sẻ chính /lost +found – tập tin đã khôi phục /media – media được kết nối /proc – kernel và tập tin xử lý /root – thư mục chính người dùng root/srv – dữ liệu dịch vụ /tmp – tệp tạm thời /usr – tệp người dùng tập tin nhị phân và dữ liệu chỉ đọc (hiển thị trong hình)

Giao diện ( vỏ đồ họa) là chương trình tổ chức sự tương tác của người dùng với máy tính. Cung cấp hỗ trợ cho cửa sổ, menu, biểu tượng, chuột và các thành phần GUI nổi tiếng khác - GUI người dùng. Các môi trường đồ họa phức tạp hơn được xây dựng trên X; phổ biến nhất trong số đó là KDE và Gnome. GUI là một tập hợp các biểu tượng, menu, hộp thoại, bảng điều khiển, cửa sổ và các thứ khác yếu tố đồ họa, cho phép người dùng dễ dàng vận hành máy tính và các ứng dụng của mình. KDE và Gnome là môi trường máy tính để bàn tích hợp. Người dùng tương tác với các thành phần giao diện và chương trình.

Tiện ích Tiện ích (eng. tiện ích hoặc công cụ) - phụ trợ chương trình máy tính trong Nhúng trong Linux tiện ích phần mềm và ngôn ngữ. bao gồm trình biên dịch g++ -GNU C++; Perl là một ngôn ngữ kịch bản rất mạnh mẽ; g 77 - Trình biên dịch GNU FORTRAN; (tham số, cài đặt, cài đặt) hoặc thực hiện quy trình f 2 c - bộ chuyển mã từ FORTRAN sang C; thay đổi tham số (tự động hóa nó). Fort 77 là trình biên dịch FORTRAN. Thực hiện f 2 c và sau đó nói chung phần mềm thực hiện chuyên môn nhiệm vụ điển hình. Các tiện ích cung cấp quyền truy cập vào các khả năng Các loại tiện ích để giao tiếp với HĐH sử dụng gcc hoặc g++; Các tiện ích độc lập không yêu cầu hệ điều hành hoạt động, Grep - tìm kiếm một đoạn văn bản trong tệp khớp với mặt nạ đã nhập. Mặt nạ được xác định bằng Tiện ích hệ thống, được bao gồm trong việc phân phối hệ điều hành và yêu cầu nó sử dụng hệ thống ký hiệu tiêu chuẩn được gọi là sự hiện diện của " biểu thức chính quy"; Các loại tiện ích theo chức năng Quản lý tập tin; Trình lưu trữ (có thể nén dữ liệu); Những người xem; Trình gỡ cài đặt - phần mềm [; chương trình Tr - tiện ích dịch thuật (hay nói cách khác - thay thế các chữ cái trong tệp văn bản); Gawk - GNU awk (được sử dụng để xử lý các tệp văn bản được định dạng); gỡ bỏ phần mềm sed - tiện ích xử lý file văn bản;

Hệ thống tập tin hệ điều hành Linux

Một trong những điều nhất thành phần quan trọng trong hệ điều hành Linux là một hệ thống tập tin. TRONG phần này khái niệm này sẽ được xem xét hệ thống tập tin và mục đích của nó; Phân cấp hệ thống tệp hệ điều hành Linux; Các loại tệp hệ điều hành Linux. Các vấn đề khác liên quan đến quản trị hệ thống tập tin sẽ được thảo luận chi tiết hơn trong Mô-đun 3.

Mục đích của hệ thống tập tin

Trong hệ điều hành Linux, giống như trong bất kỳ hệ điều hành nào khác Họ UNIX, bất kỳ đối tượng nào cũng là một tệp được lưu trữ trên hệ thống tệp. Hệ thống tập tin là một thiết bị (ví dụ: ổ cứng), được định dạng để lưu trữ tệp. Hệ thống tập tin có thể được đặt trên ổ cứng, đĩa mềm, CD-ROM hoặc phương tiện khác cho phép tùy ý hoặc truy cập tuần tự vào dữ liệu.

Thông thường, hệ thống tệp hệ điều hành Linux có thể được chia thành các thành phần sau.

Không gian tên - phương pháp đặt tên cho các đối tượng hệ thống tệp và tổ chức phân cấp của chúng.

Giao diện lập trình ứng dụng (API) là một tập hợp các lệnh gọi hệ thống và thư viện được thiết kế để quản lý các đối tượng hệ thống tệp.

Mô hình bảo mật - chứa sơ đồ chung bảo vệ, tách biệt quyền truy cập vào các đối tượng và chia sẻ các đối tượng.

Triển khai kỹ thuật - Mã chương trình, Đang kết nối mô hình logic hệ thống tập tin với phần cứng.

Nhiệm vụ chính của hệ thống tập tin là:

tổ chức dữ liệu được lưu trữ;

đơn giản và truy cập nhanhđến dữ liệu được lưu trữ;

đảm bảo tính toàn vẹn của dữ liệu được lưu trữ.

Định dạng và phương pháp lưu trữ tệp chính xác trong Linux không thành vấn đề vì hệ thống này cung cấp giao diện chung cho tất cả các loại hệ thống tệp mà nó nhận dạng. Trên Linux, hệ thống tệp mặc định là ext3fs. Khi truy cập bất kỳ hệ thống tệp nào từ Linux, dữ liệu được trình bày dưới dạng phân cấp các thư mục với các tệp nằm trong đó, cùng với ID chủ sở hữu và nhóm, bit quyền và các thuộc tính khác.

Hệ thống phân cấp tập tin

Hệ thống phân cấp thư mục của hệ thống tệp hệ điều hành Linux tương ứng với tiêu chuẩn Hệ thống phân cấp hệ thống tệp (FHS) thường được chấp nhận trong thế giới UNIX. Ưu điểm chính của tiêu chuẩn này là một số loại các tập tin được đặt trong các thư mục thích hợp.

Ví dụ, hầu hết tập tin cấu hình nằm trong thư mục /etc và các tệp nhật ký cho các dịch vụ khác nhau nằm trong thư mục /var/log.

Mô tả các thư mục hệ thống tập tin hệ điều hành Linux

Các thư mục /bin, /usr/bin, /usr/locl/bin, /sbin, /usr/sbin, và /usr/local/sbin chứa các lệnh được cài đặt trên hệ thống. Khi làm việc trong hệ thống dưới Người sử dụng thường xuyên, bạn sẽ chỉ có quyền truy cập vào các lệnh từ các thư mục /bin, /usr/bin và /usr/locl/bin, vì tiêu chuẩn FHS chỉ định rằng các thư mục sbin chỉ được chứa các lệnh quản trị.


Hình 1.2. Cấu trúc thư mục của hệ điều hành Linux

Thư mục chính của hệ thống tệp hệ điều hành Linux là thư mục gốc /. Bên dưới thư mục gốc là tất cả các thư mục khác được tạo trên máy cục bộ hệ thống con đĩa hoặc được gắn từ các thiết bị bên ngoài. Quy trình gắn hệ thống tệp có nghĩa là liên kết một thư mục của hệ thống tệp hiện có, được gọi là điểm gắn kết, với thư mục gốc của hệ thống tệp mới.

Việc gắn hệ thống tập tin vào điểm gắn kết được thực hiện bằng lệnh mount. Danh sách sau đây cho thấy một ví dụ về cách gắn ổ đĩa DVD a, chứa bản phân phối hệ điều hành RedHatEnterpriseLinux 5.

# gắn kết /dev/hdc /mnt/

mount: khối thiết bị /dev/hdc được bảo vệ chống ghi, gắn kết chỉ đọc

Kết quả của việc thực thi lệnh mount, hệ thống hiển thị thông tin rằng thiết bị khối (trong trường hợp này là ổ đĩa DVD) đã được gắn ở chế độ đọc.

Danh sách các hệ thống tệp được gắn được lưu trữ trong tệp /etc/fstab. Điều này cho phép tự động kiểm tra tính toàn vẹn của hệ thống tệp bằng lệnh fsck và gắn kết hệ thống tệp khi khởi động, cũng như chạy các lệnh tắt như mount /var/spool. Thông tin chứa trong tệp này phản ánh vị trí của hệ thống tệp trên đĩa. Tệp /etc/fstab sẽ được thảo luận chi tiết hơn trong mô-đun 3.

Việc ngắt kết nối hệ thống tập tin được thực hiện bằng lệnh umount. Không thể ngắt kết nối hệ thống tập tin “bị khóa”. Không nên có bất kỳ mở tập tin, cũng như các thư mục hiện tại của các tiến trình đang chạy. Nếu hệ thống tập tin được ngắt kết nối có chứa chương trình thực thi, họ không nên chạy. Danh sách sau đây cho thấy một ví dụ về việc ngắt kết nối hệ thống tệp đã được gắn trước đó trong thư mục /mnt.

# umount /mnt # Là -1 /mnt tổng 0

Để tìm ra thiết bị nào được gắn vào hệ thống trong khoảnh khắc này bạn phải chạy lệnh mount không có tham số. Danh sách sau đây cho thấy một ví dụ về việc xác định các thiết bị được gắn.

# mount /dev/sda2 on / gõ ext3 (rw)

Proc on /proc gõ proc (rw)

sunrpc trên /var/lib/nfs/rpc_pipefs gõ rpc_pipefs (rw) /dev/hdc trên /mnt gõ iso9660 (ro)

Như bạn có thể thấy, đầu ra của lệnh mount hiển thị tuần tự thiết bị được gắn, điểm gắn kết, loại hệ thống tệp và các tùy chọn gắn kết bổ sung.

Loại tập tin

Khi làm việc với HĐH Linux, điều quan trọng là phải hiểu rằng bất kỳ đối tượng HĐH nào cũng là một tệp. Cái này tính năng chính Hệ điều hành Linux so với hệ điều hành Windows.

Các tập tin khác nhau cả về cấu trúc và mục đích của chúng. Hệ điều hành Linux xác định bảy loại tệp:

tập tin thông thường (tệp thông thường);

danh mục;

ống có tên;

chặn tập tin thiết bị;

tập tin thiết bị ký tự.

Bạn có thể xác định loại tệp bằng lệnh Is -Id. Ký tự đầu tiên ở dòng đầu ra cho biết loại tệp. Danh sách sau đây hiển thị thông tin về tập tin

/dev/hdc. # Là -Id /dev/hdc

Tệp thông thường

Các tập tin thông thường bao gồm các tập tin nhị phân, thư viện, tập tin văn bản và tập tin Các ứng dụng khác nhau. Hệ điều hành Linux không áp đặt bất kỳ hạn chế nào đối với cấu trúc của các tệp này. Nội dung của chúng có thể được truy cập tuần tự hoặc trực tiếp.

Danh mục

Hệ điều hành Linux có cái gọi là thư mục đặc biệt. Các thư mục đặc biệt như "." và ".." lần lượt biểu thị thư mục làm việc hiện tại và thư mục mẹ của nó.

Trong Linux, người ta thường phân biệt giữa các liên kết tượng trưng và liên kết cứng, mỗi liên kết đều có một ý nghĩa đặc biệt.

Liên kết tượng trưng cho phép bạn chỉ định bí danh của nó thay vì tên tệp. Khi tìm kiếm một tập tin bằng các liên kết tượng trưng, ​​kernel sẽ lấy các tên được lưu trong đó. Liên kết cứng là liên kết trực tiếp, tức là. trỏ trực tiếp đến nút của tệp, trong khi liên kết tượng trưng trỏ đến tệp theo tên của nó. Tệp được định địa chỉ liên kết tượng trưng và bản thân liên kết là các đối tượng hệ thống tệp khác nhau.

Liên kết tượng trưng có thể chứa một tên tùy ý, tức là. chúng cho phép trỏ tới các tệp được lưu trữ trong các hệ thống tệp khác và thậm chí tới các tệp không tồn tại. Liên kết cứng không thể trỏ đến một tệp nằm trên hệ thống tệp khác.

Hệ điều hành Linux đếm số lượng tham chiếu đến mỗi tệp và khi một tệp bị xóa, nó sẽ không giải phóng các khối dữ liệu cho đến khi tham chiếu cuối cùng đến tệp đó bị xóa.

ổ cắm

Ổ cắm là một loại tệp đặc biệt được các tiến trình sử dụng để liên lạc với nhau. Kết nối socket cho phép các tiến trình giao tiếp mà không bị ảnh hưởng bởi các tiến trình khác. Hệ điều hành Linux có một số loại ổ cắm, việc sử dụng chúng đòi hỏi phải có cơ sở hạ tầng mạng. Ổ cắm cục bộ chỉ có sẵn trên máy tính cục bộ, việc truy cập chúng được thực hiện thông qua các đối tượng đặc biệt của hệ thống tệp chứ không phải thông qua cổng mạng. Các ổ cắm như vậy thường được gọi là ổ cắm miền UNIX (UNIXdomainsocket). Ngoài các ổ cắm cục bộ, còn có các ổ cắm mạng cho phép các tiến trình giao tiếp qua mạng.

Mặc dù các quy trình khác nhận dạng tệp ổ cắm dưới dạng mục nhập thư mục, nhưng chỉ những quy trình có kết nối thích hợp giữa chúng mới có thể đọc và ghi tệp ổ cắm. Các dịch vụ hệ điều hành Linux khác nhau hoạt động với các ổ cắm cục bộ - CUPS, XWindow và Syslog.

Ống được đặt tên ( FIFO)

Các tập tin thuộc loại này tương tự như socket ở chỗ chúng cũng được sử dụng để liên lạc giữa các tiến trình, nhưng không giống như socket, các đường ống được đặt tên chỉ truyền dữ liệu theo một hướng.

Tập tin thiết bị khối và ký tự

Các tệp thiết bị khối và ký tự cho phép các ứng dụng truy cập vào phần cứng và thiết bị ngoại vi của hệ thống. Ở giai đoạn cấu hình, các mô-đun cần thiết được thiết kế để quản lý phần cứng hệ thống sẽ được tải động vào nhân hệ điều hành Linux. Dành cho quản lý thiết bị cụ thể Một mô-đun đặc biệt được gọi là trình điều khiển thiết bị sẽ phản hồi.

Trình điều khiển thiết bị tạo thành một giao diện tương tác tiêu chuẩn, được người dùng coi là một tập hợp các tệp thông thường. Khi nhận được yêu cầu về một ký tự hoặc tập tin thiết bị khối, kernel sẽ gửi yêu cầu này trình điều khiển tương ứng. Bản thân các tệp thiết bị khối và ký tự không phải là trình điều khiển. Chúng có thể được coi là cổng thông qua đó người lái xe nhận được yêu cầu thực hiện các hoạt động đã định.

Các tệp thiết bị ký tự không sử dụng bộ đệm trong các hoạt động I/O. Tất cả các thao tác I/O được thực hiện ngay khi chúng đến. Các thiết bị ký tự bao gồm thiết bị đầu cuối ảo, modem và các thiết bị khác không hỗ trợ truy cập dữ liệu ngẫu nhiên.

Hiểu hệ thống tệp Linux, cấu trúc thư mục, cấu hình, vị trí tệp thực thi và tạm thời sẽ giúp bạn hiểu rõ hơn về hệ thống của mình và trở thành quản trị viên hệ thống thành công. Hệ thống tệp Linux sẽ không bình thường đối với người mới bắt đầu mới chuyển từ Windows, vì mọi thứ ở đây hoàn toàn khác. Không giống như Windows, chương trình không nằm trong một thư mục mà theo quy luật, được phân phối dọc theo hệ thống tệp gốc. Sự phân phối này tuân theo các quy tắc nhất định. Bạn có bao giờ thắc mắc tại sao một số chương trình lại nằm trong /bin, hoặc /sbin, /usr/sbin, /usr/local/bin, sự khác biệt giữa các thư mục này là gì?

Ví dụ: chương trình less nằm trong thư mục /usr/bin, nhưng tại sao lại không nằm trong /sbin hoặc /usr/sbin. Và các chương trình như ifconfig hoặc fdisk được đặt trong thư mục /sbin chứ không phải ở đâu khác.

Bài viết này sẽ thảo luận đầy đủ về cấu trúc của hệ thống tệp Linux, sau khi đọc nó bạn sẽ có thể hiểu được ý nghĩa của việc sử dụng hầu hết các thư mục trong thư mục gốc Linux.

/ - nguồn gốc

Đây là thư mục chính trên hệ thống Linux. Về cơ bản, đây là hệ thống tập tin Linux. Không có đĩa hoặc bất cứ thứ gì tương tự trong Windows. Thay vào đó, tất cả địa chỉ tệp đều bắt đầu ở thư mục gốc và phần bổ sung, ổ đĩa flash hoặc Đĩa quang họcđược kết nối với các thư mục của thư mục gốc.

Lưu ý rằng người dùng root có thư mục chính là /root chứ không phải chính nó.

/bin - (nhị phân) tệp nhị phân của người dùng

Thư mục này chứa các tập tin thực thi. Dưới đây là các chương trình có thể được sử dụng ở chế độ một người dùng hoặc chế độ khôi phục. Nói một cách dễ hiểu, những tiện ích có thể sử dụng đó vẫn chưa được kết nối với thư mục /usr/. Đây là các lệnh phổ biến như cat, ls, tail, ps, v.v.

/sbin - các tệp thực thi hệ thống (nhị phân hệ thống)

Giống như /bin, nó chứa các tệp thực thi nhị phân có sẵn trong giai đoạn đầu khởi động, khi thư mục /usr chưa được gắn kết. Nhưng có những chương trình ở đây chỉ có thể được thực thi với quyền siêu người dùng. Đây là những tiện ích khác nhau để bảo trì hệ thống. Ví dụ: iptables, khởi động lại, fdisk, ifconfig, swapon, v.v.

/etc - tệp cấu hình (etcetera)

Thư mục này chứa các file cấu hình của tất cả các chương trình được cài đặt trên hệ thống.

Ngoài các tệp cấu hình, hệ thống khởi tạo Init Scripts còn chứa các tập lệnh để khởi động và kết thúc các trình nền hệ thống, gắn hệ thống tệp và khởi động chương trình. Cấu trúc thư mục linux trong thư mục này có thể hơi khó hiểu nhưng mục đích của tất cả chúng là thiết lập và cấu hình.

/dev - tập tin thiết bị (thiết bị)

Trong Linux, mọi thứ, kể cả các thiết bị bên ngoài, đều là tệp. Do đó, tất cả các ổ flash, bàn phím, micrô, máy ảnh được kết nối chỉ là các tệp trong thư mục /dev/. Thư mục này chứa một hệ thống tập tin bất thường. Cấu trúc hệ thống tệp Linux và các tệp chứa trong thư mục /dev được khởi tạo khi hệ thống khởi động bởi dịch vụ udev. Tất cả các thiết bị được kết nối đều được quét và các tệp đặc biệt được tạo cho chúng. Đây là những thiết bị như: /dev/sda, /dev/sr0, /dev/tty1, /dev/usbmon0, v.v.

/proc - (process) thông tin về các tiến trình

Đây cũng là một hệ thống tệp khác thường, nhưng là một hệ thống con được tạo động bởi kernel. Tại đây bạn có thể tìm thấy tất cả thông tin về tiến trình đang chạy trong thời gian thực. Về cơ bản, nó là một hệ thống tập tin giả chứa thông tin chi tiết về từng tiến trình, Pid của nó, tên của tệp thực thi, các tham số khởi chạy, quyền truy cập vào RAM, v.v. Bạn cũng có thể tìm thấy thông tin về việc sử dụng tài nguyên hệ thống tại đây, chẳng hạn như /proc/cpuinfo, /proc/meminfo hoặc /proc/uptime. Ngoài các tập tin, còn có một cấu trúc lớn trong thư mục này thư mục linux, từ đó bạn có thể tìm hiểu được nhiều thông tin về hệ thống.

/var (biến) - Tệp biến

Tên của thư mục /var là dễ hiểu; nó phải chứa các tập tin thay đổi thường xuyên. Kích thước của các tập tin này không ngừng tăng lên. Các tập tin được chứa ở đây nhật ký hệ thống, nhiều bộ nhớ đệm, cơ sở dữ liệu, v.v. Tiếp theo chúng ta sẽ xem xét mục đích của các thư mục Linux trong thư mục /var/.

/var/log - Tệp nhật ký

/var/lib - cơ sở dữ liệu

Một loại tệp khác được sửa đổi là tệp cơ sở dữ liệu, gói được lưu bởi trình quản lý gói, v.v.

/var/mail - thư

Máy chủ thư sẽ đặt tất cả thư đã nhận hoặc đã gửi vào thư mục này. email, nhật ký và tệp cấu hình của nó cũng có thể được đặt ở đây.

/var/spool - máy in

Ban đầu, thư mục này chịu trách nhiệm về hàng đợi in trên máy in và hoạt động của bộ chương trình cpu.

/var/lock - khóa tập tin

Đây là nơi chứa các tập tin khóa. Các tệp này cho biết rằng một tài nguyên, tệp hoặc thiết bị cụ thể đang được sử dụng và không thể được sử dụng bởi một quy trình khác. Ví dụ: Apt-get khóa cơ sở dữ liệu của nó để các chương trình khác không thể sử dụng nó trong khi chương trình đang chạy trên đó.

/var/run - PID của tiến trình

Chứa các tệp có PID của các quy trình có thể được sử dụng để tương tác giữa các chương trình. Không giống như thư mục /run, dữ liệu được lưu sau khi khởi động lại.

/tmp (temp) - Tệp tạm thời

Thư mục này chứa các tập tin tạm thời được tạo bởi hệ thống, bất kỳ chương trình hoặc người dùng nào. Tất cả người dùng đều có quyền ghi vào thư mục này.

Các tập tin sẽ bị xóa mỗi khi bạn khởi động lại. Tương tự với Windows là thư mục Windows\Temp, tất cả các file tạm thời cũng được lưu trữ ở đây.

/usr - (ứng dụng người dùng) Chương trình người dùng

Đây là danh mục lớn nhất với nhiều tính năng. Đây là cấu trúc thư mục Linux lớn nhất. Tại đây bạn có thể tìm thấy các tệp thực thi, nguồn chương trình, nhiều tài nguyên ứng dụng, hình ảnh, âm nhạc và tài liệu.

/usr/bin/ - Các tập tin có thể thực thi được

Chứa các tệp thực thi của các chương trình khác nhau không cần thiết trong giai đoạn khởi động đầu tiên của hệ thống, ví dụ: trình phát nhạc, biên tập đồ họa, trình duyệt, v.v.

/usr/sbin/

Chứa các chương trình quản trị hệ thống nhị phân phải được chạy với quyền siêu người dùng. Ví dụ: chẳng hạn như Gparted, sshd, useradd, userdel, v.v.

/usr/lib/ - Thư viện

Chứa các thư viện cho các chương trình từ /usr/bin hoặc /usr/sbin.

/usr/local - Tệp người dùng

Chứa các tệp chương trình, thư viện và cài đặt do người dùng tạo. Ví dụ: các chương trình được biên dịch và cài đặt từ nguồn và các tập lệnh được viết thủ công có thể được lưu trữ tại đây.

/home - Thư mục chính

Thư mục này lưu trữ các thư mục chính của tất cả người dùng. Họ có thể lưu trữ các tệp cá nhân, cài đặt chương trình, v.v. trong đó. Ví dụ: /home/sergiy, v.v. So với Windows, đây là thư mục người dùng của bạn trên ổ C, nhưng không giống như WIndows, home thường nằm trên một phần riêng biệt. , để khi bạn cài đặt lại hệ thống, mọi dữ liệu và cài đặt chương trình của bạn sẽ được lưu lại.

/boot - Tệp bộ nạp khởi động

Chứa tất cả các tệp được liên kết với bộ tải khởi động hệ thống. Đây là kernel vmlinuz, hình ảnh initrd, cũng như các tệp bootloader nằm trong thư mục /boot/grub.

/lib (thư viện) - Thư viện hệ thống

Chứa các tệp thư viện hệ thống được sử dụng bởi các tệp thực thi trong thư mục /bin và /sbin.

Thư viện có tên tệp có phần mở rộng *.so và bắt đầu bằng tiền tố lib*. Ví dụ: libncurses.so.5.7. Thư mục/lib64 trên hệ thống 64-bit chứa các phiên bản 64-bit của thư viện từ/lib. Thư mục này có thể được so sánh với WIndows\system32, tất cả các thư viện hệ thống cũng được tải xuống ở đó, chỉ có điều ở đó chúng được trộn với các tệp thực thi, nhưng ở đây mọi thứ đều riêng biệt.

/opt (Ứng dụng tùy chọn) - Các chương trình bổ sung

Các chương trình, trò chơi hoặc trình điều khiển độc quyền được cài đặt trong thư mục này. Đây là những chương trình được chính nhà sản xuất tạo ra dưới dạng các tệp thực thi riêng biệt. Những chương trình như vậy được cài đặt trong thư mục con /opt/, chúng rất giống với chương trình Windows, tất cả các tệp thực thi, thư viện và tệp cấu hình đều nằm trong một thư mục.

/mnt (gắn kết) - Gắn kết

Vào danh mục này quản trị viên hệ thống có thể gắn kết các hệ thống tập tin bên ngoài hoặc bổ sung.

/media - Phương tiện di động

Hệ thống gắn kết tất cả các kết nối ổ đĩa ngoài - Ổ đĩa flash USB, đĩa quang và các phương tiện lưu trữ khác.

/srv (máy chủ) - Máy chủ

Thư mục này chứa các tập tin máy chủ và dịch vụ. Ví dụ: nó có thể chứa các tệp từ máy chủ web apache.

/chạy - tiến trình

Một thư mục khác chứa các tệp PID tiến trình, tương tự như /var/run, nhưng không giống như vậy, nó nằm trong TMPFS và do đó tất cả các tệp sẽ bị mất sau khi khởi động lại.

/sys(system) - Thông tin hệ thống

Mục đích của các thư mục Linux từ thư mục này là lấy thông tin về hệ thống trực tiếp từ kernel. Đây là một hệ thống tệp khác được tổ chức bởi kernel và cho phép bạn xem và thay đổi nhiều tham số vận hành hệ thống, chẳng hạn như thao tác hoán đổi, điều khiển quạt, v.v.

Mặc dù thực tế rằng mục đích chính của hệ thống tệp là tổ chức các tài nguyên được lưu trữ, nhưng các lập trình viên sẽ không thực sự muốn “phát minh lại bánh xe” để quản lý các loại đối tượng khác. Trong Linux, các đối tượng của hệ thống tệp là: các tiến trình, thiết bị, cấu trúc và cài đặt dữ liệu hạt nhân, các kênh liên lạc giữa các tác vụ, các thư mục và tất nhiên là các tệp thông thường. Sự sắp xếp hệ thống tập tin này có cả ưu điểm và nhược điểm. Ưu điểm bao gồm một giao diện phần mềm duy nhất và khả năng truy cập dễ dàng từ trình thông dịch lệnh. Những nhược điểm bao gồm việc triển khai hệ thống tệp bằng phương pháp Frankenstein.

Hệ thống tập tin bao gồm bốn thành phần chính:

  1. Không gian tên - phương pháp đặt tên đối tượng và sắp xếp chúng thành một hệ thống phân cấp duy nhất
  2. API - một tập hợp các lệnh gọi hệ thống để di chuyển giữa các đối tượng và quản lý chúng
  3. Phương pháp bảo mật - Sơ đồ bảo vệ, ẩn và chia sẻ đối tượng
  4. Triển khai - mã chương trình kết nối các mô hình logic với hệ thống con đĩa

Hệ thống tệp là một cấu trúc phân cấp duy nhất bắt đầu bằng thư mục / và phân nhánh ra để bao gồm số lượng thư mục tùy ý.

Thư mục cấp cao nhất được gọi là nguồn gốc. Hệ thống đơn phân cấp này khác với hệ thống được sử dụng trong Windows, hệ thống này sử dụng khái niệm không gian tên dựa trên nguyên tắc chia đĩa thành các phân vùng.

Chuỗi tên thư mục phải được duyệt qua để truy cập tập tin đã cho, cùng với tên của tệp này tạo thành đường dẫn đến tệp. Con đường có thể là tuyệt đối(Ví dụ, /temp/foo) hoặc liên quan đến(Ví dụ, book4/hệ thống tập tin). Cái sau được giải thích bắt đầu từ thư mục hiện tại. Cần lưu ý rằng mọi quy trình đều có một thư mục hiện tại (hầu hết các quy trình không bao giờ thay đổi thư mục làm việc của chúng và do đó chỉ kế thừa thư mục hiện tại của quy trình đã khởi chạy chúng).

Có giới hạn về độ dài của tên tệp - không quá 255 ký tự. Tên không thể bao gồm dấu gạch chéo hoặc ký tự null. Ngoài ra còn có giới hạn về độ dài của đường dẫn được truyền tới kernel dưới dạng đối số cuộc gọi hệ thống - 4095 byte.

Gắn và ngắt kết nối hệ thống tập tin

Cây tập tin được hình thành từ các phần riêng biệt, được gọi là hệ thống tập tin. Mỗi hệ thống tệp có một thư mục gốc và danh sách các thư mục con và tệp của nó. Hầu hết các hệ thống tập tin đều phần cứngđĩa hoặc khối logic, nhưng, như đã đề cập trước đó, hệ thống tệp có thể ở dạng bất kỳ thứ gì tuân theo các đặc điểm chức năng nhất định - hệ thống tệp mạng, thành phần hạt nhân, đĩa, thiết bị, v.v.

Trong hầu hết các trường hợp, hệ thống tệp được gắn vào cây tệp bằng lệnh gắn kết. Lệnh này liên kết một thư mục trong cây tệp hiện có, được gọi là điểm gắn kết, với thư mục gốc của hệ thống tệp mới. Trong quá trình gắn kết, việc truy cập vào nội dung trước đó của điểm gắn kết sẽ không thể thực hiện được. Ví dụ, lệnh $ sudo mount/dev/sda4/người dùng gắn trên thiết bị /dev/sda4 hệ thống tập tin /người dùng. Sau khi quá trình gắn kết hoàn tất, bạn có thể sử dụng lệnh ls /users để xem nội dung của hệ thống tệp. Danh sách các hệ thống tập tin được người dùng gắn kết được lưu trữ trong tập tin /etc/fstab. Gỡ bỏ hệ thống tập tin bằng lệnh số lượng lớn. Một hệ thống tập tin bận rộn không thể được ngắt kết nối.

Tổ chức hệ thống tập tin

Hệ thống tập tin gốc chứa thư mục gốc và đặt tối thiểu tập tin và thư mục con. Tệp kernel nằm sâu trong hệ thống tệp gốc nhưng không có tên chuẩn hoặc vị trí chính xác.

Một phần của hệ thống tập tin gốc cũng là một thư mục /vân vân cho quan trọng tập tin hệ thống và các tập tin, thư mục cấu hình /sbin/thùng rác- dành cho các tiện ích quan trọng và đôi khi là một thư mục /tmp- đối với các tập tin tạm thời. Mục lục /dev thường là thư mục thực tế được bao gồm trong hệ thống tệp gốc, nhưng nó có thể (một phần hoặc toàn bộ) bị chồng chéo bởi các hệ thống tệp khác nếu hệ thống của bạn có hỗ trợ ảo hóa cho các thiết bị của nó.

Một số hệ thống lưu trữ các tệp thư viện dùng chung và các chương trình quan trọng khác (chẳng hạn như bộ tiền xử lý ngôn ngữ C) trong một thư mục /lib. Những người khác đã chuyển những mục này vào thư mục /usr/lib, để lại /lib vai trò của một liên kết tượng trưng.

Catalogue cũng có tầm quan trọng lớn /usr/var. Cái đầu tiên lưu trữ phần lớn chương trình tiêu chuẩn và các thành phần hữu ích khác, đặc biệt là tài liệu và thư viện trực tuyến. Hoàn toàn không cần thiết rằng danh mục /usr là một hệ thống tập tin riêng biệt, nhưng để dễ quản lý, nó thường được gắn theo cách đó. Để hệ thống khởi động vào chế độ nhiều người dùng, cần có cả hai thư mục - /usr/var. Trong danh mục /var chứa các thư mục đệm, tập tin nhật ký thông tin kế toán và các thành phần khác dành riêng cho từng máy tính. Vì các tệp nhật ký phát triển nhanh chóng khi có sự cố xảy ra nên nên đặt thư mục /var sang một hệ thống tập tin riêng biệt. Thư mục chính của người dùng thường được lưu trữ trên một hệ thống tệp riêng biệt, thường được gắn trên thư mục gốc. Các hệ thống tệp riêng biệt cũng có thể được sử dụng để lưu trữ các mảng thông tin lớn, ví dụ: thư viện mã nguồn chương trình và cơ sở dữ liệu.

Bảng hiển thị các thư mục tiêu chuẩn và nội dung của chúng

Mục lục hệ điều hành Nội dung
/thùng rác Tất cả Các lệnh của hệ điều hành hạt nhân
/khởi động L.S. Hạt nhân và tập tin để tải nó
/dev Tất cả Tệp thiết bị: đĩa, máy in, thiết bị đầu cuối giả, v.v.
/vân vân Tất cả Các tập tin cấu hình hệ thống và khởi động quan trọng
/trang chủ Tất cả Thư mục chính của người dùng mặc định
/ hạt nhân S Thành phần hạt nhân
/lib Tất cả Thư viện, thư viện dùng chung và thành phần trình biên dịch C
/phương tiện truyền thông L.S. Điểm gắn kết hệ thống tệp trên phương tiện di động
/mnt LSA Điểm gắn kết tạm thời
/opt Tất cả Gói phần mềm ứng dụng tùy chọn (chưa được sử dụng rộng rãi)
/proc LSA Thông tin về tất cả các tiến trình đang chạy
/nguồn gốc L.S. Thư mục chính của superuser (thường chỉ /)
/sbin Tất cả Các lệnh cần thiết để đảm bảo hiệu suất hệ thống tối thiểu
/đứng H Tiện ích ngoại tuyến, công cụ chẩn đoán và định dạng đĩa
/tmp Tất cả Các tập tin tạm thời có thể bị xóa khi khởi động lại
/usr Tất cả Hệ thống cấp bậc Các tệp bổ sung và các chương trình
/usb/thùng Tất cả Nội dung
/usr/bao gồm Tất cả Tệp tiêu đề để biên dịch chương trình C
/usr/lib Tất cả Thư viện và tập tin phụ trợ cho các chương trình tiêu chuẩn
/usr/lib64 L Thư viện 64-bit cho 64-bit Bản phân phối Linux
/usr/địa phương Tất cả Các chương trình cục bộ (chương trình do người dùng cục bộ tạo hoặc cài đặt)
/usr/sbin Tất cả Ít hơn tập tin quan trọng quản trị hệ thống
/usr/chia sẻ Tất cả Các yếu tố chung cho các hệ thống khác nhau
/usr/share/man Tất cả Các trang tài liệu trực tuyến
/usr/src LSA Mã nguồn của phi địa phương gói phần mềm(không được sử dụng rộng rãi)
/usr/tmp Tất cả Thư mục bổ sung cho các tệp tạm thời có thể tồn tại trong quá trình khởi động lại
/var Tất cả Dữ liệu hệ thống và tập tin cấu hình
/var/adm Tất cả Khác: tệp nhật ký, hồ sơ cài đặt hệ thống, thành phần quản trị
/var/log LSA Tệp nhật ký hệ thống
/var/spool Tất cả Thư mục ống chỉ cho máy in, email, v.v.
/var/tmp Tất cả Thư mục lưu trữ tạm thời các tập tin

Lưu ý: L = Linux, S = Solaris, H = HP-UX, A = AIX

Loại tập tin

Hầu hết việc triển khai hệ thống tệp đều xác định bảy loại tệp:

  • Tệp thông thường
  • Danh mục
  • Tệp thiết bị (ký tự) hướng byte
  • Tệp thiết bị hướng khối (khối)
  • Ổ cắm cục bộ
  • Named pipe (thực hiện nguyên tắc dịch vụ FIFO - vào trước, ra trước)
  • Liên kết tượng trưng

Xác định loại tập tin hiện có bạn có thể sử dụng lệnh ls -ld. Ký tự đầu tiên ở dòng đầu ra cho biết loại đối tượng. Ví dụ:

$ ls -ld /usr/include

Ở đâu d– có nghĩa là thư mục

Các mã có thể dùng để trình bày nhiều loại khác nhau các tập tin được trình bày trong bảng

Các tệp thông thường chỉ là một chuỗi byte. Hệ thống tập tin không áp đặt các hạn chế về cấu trúc của nó. Tài liệu văn bản, tệp dữ liệu, tệp chương trình, thư viện chức năng và nhiều thứ khác đều được lưu trữ trong các tệp thông thường. Nội dung của chúng có thể được truy cập tuần tự hoặc trực tiếp.

Thư mục lưu trữ các liên kết có tên và các tập tin khác. Nó được tạo ra bởi nhóm mkdir và bị xóa (miễn là nó trống) bằng lệnh rmdir. Các thư mục không trống có thể bị xóa bằng lệnh rm -r. Các liên kết đặc biệt '.' và '..' lần lượt biểu thị chính thư mục đó và thư mục mẹ của nó. Các liên kết như vậy không thể được gỡ bỏ. Vì thư mục gốc nằm ở trên cùng của hệ thống phân cấp nên liên kết '..' tương đương với liên kết '.'.

Tên tệp thực sự được lưu trữ trong thư mục mẹ chứ không phải trong chính tệp đó. Một tệp có thể được tham chiếu từ nhiều thư mục cùng một lúc và thậm chí từ nhiều mục trong cùng một thư mục và mỗi tham chiếu có thể có một tên khác nhau. Điều này tạo ra ảo tưởng rằng tập tin hiện diện trong các thư mục khác nhau cùng một lúc. Các liên kết cứng (cố định) bổ sung này có thể được coi là từ đồng nghĩa với tập tin nguồn và từ quan điểm của hệ thống tệp, tất cả các tham chiếu đến một tệp đều tương đương. Hệ thống tệp đếm số lượng tham chiếu đến mỗi tệp và khi một tệp bị xóa, nó sẽ không giải phóng các khối dữ liệu cho đến khi tham chiếu cuối cùng đến nó bị xóa. Liên kết không thể trỏ đến một tệp nằm trên một hệ thống tệp khác.

Liên kết cứng được tạo bằng lệnh ln và bị xóa bởi lệnh rm. Cú pháp lệnh ln dễ nhớ vì nó là “ ảnh phản chiếu” cp lệnh. Đội cp tập tin cũ tập tin mới tạo một bản sao của oldfile gọi là newfile và lệnh ln tập tin mới tập tin cũ chuyển đổi tên newfile thành một liên kết bổ sung tới file oldfile.

Tệp thiết bị cho phép các chương trình truy cập vào phần cứng và thiết bị ngoại vi của hệ thống. Hạt nhân bao gồm (hoặc khởi động) chương trình đặc biệt(trình điều khiển) “biết” từng chi tiết cách tương tác với từng thiết bị có sẵn, vì vậy bản thân kernel có thể vẫn tương đối trừu tượng và độc lập với phần cứng.

Trình điều khiển thiết bị tạo thành một giao diện giao tiếp tiêu chuẩn, được người dùng coi là một tập hợp các tệp thông thường. Khi hệ thống tệp nhận được yêu cầu về một ký tự hoặc tệp thiết bị khối, nó sẽ chuyển yêu cầu đến trình điều khiển thích hợp. Điều quan trọng là phải phân biệt tệp thiết bị với trình điều khiển thiết bị. Bản thân các tập tin không phải là trình điều khiển.

Chúng có thể được coi là cổng thông qua đó người lái xe chấp nhận các yêu cầu. Các tệp thiết bị ký tự cho phép các trình điều khiển được liên kết với chúng thực hiện việc đệm I/O của riêng chúng. Các tệp thiết bị khối được xử lý bởi trình điều khiển, thực hiện I/O theo khối lớn và việc đệm được thực hiện bởi kernel. Trước đây, một số loại phần cứng có thể được biểu diễn bằng bất kỳ loại tệp nào, nhưng trong hệ thống hiện đại cấu hình này hiếm.

Các tập tin thiết bị được đặc trưng bởi hai số: chính và phụ. Số thiết bị chính cho phép hạt nhân xác định tệp thuộc về trình điều khiển nào, trong khi số thiết bị phụ thường xác định một thiết bị cụ thể. thiết bị vật lý. Ví dụ: thiết bị chính số 4 trong Linux tương ứng với trình điều khiển cổng nối tiếp. Vì vậy, cổng nối tiếp đầu tiên (/dev/tty0) sẽ có số chính là 4 và số phụ là 0.

Trình điều khiển có thể giải thích các số thiết bị phụ được chuyển cho họ theo bất kỳ cách nào họ muốn. Ví dụ: trình điều khiển ổ băng từ sử dụng số này để xác định xem băng có cần được cuộn lại sau khi đóng tệp thiết bị hay không.

Cách đây từ rất lâu /devđóng vai trò là một thư mục dùng chung và các tệp thiết bị được lưu trữ trong đó được tạo bằng lệnh mknod và đã bị xóa bởi lệnh rm. Một tập lệnh có tên MAKEDEV đã giúp chuẩn hóa việc tạo các tệp thiết bị.

Thật không may, hệ thống “thô sơ” này đã không đối phó tốt với biển trình điều khiển và các loại thiết bị rộng lớn xuất hiện trong những thập kỷ gần đây. Nó cũng đưa ra tất cả các loại mâu thuẫn tiềm ẩn về cấu hình: ví dụ: các tệp thiết bị tham chiếu đến các thiết bị không tồn tại, các thiết bị không thể truy cập được vì chúng không có tệp thiết bị, v.v.

Ngày nay, hầu hết các hệ thống đều triển khai một số hình thức quản lý tệp thiết bị tự động, cho phép hệ thống đóng vai trò tích cực hơn trong việc cấu hình. tập tin riêng thiết bị. Ví dụ: trên Solaris, thư mục /dev và /devices được ảo hóa hoàn toàn. Trên các bản phân phối Linux, thư mục /dev là thư mục mặc định, nhưng các tệp bên trong nó được quản lý bởi daemon udevd. (Trình nền udevd tạo và xóa các tệp thiết bị để đáp ứng với những thay đổi phần cứng được hạt nhân báo cáo.)

Kết nối socket cho phép các tiến trình giao tiếp mà không bị ảnh hưởng bởi các tiến trình khác. UNIX hỗ trợ một số loại ổ cắm, việc sử dụng chúng thường yêu cầu phải có mạng. Ổ cắm cục bộ chỉ khả dụng trên máy tính cục bộ và được truy cập thông qua các đối tượng hệ thống tệp đặc biệt thay vì qua cổng mạng. Đôi khi các ổ cắm như vậy được gọi là ổ cắm UNIX.

Mặc dù các quy trình khác nhận dạng tệp ổ cắm dưới dạng mục nhập thư mục, nhưng chỉ những quy trình có kết nối thích hợp giữa chúng mới có thể đọc và ghi vào tệp ổ cắm. Như ví dụ phương tiện tiêu chuẩn các hệ thống sử dụng ổ cắm cục bộ bao gồm hệ thống X Window và Syslog.

Ổ cắm cục bộ được tạo bằng lệnh gọi hệ thống ổ cắm. Khi kết nối bị đóng ở cả hai bên, ổ cắm có thể bị xóa bằng lệnh rm hoặc sử dụng cuộc gọi hệ thống hủy liên kết.

Giống như các socket cục bộ, các đường ống được đặt tên cho phép giao tiếp giữa hai tiến trình chạy trên cùng một máy tính. Các kênh như vậy còn được gọi là tệp FIFO (Vào trước, ra trước). Chúng được tạo ra bởi một đội mknod và bị xóa bởi lệnh rm.

Giống như các ổ cắm cục bộ, các phiên bản ống được đặt tên thực tế rất ít. Họ hiếm khi yêu cầu can thiệp hành chính.

Các đường ống được đặt tên và các ổ cắm cục bộ có mục đích gần như giống nhau và sự tồn tại chung của chúng đã phát triển trong lịch sử. Nếu hệ thống UNIX và Linux được phát triển ngày nay thì những phương tiện tương tác này sẽ không thành vấn đề; bây giờ chúng sẽ được thay thế bằng ổ cắm mạng.

Làm việc với các tập tin trong Linux

Trước hết, chúng ta hãy xem các lệnh cơ bản để làm việc với các tệp và thư mục. Để tạo một tập tin sử dụng lệnh chạm, để tạo một thư mục lệnh mkdir.

user@ubuntu$ touch [tên tệp] – tạo một tệp

user@ubuntu$ mkdir [tên thư mục] – tạo một thư mục

Xóa tập tin bằng lệnh rm.Đối với các thư mục, lệnh tương tự được sử dụng, chỉ với khóa chuyển đổi -r (đệ quy).

user@ubuntu$ rm [tên tệp] – xóa tệp

user@ubuntu$ rm -r [tên thư mục] – xóa thư mục

Bạn có thể xem chúng tôi đang sử dụng thư mục nào bằng lệnh pwd. Nội dung của thư mục được xem bằng lệnh ls, thật thuận tiện khi gọi bằng khóa chuyển -l để xem thông tin mở rộng về từng tệp. Việc chuyển sang thư mục được thực hiện bằng lệnh đĩa CD.

user@ubuntu$ pwd – thư mục hiện tại

user@ubuntu$ ls -l [đường dẫn thư mục] – nội dung thư mục

user@ubuntu$ cd [đường dẫn thư mục] – đi tới thư mục

Các thao tác sao chép và di chuyển được thực hiện bằng lệnh cpmv tương ứng. Không trên Linux đội đặc biệtđể đổi tên một tập tin, thay vào đó hãy sử dụng nó mv.

user@ubuntu$ cp [tập tin cần sao chép] [thư mục] – sao chép một tập tin

user@ubuntu$ mv [tệp có thể di chuyển] [thư mục] – di chuyển một tệp

user@ubuntu$ mv [tên tệp hiện tại] [tên tệp mới] – đổi tên tệp

Trong ví dụ này, chúng ta tạo một thư mục test/, truy cập nó bằng lệnh đĩa CD. Trong thư mục này chúng ta tạo 2 file file và file2. Hiển thị nội dung thư mục bằng lệnh ls -l. Sao chép tập tin và đặt tên là file3. Đổi tên file file thành new_file bằng lệnh mv. Cuối cùng, xóa tất cả các file trong thư mục bằng lệnh rm * . * – biểu thị số lượng ký tự bất kỳ. Chuyển đến thư mục trên bằng lệnh đĩa CD.. và xóa thư mục /test.

Quyền trong Linux

Quyền truy cập vào một tập tin hoặc thư mục có thể được đặt bằng lệnh chmod. Chỉ chủ sở hữu tệp và người dùng root mới có quyền này. Trong Linux, mỗi tệp có một bộ quyền tương ứng, được biểu thị dưới dạng 8 bit chế độ. Họ xác định người dùng nào có quyền đọc, chỉnh sửa và thực thi tệp.

Đối số đầu tiên của lệnh chmod là đặc tả quyền. Đối số thứ hai và tiếp theo là tên của các tệp có quyền truy cập sẽ được thay đổi. Khi sử dụng ký hiệu bát phân, chữ số đầu tiên chỉ chủ sở hữu, chữ số thứ hai chỉ nhóm và chữ số thứ ba chỉ người dùng khác. Nếu bạn cần đặt bit setuid/setgid hoặc thêm một chút, bạn nên chỉ định không phải ba mà là bốn chữ số bát phân: chữ số đầu tiên trong trường hợp này sẽ tương ứng với ba bit đặc biệt.

Bảng hiển thị tám sự kết hợp có thểđối với mỗi bộ ba bit, trong đó các ký tự r, w và x lần lượt biểu thị các quyền đọc, ghi và thực thi.

Ví dụ, lệnh chmod 711 myprog cung cấp cho chủ sở hữu tất cả các quyền và những người dùng khác chỉ có quyền thực thi 9 .

Khi sử dụng cú pháp ghi nhớ, bạn kết hợp một tập hợp người biểu diễn (u cho người dùng, g cho nhóm hoặc o cho người khác) với một toán tử (+add, –delete và =sign) và một tập hợp các quyền. Hơn miêu tả cụ thể Cú pháp ghi nhớ có thể được tìm thấy trong trang man cho lệnh chmod, nhưng cú pháp này luôn được học tốt nhất thông qua các ví dụ.

Các tình huống thường xảy ra khi chạy một tập tin, nó phàn nàn về việc thiếu quyền. Vấn đề này có thể được giải quyết bằng lệnh tập tin sudo chmod a+x. Lệnh có nghĩa là tệp tệp được đặt để thực thi quyền cho tất cả người dùng.

Với tùy chọn -R, lệnh chmod sẽ cập nhật đệ quy các quyền của tất cả các tệp trong thư mục được chỉ định và các thư mục con của nó. Ở đây thuận tiện nhất là tuân thủ cú pháp ghi nhớ, sao cho chỉ những bit được đặt rõ ràng mới được thay đổi. Ví dụ, lệnh
chmod -R g+w mydir thêm quyền ghi nhóm vào thư mục mydir và nội dung của nó mà không ảnh hưởng đến các quyền khác.


Đăng ký của chúng tôi

Bất kỳ hệ điều hành giống UNIX nào cũng bao gồm một hạt nhân, một số hệ thống và chương trình ứng dụng. Các chương trình hệ thống sử dụng các tiện ích do kernel cung cấp để thực hiện các chức năng khác nhau của hệ điều hành. Hệ thống và tất cả các chương trình khác được thực thi “trên bề mặt hạt nhân” - ở chế độ người dùng. Thông thường, hệ điều hành chứa các trình biên dịch và thư viện tương ứng của chúng (thư viện GCC và C cho Linux), mặc dù không phải tất cả các ngôn ngữ lập trình đều phải là một phần của hệ điều hành. Tài liệu, và đôi khi thậm chí cả trò chơi, có thể là một phần của nó. Thông thường, thành phần của hệ điều hành được xác định bởi nội dung của đĩa cài đặt.

Hệ điều hành Linux có thể được xem như một kim tự tháp Unix, được thể hiện trong hình.

Hình các cấp độ hệ điều hành Unix

Thực ra mức độ thấp hơn chứa phần cứng bao gồm bộ xử lý trung tâm, bộ nhớ, đĩa, thiết bị đầu cuối và các thiết bị khác.

Bare metal chạy một hệ thống Unix có chức năng quản lý phần cứng và cung cấp giao diện cuộc gọi hệ thống cho tất cả các chương trình. Các cuộc gọi hệ thống này cho phép chương trình tạo và quản lý các quy trình, tệp và các tài nguyên khác.

Tất cả các chương trình thực hiện cuộc gọi hệ thống bằng cách đặt các đối số trong các thanh ghi CPU và thực hiện lệnh ngắt mô phỏng để chuyển từ chế độ người dùng sang chế độ kernel và chuyển quyền điều khiển sang hệ điều hành Unix. Các chức năng thư viện chịu trách nhiệm vận hành các lệnh ngắt mô phỏng, mỗi lệnh gọi hệ thống. Vì vậy, để gọi lệnh gọi hệ thống READ, chương trình C phải gọi thủ tục thư viện READ.

Ngoài thư viện hệ điều hành và lệnh gọi hệ thống, tất cả các phiên bản Unix đều chứa một số lượng lớn các chương trình tiêu chuẩn. Các chương trình này bao gồm: bộ xử lý lệnh(shell), trình biên dịch, trình soạn thảo, chương trình xử lý văn bản và các tiện ích tệp.

Nhiều tiện ích có thể được phân thành một trong ba loại:

1 Biên tập viên;

Bộ lọc - đọc thông tin đầu vào nhận được từ người dùng hoặc từ một tệp hoặc nguồn khác, nghiên cứu và xử lý thông tin đó, sau đó tạo ra kết quả. Để viết tập lệnh lọc, hãy sử dụng ngôn ngữ đặc biệt AWK. Các bộ lọc bao gồm – grep, sắp xếp, wc, pr, cmp, comm., cpio, fmt, fgrep, srd;

Các chương trình liên lạc – được sử dụng để liên lạc với những người dùng khác trong hệ thống của bạn và các hệ thống khác.

Vì vậy, chúng ta có thể nói về ba giao diện trong hệ điều hành Unix: giao diện cuộc gọi hệ thống, giao diện chức năng thư viện và giao diện được hình thành bởi một tập hợp các chương trình tiện ích tiêu chuẩn.

Mặc dù đây là giao diện sau được hầu hết người dùng cân nhắc hệ thống Unix, trên thực tế, nó hầu như không liên quan gì đến bản thân hệ điều hành và có thể dễ dàng thay thế.

Bản phân phối Linux

Phân phối Linux là một bộ gói phần mềm bao gồm các thành phần cơ bản của hệ điều hành (bao gồm cả nhân Linux), một bộ nhất định ứng dụng phần mềm và một chương trình cài đặt cho phép bạn cài đặt hệ điều hành GNU/Linux trên máy tính của người dùng mà không cần sự tham gia của chuyên gia có trình độ cao và một bộ chương trình ứng dụng cần thiết cho một ứng dụng cụ thể của hệ thống.

Có nhiều cách phân phối riêng lẻ khác nhau. Đây chỉ là một vài trong số họ:

định hướng (hoặc mục đích) của bộ phân phối đến một lĩnh vực ứng dụng cụ thể;

yêu cầu cho phần cứng;

shell đồ họa được sử dụng (ví dụ: KDE, GNOME hoặc XFce);

Sự sẵn có của các công cụ bản địa hóa cung cấp sự hỗ trợ mà bạn cần;

phương tiện mà hệ thống có thể được khởi chạy từ đó;

tổ chức quy trình khởi động hệ thống (System V hoặc BSD);

hệ thống quản lý gói được sử dụng (ví dụ: dpkg trong Debian, RPM trong Fedora Core). Phần mềm có trong gói này có một trong hai dạng chính: dưới dạng tập tin nhị phân, được thiết kế để cài đặt trực tiếp trên hệ thống của bạn mà không cần bất kỳ xử lý bổ sung nào (chẳng hạn như biên dịch) và như văn bản nguồn, thường chứa văn bản bằng một số ngôn ngữ lập trình, được lưu trữ ở định dạng tar và được nén bằng gzipped, cũng như các tệp hỗ trợ cần thiết để biên dịch ứng dụng từ các tệp gói;

cấu trúc thư mục hệ thống tệp (mặc dù tất cả các hệ thống tệp, nếu có thể, phải tuân thủ FHS - Tiêu chuẩn phân cấp hệ thống tệp);

câu chuyện về phả hệ hoặc nguồn gốc của bản phân phối (hầu hết các bản phân phối hiện đại đều có nguồn gốc từ Red Hat hoặc Debian);

thành phần của phần mềm được cài đặt cơ bản;

sự sẵn có của các gói bổ sung;

tính sẵn có và thành phần của các chương trình thương mại có trong bản phân phối;

cung cấp các công cụ quản lý hệ thống v.v...

Sau khi xem xét chi tiết hơn tất cả các khía cạnh khác nhau của các bản phân phối, chúng tôi có thể nói rằng có ba tiêu chí cơ bản để phân loại các bản phân phối Linux:

kiểu tải;

hệ thống quản lý gói;

mục đích phân phối.

5. Hệ thống tập tin là một phần của hệ điều hành chạy

các tập tin, cung cấp các phương pháp lưu trữ dữ liệu và tổ chức truy cập vào nó, trên phương tiện thông tin hoặc phần của nó. Trên hệ thống Unix, hệ thống tệp là một thiết bị (đĩa cứng hoặc CD) hoặc phân vùng đĩa được sử dụng để lưu trữ tệp.

Nền tảng hệ thống tập tin hệ điều hành Linuxđã trở thành - Ext2, với tên file dài, file dài và hiệu suất cao. Tuy nhiên, Linux cũng hỗ trợ các hệ thống tệp khác sử dụng hệ thống tệp. Hệ thống NFS. Khi xây dựng một hệ điều hành, Linux sẽ nhắc bạn chọn hệ thống tệp sẽ được tích hợp vào kernel. Các hệ thống tệp khác, nếu cần, có thể được tải động trong thời gian chạy dưới dạng mô-đun.

Ext2 rất giống với hệ thống tệp BSD với những thay đổi nhỏ. Vị trí của hệ thống tệp Ext2 trên đĩa được hiển thị trong hình.

Hệ thống tệp Linux được tổ chức dưới dạng cây với một nút ban đầu được gọi là nút gốc (được viết: " / » ), có các đỉnh trung gian tương ứng với các thư mục và các lá của nó tương ứng với các tệp và thư mục trống. Biểu tượng " / " cũng được sử dụng để phân tách tên thư mục. Mỗi thư mục và tập tin trong hệ thống tập tin có một địa chỉ duy nhất Họ và tên. Thư mục chứa hai tên đặc biệt: tên " . " - đặt tên cho thư mục này và tên " . . " - đặt tên cho thư mục "cha" của thư mục này. Hệ thống tệp Linux sử dụng hai tên đường dẫn: đầy đủ (tuyệt đối), bắt đầu từ thư mục gốc, tức là. từ dấu hiệu " / " và có liên quan (tương đối), bắt đầu bằng tên của thư mục hiện tại.

6.Ext2 rất giống với hệ thống tệp BSD với những thay đổi nhỏ. Vị trí của hệ thống tệp Ext2 trên đĩa được hiển thị trong hình.

Hình - Vị trí hệ thống tệp Ext2 trên đĩa

Thay vì các nhóm hình trụ, Ext2 chia đĩa thành các nhóm khối. Bộ mô tả nhóm chứa thông tin về vị trí của ảnh bitmap, số khối trống và nút i trong nhóm, cũng như số lượng thư mục trong nhóm. Trong hai mảng bit (mảng bit khối và mảng bit nút i), các khối miễn phí và nút i miễn phí được theo dõi. Kích thước của mỗi bitmap là một khối.