Nhập môn hệ điều hành introduction to operating systems - File system

14. Trình tiện ích mc (midnight commander) -chạy chương trình: mc -dichuyển con trỏ -Xem thư mục -chuyển đến thư mục cha -Xem tập tin: F3, ESC: thoát -Sửa nội dung tập tin: F4, F2: lưu; ESC: thoát

pptx134 trang | Chia sẻ: nguyenlam99 | Lượt xem: 1085 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Nhập môn hệ điều hành introduction to operating systems - File system, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
FILE SYSTEMNguyễn Xuân Vinhnguyenxuanvinh@hcmuaf.edu.vnNHẬP MÔN HỆ ĐIỀU HÀNHINTRODUCTION TO OPERATING SYSTEMS[214242]2Introduction FilesystemHow are data stored in storage?How do users access the data?Data organization, files and directoriesFilesystem types Disk FS: ext2, ext3, FAT, FAT32 & NTFSNetwork FS: Samba & NFSFlash FS: JFFS2Special FS: proc FS3Introduction (cont’d)You should understand Linux FSWhy?Everything in Linux is file, if it is NOT processEasy to useOpen file, read/write and close the fileUnlike Windows, Linux FS is standard FSEveryone should learn standards4Filesystem Hierarchy StandardStarted by Dennis Ritchie, 1993Defines the main directories and their contents in most Linux-based systemsCurrent Version: 2.3, 29 Jan 2004.5FHSThere is not any drive C:, D:, All directories are under “/”“/” is the root directoryIt is possible to have multiple partitionsto multiple filesystems6The “/”The primary hierarchy in FSHThe root of tree of filesystem All paths start form hereThere is only one “/” in filesystem7The “/” 8bootLinux kernelBoot loader configuration If you lost bootYou cannot boot your OS9boot10binEssential programs Need for system startupBasic commands for Navigating in filesystemFile management11bin12devEverything is file Hardware components (devices) are fileHard diskKey boardAll device files are hereDirect interaction with device driver Open the device fileRead & Write 13dev14etcSystem configuration directoryWhat is done by the registry in WindowsAll configuration file are text filesYou can view and edit it manually 15etc16home Home directory of userEach user has a directory/home/bahador/home/hamed All files of user are stored here17libPrograms need librariesDynamically linked librariesProgrammers need librariesAll essential libraries are hereNeeded for system startup 18lib19procKernel’s interfaceKernel pseudo-directory Special directoryIt is NOT a directory on hard disk Kernel ConfigurationKernel State monitoring20proc21rootHome directory of rootDon’t confuse / is the “root of Filesystem” root is the name of system admin /root is the admin 22sbinSystem configuration programsFormat hard diskManage hardwareOnly “root” can run the programs 23sbin24tmpTemporary directoryAll temp files are created by programsYour temp filesIt is emptied regularly 25usrSecondary hierarchy Very useful programsWe usually use themcompiler, tools Are not essential for system startup26usr27varThe variable directory All dynamic filesUser cannot change the files28var29Helps Some documents are in /usr/share/docInfo pages are not complete helpinfo Man pages/usr/share/manman1: user commands, man8: System administrationman 30Permissions There are 3 basic permissionsRead (r)Write (w)Execute (x)How to find themls -l How to change themchmod +/- r/w/x 31MountingMountTo add a filesystem to other filesystem Add you cool-disk FS to you laptop FSHow?mount mount -t vfat /dev/sdb1 /mnt/flashDon’t forget the umountumount umount /mnt/flash32Linux FS vs. Windows FSThere is not drive C:, D:Top hierarchy is /Path separator is / not \File extensions have NOT any meaning There is not hidden attribute, hidden files are started by . Linux ext file systemLinux được thiết kế và thực thi một file system mới được chứa trong nhân của hệ điều hành Linux chuẩn. File system này được gọi là Second Extended File System (Ext2 fs)3.1.1. Các đặc tính “tiêu chuẩn” của Ext2Hỗ trợ các kiểu tập tin chuẩn của Unix: các tập tin thường, thư mục, các tập tin dành riêng thiết bị và các symbolic link.Ext2 fs có khả năng quản lý những hệ thống tập tin được tạo trên những phần chia (partition) lớn. Mã nhân của hệ điều hành gốc bị giới hạn kích thước tối đa của hệ thống tập tin là 2GB, cơ cấu hiện tại trong lớp VFS (Virtual File System) đã nâng giới hạn này lên 4TB, do vậy có khả năng sử dụng đĩa có dung lượng lớn mà không cần thiết phải tạo nhiều partitionExt2 fs hỗ trợ tên tập tin dài đến 255 ký tự. Giới hạn này có thể được nâng lên 1012.Ext2 dành riêng một số khối (block) cho người dùng cao cấp (root). Thông thường 5% số lượng các block là dành cho root. Điều này cho phép quản trị hệ thống khôi phục dễ dàng từ những tính huống mà xử lý của người dùng làm đầy hệ thống tập tin.3.1.2. Một số đặc tính “nâng cao” của Ext2 fsNgười dùng có thể thiết lập các thuộc tính cho một tập tin hay một thư mục. Trong trường hợp thiết lập thuộc tính cho thư mục, các tập tin mới được tạo trong thư mục sẽ thừa hưởng các thuộc tính này.Cho phép người quản trị hệ thống lựa chọn kích thước khối (block) logic khi tạo hệ thống tập tin. Kích thước khối có thể là 1024, 2048 và 4096. Sử dụng kích thước khối lớn có thể làm tăng tốc độ nhập xuất cần được thực hiện để truy nhập một tập tin do có ít yêu cầu nhập xuất hơn và do đó có ít thao tác truy tìm vị trí trên đĩa hơn nhưng sẽ lãng phí không gian đĩa hơn.Ext2 thực thi các symbolic link nhanh. Một symbolic link không sử dụng bất kỳ khối dữ liệu nào trên hệ thống tập tin. Nội dung của tập tin liên kết không được lưu trữ trong một khối dữ liệu mà được lưu trữ trong i-node của bản thân nó. Chính sách này có thể tiết kiệm được một số không gian đĩa (không cần cấp phát khối dữ liệu) và tăng tốc độ thao tác liên kết (không cần đọc khối dữ liệu khi truy nhập một liên kết. Chiều dài tối đa của tên tập tin liên kết trong một symbolic link là 60 ký tựExt2 lưu trữ vết của trạng thái hệ thống tập tin có tác dụng kiểm tra hệ thống khi có các thay đổi.3.1.3. Cấu trúc vật lýTất cả các cấu trúc dữ liệu được đặt kích cỡ dựa trên kích thước một block. Kích thước một block phụ thuộc vào kích thước của file system. Ví dụ: đĩa mềm kích thước block là 1KB (2 sector), kích thước block trên partition 10GB có thể là 4KB.File system được chia thành các block group, số lượng các block group cũng phụ thuộc vào kích thước của file system. Ví dụ: đĩa mềm chỉ có một block group, một partition 10GB có thể được chia thành 30 block group.Tại đầu mỗi block group có chứa các thông tin xác định vị trí, số block và các thông tin mô tả trạng thái hệ thống hiện hành. Các thông tin này bao gồmSuper block: Chứa các thông tin cơ bản nhất và các thuộc tính của file system. Ví dụ: tổng số i-node, tổng số khối, trạng thái của file systemGroup descriptors: Là một mãng cấu trúc, mỗi cấu trúc mô tả một block group, vị trí bảng i-node của nó, bảng đồ khối (block bitmap) và bảng đồ i-node (i-node bitmap)Block bitmap: đặt tại block đầu tiên của block group. Mỗi bit đại điện cho trạng thái hiện hành của một block trong block group. Trong đó:Giá trị 1 nghĩa là block đang được sử dụngGiá trị 0 là block chưa được sử dụng.Block thứ 1 của block group được đại diện bằng bit thứ 0 của byte thứ 0Block thứ 2 của block group được đại diện bằng bit thứ 1 của byte 0Block thứ 8 đại diện bằng bit thứ 7 của byte 0Block thứ 9 của block group được đại diện bằng bit 0 của byte thứ 1i-node bitmap: Tương tự như block bitmap, mỗi bit đại diện cho một i-node trong i-node table. Mỗi một block group có một i-node bitmap.i-node table: Được sử dụng để lưu vết tất cả các tập tin: vị trí, kích thước, kiểu và quyền truy nhập của tập tin đều được lưu trữ trong các i-node. Tên tập tin không được lưu trữ trong i-node do trong bảng i-node tất cả các tập tin đều được tham chiếu bởi số i-node (i-node number). Số i-node là một chỉ số trong bảng i-node chỉ tới một cấu trúc i-node. Mỗi block group chứa một i-node tableData block: Được sử dụng để lưu trữ nội dung tập tin, các danh sách thư mục, các thuộc tính mở rộng, các symbolic link Cấu trúc của file system Ext2I-nodeMỗi tập tin được đại diện bằng một cấu trúc gọi là i-node. I-node là một bảng có kích thước cố định được sử dụng để lưu trữ tất cả các thông tin về một tập tin và mỗi tập tin chỉ có một i-node duy nhất. Những thông tin này bao gồm: chủ nhân tập tin, thời điểm thay đổi nội dung tập tin, thời gian tập tin được truy nhập sau cùng, kích thước, các quyền trên tập tin, số lượng tập tin liên kếtĐịa chỉ của các khối dữ liệu đã cấp phát cho một tập tin được lưu trữ trong i-node của nó. I-node chứa một tập hợp các con trỏ. Những con trỏ này trỏ đến các khối dữ liệu của tập tin. 10 con trỏ đầu tiên được tìm nạp từ đĩa đến bộ nhớ chính khi tập tin được mở. Đối với tập tin lớn hơn con trỏ tiếp theo trong i-node sẽ chỉ đến một block trên đĩa gọi là single indirect block. Block này chứa các địa chỉ dữ liệu (block) bổ sung. Nếu vẫn không đủ, con trỏ thứ 12 trong i-node trỏ tới double indirect block. Block này có chứa địa chỉ của block chứa danh sách các single indirect block. Mỗi single indirect block trỏ tới hàng trăm khối dữ liệu. Nếu vẫn không đủ một triple indirect block cũng có thể dược dùngCấu trúc của i-nodeThư mục (directory)Các thư mục được cấu trúc trong một cây có thứ bậc. Mỗi một thư mục có thể chứa các tập tin và các thư mục khác.Các thư mục được xây dựng như là một tập tin có kiểu đặc biệt. Thực tế, một thư mục là một tập tin có chứa một danh sách các mục từ, mỗi mục từ có cấu trúc đơn giản bao gồm hai trường: số i-node của tập tin và tên tập tin đó. Khi một tiến trình có tham chiếu đến thư mục, mã nhân hệ điều hành tìm kiếm trong các thư mục để tìm kiếm số i-node tương ứng. Sau khi tên đã được chuyển đổi thành số i-node, i-node được nạp vào trong bộ nhớ và được sử dụng bởi những yêu cầu tiếp theo.Cấu trúc của thư mục3.2. Hệ thống tập tin Ext3Bắt đầu từ phiên bản Red Hat Linux 7.2 hệ thống tập tin mặc định là Ext3.File system Ext3 là một phiên bản mới của Ext2, nó cải thiện một số đặt tính chính của Ext2 như sau:Tính sẵn có: Nhờ vào nhật ký được cung cấp bởi file system Ext3, trong trường hợp hệ thống bị tắt đột ngột, Ext3 không cần thực hiện ngay thao tác kiểm tra tính nhất quán của hê thống khi file system được mount. Ext3 chỉ kiểm tra tính nhất quán trong một số trường hợp đặt biệt khi có lỗi về đĩa cứng xảy ra. Thời gian để khôi phục một file system Ext3 không phụ thuộc vào kích thước của nó mà chỉ phụ thuộc vào kích thước của nhật ký được dùng để bảo trí tính nhất quán của hệ thống tập tin.Tính toàn vẹn dữ liệu: File system Ext3 cung cấp một cơ chế đảm bảo tính toàn vẹn dữ liệu trong trường hợp hệ thống bị tắt đột ngột. Ext3 cho phép người dùng chọn kiểu và mức độ bảo vệ dữ liệuTốc độ: Ext3 có tốc độ cao hơn Ext2Hỗ trợ phục hồi dữ liệu hiệu quả hơn ext2 (sử dụng chương trình e2fsck để phục hồi lại những hư hỏng dữ liệu) Dễ dàng chuyển đổi từ ext2 sang ext33.3. Virtual File System-VFS3.3.1. Nguyên lýNhân hệ điều hành Linux có chứa một lớp hệ thống tập tin ảo (VFS). Được sử dụng trong suốt quá trình hệ thống gọi kích hoạt các tập tin. VFS là một lớp gián tiếp quản lý các lời gọi hệ thống tập tin và gọi các chức năng cần thiết trong mã hệ thống tập tin vật lý để thức hiện nhập xuất.Cơ chế gián tiếp này được sử dụng thường xuyên trong các hệ điều hành Linux để dễ dàng hoà nhập và sử dụng được nhiều kiểu file system khac nhau.Khi một tiến trình phát sinh lời gọi file system, nhân hệ điều hành sẽ gọi một chức năng được chứa trong VFS. Chức năng này quản lý các thao tác độc lập cấu trúc và chuyển hướng lời gọi tới một chức năng chứa trong mã hệ thống tập tin vật lý. Mã hệ thống tập tin sử dụng các chức năng lưu trữ bộ đệm (buffer cache) để yêu cầu nhập/xuất trên các thiết bị3.3.2. Cấu trúcVFS định nghĩa một bộ các chức năng mà hệ thống tập tin được thức thi.VFS biết về các kiểu file system được hỗ trợ trong nhân của hệ điều hành bằng cách là sử dụng một bảng được định nghĩa trong quá trình cấu hình nhân của hệ điều hành. Mỗi mục từ trong hệ thống này mô tả một kiểu file system nó có chứa tên của kiểu file system và một con trỏ hàm đã gọi trong quá trình thao tác mount file system vào hệ thống.Khi một file system được mount hàm mount tương ứng được gọi. Chức năng của hàm này là đọc super block từ đĩa để khới nạp các biến nội của nó và trả về một bộ mô tả file system đã mount cho VFS. Các hàm của VFS sử dụng bộ mô tả này để truy nhập file system.Bộ mô tả file system được mount chứa nhiều kiểu dữ liệu: kiểu dữ liệu thông tin là phổ biến với mọi file system, kiểu con trỏ tới hàm được cung cấp bởi mã nhân hệ điều hành file system vật lý và dữ liệu riêng được bảo quản bởi mã file system vật lý. Các con tỏ hàm trong bộ mô tả hệ thống tập tin cho phép VFS truy nhập file system.3.4. Tổ chức logic của File system Linux3.4.1. Các kiểu tập tin trong LinuxRegular: Là tập tin chỉ chứa dữ liệu thông thường. Dữ liệu có thể là chương trình, tập tin dạng text, mã nguồn...Directory: Tương tự như kiểu regular, nó chứa một bộ các byte dữ liệu là danh sách các tập tin khác. Không có giới hạn về kiểu tập tin mà một thư mục có thể chứa.Character device và block device: Các chương trình Linux giao tiếp với các thiết bị phần cứng thông qua hai kiểu tập tin đặc biệt gọi là character device và block device. Các tập tin character device tham chiếu đến các trình điều khiển thiết bị muốn thực hiện các thao tác nhập/xuất bộ đệm như là terminal. Các tập tin block device được liên kết với các trình điều khiển thiết bị thực hiện các thao tác nhập xuất chỉ trong phạm vi những đoạn lớn 512 hay 1024 byte. Một số kiểu phần cứng như là đĩa có thể đại diện cho cả hai kiểu tập tin character device và block device.Domain socket: Được kết nối giữa các tiến trình, cho phép chúng truyền thông với nhau một cách nhanh chóng và tin cậy. Có nhiều kiểu khác nhau của domain socket, phần lớn chúng được sử dụng trong giao tiếp mạng.Name pipes: Cho phép truyền thông giữa hai tiến trình không có quan hệ chạy trên cùng một máy.Hard link: Thực sự không phải là một tập tin mà là một tập tin liên kết. Mỗi tập tin có ít nhất một hard link. Khi một hard link mới được tạo cho một tập tin, một tên hiệu (alias) cho tập tin đó sẽ được tạo ra. Nội dung của hard link và tập tin nó liên kết tới luôn giống nhau. Khi thay đổi nội dung của hard link, nội dung của tập tin mà nó liên kết tới cũng thay đổi theo và ngược lại.Symbolic link: Là một tập tin chỉ chứa tên của tập tin khác. Khi nhân hệ điều hành mở hoặc duyệt qua các symbolic link, nó được dẫn đến tập tin mà symbolic link chỉ đến thay vì chính bản thân symbolic link. Sự khác nhau quan trọng giữa symbolic link và hard link là hard link là tham chiếu trực tiếp trong khi đó symbolic link là một tham chiếu bởi tên tập tin.3.4.2. Tổ chức cây thư mụcMọi hệ điều hành điều có một phương pháp để lưu trữ các thư mục và tập tin của chúng để tạo điều kiện cho các công tác bổ sung sửa đổi và các thay đổi khác về sau. Trong Linux mọi tập tin đều được lưu trữ trên hệ thống với một tên duy nhất, trong các thư mục cũng có thể chứa các tập tin và thư mục khác nữa.Hệ thống tập tin Linux là hệ thống có cấu trúc cây. Cây được đặt tại một vị trí gốc gọi là root, được biểu diễn bằng dấu /. Mọi phần tử trong cây hệ thống tập tin là các thư mục và tập tin chúng đều được nối tới root.Chú y: Red Hat Linux sử dụng thuật ngữ root trong nhiều trường hợp khác nhau. Có tài khoản root (người có quyền làm mọi tác vụ trên hệ thống), có thư mục chủ của tài khoản đăng nhập root (/root), và thư mục root trong toàn thể file system (/).Để mô tả một vị trí xác định trong cây hệ thống tập tin ta phải chỉ ra đường dẫn (path). Đường dẫn đến một vị trí có thể được định nghĩa như một đường dẫn tuyệt đối từ điểm root, hoặc như một đường dẫn tương đối được bắt đầu từ vị trí hiện hành.Khi chỉ ra một đường dẫn ta chỉ cần thực hiện “theo vết đường đi” trong cây hệ thống tập tin bằng cách liệt kê tuần tự những thư mục ta đi qua từ điểm này đến điểm khác. Mỗi thư mục được liệt kê trong thứ tự này phải được phân cách nhau bằng dấu /.Tổ chức cơ bản của hệ thống thư mục trong Linux bao gồm những thư mục chính sau: /devetclibmntoptprocsbinusrvar/dev: Chứa những thư mục từ file system đại diện cho các thiết bị được gắng với hệ thống. Những tập tin này cần thiết cho hoạt động của hệ thống./etc: Chứa những tập tin cấu hình của các dịch vụ trên máy tính. /lib: Chứa những thư viện cần thiết để thi hành các tập tin nhị phân được chứa đựng trong /sbin và /bin. Những thư viện được chia sẻ (dùng chung) này là rất quan trọng để khởi động hệ thống và thi hành các lệnh trong hệ thống tập tin root./mnt: Tham chiếu và chứa các file system được mount tạm thời vào hệ thống. Ví dụ: CD-ROM, đĩa mềm/opt: Chứa đựng các gói phần mềm ứng dụng tĩnh. Các gói phần mềm này được chứa đựng trong từng thư mục con riêng rẽ. Trong trường hợp các gói lớn chứa nhiều gói con nhỏ hơn, mỗi gói con này có thể thực hiện một chức năng hoàn chỉnh nào đó, mỗi gói con này cũng được lưu trữ riêng trong từng thư mục con trong thư mục của gói lớn. Với cách thức tổ chức này, người quản trị hệ thống sẽ dễ dàng xác định được vai trò của mỗi tập tin trong một gói cụ thể nào đó./proc: Chứa các tập tin đặc biệt đại diện cho trạng thái hiện tại của nhân hệ điều hành./sbin: Thư mục chứa các tập tin thi hành dành riêng cho người dùng root sử dụng và các tập tin cơ bản để khởi động hệ thống thêm vào cùng với các tập tin nhị phân có trong thư mục /bin./usr: Chứa các tập tin có thể được dùng chung trên toàn hệ thống. Thư mục /usr thường được cài đặt riêng trên một partition độc lập và được mount vào root với quyền chỉ đọc. Trong usr có chứa nhiều thư mục con: bin chứa các tập tin thi hành, doc chứa các tài liệu văn bản, etc chứa các tập tin cấu hình, game chứa các trò chơi/usr/local: Được dành cho người quản trị hệ thống sử dụng khi cài đặt phần mềm cục bộ. Thư mục này cần được bảo vệ để tránh bị ghi đè lên khi phần mềm hệ thống được cập nhật. Nó có thể được sử dụng cho các chương trình và dữ liệu cho phép dùng chung trên mạng mà không có trong /usr./var: Chứa các tập tin dữ liệu khả biến như là tập tin, thư mục “đường ống”, dữ liệu nhật ký (log), các tập tin tạm thời3.5. Getting Started 3.5.1. Đăng nhập hệ thốngTerminal hay PC có cài HĐH Unix/Linux và một tài (account) và mật khẩu (password) Đăng nhập ( login )Những loại người dùng : superuser (root), user thường.Mật khẩu : phân biệt chữ hoa, thường; được mã hóa3.5.2. Giao diện người sử dụngDòng lệnh (Shell prompt - command line) : thường dùng bởi root để thao tác nhanh.Giao diện đồ họa : trực quan, dễ nhớ, là giao diện ưa thích của người dùng thường3.5.3. Giao tiếp qua dòng lệnh Sau khi đăng nhập, Linux sẽ chuyển đến home directory của user và chạy một chương trình gọi là shell. Shell là giao tiếp giữa người sử dụng và HĐH hay nói cách khác shell là một chương trình được thiết kế để nhận lệnh của người sử dụng và thi hành lệnh.Red Hat Linux có nhiều lọai shell: sh (Bourne); Korn (ksh); C (csh); bash (Bourne Again Shell)Dấu nhắc shell (dấu nhắc đợi lệnh) # khi ta là root (uperuser), ở bất kỳ shell nào % dấu nhắc khi chạy C shell $ dấu nhắc khi chạy Bourne shell hoặc Korn shell ~ dấu nhắc khi chạy tcsh shell Shell mặc định của Linux là bash, file bash trong /bin Nhận diện máy UNIX đang dùng : tên, phiên bản, tên máy, kiến trúc bộ vi xử lý, uname –aNhận diện shell đang làm việc : lệnh echo echo $SHELL Thay đổi shell làm việc Thay đổi vĩnh viễn : dùng lệnh usermod usermod –s /bin/sh thuanThay đổi tạm thời (chuyển tạm thời qua shell khác) : tên shell $ bash [nam@localhost nam] $ exit (hoặc Ctrl-D) $3.5.4. Giao diện đồ họaCó tên gọi khác nhau tùy thuộc HĐH: Solaris : CDE (Common Desktop Environment)Linux : X Window, phổ biến là KDE, GNOMEX Window bao gồm : hệ thống cung cấp dịch vụ cửa sổ, thư viện đồ họa , Quy ước đặt tên cho tập tin : Dài tối đa 255 ký tựPhân biệt chữ hoa và chữ thường : taptin khác với TaptinTránh dùng các ký tự đặc biệt : *, ?, -, SPACE3.6. Sử dụng các lệnh cơ bản6.1.1 Dùng lệnh man để tìm trợ giúp Cú phápman ví dụ:man useradd 3.6.2. Thêm user mới Muốn thực hiện lệnh này, người sử dụng phải là superuser (root)Cú phápuseradd Một user mới tạo phải được gán password trước khi có thể đăng nhập bằng lệnh passwdpasswd 3.6.3. lsls lists information about files on the system. By default ls shows you the names of unhidden files in the current directory. A common usage of ls is ls -la, which lists files in a longer format, and lists all files, including hidden files.Cú phápls [OPTION] [FILE]Các Option -a: Liệt kê tất cả các tập tin có trong thư mục kể cả tập tin ẩn. -l: Hiển thị thông tin chi tiết về nội dung tập tin. -R: Liệt kê cả nội dung của các thư mục con trong thư mục muốn xem. -S: Sắp xếp danh sách tập tin theo kích thước giảm dần. -t: Sắp xếp danh sách tập tin theo thứ tự ngày tháng thay đổi tập tin. -F: Bổ sung thêm một ký tự vào cuối mỗi mục từ: /là thư mục; @ là symbolic link tới tập tin khác; * tập tin thi hành.Trong trường hợp liệt kê nội dung chi tiết thư mục. Kết quả bao gồm nhiều trường như sau:Các ký tự mô tả kiểu tập tinCác ký tự mô tả kiểu tập tinRegular -Directory dCharacter device cBlock device bDomain socket sName pipe pSymbolic link lBảng ghi các các giá trị quyền truy cập Bảng ghi các các giá trị quyền truy cập khi dùng lệnh 'chmod' (Các giá trị nhị phân trong ngoặc đơn dùng để đối chiếu)Các giá trị quyền  truy cập của một lớpQuyền truy cập viết trong dạng stringÝ nghiã0 (000) 1 (001) 2 (010) 3 (011) 4 (100) 5 (101) 6 (110) 7 (111)–r-w-x -r-w+x -r+w-x -r+w+x +r-w-x +r-w+x +r+w-x +r+w+x3.6.4. Lệnh mkdirTạo thư mục mớiCú pháp mkdir [option] directoryOption: -p: Cho phép tạo cả cây thư mục (tạo cả thư mục cha nếu chưa có) như yêu cầu3.6.5. Lệnh cdThay đổi thư mục hiện hànhCú phápcd directorycd /pwd 3.6.6. Lệnh cpThực hiện sao chép các tập tin thư mụcCú pháp cp [option] source dest Sao chép tập tin source đến tập tin dest cp [option] source directorySao chép nhiều tập tin từ thư mục source đến thư mục directory Các optionl: Tạo hard link cho các tập tin thay vì sao chép.s: Tạo symbolic link cho các tập tin thay vì sao chép.i: Xuất hiện lời nhắc trước khi ghi đè lên tập tin hiện có.3.6.7. Lệnh mvThực hiện di chuyển hay đổi tên tập tin.Cú phápmv [option] source destThực hiện đổi tên tập tin từ source thành destmv [option] source directoryThực hiện di chuyển các tập tin trong thư mục source đến thư mục directoryCác option -i: xuất hiện thông báo trước khi ghi đè -f: không xuất hiện lời nhắc trước khi ghi đè.3.6.8. Lệnh rmdirXóa thư mục rỗngCú pháprmdir [option] directoryOption:p: Cho phép xóa bỏ cả cây thư mục (xóa bỏ các thư mục cha nếu nó rỗng)3.6.9. Lệnh rmThực hiện xóa bỏ tập tin/ thư mục. Mặc định thì lệnh này không xóa các thư mục.Cú pháprm [option] file/directoryOptionr: xóa tất cả nội dung của các thư mục conf: Không thông báo khi thực hiện xóa tập tini: Nhắc trước khi xóa.3.6.10. Lệnh cat – xem nội dung tập tincat cat ...cat ... > A COMPARISON OF EXT2, EXT3 AND EXT4 PERFORMANCEThe goal of this post is to study the sequential read and write performance that one can get from a RAID array using various local file systems available in Linux, specifically the ext2, ext3 and ext4 file systems. Ext3 file system adds journal feature to ext2 for better reliability. Ext4 is an incremental update to ext3; it has new features such as being able to create up to 1 exabyte volumes and up to 16 terabyte files. It introduces further performance-related enhancements such as using checksums in the journal, using extents (rather than block maps) and delayed block allocation that improve large file performance.  The operating system used in this study is Red Hat Enterprise Linux 5 U4. Installing the e4fsprogs rpm enables using the ext4 file system tools. Ext4 is included in this OS version as a Technology Preview and is not officially supported. However, because of the new features ext4 provides, it is gaining more popularity. The benchmark results show how much performance increase can be expected from the current ext4 system included with Red Hat Linux. Two Dell PowerVault MD 1200 RAID arrays are used for these experiments. Each array contains twelve 450 GB 15K rpm SAS6 disks. The storage is configured as a single RAID 5 volume spanning over 24 disks. A Dell PowerEdge R710 server with a PERC H800 card is used to connect to the arrays. First port of the H800 card is connected to the first array and the second port is connected to the second array. We used the IOzone benchmark version 3.327 available from www.iozone.org. The read ahead setting on the OS was set to 8192 sectors to improve sequential read performance using the blockdev command. For this study, the defaults were used for the other settings however the performance can be further tuned by modifying other OS and storage settings. The charts above show the results of the benchmark runs. Every test was run 10 times and the average is reported with the standard deviation. Only one IOzone thread was used since increasing the number of IOZone threads did not result in improved performance. The experiment results show that ext2 has higher performance than ext3, which is consistent with what we have observed in the past and is attributable to the fact that ext2 does not use a journal which enables it to perform writes faster. It is possible to improve the ext3 performance by using a different drive to keep the journal, however we did not investigate that option for this study. Ext4 resulted in better read and write performance compared to ext3 due to its enhancements, such as the usage of extents and delayed block allocation.  The results are very encouraging as ext4 is considerably faster than ext3 and has the reliability advantage over ext2. As ext4 evolves, its performance characteristics may change, however once the file system becomes supported we expect it to be a very good choice to be used under Linux.A COMPARISON OF EXT2, EXT3 AND EXT4 PERFORMANCEĐặc tính đệ quy trong các lệnh hệ thống LinuxĐệ quy là một dạng qúa trình hay một thao tác mà tự nó có thể gọi chính nó. Trong các lệnh hệ thống của Linux, khi nhắc tới tính dệ quy, thì người tà hiểu là khả năng để mệnh lệnh này tự tìm vào các thư mục con của thư mục là đang là đối tượng thực thi để tiếp tục thực thi cùng một lệnh này cho tới khi không còn thư mục con nào chưa dược thực thi nữa.Trong Linux, tham số để gọi một lệnh hệ thống chạy đệ quy trên một thư mục thường là --recursive (hay là -r hoặc -R tùy theo lệnh hỗ trợ). Để biết một lệnh của Linux có hỗ trợ tính năng này hay không thì có thể dùng lệnh man  [TÊN_LỆNH] và đọc hướng dẫnThí dụ: Lệnh sau đây sẽ hiển thị nội dung của mọi thư mục trong thư mục của người đang dùng: ls --recursive ~ Lệnh: rm -rf mydir sẽ xoá mọi loại tập tin bên trong thư mục mydir vô điều kiện và không hỏi lại kể cả thư mục nàyLệnh rm -rf mydir/* chỉ xóa tất cả các tập tin bên trong nhưng bản thân thư mục mydir vẩn tồn tại (và là thư mục trống)Lệnh find --recursive --brief mydir1 mydir2 cho phép so sánh sơ lược toàn bộ nội dung các tập tin nằm bên trong mydir1 tương ứng với nội dung của mydir2CHƯƠNG 3: FILE SYSTEM (TT)4. Thi hành đồng thời nhiều lệnhLinux cho phép nhập nhiều lệnh tại một thời điểm. Các lệnh sẽ thực hiện một cách tuần tựCú phápcommand1; command2; ...; commandN5. PipelineLinux cho phép thực hiện kết nối các tiến trình bằng cách cho kết quả xuất của một lệnh này là đối số nhập của một lệnh khác. Cơ chế này gọi là pipeline hay đường ống.Cú pháp command1 |command2 |...|commandNVí dụ:cat myfile |head -10|tail -36. Lệnh headCú pháphead [option] [file]...Xem phần nội dung đầu mỗi file. Nếu có nhiều file thì trong kết quả, đứng trước nội dung của một file là đầu đề có chứa tên tâp tin. Nếu lệnh head không có đối số file thì head sẽ đọc nội dung từ thiết bị nhập chuẩnOptionn: số dòng đầu tiên của file cần hiển thị. Mặc định là 10.q: không hiển thị phần đầu đề chứa tên file trong trường hợp mở nhiều file cùng lúc.7. Lệnh more và lessmore dùng để xem nội dung tập tin theo từng trang màn hình.Cú phápmore [options] [file]...option-num: xác định số dòng mỗi màn hình+linenum: Dòng bắt đầu hiển thị-s: Xóa bớt các dòng trắng (nếu có), chỉ để lại một dòng trắng giữa mỗi đọan.Lệnh less tương tự như more nhưng cho phép dịch chuyển lên xuống bằng các phím mũi tên.8. Chuyển hướng đầu vào/ đầu raMọi chương trình chạy trong shell đều mở ba tập tin (thiết bị): Nhập chuẩn (standard input), xuất chuẩn (standard out put) và lỗi chuẩn (standard error). Các tập tin này cung cấp ý nghĩa truyền thông giữa các chương trình và tồn tại trong suốt quá trình tiến trình họat động.8. Chuyển hướng đầu vào/ đầu raTrên hầu hết các hệ điều hành nói chung và Linux/Unix nói riêng thì có 3 dòng xuất nhập chuẩn (I/O) là STDIN, STDOUT và STDERR mà chức năng tương ứng là dòng nhập chuẩn, dòng xuất chuẩn và dòng xuất lỗi chuẩn. Chúng được gọi là các open file và hệ thống gán cho mỗi file này một con số gọi là file descriptor. Ba con số tương ứng với 3 dòng xuất nhập chuẩn ở trên là 0, 1 và 2. Cụ thể: standard input -> stdin -> 0 stdout -> 1> standard error -> stderr -> 2>Trong C++ thì 3 dòng xuất nhập chuẩn này tương ứng với 3 đối tượng cin, cout và cerr.Thiết bị nhập chuẩn cung cấp một cách thức gửi dữ liệu cho một tiến trình. Mặc định dữ liệu nhập chuẩn được đọc từ bàn phím.Thiết bị xuất chuẩn cung cấp một cách thức để chương trình gửi dữ liệu ra. Mặc nhiên thiết bị xuất chuẩn là màn hình.Tập tin lỗi chuẩn là nơi chương trình ghi lại báo cáo về bất kỳ lỗi nào xảy ra trong quá trình thi hành. Mặc định tập tin này là màn hình.Một chương trình có thể được chỉ ra cho biết nơi nào thông tin sẽ được gửi vào và đâu là nơi xuất thông tin ra, bằng cách sử dụng chuyển hướng đầu vào/ đầu raLinux sử dụng ký tự nhỏ hơn để chỉ hướng đầu ra.Chuyển hướng đầu vào file trong một lệnh cho phép shell chuyển đầu ra của một lệnh vào tập tin file thay thế cho việc xuất tập tin ra xuất chuẩn (màn hình). Nếu tập tin file đã có thì tập tin cũ sẽ bị ghi đè.Ví dụ head /etc/passwd > test2 ls -li /etc > test3Sử dụng >> để bổ sung thêm nội dung đến tập tin đã có. >> file sẽ thông báo cho shell bổ sung thêm nội dung xuất của một lệnh vào cuối tập tin file. trường hợp tập tin file chưa có thì nó sẽ được tạo ra.Ví dụls -li /tmp > mylsls -ls /root >> mylsChuyển hướng lỗi Sự chuyển hướng tập tin lỗi chuẩn là khá phức tạp, phụ thuộc vào kiểu shell đang sử dụng. Trong bash chuyển hướng tập tin lỗi chuẩn bằng ký tự “2>”.Ví dụa /etc 2> error1ls -z /etc > test 2>error29. Cách sinh tên tập tin Hãy lấy ví dụ một lệnh có nhiều đối số như rm, cp: # rm file1 file2 file3Lệnh này có thể viết dưới dạng cô đọng như sau: # rm file?Ký tự dấu hỏi "?" ở đây được gọi là một siêu ký tự sinh tên file vì nó đại diện cho một ký tự bất kỳ.Các siêu ký tự sinh tên file (wildcards) là những ký tự sau: ‘ ? * [ ] – !(trong đó ký tự "!" chỉ có nghĩa với Bourne shell).1- Siêu ký tự dấu hỏi "?“ Ký tự dấu hỏi sinh ra (thay cho) bất kỳ ký tự nào khác, ví dụ lệnh sau: # rm fi?e sẽ có thể tương đương với lệnh: # rm file fine fire2- Siêu ký tự dấu sao "*“ Siêu ký tự dấu sao "*" sẽ sinh ra 0, 1 hoặc nhiều ký tự bất kỳ, ví dụ lệnh: # cat file* sẽ có thể tương đương với lệnh: # cat file file1 file_in file_out3- Cặp siêu ký tự dấu ngoặc vuông "[" và "]“ Ta thường gặp cặp dấu ngoặc vuông "[" và "]" trong tên file. Ví dụ: # rm sa[cnN]h Từ các ký tự ở trong cặp dấu ngoặc vuông, tức cnN, một ký tự bất kỳ sẽ được chọn, do đó lệnh trên tương đương với: # rm sach sanh saNh (nếu những file đó tồn tại trong thư mục hiện hành).4- Siêu ký tự dấu "-“ Từ ký tự đầu đến ký tự sau trong cặp dấu ngoặc vuông, một ký tự bất kỳ sẽ được chọn, ví dụ: # cat fi[b–m]h tương đương với: # cat fibh fich filh5- Siêu ký tự dấu "!“ Siêu ký tự "!" chỉ có nghĩa với Bourne shell là phải lấy một ký tự khác những ký tự trong cặp dấu ngoặc vuông sau nóví dụ: % rm fi[!fgtk]h tương đương với: % rm fiAh fich fioh10. Lịch sử lệnhMột công cụ để tiết kiệm thời gian nhập lệnh là sử dụng lịch sử dòng lệnh. Bằng cách sử dụng các phím mũi tên lên xuống ta có thể tìm lại những lệnh trước đó ta đã nhập vào để thi hành. Theo mặc định có đến 1000 lệnh được lưu trữ và có thể xem trong file .bash_history trong thư mục đăng nhập của người dùng.Xem lich sử lệnh bằng lệnh: history11. Tạo tâp tin liên kết lnCú phápln [options] target [link_name]ln [options] target ...directoryLệnh ln thực hiện tạo một tập tin liên kết có tên là link_name tới tập tin target. Nếu không chỉ ra link_name thì một tập tin có tên trùng với tập tin target được tạo tại thư mục hiện hành.Trường hợp tạo liên kết cho nhiều tập tin target thì đối số cuối cùng phải là directory, thư mục này sẽ chứa các tập tin liên kết được tạo.Option-s: Tạo symbolic link. Trong trường hợp mặc định (không có lựa chọn -s) một hard link sẽ được tạo ra.Chú ý:Không thể tạo được hard link cho một thư mụcChỉ có thể tạo được hard link trên cùng một partition.Có thể tạo được một symbolic link ngay cả khi tập tin target không tồn tại.12. Các lệnh về quyền tập tin12.1. Các khái niệm về quyền tập tinMỗi tập tin và thư mục trong Linux có chứa một bộ các quyền. Bộ quyền này xác định người dùng nào có quyền truy nhập và mức độ truy nhập đến chúng. Một tập tin hay một thư mục có các quyền đọc (Read), ghi (Write) và thi hành (Execute). Linux phân thành ba lọai đối tượng truy nhập đến tập tin và thư mục:Chủ nhân (owner): người tạo ra tập tin/ thư mụcNhóm chủ nhân (group)Các người dùng khác (other)Mỗi đối tượng có một bộ quyền read, write, execute của riêng mình. Ba bộ quyền read, write, execute ứng với ba đối tượng truy nhập owner, group và other tạo thành một tổ hợp ba nhóm quyền (có 9 kiểu). Nhóm quyền đầu tiên điều khiển sự truy nhập của chủ nhân đến tập tin/thư mục của họ. Nhóm quyền thứ hai điều khiển sự truy nhập của nhóm chủ nhân đến tập tin/thư mục. Nhóm quyền thứ ba điều khiển sự truy nhập của tất cả các người dùng khác đến tập tin/thư mục.Một quyền trống (không gán quyền) được đại diện bởi ký tự -. Quyền đọc được biểu diễn bằng r, quyền ghi được đại diện bằng w, và quyền thi hành được biểu diễn bằng x.Sticky bitCác quyền truy nhập thư mục của Linux thể hiện một điều là nếu một người dùng có quyền ghi vào một thư mục thì người dùng đó có thể đổi tên hay xóa các tập tin trong thư mục đó, ngay cả khi các tập tin không thuộc về người dùng đó.Phương pháp để giải quyết vấn đề trên là thiết lập sticky bit cho thư mục. Khi một thư mục được gán sticky bit thì các thao tác đổi tên hay xóa tập tin trong thư mục đó chỉ có hiệu lực đối với chủ nhân của tập tin, chủ nhân của thư mục và người quản trị hệ thống.Lệnh ls của Linux hiển thị sticky bit là chữ ‘T’ trong trường thi hành (execute) của nhóm other.12.2. Lệnh chmodDùng để thay đổi hay gán quyền trên tập tin, thư mụcCú phápchmod [option] mode ...file...Option-R: Thay đổi quyền cả các thư mục con và các tập tin trong chúng.-v: Hiển thị thông điệp hệ thống khi thực hiện xử lý mỗi tập tin.Lệnh chmod thay đổi quyền của mỗi tập tin được liệt kê ứng với modeCó hai cách để chỉ ra giá trị của đối số mode. Cách thứ nhất là sử dụng các ký tự quyền gọi là phương pháp tượng trưng (symbolic method). Cách thứ hai là sử dụng mặt nạ (binary mask) còn gọi là phương pháp tuyệt đối (absolute method).Phương pháp tượng trưngĐịnh dạng của mode là [ugoa][+ - =] [rwxt]Sự kết hợp của u,g, o hay a chỉ ra đối tượng được thay đổi quyền.Các phép tóan + - = xác định thao tác thêm bớt quyền.Các ký tự r, w, x và t chỉ ra quyền cần thay đổi.Ý nghĩa các ký tự:u: chủ nhân tập tin/thư mụcg: group của tập tin/thư mụco: những người dùng khác không trong groupa: Tất cả các người dùng+:Thêm quyền truy nhập tập tin/thư mục-:Lọai bớt quyền truy nhập=: Chỉ gán quyền được chỉ ra cho đối tượng, tất cả các quyền khác hiện có sẽ bị lọai bỏ.r, w, x: quyền read, write, executet: Thay đổi sticky bitSử dụng phương pháp tuyệt đốiPhương pháp này thay đổi tất cả các quyền một lần bằng cách chỉ ra một mặt nạ (binary mask) tham chiếu đến tất cả các quyền trong mỗi đối tượng. Mặt nạ này tuân thủ theo định dạng nhị phân 8 bit-mỗi nhóm quyền được đại diện bởi một ký số bát phân. Khi chuyển về số nhị phân mỗi ký số bát phân trở thành ba ký số nhị phân, mỗi ký số nhị phân sẽ đại diện cho một quyền truy nhập của đối tượng.Bảng các ký số nhị phân và các quyền được gán tương ứng Số bát phân Số nhị phân Quyền 0 000 --- 1 001 --x 2 010 -w- 3 011 -wx 4 100 r— 5 101 r-x 6 110 rw- 7 111 rwx 13. Soạn Thảo Văn Bản vi13.1. Giới thiệuTrình sọan thảo văn bản chuẩn của Linux là vi.vi chạy ở hai chế độ khác nhauỞ chế độ câu lệnh, những gì nhập vào sẽ được hiểu như là câu lệnh cho vi. Lệnh có thể là lưu tập tin, thóat khỏi vi, chuyển con trỏ đến các vị trí khác nhau trong tập tin, chỉnh sửa, thay thế đọan văn bản Ở chế độ nhập văn bản (chế độ INSERT), những gì nhập vào sẽ là nội dung của tập tin đang sọan thảo hay đang chỉnh sửaĐể chuyển từ chế độ chỉnh sửa sang chế độ lệnh: đánh phím ESC.Để chuyển từ chế độ lệnh sang chế độ sọan thảo: đánh phím Ins hay một chữ cái bất kỳ.Chú ý dòng trạng thái cuối màn hình, nếu có –INSERT– hay –REPLACE– thì đang ở chế độ sọan thảo, nếu là những dấu hiệu khác thì đang ở chế độ lệnh.13.2.Chạy vi vi filenameFilename: là tên tập tin cần tạo hoặc các tập tin cần chỉnh sửa.Nếu vi được khởi động mà không có tên tập tin thì vi sẽ khởi động với bộ đệm (buffer) rỗng1.3. Các lệnh cơ bản của vi:help Mở hướng dẫn sử dụng vi:w [file] Ghi lại nội dung tập tin. Nếu tập tin đang sọan thảo chưa có tên thì phải chỉ tận tập tin cần ghi là file:q Thóat khỏi vi; :q! thóat khỏi vi và không ghi lại các thay đổi trên tập tin; :q! Thóat khỏi vi mà không ghi lại các thay đổi trên tất cả tập tin đang mở; :wq hoặc :x Thực hiện ghi lại tập tin trước khi thóat. :next Chuyển tới tập tin kế tiếp trong trường hợp mở nhiều tập tin đồng thời. :prev Chuyển tới tâp tin kế trước trong trường hợp mở nhiều tập tin đồng thời. :e file Đóng tập tin hiện hành và mở tập tin file. :sh Chuyển tạm sang shell để thi hành các lệnh của shell. Từ shell để trở lại vi thì đánh exit.14. Trình tiện ích mc (midnight commander)-chạy chương trình: mc-dichuyển con trỏ-Xem thư mục-chuyển đến thư mục cha-Xem tập tin: F3, ESC: thoát-Sửa nội dung tập tin: F4, F2: lưu; ESC: thoátF7: Tạo thư mụcF8: xoá tập tin thư mụcF5: sao chépF6: Di chuyển hay đổi tênHỎI ĐÁP

Các file đính kèm theo tài liệu này:

  • pptxch05_filesystem_doing_0944.pptx
Tài liệu liên quan