Giới thiêu Mục tiêu Sinh viên cần nắm rõ các khái niệm lý thuyết về hệ thống tập tin. Bài thực hành giúp sinh viên hiểu và có thể lấy thông tin về hệ thống tập tin đang chạy trong HĐH Linux và MacOS. Phần mở rộng giúp sinh viên dò tìm cấu trúc lưu trữ theo inode trong hệ thống tập tin của Linux. Nội dung Sinh viên được thí nghiệm các nội dung như sau • Thí nghiệm lấy thông tin đĩa cứngthư mụctập tin; • Thí nghiệm lấy thông tin các process đang mở tập tin nào đó; • Xây dựng lại cây ánh xạ thư mục của tập tin theo đơn vị inode. Kêt quả đạt được Sau khi thực hiện thí nghiệm, sinh viên có thể • Hiểu được cách HĐH quản lý thông tin file, thông tin các process đang tương tác với file; • Được tiến hành các thực nghiệm để minh họa lí thuyết quản lý không gian đĩa sử dụng inote. 2 Cơ sở lý thuyết 2.1 File là một chuỗi các byte và là đơn vị truy xuất dữ liệu lưu trữ trên các thiết bị thứ cấp. File được đặt tên, có tính bền vững (persistent) và hỗ trợ hai tác vụ chuẩn là readwrite. Các tác vụ trên file gồm create, write, read, reposition, delete, truncate, open và close. Thư mục là mộ tiện ích của hệ điều hành dùng để dễ dàng tổ chức các file. Các tác vụ trên hệ thống file có hai tác vụ quan trọng là mount và chia sẻ file (gồm hard link và soft link). Để bảo vệ file, các quyền cấp phép cho mỗi file được định nghĩa trong Access Control List (ACL) gồm các cặp . 2.2 Đơn vị lưu trữ vật lý gồm mức thấp nhất là disk block và mức cao nhất là partition (trong DosUNIX) hay volume trong MacOS. Partitionvolume là vùng không gian được phần chia trên đĩa cứng mà hệ điều hành có thể quản lý từng vùng không gian này một cách tách biệt. Việc tạo partition được thực hiện trước khi tạo file system hoặc thư mục. Có hai dạng partition là primary partition nơi mà một số thành phần của HĐH bắt buộc phải chứa ở các phân vùng này. Một đĩa cứng chỉ có thể có một extended partition nhưng extended partition này có thể chia thành nhiều logical parition. Disk block là đơn vị lưu trữ của thiết bị lưu trữ (đĩa cứng, flash...) và là một chuỗi các byte hoặc bit. Dữ liệu phải được truy xuất theo đơn vị block.
Đại học Bách Khoa TP HCM, Khoa KH & KTMT Bài thực hành số 12 Môn: Hệ điều hành Phương-Duy Nguyễn Email: duynguyen@cse.hcmut.edu.vn Ngày 17 tháng 11 năm 2016 Mục lục Giới thiêu Cơ sở lý thuyết 2.1 File 2.2 Đơn vị lưu trữ vật lý 2.3 Đơn vị lưu trữ luận lý 4 4 Nội dung thực hành 3.1 Thao tác tập tin 3.1.1 Giới thiệu ls 3.1.2 Giới thiệu stat 3.2 Thông tin đĩa parition/volume 3.3 Giới thiệu công cụ quản lý file mở Bài tập hệ thống 10 10 10 11 13 15 17 Giới thiêu Mục tiêu Sinh viên cần nắm rõ khái niệm lý thuyết hệ thống tập tin Bài thực hành giúp sinh viên hiểu lấy thông tin hệ thống tập tin chạy HĐH Linux MacOS Phần mở rộng giúp sinh viên dò tìm cấu trúc lưu trữ theo i-node hệ thống tập tin Linux Nội dung Sinh viên thí nghiệm nội dung sau • Thí nghiệm lấy thông tin đĩa cứng/thư mục/tập tin; • Thí nghiệm lấy thông tin process mở tập tin đó; • Xây dựng lại ánh xạ thư mục tập tin theo đơn vị i-node Kêt đạt Sau thực thí nghiệm, sinh viên • Hiểu cách HĐH quản lý thông tin file, thông tin process tương tác với file; • Được tiến hành thực nghiệm để minh họa lí thuyết quản lý không gian đĩa sử dụng i-note Cơ sở lý thuyết 2.1 File chuỗi byte đơn vị truy xuất liệu lưu trữ thiết bị thứ cấp File đặt tên, có tính bền vững (persistent) hỗ trợ hai tác vụ chuẩn read/write Các tác vụ file gồm create, write, read, reposition, delete, truncate, open close Thư mục mộ tiện ích hệ điều hành dùng để dễ dàng tổ chức file Các tác vụ hệ thống file có hai tác vụ quan trọng mount chia sẻ file (gồm hard link soft link) Để bảo vệ file, quyền cấp phép cho file định nghĩa Access Control List (ACL) gồm cặp 2.2 Đơn vị lưu trữ vật lý gồm mức thấp disk block mức cao partition (trong Dos/UNIX) hay volume MacOS Partition/volume vùng không gian phần chia đĩa cứng mà hệ điều hành quản lý vùng không gian cách tách biệt Việc tạo partition thực trước tạo file system thư mục Có hai dạng partition primary partition nơi mà số thành phần HĐH bắt buộc phải chứa phân vùng Một đĩa cứng có extended partition extended partition chia thành nhiều logical parition Disk block đơn vị lưu trữ thiết bị lưu trữ (đĩa cứng, flash ) chuỗi byte bit Dữ liệu phải truy xuất theo đơn vị block 2.3 Đơn vị lưu trữ luận lý thực phần mềm để quản lý, tổ chức (ánh xạ, đánh địa chỉ) datablock partition Hiện thực khác tùy hệ điều hành gọi tổ chức/định dạng hệ thống file hay file system format Trong Unix sử dụng định dạng UFS (UNIX File system) Mac OS X sử dụng định dạng HFS+ (Hierarchical File System Plus) Linux UFS Data block Hard disk Partition Partition Partition Plates Head arm Track/ Cylinder Arm Head armature Spindle Head Hình 2.1: Đơn vị lưu trữ vật lý parition block Inode (Index node) Cấu trúc liệu lưu thuộc tính vị trí disk block (pointer) Inode định danh theo inode number Mỗi file có tên gán inode number Các thông tin thuộc tính chứa inode bao gồm: • kích thước file • Device ID thiết bị chứa file • UserID • GroupID • File mode (r/w ) • Các cờ (flags) khác • Timestamp • Số lượng hard link trỏ đến inode Inode link trỏ đến • Các trỏ đến disk blocks (disk block address) Directory quản lý inode trỏ đến directory block nội dung block chứa tên cho file, directories devices, v.v Inode chứa kích thước file, directory chứa tên inode number Chính inode number thông tin để hệ thống cần truy xuất lấy thông tin kích thước sử dụng Disk block Info D i r e c t b l o c k Indirect Block 10 11 Single Double Triple Di 255 255 255 10 11 12 256 blocks e n t r i e s e n t r i e s 267 268 255 255 255 255 256 blocks 523 65536 blocks 5 65803 65804 255 256 blocks 66059 16777216 Blocks 255 16843019 Hình 2.2: Cấu trúc inode inode Super block inode inode number -filename inode i-list inode number -filename inode number -filename directory block Data block Data block Hình 2.3: Cấu trúc directory File system Cylinder group super block copy Cylinder header Boot Super block block Cylinder group Partition Hard disk Data block i-list Cylinder group Partition Partition Plates Head arm Track/ Cylinder Arm Head armature Spindle Head Hình 2.4: Cấu trúc Hard disk file system File System gồm thành phần sau • Một số block làm boot block • Super block chứa magic number • Môt số cylinder group Mỗi cylinder group gồm thành phần: – Bản superblock – cylinder header – i-list – Data block MacOS HFS+ B*tree để ánh xạ node Có dạng node: • Header node: B*tree metadata • Map node: node allocation bitmap lưu mapping block cấp phát dạng bitmap • Index node: lưu dạng key:node pointer • Leaf node: lưu dươi dạng key:data record B-Tree Map Node bLink = flink kind = kBTMapNode B-Tree Map Node Map Record Bitmap Offset to Record bLink = flink kind = kBTMapNode B-Tree Map Node Map Record Bitmap Offset to Record B-Tree Header Node Node descriptor Node (Header) Node … Node i … Node m bLink = B-Tree Header Record B-Tree node 12 flink = flink = mapnode bLink flink kind = kBTIndexNode height=3 numRecords=2 reserved kind = kBTHeaderNode height=0 numRecords=3 reserved treeDepth=3 rootNode=12 leafRecords=9 firstLeafNode lastLeafNode … … key = 23 pointer key = 254 pointer … node 254 bLink flink kind = kBTIndexNode height=2 numRecords=3 reserved node 23 bLink flink kind = kBTIndexNode height=2 numRecords=2 reserved key = 17 pointer key = 18 pointer key = 117 pointer … key = 212 pointer key = 111 pointer … node 18 node 212 node 111 bLink flink kind = kBTLeafNode height=1 numRecords=2 reserved Data Record Data Record bLink flink kind = kBTLeafNode height=1 numRecords=2 reserved Data Record Data Record node 17 bLink flink kind = kBTLeafNode height=1 numRecords=1 reserved Data Record bLink flink kind = kBTLeafNode height=1 numRecords=4 reserved Data Record Data Record Data Record Data Record node 117 bLink flink kind = kBTLeafNode height=1 numRecords=2 reserved Data Record Data Record Hình 2.5: Cấu trúc B-Tree Hierarchical File System - HFS Block Trong định dạng HFS, volume (tương ứng partition UNIX) gồm nhiều block, gọi sector Với đĩa dung lượng nhở thường block có kích thước 512 byte, đĩa có dung lượng lớn block size lên đến 16KB HFS Flus (phiên HFS) dùng 23bit để đánh địa tương ứng với 4.294.967.296 = 23 block lớn so với chuẩn cũ HFS dùng 16 bit dịa block tương ứng 65, 536 = 21 block Trong block, có khoảng cấu trúc thường đặc trưng cho HFS volume: • Boot block: đọc khởi động chứa lệnh khởi động (boot instruction), thường block/sector • Volumne Header: phiên HFS trước gọi Master directory block chứa thông tin parition/volume thời gian tạo số lượng file có volumne • Allocation File: phiên HFS gọi Volume bitmap chứa danh sách bit (bitmap) block dùng block trống Điểm khác biệt Allocation File thực file bình thường thay đổi kích thước lưu block không liên tục volume • Catalog File: thực B-tree chứa thông tin file thư mục volume • Extends Overflow file: thực B-tree chứa block cấp cho file phần mở rộng Trong MacOS, nội dung liệu, file có Partition Reserved C1024 bytesg Boot block Volume Header/ Master directory block Free space Allocation File/ Volume bitmap Node B-Tree Free space Extends Overflow File Header Node CNode 0g Free space Node Node Catalog File … Node n Node descriptor Record Record Free space Offset to free space Offset to record Offset to record Free space Attributes File Free space Startup File Free space Alternative Volume Header Reserved C512 bytesg Hình 2.6: Cấu trúc Parition/Volume HFS thông tin mở rộng metafile chứa phần • Attribute File: xuất HFS Plus chứa thông tin file phần mở rộng • Startup File: thiết kế cho hệ thống MacOS vốn không hỗ trợ HFS hay HFS Plus Thành phần tương tự Boot Block HFS • Alternate Volume Header: phiên HFS trước gọi Alternate Master Directory Block (copy) Volume Header • Block/sector cuối dự trữ dành riêng cho Apple sử dụng trình chế tạo máy tính Nội dung thực hành Nội dung phần thực hành không hương đến việc thực tập thao tác file giao tiếp thông thường mà quen thuộc qua tiện ích hệ điều hành Chúng ta nhắc lại thao tác như: • open/close qua Programming API fopen()/fclose() • read qua command cat, redirect stdout (>) Programming API fread(), fscanf(); • write qua command vi, echo & redirect sdtin ( Cloud (Remote)> Browse Xem minh họa hình 3.1.2 11 Hình 3.1: Cài đặt gói coreutils.tcz $ s t a t / e t c / passwd F i l e : ’ / e t c / passwd ’ S i z e : 161 Blocks : IO Block : 4096 r e g u l a r f i l e Device : 2h/2d Inode : 14618 L i n k s : A c c e s s : (0664/ −rw−rw−r −−) Uid : ( 0/ r o o t ) Gid : ( / s t a f f ) A c c e s s : 2016−11−11 : : 7 +0000 Modify : 2016−04−20 : 2 : 0 0 0 0 +0000 Change : 2016−11−10 : : 6 6 +0000 Birth : − MacOS $ s t a t / dev / t t y /∗ inode ’ s number ∗/ /∗ i n o d e p r o t e c t i o n mode ∗/ /∗ number o r hard l i n k s t o t h e f i l e ∗/ /∗ u s e r −i d o f owner ∗/ /∗ group−i d o f owner ∗/ /∗ d e v i c e type , f o r s p e c i a l f i l e i n o d e ∗/ /∗ time o f l a s t a c c e s s ∗/ /∗ time o f l a s t data m o d i f i c a t i o n ∗/ /∗ time o f l a s t f i l e s t a t u s change ∗/ /∗ f i l e s i z e , in b y t e s ∗/ /∗ b l o c k s a l l o c a t e d f o r f i l e ∗/ /∗ o p t i m a l f i l e s y s I /O ops b l o c k s i z e ∗/ /∗ u s e r d e f i n e d f l a g s f o r f i l e ∗/ /∗ f i l e g e n e r a t i o n number ∗/ /∗ f i l e name ∗/ 787743656 12 297 crw−rw−rw− root wheel 33554432 "Nov␣ 17 ␣ : : ␣ 2016 " "Nov␣ 16 ␣ : : ␣ 2016 " "Nov␣ 16 ␣ : : ␣ 2016 " "Nov␣ 16 ␣ : : ␣ 2016 " 131072 0 / dev / t t y 3.2 Thông tin đĩa parition/volume Mỗi hệ điều hành cung cấp công cụ tiện ích (utilities tool) để xem thông tin harddisk partition Trong Unix, thiết bị lưu trữ thứ cấp (đĩa, flash ) gắn vào file system Các lệnh cung cấp df -h (Linux MacOS), fdisk, (Linux, MacOS), parted (Linux) diskutil (MacOS) Các thao tác xem thông tin đĩa thực với quyền quản lý hệ thống Các lệnh báo lỗi permission denied phải chuyển sang sử dụng Hint chết độ sudo Ví dụ: lênh $ fdisk /dev/sda bị lỗi permission denied sử dụng $ sudo fdisk /dev/sda Linux Đường dẫn: Thiết bị lưu trữ (đía, flash ) mount tại đường dẫn /dev/sdXy (X: a z harddisk identification; y: 1,2, partition number) Vd: • hardisk /dev/sda (đĩa 0) /dev/sdb (đĩa 1), /dev/sr0 (đĩa CDROM) • partition /dev/sda1 (parition thứ đĩa 0), /dev/sdc2 (partition thứ đĩa 2) $ d f −h Filesystem rootfs tmpfs / dev / sda1 / dev / l o o p / dev / l o o p Size 451M 251M 486M 0K 0K Used A v a i l Use% Mounted on 28M 423M 7% / 251M 0% / dev /shm 130M 353M 27% /mnt/ sda1 0K 100% /tmp/ t c l o o p / libXdmcp 0K 100% /tmp/ t c l o o p / libXau 13 / dev / l o o p / dev / l o o p 228K 892K 228K 892K 100% /tmp/ t c l o o p / l i b x c b 100% /tmp/ t c l o o p / l i b X 1 $ f d i s k − l / dev / sda Disk / dev / sda : 536 MB, 536870912 b y t e s 255 heads , 63 s e c t o r s / t r a c k , 65 c y l i n d e r s U n i t s = c y l i n d e r s o f 16065 ∗ 512 = 8225280 b y t e s Dev ic e Boot / dev / sda1 ∗ Start End 65 Blocks 522081 Id System 83 Linux $ f d i s k − l / dev / sda1 Disk / dev / sda1 : 534 MB, 534610944 b y t e s 255 heads , 63 s e c t o r s / t r a c k , 64 c y l i n d e r s U n i t s = c y l i n d e r s o f 16065 ∗ 512 = 8225280 b y t e s D ev ic e Boot Start End B l o c k s Id System / dev / sda1p1 ? 200716 227661 216435558+ HPFS/NTFS P a r t i t i o n has d i f f e r e n t p h y s i c a l / l o g i c a l b e g i n n i n g s ( non−Linux ? ) : phys =(187 , , ) l o g i c a l =(200715 , , ) P a r t i t i o n has d i f f e r e n t p h y s i c a l / l o g i c a l e n d i n g s : phys =(784 , , ) l o g i c a l =(227660 , , 4 ) P a r t i t i o n d o e s not end on c y l i n d e r boundary / dev / sda1p2 ? 203674 57922 976730017 16 Hidden FAT16 P a r t i t i o n has d i f f e r e n t p h y s i c a l / l o g i c a l b e g i n n i n g s ( non−Linux ? ) : phys =(906 , , ) l o g i c a l =(203673 , 2 , 2 ) P a r t i t i o n has d i f f e r e n t p h y s i c a l / l o g i c a l e n d i n g s : phys =(262 , 1 , ) l o g i c a l =(57921 , , ) MacOS Đường dẫn: Thiết bị lưu trữ (đía, flash ) mount tại đường dẫn /dev/diskXsY (X: 0,1, harddisk identification; Y: 1,2, partition number) Vd: • hardisk /dev/disk0 (đĩa 0) /dev/disk1 • partition /dev/disk0s1 (parition thứ đĩa 0), /dev/disk3s2 (partition thứ đĩa 4) $ sudo d f −h Filesystem Size Used A v a i l Capacity i u s e d i f r e e %i u s e d Mounted on 14 / dev / d i s k s 39 Gi 19 Gi devfs 181 Ki 181 Ki map −h o s t s Bi Bi map auto_home Bi Bi / dev / d i s k Gi Gi 19 Gi Bi Bi Bi Bi 50% 5166117 5109739 50% 100% 625 100% 100% 0 100% 100% 0 100% 100% 0 100% / / dev / net /home / xc $ sudo f d i s k / dev / d i s k Disk : / dev / d i s k geometry : 5221/255/63 [ 8 8 s e c t o r s ] S i g n a t u r e : 0xAA55 Starting Ending ID : i d c y l hd s e c − c y l hd s e c [ s t a r t − size ] −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− : EE 1023 254 63 − 1023 254 63 [ − 8 ] : 00 0 − 0 [ − ] unused : 00 0 − 0 [ − ] unused : 00 0 − 0 [ − ] unused 3.3 Giới thiệu công cụ quản lý file mở hệ thống lsof công cụ liệt kê danh sách tập tin mở với process chạy Linux $ lsof PID 2673 2673 2673 2673 COMMAND / b i n / busybox / b i n / busybox / b i n / busybox / b i n / busybox NAME / dev / t t y / dev / t t y / dev / t t y / dev / t t y MacOS $ lsof COMMAND PID USER l o g i n w i n d 64 s t u d e n t l o g i n w i n d 64 s t u d e n t l o g i n w i n d 64 s t u d e n t l o g i n w i n d 64 s t u d e n t l o g i n w i n d 64 s t u d e n t FD TYPE DEVICE SIZE/OFF NODE NAME cwd DIR ,1 1088 / t x t REG ,1 836016 311808 / window t x t REG ,1 137152 146128 / S e r v i c e s t x t REG ,1 4380 20106 / f i l e i c c t x t REG ,1 20848 254974 / dpac 15 Executable and Linkable Format process 1GB ELF header kernel space user code read/write will cause segmentation fault argv, environment .text 0xC0000000 random offset stack (grown down) random offset memory mapping data bss (files, libraries) heap 3GB (grown up) uninitialized data bss initialized data data random offset end edata etext text 0x08048000 0x0 Hình 3.2: Layout Linux process Mở rộng với lsof công cụ lsof sử dụng để lấy thông tin quản lý HĐH cho file bao gồm danh sách file mở mộ thư mục, file truy xuất đường dẫn Các thao tác với lsof dùng cho Linux MacOS Xem lại việc quản lý file từ góc nhìn process Đối chiếu với học trước, sinh viên xem file mở process thông quan /proc file system Các file mở quản lý cấu trúc file descriptor không gian sử dụng process (tham khở lại thực hành Process Text Data segment) $ cat /proc//maps 08048000−08049000 r−xp 08049000−0804a000 rwxp b75e0000−b75e1000 rwxp b75e1000−b76f8000 r−xp b76f8000−b76fa000 r−xp b76fa000−b76fb000 rwxp b76fb000−b76fe000 rwxp b7705000−b7707000 rwxp b7707000−b7708000 r−xp b7708000−b7720000 r−xp b7720000−b7721000 r−xp b7721000−b7722000 rwxp bf9a8000−bf9c9000 rw−p 00000000 00000000 00000000 00000000 00116000 00118000 00000000 00000000 00000000 00000000 00017000 00018000 00000000 00:01 00:01 00:00 00:01 00:01 00:01 00:00 00:00 00:00 00:01 00:01 00:01 00:00 30895 30895 646 646 646 0 648 648 648 /home/ /loop_process /home/ /loop_process /lib/libc −2.17.so /lib/libc −2.17.so /lib/libc −2.17.so [vdso] /lib/ld−2.17.so /lib/ld−2.17.so /lib/ld−2.17.so [ stack ] 16 Bài tập Hướng dẫn tập Sinh viên thực BT1 BT2 Đây thao tác sử dụng công cụ để trích xuất thông tin quản lý đãi cứng/thư mục/file BT3 tập mở rộng, sinh viên sau lấy thông tin từ công cụ quản lý file cân thực trích xuất thông tin cần thiết BT1 (3 điểm) Sinh viên thực thao tác xem thông tin tập tin BT2 (3 điểm) Sinh viên thực thao tác xem thông tin phân vùng đĩa cứng có hệ thống BT3 (4 điểm) Sinh viên thực thao tác process mở file đường dẫn • Lấy thông tin PID process mở file /dev/null (2 điểm) • (Câu hỏi tổng hợp lấy thông tin file thông tin process) Lấy thông tin user mở file /dev/tty1 (trên Linux) /dev/ttyS001 (trên MacOS) (2 điểm) Hướng dẫn, sinh viên cần xác định thông tin process mở file thông tin owner process để từ lấy thông tin user mở file BT4 (Mở rộng) Vận dụng hiểu biết i-node, sinh viên traverse file từ thư mục root dựa inode, vẽ thư mục với định danh inode tương ứng 17 Revision History Revision Date Author(s) Description 1.0 14.11.15 PD Nguyen created 18 [...]... truy xuất tại một đường dẫn nào đó Các thao tác với lsof dùng cho cả Linux và MacOS Xem lại việc quản lý file từ góc nhìn process Đối chiếu với bài học trước, sinh viên có thể xem các file đang mở trong một process thông quan /proc file system Các file đang được mở sẽ được quản lý bởi một cấu trúc file descriptor trong không gian sử dụng của process (tham khở lại bài thực hành về Process Text và Data... đang mở file /dev/null (2 điểm) • (Câu hỏi tổng hợp lấy thông tin file và thông tin process) Lấy thông tin user đang mở file /dev/tty1 (trên Linux) và /dev/ttyS001 (trên MacOS) (2 điểm) Hướng dẫn, sinh viên cần xác định thông tin process đang mở file và thông tin owner của process đó để từ đó lấy ra thông tin user đang mở file BT4 (Mở rộng) Vận dụng hiểu biết về i-node, sinh viên traverse các file từ... random offset memory mapping data bss (files, libraries) heap 3GB (grown up) uninitialized data bss initialized data data random offset end edata etext text 0x08048000 0x0 Hình 3.2: Layout Linux process Mở rộng với lsof công cụ lsof có thể được sử dụng để lấy các thông tin quản lý của HĐH cho file đó bao gồm danh sách các file đang mở tại mộ thư mục, các file đang truy xuất tại một đường dẫn nào... File_ Permissions drwxrwxr−x+ 37 drwxr−xr−x+ 59 drwxr−xr−x@ 2 drwxr−xr−x+ 4 drwxr−xr−x 5 Owner root root root root root Group admin wheel wheel wheel admin S i z e Modified_Time 1258 Nov 2 1 4 : 1 3 2006 Sep 30 1 4 : 1 9 68 Sep 10 2014 136 Jan 29 2015 170 Sep 17 0 6 : 4 1 Name Applications Library Network System Users Xem thông tin i-node trong MacOS, i-node không có ý nghĩa tổ chức cấu trúc File System. .. Library Network System Users Xem thông tin i-node trong MacOS, i-node không có ý nghĩa tổ chức cấu trúc File System như trong Unix, mà chỉ đơn giản là unique id mà file system dùng để lưu vết (track) file 3.1.2 Giới thiệu stat để xem trạng thái của file Thông tin được liệt kê bởi lệnh stat nhiều hơn ls Linux Command stat là công cụ chuyên sâu không được tích hợp mặc định cùng MT14tinyLinux để giữ kích thước... quản lý đãi cứng/thư mục /file BT3 là bài tập mở rộng, sinh viên sau khi lấy thông tin từ các công cụ quản lý file cân thực hiện trích xuất thông tin cần thiết BT1 (3 điểm) Sinh viên thực hiện thao tác xem thông tin tập tin BT2 (3 điểm) Sinh viên thực hiện thao tác xem thông tin phân vùng đĩa cứng có trên hệ thống BT3 (4 điểm) Sinh viên thực hiện thao tác các process đang mở file tại đường dẫn • Lấy... tin đĩa và parition/volume Mỗi hệ điều hành cung cấp các công cụ tiện ích (utilities tool) để xem thông tin trên harddisk và partition Trong Unix, thiết bị lưu trữ thứ cấp (đĩa, flash ) được gắn vào file system Các lệnh được cung cấp là df -h (Linux và MacOS), fdisk, (Linux, MacOS), parted (Linux) và diskutil (MacOS) Các thao tác xem thông tin đĩa chỉ có thể thực hiện với quyền quản lý hệ thống Các... identification; y: 1,2, partition number) Vd: • hardisk /dev/sda (đĩa 0) /dev/sdb (đĩa 1), /dev/sr0 (đĩa CDROM) • partition /dev/sda1 (parition thứ 1 trên đĩa 0), /dev/sdc2 (partition thứ 3 trên đĩa 2) $ d f −h Filesystem rootfs tmpfs / dev / sda1 / dev / l o o p 0 / dev / l o o p 1 Size 451M 251M 486M 8 0K 8 0K Used A v a i l Use% Mounted on 28M 423M 7% / 0 251M 0% / dev /shm 130M 353M 27% /mnt/ sda1 8 0K 0... y t e s Dev ic e Boot / dev / sda1 ∗ Start 1 End 65 Blocks 522081 Id System 83 Linux $ f d i s k − l / dev / sda1 Disk / dev / sda1 : 534 MB, 534610944 b y t e s 255 heads , 63 s e c t o r s / t r a c k , 64 c y l i n d e r s U n i t s = c y l i n d e r s o f 16065 ∗ 512 = 8225280 b y t e s D ev ic e Boot Start End B l o c k s Id System / dev / sda1p1 ? 200716 227661 216435558+ 7 HPFS/NTFS P a r t... harddisk identification; Y: 1,2, partition number) Vd: • hardisk /dev/disk0 (đĩa 0) /dev/disk1 • partition /dev/disk0s1 (parition thứ 1 trên đĩa 0), /dev/disk3s2 (partition thứ 2 trên đĩa 4) $ sudo d f −h Filesystem Size Used A v a i l Capacity i u s e d i f r e e %i u s e d Mounted on 14 / dev / d i s k 0 s 2 39 Gi 19 Gi devfs 181 Ki 181 Ki map −h o s t s 0 Bi 0 Bi map auto_home 0 Bi 0 Bi / dev / d i s k