ext2 ֆայլային համակարգ. Linux ֆայլային համակարգերի տեսակները և դրանց առանձնահատկությունները: Տվյալների հասցեավորման համակարգ

Դիտարկենք ext2fs ֆայլային համակարգի տրամաբանական կառուցվածքը: Ֆիզիկապես HDDբաժանված է 512 բայթ հատվածների: Ցանկացած ֆայլային համակարգում սկավառակի բաժանման առաջին հատվածը համարվում է բեռնման տարածք: Առաջնային բաժանման մեջ այս տարածքը պարունակում է բեռնման մուտքագրում՝ կոդի մի հատված, որը սկսում է բեռնման գործընթացը օպերացիոն համակարգգործարկման ժամանակ: Այս տարածքը չի օգտագործվում այլ հատվածներում: Մնացած հատվածները խմբավորված են 1, 2 կամ 4 կիլոբայթանոց տրամաբանական բլոկների մեջ: Տրամաբանական բլոկը տվյալների ամենափոքր հասցեական հատվածն է. յուրաքանչյուր ֆայլի տվյալները զբաղեցնում են բլոկների ամբողջ թիվ: Բլոկներն իրենց հերթին միավորվում են բլոկների խմբերի մեջ։ Խմբի ներսում բլոկների խմբերը և բլոկները համարակալվում են հաջորդաբար՝ սկսած 1-ից:

ext2fs ֆայլային համակարգի հետ աշխատելիս օգտագործվող տվյալների կառուցվածքները նկարագրված են /usr/include/linux/ext2fs .h վերնագրի ֆայլում:

Սուպերբլոկը ծառայում է որպես ֆայլային համակարգի մեկնարկային կետ և պահպանում է բոլորը

տեղեկություններ նրա մասին։ Այն ունի 1024 բայթ չափ և գտնվում է ֆայլային համակարգի սկզբից 1024 բայթ օֆսեթում: Բլոկների յուրաքանչյուր խմբում այն ​​կրկնօրինակվում է, ինչը թույլ է տալիս արագ վերականգնել այն ձախողումներից հետո: Սուպերբլոկը որոշում է ֆայլային համակարգի չափը, բաժանման ֆայլերի առավելագույն քանակը, ազատ տարածության քանակը և պարունակում է տեղեկատվություն այն մասին, թե որտեղ պետք է փնտրել չբաշխված տարածքները: Երբ ՕՀ-ն սկսվում է, սուպերբլոկը կարդացվում է հիշողության մեջ, և ֆայլային համակարգի բոլոր փոփոխությունները նախ արտացոլվում են օպերացիոն համակարգում տեղակայված սուպերբլոկի պատճենում և միայն պարբերաբար գրվում սկավառակի վրա: Սա բարելավում է համակարգի աշխատանքը, քանի որ շատ օգտվողներ և գործընթացներ անընդհատ թարմացնում են ֆայլերը: Մյուս կողմից, երբ համակարգը դադարեցվում է, սուպերբլոկը պետք է գրվի սկավառակի վրա, ինչը թույլ չի տալիս անջատել համակարգիչը՝ պարզապես անջատելով հոսանքը։ Հակառակ դեպքում, հաջորդ բեռնախցիկի ժամանակ sunerblock-ում գրանցված տեղեկատվությունը չի լինի

համապատասխանում է ֆայլային համակարգի իրական վիճակին:

Բլոկների խմբի նկարագրությունը (նկարագրիչը) հետևում է սուպերբլոկին: Դրանում պահվող տեղեկատվությունը թույլ է տալիս գտնել բլոկային և ինոդային բիթքարտեզներ, ինչպես նաև ինոդային աղյուսակ:

Բլոկի բիտ քարտեզը կառուցվածք է, որի յուրաքանչյուր բիթ ցույց է տալիս, թե արդյոք նույն թվի բլոկը վերագրված է որևէ ֆայլի: 1 արժեքը ցույց է տալիս, որ բլոկը զբաղված է: Այս քարտեզը օգտագործվում է անվճար բլոկների որոնման համար այն դեպքերում, երբ անհրաժեշտ է տարածք հատկացնել ֆայլի համար:.

Inode bitmap-ը կատարում է նույն գործառույթը, ինչ inode աղյուսակը. այն ցույց է տալիս, թե որ inode-ներն են զբաղված:

Յուրաքանչյուր ֆայլ ունի մեկ և միայն մեկ inode (ինոդ, i-node, տեղեկատվական հանգույց), որը նույնացվում է իր սերիական համարով՝ ֆայլի ինդեքսով։ Inode-ը պարունակում է ֆայլի մետատվյալներ: Դրանց թվում կան ֆայլի բոլոր ատրիբուտները, բացառությամբ նրա անվան, և ֆայլի տվյալների ցուցիչ:

Սովորական ֆայլի կամ գրացուցակի համար այս ցուցիչը 15 բլոկային հասցեներից բաղկացած զանգված է: Այս զանգվածի առաջին 12 հասցեները ուղիղ հղումներ են դեպի բլոկային համարները, որտեղ պահվում են ֆայլի տվյալները: Եթե ​​տվյալները չեն տեղավորվում 12 բլոկների մեջ, ապա անուղղակի հասցեավորման մեխանիզմն ակտիվանում է։ Այս զանգվածի հաջորդ հասցեն անուղղակի հղում է, այսինքն՝ բլոկի հասցեն, որը պահպանում է հաջորդ բլոկների հասցեների ցանկը՝ այս ֆայլի տվյալների հետ։

Քանի՞ բլոկ տվյալների կարելի է հասցեագրել այսպես: Բլոկի հասցեն տեւում է 4 բայթ, բլոկը, ինչպես արդեն նշվեց, 1, 2 կամ 4 կիլոբայթ է։ Սա նշանակում է, որ 256 - 1024 բլոկները կարող են տեղադրվել անուղղակի հասցեավորման միջոցով:

Իսկ եթե ֆայլն էլ ավելի երկար լինի: Սլաքի զանգվածի հաջորդ հասցեն մատնանշում է կրկնակի անուղղակի բլոկին: (կրկնակի բլոկ անուղղակի):Այս բլոկը պարունակում է բլոկի հասցեների ցուցակ, որն իր հերթին պարունակում է հաջորդ տվյալների բլոկների հասցեների ցուցակներ:

Եվ վերջապես, ցուցիչի զանգվածի վերջին հասցեն նշում է եռակի անուղղակի բլոկի հասցեն, այսինքն՝ բլոկի հասցեների ցանկով, որոնք կրկնակի անուղղակի բլոկներ են։

Առայժմ պարզ չէ, թե որտեղ է գտնվում ֆայլի անունը, եթե այն ոչ ֆայլի տվյալների մեջ է, ոչ էլ դրա մետատվյալների մեջ: UNIX-ի նման համակարգերում ֆայլի անունը բուն ֆայլի հատկանիշ չէ, այլ ֆայլային համակարգի, որը հասկացվում է որպես տրամաբանական գրացուցակի կառուցվածք: Ֆայլի անունը պահվում է միայն այն գրացուցակում, որին վերագրված է ֆայլը, և ոչ մի այլ տեղ: Սրանից հետևում են տարօրինակ հետևանքներ.

Նախ, տարբեր դիրեկտորիաներին վերագրված ցանկացած թվով անուններ կարող են համապատասխանել մեկ ինոդի, և բոլորն էլ իրական են: Անունների քանակը (կոշտ հղումներ) հաշվվում է ինոդում։ Սա այն գումարն է, որը դուք կարող եք տեսնել Is -1 հրամանով:

Երկրորդ, ֆայլը ջնջելը պարզապես նշանակում է ջնջել դրա մուտքը գրացուցակի տվյալներից և նվազեցնել հղումների քանակը 1-ով:

Երրորդ, անունը կարող է համընկնել միայն նույն ֆայլային համակարգում գտնվող ինոդ թվի հետ, այդ իսկ պատճառով դուք չեք կարող կոշտ հղում ստեղծել մեկ այլ ֆայլային համակարգի (խորհրդանշական - կարող եք, այն ունի պահպանման այլ մեխանիզմ):

Գրացուցակն ինքնին նույնպես վերագրվում է իր մայր գրացուցակին: Արմատային գրացուցակը միշտ գրվում է inode համար 2-ում (թիվ 1-ը վերապահված է սխալ բլոկի հասցեների ցանկի համար): Յուրաքանչյուր գրացուցակ պահպանում է իր և իր մայր գրացուցակի հղումը. սրանք կեղծ ենթագրքերն են «»: Եվ «...».

Այսպիսով, գրացուցակի հղումների թիվը հավասար է նրա ենթագրանցերի թվին գումարած երկու:

Գրացուցակի տվյալները փոխկապակցված ցուցակ են՝ փոփոխական երկարությամբ գրառումներով և այսպիսի տեսք ունի.

Գրացուցակի կառուցվածքը ext2fs-ում

Ինչ վերաբերում է ֆիզիկական սարքի ֆայլերին: Նրանք կարող են տեղակայվել նույն դիրեկտորիաներում, ինչ սովորական ֆայլերը. գրացուցակում չկա որևէ տվյալ, որը ցույց է տալիս՝ անունը պատկանում է սկավառակի ֆայլին, թե սարքին: Տարբերությունը ինոդի մակարդակում է: Եթե ​​սովորական ֆայլի i-հանգույցը մատնանշում է սկավառակի բլոկները, որտեղ պահվում են դրա տվյալները, ապա սարքի ֆայլի i-հանգույցը պարունակում է ցուցիչ միջուկում գտնվող սարքի դրայվերների ցանկին՝ ցանկի այն տարրը, որը համապատասխանում է: հիմնական սարքի համարը.

Տարբերությունը սովորական ֆայլի և սարքի ֆայլի միջև

Ext2fs ֆայլային համակարգի հատկությունները.

Ֆայլային համակարգի առավելագույն չափը 4 ՏԲ է:

Ֆայլի առավելագույն չափը 2 ԳԲ է:

Ֆայլի անվան առավելագույն երկարությունը 255 նիշ է:

Բլոկի նվազագույն չափը 1024 բայթ է:

Հատկացված ինոդների թիվը 1 է բաժանման 4096 բայթի համար:

Ինչպես ցանկացած UNIX ֆայլային համակարգի դեպքում, ext2-ը կարելի է բաժանել հետևյալ բաղադրիչների.

- բլոկներ և բլոկների խմբեր;

− ինդեքսի նկարագրիչ;

- սուպերբլոկ:

Սկավառակի բաժանման ողջ տարածքը բաժանված է ֆիքսված չափի բլոկների, որոնք բազմապատիկ են հատվածի չափսին՝ 1024, 2048, 4096 կամ 8192 բայթ: Բլոկի չափը նշվում է սկավառակի բաժանման վրա ֆայլային համակարգ ստեղծելիս: Բլոկի ավելի փոքր չափը խնայում է կոշտ սկավառակի տարածությունը, բայց նաև սահմանափակում է ֆայլային համակարգի առավելագույն չափը: Բոլոր բլոկներն ունեն սերիական համարներ: Տվյալների մեծ զանգվածներ կարդալիս մասնատվածությունը և կոշտ սկավառակի գլխի շարժումների քանակը նվազեցնելու համար բլոկները միավորվում են բլոկային խմբերի մեջ:

Ֆայլային համակարգի հիմնական հայեցակարգը inode կամ inode (տեղեկատվական հանգույց) է: Սա հատուկ կառույց է, որը պարունակում է տեղեկատվություն ֆայլի ատրիբուտների և ֆիզիկական գտնվելու վայրի մասին: Ինոդները կազմակերպվում են աղյուսակի մեջ, որը պարունակվում է բլոկների յուրաքանչյուր խմբի սկզբում:

Նկար 10 - FS ext2-ի ընդհանրացված բլոկային դիագրամ

Սուպերբլոկը ext2 ֆայլային համակարգի հիմնական տարրն է: Նա պարունակում է ընդհանուր տեղեկությունֆայլային համակարգի մասին.

ֆայլային համակարգում բլոկների և ինոդների ընդհանուր թիվը,

ֆայլային համակարգում անվճար բլոկների և ինոդների քանակը,

ֆայլային համակարգի բլոկի չափը,

բլոկների և ինոդների քանակը բլոկային խմբում,

ինոդի չափը,

ֆայլային համակարգի նույնացուցիչ:

Սուպերբլոկը հատվածի սկզբից 1024 բայթ է: Ֆայլային համակարգի առողջությունն ուղղակիորեն կախված է սուպերբլոկի ամբողջականությունից: Օպերացիոն համակարգը ստեղծում է մի քանիսը կրկնօրինակներ superblock բաժանման կոռուպցիայի դեպքում. Սուպերբլոկից հետո հաջորդ բլոկը պարունակում է գլոբալ նկարագրող աղյուսակ՝ բլոկների խմբերի նկարագրություն, որը զանգված է, որը պարունակում է ընդհանուր տեղեկություններ հատվածի բլոկների բոլոր խմբերի մասին։

ext2 բաժանման բոլոր բլոկները բաժանված են բլոկային խմբերի: Յուրաքանչյուր խմբի համար գլոբալ նկարագրիչ աղյուսակում ստեղծվում է առանձին գրառում, որը պահպանում է հիմնական պարամետրերը.

բլոկի համարը բիտքարտեզում,

բլոկի համարը inode bitmap-ում,

բլոկի համարը inode աղյուսակում,

խմբում անվճար բլոկների քանակը,

տեղեկատուներ պարունակող ինոդների քանակը:

Բլոկի bitmap-ը կառուցվածք է, որի յուրաքանչյուր բիթ ցույց է տալիս, արդյոք համապատասխան բլոկը վերագրված է որևէ ֆայլի: Եթե ​​բիթը 1 է, ապա բլոկը զբաղված է: Նմանատիպ ֆունկցիա կատարում է inode bitmap-ը, որը ցույց է տալիս, թե որ ինոդներն են զբաղված, որոնք՝ ոչ։ Linux միջուկը, օգտագործելով տեղեկատուներ պարունակող ինոդների քանակը, փորձում է հավասարաչափ բաշխել գրացուցակի ինոդները խմբերի և հնարավորության դեպքում փորձում է ֆայլի ինոդները տեղափոխել ծնող գրացուցակով խումբ: Ամբողջ մնացած տարածքը, որը նշված է աղյուսակում որպես տվյալ, վերապահված է ֆայլերը պահելու համար:

Ext2 ֆայլային համակարգը օգտագործում է հետևյալ ֆայլերի բլոկի հասցեավորման սխեման. Ֆայլի հասցեն պահելու համար հատկացվում է 15 դաշտ, որոնցից յուրաքանչյուրը բաղկացած է 4 բայթից։ Եթե ​​ֆայլը տեղավորվում է 12 բլոկների մեջ, ապա համապատասխան կլաստերների համարներն ուղղակիորեն նշված են հասցեի առաջին տասներկու դաշտերում։ Եթե ​​ֆայլի չափը գերազանցում է 12 բլոկը, ապա հաջորդ դաշտը պարունակում է այն կլաստերի հասցեն, որում կարող են տեղակայվել ֆայլի հաջորդ բլոկների համարները։ Այսպիսով, 13-րդ դաշտն օգտագործվում է անուղղակի հասցեավորման համար։

Բլոկի առավելագույն չափը 4096 բայթ է, 13-րդ դաշտին համապատասխանող կլաստերը կարող է պարունակել ֆայլի մինչև 1024 հաջորդ բլոկի համարներ: Եթե ​​ֆայլի չափը գերազանցում է 12+1024 բլոկը, ապա օգտագործվում է 14-րդ դաշտը, որը պարունակում է 1024 կլաստերի համար պարունակող կլաստերի հասցեն, որոնցից յուրաքանչյուրը վերաբերում է ֆայլի 1024 բլոկներին։ Այստեղ օգտագործվում է կրկնակի անուղղակի հասցեավորում: Վերջապես, եթե ֆայլը պարունակում է ավելի քան 12+1024+1048576 բլոկ, ապա վերջին 15-րդ դաշտն օգտագործվում է եռակի անուղղության համար։

Հասցեավորման այս համակարգը թույլ է տալիս 4096 բայթ բլոկի առավելագույն չափով ունենալ 2 ՏԲ-ից մեծ ֆայլեր:

ext3 կամ ext3fs-ը ամսագրային ֆայլային համակարգ է, որն օգտագործվում է Linux միջուկի վրա հիմնված օպերացիոն համակարգերում: FS ext2-ի հիման վրա:

Ext2-ից հիմնական տարբերությունն այն է, որ ext3-ը ամսագրված է, այսինքն՝ նախատեսում է որոշ տվյալներ գրել, որոնք թույլ են տալիս վերականգնել ֆայլային համակարգը, եթե համակարգիչը խափանվի:

Ստանդարտն ապահովում է գրանցման երեք ռեժիմ.

գրություն. ամսագրում գրվում է միայն ֆայլային համակարգի մետատվյալները, այսինքն՝ դրա փոփոխության մասին տեղեկությունները: Չի կարող երաշխավորել տվյալների ամբողջականությունը, բայց արդեն նկատելիորեն նվազեցնում է ստուգման ժամանակը ext2-ի համեմատ.

պատվիրված է. նույնն է, ինչ վերադարձը, բայց տվյալները գրվում են ֆայլում նախքան այս ֆայլը փոխելու մասին տեղեկություն գրելը: Մի փոքր նվազեցնում է կատարումը, ինչպես նաև չի կարող երաշխավորել տվյալների ամբողջականությունը (չնայած դա մեծացնում է դրանց անվտանգության հավանականությունը գոյություն ունեցող ֆայլի վերջում ավելացնելիս);

ամսագիր. ինչպես FS մետատվյալների, այնպես էլ օգտատերերի տվյալների ամբողջական ամսագրում: Ամենադանդաղը, բայց նաև ամենաշատը անվտանգ ռեժիմ; կարող է երաշխավորել տվյալների ամբողջականությունը՝ գրանցամատյանը առանձին բաժանման վրա (կամ ավելի լավ՝ առանձին կոշտ սկավառակի վրա) պահելիս։

Ext3 ֆայլային համակարգը կարող է աջակցել մինչև 1 TB չափի ֆայլեր: Linux kernel 2.4-ի դեպքում ֆայլային համակարգի չափը սահմանափակվում է սարքի բլոկի առավելագույն չափով, որը կազմում է 2 տերաբայթ: Linux 2.6-ում (32-բիթանոց պրոցեսորների համար) բլոկի սարքի առավելագույն չափը 16 ՏԲ է, սակայն ext3-ն աջակցում է միայն մինչև 4 ՏԲ:

ext4-ը ֆայլային համակարգ է, որը հիմնված և համատեղելի է ext3-ի վրա (առաջ և հետընթաց): Տարբերվում է ext3-ից՝ որպես ամբողջություն կառավարվող չափերի, հարակից ֆիզիկական բլոկների խմբերի աջակցությամբ. ավելացել է արագությունըամբողջականության ստուգումներ և մի շարք այլ բարելավումներ:

Նոր ext4 առանձնահատկություններ (համեմատած ext3).

Օգտագործելով չափերը. Ext3 ֆայլային համակարգում տվյալները հասցեագրվում էին ավանդական եղանակով՝ բլոկ առ բլոկ: Հասցեավորման այս մեթոդը դառնում է ավելի քիչ արդյունավետ, քանի որ ֆայլի չափը մեծանում է: Ընդարձակությունները թույլ են տալիս մեկ նկարագրիչով հասցեագրել մեծ թվով (մինչև 128 ՄԲ) հարակից բլոկներ: Անմիջապես inode-ում կարող են տեղադրվել մինչև 4 աստիճանի ցուցիչներ, ինչը բավարար է փոքր և միջին չափի ֆայլերի համար:

48-բիթանոց բլոկի համարներ: 4K բլոկի չափով սա թույլ է տալիս հասցեագրել մինչև մեկ էքսաբայթ (2 48 *4KB = 2 50 *1KB = 2 60 B = 1 EB):

Բլոկների տեղաբաշխում խմբերով (բազմաբլոկային տեղաբաշխում). Ֆայլային համակարգը պահպանում է ոչ միայն տեղեկատվություն ազատ բլոկների գտնվելու վայրի մասին, այլև միմյանց հաջորդող անվճար բլոկների քանակը: Տարածք հատկացնելիս ֆայլային համակարգը գտնում է մի հատված, որի մեջ տվյալները կարող են գրվել առանց մասնատման: Սա նվազեցնում է ֆայլային համակարգի մասնատման մակարդակը որպես ամբողջություն:

Բլոկների հետաձգված տեղաբաշխում. Ֆայլի տվյալները պահելու համար բլոկների բաշխումը տեղի է ունենում անմիջապես սկավառակի վրա ֆիզիկական գրառումից առաջ (օրինակ՝ համաժամացման ժամանակ), և ոչ թե գրելը կանչելիս: Արդյունքում բլոկի տեղաբաշխման գործողությունները կարող են կատարվել ոչ թե մեկ առ մեկ, այլ խմբերով, ինչն իր հերթին նվազագույնի է հասցնում մասնատումը և արագացնում բլոկի բաշխման գործընթացը։ Մյուս կողմից, այն մեծացնում է տվյալների կորստի վտանգը հոսանքի հանկարծակի անջատման դեպքում:

32000 գրացուցակների սահմանաչափը գերազանցվել է։

Inode-ների ամրագրում գրացուցակ ստեղծելիս (directory inodes reservation) Գրացուցակ ստեղծելիս մի քանի inode վերապահվում են: Հետագայում այս գրացուցակում ֆայլեր ստեղծելիս նախ օգտագործվում են վերապահված ինոդներ, և եթե դրանք չեն մնացել, ապա կատարվում է սովորական ընթացակարգը:

inode չափը. Inode չափը (կանխադրված) 128 բայթից ավելացել է մինչև 256 բայթ: Սա հնարավորություն տվեց գիտակցել ստորև թվարկված առավելությունները:

Ժամային դրոշմներ նանվայրկյան ճշգրտությամբ (նանվայրկյանական ժամանակի դրոշմանիշներ): Inode-ում պահվող ժամանակների ավելի բարձր ճշգրտություն: Ընդլայնվել է նաև պահվող ժամանակների շրջանակը՝ եթե նախկինում պահվող ժամանակի վերին սահմանը 2038 թվականի հունվարի 18-ն էր, ապա այժմ՝ 2514 թվականի ապրիլի 25-ը։

inode տարբերակը. Inode-ն ունի մի թիվ, որն ավելանում է ամեն անգամ, երբ ֆայլի ինոդը փոխվում է:

Ընդլայնված ատրիբուտների պահպանում inode-ում (EA inode-ում): Ընդլայնված ատրիբուտների պահպանումը, ինչպիսիք են ACL-ները, SELinux ատրիբուտները և այլն, կարող են բարելավել կատարումը: Հատկանիշները, որոնց համար բավարար ինոդային տարածք չկա, պահվում են առանձին 4 ԿԲ բլոկում:

Ամսագրի ստուգման գումարում. Չեկային գումարներամսագրի գործարքներ. Թույլ է տալիս ավելի լավ գտնել և (երբեմն) շտկել սխալները վթարից հետո համակարգի ամբողջականությունը ստուգելիս:

Նախնական հատկացում (համառ նախատեղում). Այժմ, որպեսզի հավելվածը երաշխավորված լինի ֆայլային համակարգում տեղ զբաղեցնելու համար, այն լրացնում է զրոներով։ ext4-ում հնարավոր դարձավ շատ բլոկներ վերապահել գրելու համար և շատ ժամանակ չծախսել սկզբնավորման վրա։ Եթե ​​հավելվածը փորձի կարդալ տվյալները, այն կստանա հաղորդագրություն, որ այն չի սկզբնավորվել: Այսպիսով, ջնջված տվյալների չարտոնված ընթերցումը չի աշխատի:

Defragmentation առանց unmounting (online Defragmentation):

Չնախնականացված բլոկներ. Թույլ է տալիս արագացնել ֆայլային համակարգի ստուգումը: Որպես չօգտագործված նշված բլոկները ստուգվում են խմբերով, և մանրամասն ստուգում է կատարվում միայն այն դեպքում, եթե խմբի ստուգումը ցույց է տվել, որ ներսում վնաս կա։

Դասախոսություն 12

Թեմա՝ Տեղեկատու համակարգեր

Ֆայլերի կառավարման համակարգի և ֆայլերի հավաքածուի միջև կապն է ֆայլի գրացուցակ. Գրացուցակի համակարգի ամենապարզ ձևն այն է, որ կա մեկ գրացուցակ, որը պարունակում է բոլոր ֆայլերը: Գրացուցակը պարունակում է տեղեկություններ ֆայլերի մասին, ներառյալ հատկանիշները, գտնվելու վայրը, սեփականությունը: Օգտագործողները ֆայլերը նշում են խորհրդանշական անուններով: Այնուամենայնիվ, մարդկային հիշողության հզորությունը սահմանափակում է օբյեկտների անունների քանակը, որոնց օգտագործողը կարող է անվանել: Անվանատարածքի հիերարխիկ կազմակերպումը թույլ է տալիս զգալիորեն ընդլայնել այդ սահմանները: Այդ իսկ պատճառով գրացուցակային համակարգերն ունեն հիերարխիկ կառուցվածքը. Գրացուցակի հիերարխիան նկարագրող գրաֆիկը կարող է լինել ծառ կամ ցանց: Գրացուցակները կազմում են ծառ, եթե ֆայլը թույլատրվում է լինել միայն մեկ գրացուցակում (Նկար 7.11), և ցանց, եթե ֆայլը կարող է լինել մեկից ավելի գրացուցակում:

Օրինակ, Ms-Dos-ում և Windows-ում գրացուցակները կազմում են ծառի կառուցվածք, մինչդեռ UNIX-ում՝ ցանցային կառուցվածք: IN ընդհանուր դեպքՀամակարգչային համակարգը կարող է ունենալ մի քանի սկավառակային սարքեր, նույնիսկ համակարգիչը միշտ ունի մի քանի սկավառակ՝ ճկուն, կոշտ սկավառակ, CD-ROM (DVD): Ինչպե՞ս կազմակերպել ֆայլերի պահպանումն այս դեպքում:

Բրինձ. Տեղեկատու համակարգեր

Առաջին լուծումը յուրաքանչյուր սարքի վրա անցանց ֆայլային համակարգ տեղադրելն է, այսինքն. Այս սարքի ֆայլերը նկարագրվում են գրացուցակի ծառով, որը ոչ մի կապ չունի այլ սարքերի գրացուցակների ծառերի հետ: Այս դեպքում ֆայլը եզակի նույնականացնելու համար օգտատերը պետք է նշի սարքի տրամաբանական նույնացուցիչը բաղադրյալ սիմվոլիկ ֆայլի անվան հետ միասին: Նման ինքնավար գոյության օրինակ է MS-DOS, Windows 95/98/Me/XP:

Մեկ այլ լուծում է ֆայլերի պահեստավորումը կազմակերպել այնպես, որ օգտագործողին հնարավորություն տրվի համատեղել ֆայլային համակարգերը, որոնք գտնվում են վրա տարբեր սարքեր, մեկ ֆայլային համակարգի մեջ, որը նկարագրված է մեկ գրացուցակի ծառով: Այս գործողությունը կոչվում է մոնտաժ:

UNIX-ում մոնտաժը կատարվում է հետևյալ կերպ. Բոլոր հասանելի տրամաբանական սկավառակի սարքերի մեջ առանձնանում է մեկը, որը կոչվում է համակարգ: Թող լինեն երկու ֆայլային համակարգեր, որոնք տեղակայված են տարբեր վրա տրամաբանական դրայվներ, իսկ սկավառակներից մեկը համակարգային սկավառակ է (նկ. 7.12):

Համակարգի սկավառակի վրա տեղակայված ֆայլային համակարգը կոչվում է արմատ: Արմատային ֆայլային համակարգում ֆայլերի հիերարխիաները կապելու համար ընտրված է որոշ գոյություն ունեցող գրացուցակ, այս օրինակում՝ loc գրացուցակը: Մոնտաժն ավարտվելուց հետո ընտրված loc գրացուցակը դառնում է երկրորդ ֆայլային համակարգի արմատային գրացուցակը: Այս գրացուցակի միջոցով մոնտաժված ֆայլային համակարգը որպես ենթածառ միացված է ընդհանուր ծառին:

Բրինձ. Մոնտաժում

Հատկանիշ

Ֆայլի հայեցակարգը ներառում է ոչ միայն այն տվյալները, որոնք այն պահում է և նրա անունը, այլ նաև տեղեկատվություն, որը նկարագրում է ֆայլի հատկությունները: Այս տեղեկատվությունը կազմում է ֆայլի հատկանիշները: Տարբեր օպերացիոն համակարգերում ատրիբուտների ցանկը կարող է տարբեր լինել: Հնարավոր ատրիբուտների օրինակը ներկայացված է ստորև:

Հատկանիշ Իմաստը
Ֆայլի տեսակը Կանոնավոր, կատալոգ, հատուկ և այլն:
Ֆայլի սեփականատեր Ներկայիս սեփականատերը
Ֆայլերի ստեղծող Ֆայլը ստեղծած օգտատիրոջ ID-ն
Գաղտնաբառ Գաղտնաբառ՝ ֆայլը մուտք գործելու համար
Ժամանակը Ստեղծվել է, վերջին անգամ մուտք է գործել, վերջին անգամ փոփոխվել
Ֆայլի ընթացիկ չափը Մեկ մուտքի բայթերի քանակը
Առավելագույն չափը Բայթերի քանակը, որոնցով կարելի է մեծացնել ֆայլի չափը
Միայն կարդալու դրոշ 0 - կարդալ / գրել, 1 - միայն կարդալ
Դրոշը «թաքնված է» 0 - նորմալ, 1 - չեն ցուցադրվում կատալոգի ֆայլերի ցանկում
Դրոշի «համակարգ» 0 - նորմալ, 1 - համակարգ
Դրոշը «արխիվացված է» 0 - արխիվացված, 1 - արխիվ պահանջվում է
ASCII դրոշ / երկուական 0 - ASCII, 1 - երկուական
Պատահական մուտքի դրոշակ 0 - միայն հաջորդական մուտք, 1 - պատահական մուտք
Դրոշ «ժամանակավոր» 0 - նորմալ, 1 - ջնջում գործընթացի ավարտից հետո
Հիմնական դիրքը Օֆսեթ դեպի ձայնագրության բանալին
Բանալին երկարություն Բանալի դաշտում բայթերի քանակը

Օգտագործողը կարող է մուտք գործել ատրիբուտներ՝ օգտագործելով ֆայլային համակարգի կողմից այդ նպատակով նախատեսված հարմարությունները: Սովորաբար թույլատրվում է կարդալ ցանկացած հատկանիշի արժեքը և փոխել միայն մի քանիսը:

Ֆայլի հատկանիշի արժեքները կարող են պարունակվել գրացուցակներում, ինչպես արվում է, օրինակ, MS-DOS-ում (նկ. 7.7): Մեկ այլ տարբերակ է ատրիբուտները տեղադրել հատուկ աղյուսակներում, որի դեպքում գրացուցակները պարունակում են հղումներ դեպի այս աղյուսակները:

Բրինձ. 7. MS DOS ֆայլի հատկանիշներ

Linux ֆայլային համակարգը ամենից հաճախ ext4 է: Այն գրանցվում է և թույլ է տալիս հեշտությամբ աշխատել տվյալների հետ՝ խնդիրների ճնշող մեծամասնությունը լուծելիս: Այնուամենայնիվ, կան ուրիշներ. Այս նյութի շրջանակներում կդիտարկվեն ֆայլային համակարգերի հիմնական տեսակները և դրանց հետ աշխատելու սկզբունքները:

Linux ֆայլային համակարգերի տեսակները և դրանց առանձնահատկությունները

Հատկանշական հատկանիշներն են ֆայլերի հետ աշխատելու արագությունը, անվտանգությունը և պարամետրերը (օրինակ՝ բլոկի չափը), որոնք կան լռելյայնորեն և սահմանվում են FS-ի ստեղծման ժամանակ: Թերևս ամենաշատը կարևոր հատկանիշգերանի առկայությունն է։ Համակարգի գրանցամատյանը գրանցում է տվյալներ կամ մետատվյալներ(միայն վերնագրեր), որոնցից տեղեկատվությունը հնարավոր է վերականգնել խափանման դեպքում:

Ֆայլային համակարգ կարող է ստեղծվել ցանկացած սարքի վրա՝ սկավառակի կամ համակարգի բաժանման:

EXT2 ֆայլային համակարգ

EXT2-ն այժմ հնացած ֆայլային համակարգ է, որը գրեթե չի օգտագործվում ժամանակակից տեղադրություններում: Հիմնական թերությունը գրանցման բացակայությունն է, ինչը, համապատասխանաբար, անհնար է դարձնում տվյալների վերականգնումը ձախողման դեպքում: Դեռևս օգտագործվում է շարժական լրատվամիջոցներում, ինչպիսիք են USB-ը: Նրանց համար ամսագիր չի պահանջվում, քանի որ այն զբաղեցնում է որոշակի տարածք:

Այն նաև երաշխավորում է առավելագույն արագություն:

  • EXT2-ի համար ֆայլի առավելագույն չափը -2 ՏԲ է

EXT3 ֆայլային համակարգ

Փոխարինված EXT2, հիմնական առանձնահատկությունը ամսագրի տեսքն է, լիովին հետընթաց համատեղելի է EXT2-ի հետ (EXT2-ը կարող է ազատորեն փոխարկվել EXT3-ի): Այժմ դա նույնպես հազվադեպ է, EXT4 գրեթե միշտ օգտագործվում է:

Մատյանը հիշողության հատուկ տարածք է, որը գրանցում է բոլոր փոփոխությունների մասին տեղեկությունները:

  • EXT3-ի համար ֆայլի առավելագույն չափը -2 ՏԲ է
  • բոլոր ֆայլերի առավելագույն չափը 32 ՏԲ է
  • Յուրաքանչյուր գրացուցակ կարող է ունենալ մինչև 32000 ենթագրքեր

Օրագրման երեք տարբերակ կա (նշված է ֆայլային համակարգը ստեղծելիս).

  • ամսագիր - ամսագրի մետատվյալներում, ինչպես նաև բուն տեղեկատվության մեջ
  • պատվիրված - լռելյայն տարբերակ, միայն մետատվյալները պահվում են սկավառակի վրա գրելուց հետո
  • գրել հետադարձ - միայն մետատվյալները նույնպես պահպանված են, դուք կարող եք ընտրել այն պահպանել նախքան սկավառակի վրա գրելը կամ դրանից հետո

EXT4 ֆայլային համակարգ

Ընդլայնված ֆայլային համակարգի ժամանակակից տարբերակը, այն առավել հաճախ օգտագործվում է

  • ֆայլի առավելագույն չափը -2 TB 16 TB
  • բոլոր ֆայլերի առավելագույն չափը 1 EB է (exabyte): 1 EB = 1024 PB (պետաբայթ): 1 PB = 1024 TB (տերաբայթ):
  • Յուրաքանչյուր գրացուցակ կարող է ունենալ մինչև 64000 ենթագրքեր

EXT4-ում գրանցումը կարող է անջատվել՝ ընտրելով տարբերակը տվյալներըերբ տեղադրված է անջատված է

EXT որպես հիմնական Linux ֆայլային համակարգ և աշխատանքային պրակտիկա

Ֆայլային համակարգը ստեղծվում է mk2fs հրամանով

Մոնտաժման ժամանակ նշվում է անտառահատումների ցանկալի տարբերակը, օրինակ՝

mount /dev/vdc /mnt/1 -t ext3 -o data=journal

Փոխակերպում EXT2 E-ից XT3

ReiserFS

ReiserFS-ը (և Reiser4-ի ժամանակակից ներդրումը SELinux-ի աջակցությամբ) լավ են գործում և շատ արդյունավետ են, հատկապես մեծ թվով փոքր ֆայլերի հետ աշխատելիս: ReiserFS-ը յուրաքանչյուր փոքր ֆայլի համար ինոդներ չի հատկացնում՝ դրանք միասին մշակելով, ինչպես նաև ReiserFS-ն օգտագործում է մի քանի ամսագիր։ մատչելի տարբերակներ. Ներկայումս ֆայլային համակարգը աջակցվում է Ռուսաստանի մշակողների կողմից:

Հրամանով կարող եք սարքի համար ստեղծել FS

XFS

XFS-ը օրագրված ֆայլային համակարգ է: Օգտագործումներ RAMտեղեկատվության պահպանման համար, այնպես որ տվյալների կորուստը հնարավոր է, օրինակ, երբ հոսանքն անջատված է:

Ubuntu-ում XFS-ն օգտագործելու համար ձեզ հարկավոր է փաթեթներ տեղադրել xfsprogsԵվ xfsdump

vfat

Linux ֆայլային համակարգը, որը նույնպես գտնվում է Windows միջավայր. Այն օգտագործվում է, երբ անհրաժեշտ է կազմակերպել համատեղ մուտք դեպի որոշակի սկավառակներ և տարբեր օպերացիոն համակարգեր ունեցող հաճախորդների բաժանմունքներ: Այլ դեպքերում խորհուրդ չի տրվում օգտագործել այն, քանի որ այն կարող է դժվար լինել Linux-ում աշխատելիս։

(Երկրորդ ընդլայնված ֆայլային համակարգ):

Linux ֆայլային համակարգերի զարգացման պատմություն

· Սկավառակի բաժանման կառուցվածքը ext2fs-ում

·

· Կատալոգներ

· Սարքի ֆայլեր

·

·

EXT2fs գրադարան

· EXT2fs համակարգի գործիքներ

· Կատարողականի հաշվարկ

Մատֆակ

Ծրագրային ապահովում

2-րդ դասընթաց 5-րդ գր.

Չիչիրով Անդրեյ

ֆայլային համակարգ EXT2fs (Երկրորդ ընդլայնված ֆայլային համակարգ):

Linux ֆայլային համակարգերի զարգացման պատմություն

Linux-ի առաջին տարբերակները մշակվել են Minix օպերացիոն համակարգի հիման վրա։ Ավելի հեշտ կլիներ երկու համակարգերի միջև սկավառակներ բաժանելը, քան նոր ֆայլային համակարգ մշակելը, ուստի Լինուս Տորվալդսը որոշեց աջակցել Minix ֆայլային համակարգին Linux-ում: Այն ժամանակ այս ֆայլային համակարգը բավականին արդյունավետ ծրագրային ապահովում էր՝ համեմատաբար քիչ սխալներով:

Այնուամենայնիվ, Minix ֆայլային համակարգի կառուցվածքի հետ կապված սահմանափակումները բավականին մեծ էին, ուստի նրանք սկսեցին մտածել Linux-ի համար նոր ֆայլային համակարգի մշակման մասին։

Linux-ի միջուկում նոր ֆայլային համակարգի ներդրումը պարզեցնելու համար մշակվել է վիրտուալ ֆայլային համակարգ (VFS): VFS-ն ի սկզբանե գրվել է Քրիս Պրովենցանոյի կողմից, այնուհետև վերաշարադրվել է Լինուս Տորվալդսի կողմից՝ նախքան միջուկում ինտեգրվելը:

VFS միջուկում տեղադրվելուց հետո նոր ֆայլային համակարգ EXTfs (Extended File System) մշակվեց 1992 թվականի ապրիլին և ավելացվեց Linux 0.96c տարբերակին: Նոր ֆայլային համակարգը վերացրեց Minix համակարգի երկու էական սահմանափակումները՝ դրա առավելագույն չափը կարող էր հասնել 2 գիգաբայթի, իսկ ֆայլի անվան առավելագույն երկարությունը՝ 255 նիշ։ Սա բարելավում էր Minix ֆայլային համակարգի համեմատ, թեև դեռ որոշ խնդիրներ կային: Չկար աջակցություն բաժանված մուտքի, inode փոփոխության և ֆայլի փոփոխման ժամանակի բջիջների փոփոխման համար: Այս ֆայլային համակարգն օգտագործում էր կապակցված ցուցակներ՝ ազատ բլոկների և ինոդների վրա գործելու համար, ինչը մեծապես ազդեց համակարգի աշխատանքի վրա. ժամանակի ընթացքում ցուցակները դարձան անկանոն և դասավորված, ինչը հանգեցրեց ֆայլային համակարգի մասնատմանը:

Այս խնդիրների լուծումը 1993 թվականի հունվարին երկու նոր ֆայլային համակարգերի ալֆա տարբերակների թողարկումն էր՝ Xia և EXT2fs (Երկրորդ ընդլայնված ֆայլային համակարգ): Մեծ մասամբ Xia ֆայլային համակարգը հիմնված էր Minix-ի վրա՝ ավելացված մի քանի նոր հնարավորություններով: Դրանք հիմնականում երկար ֆայլերի անուններով աշխատելու ունակությունն էին, ավելի մեծ սկավառակի միջնորմների աջակցությունը և ֆայլի փոփոխման երեք ժամանակային անցքերի աջակցությունը: Մյուս կողմից, EXT2fs-ը հիմնված էր EXTfs-ի վրա՝ բազմաթիվ բարելավումներով և լրացումներով: Նա նաև հնարավորություններ ուներ ապագա զարգացման համար:

Երբ այս երկու ֆայլային համակարգերը թողարկվեցին, դրանք ֆունկցիոնալ առումով մոտավորապես հավասար էին: Xia համակարգը ավելի հուսալի էր, քան EXT2fs-ը՝ նվազագույնի հասցնելով այն: Քանի որ դրանք ավելի լայն կիրառություն գտան, EXT2fs համակարգում հայտնաբերվեցին սխալներ, և ավելացվեցին մեծ թվով նոր հնարավորություններ և բարելավումներ: Ներկայումս EXT2fs ֆայլային համակարգը շատ հուսալի է և դարձել է դե ֆակտո ստանդարտ Linux ֆայլային համակարգը:

Հետևյալ աղյուսակը պարունակում է ընդհանուր տեղեկություններ տարբեր ֆայլային համակարգերի կողմից տրամադրվող ֆունկցիոնալության մասին:

Minix FS

ExtFS

Ext2FS

Xia FS

Ֆայլային համակարգի առավելագույն չափը

Առավելագույն երկարությունըֆայլ

Ֆայլի անվան առավելագույն երկարությունը

Աջակցություն երեք ֆայլի փոփոխման ժամանակի բջիջներին

Ընդլայնման հնարավորություն

Չափափոխվող բլոկ

Տեղեկատվության պաշտպանություն

Անհրաժեշտության դեպքում, ֆայլի անվան երկարությունը Ext 2կարող է ավելացվել մինչև 1012 թ.

EXT2fs-ը մի շարք բլոկներ է պահում արմատային օգտագործողի համար: Սա սովորաբար ընդհանուրի 5%-ն է, ինչը թույլ է տալիս համակարգի ադմինիստրատորին խուսափել տարածքի սպառումից: կոշտ սկավառակերբ այն լցված է այլ օգտվողների գործընթացների աշխատանքով:

Սկավառակի բաժանման կառուցվածքը ext2fs-ում

Արտադրողներ կոշտ սկավառակներսովորաբար առաքում են իրենց արտադրանքը ֆորմատավորված ցածր մակարդակով: Որքան գիտեմ, դա նշանակում է, որ սկավառակի ամբողջ տարածքը բաժանված է «սեկտորների» հատուկ պիտակների օգնությամբ՝ 512 բայթ չափով։ Նման սկավառակը (կամ սկավառակի բաժանումը) պետք է պատրաստվի որոշակի օպերացիոն համակարգի հետ օգտագործման համար: MS-DOS-ում կամ Windows կարգըպատրաստումը կոչվում է ֆորմատավորում, իսկ Linux-ում՝ ֆայլային համակարգի ստեղծում: Ֆայլային համակարգի ստեղծում ext2fsսկավառակի բաժանման մեջ որոշակի տրամաբանական կառուցվածք ստեղծելն է: Այս կառույցը կառուցված է հետևյալ կերպ. Նախ, սկավառակի վրա հատկացվում է բեռնման տարածք: Բեռնման տարածքը ստեղծվում է ցանկացած ֆայլային համակարգում: Հիմնական բաժանման վրա այն պարունակում է բեռնման մուտքագրում, կոդի մի հատված, որը մեկնարկում է օպերացիոն համակարգի բեռնման գործընթացը: Այս տարածքը չի օգտագործվում այլ հատվածներում: Սկավառակի մնացած տարածքը բաժանված է բլոկների: Բլոկի չափը կարող է լինել 1, 2 կամ 4 կիլոբայթ: Բլոկը սկավառակի տարածության հասցեային միավոր է: Ֆայլերի համար տարածք հատկացնելը կատարվում է բլոկներով, այնպես որ դուք պետք է փոխզիջման գնաք բլոկի չափս ընտրելիս: Բլոկի մեծ չափը, ընդհանուր առմամբ, նվազեցնում է ֆայլը կարդալիս կամ գրելիս սկավառակի մուտքերի քանակը, բայց այն մեծացնում է վատնված տարածքի քանակը, հատկապես, երբ կան մեծ թվով փոքր ֆայլեր:

Բլոկները իրենց տարածքում միավորված են բլոկների խմբերի մեջ: Ֆայլային համակարգում բլոկների խմբերը և խմբի ներսում բլոկները համարակալվում են հաջորդաբար՝ սկսած 1-ից: Սկավառակի առաջին բլոկը համարակալված է 1-ով և պատկանում է 1-ին խմբին: Սկավառակի բլոկների ընդհանուր թիվը (սկավառակի բաժանման մեջ) կազմում է. սկավառակի չափի բաժանարար՝ արտահայտված հատվածներով: Եվ բլոկների խմբերի թիվը պարտադիր չէ, որ բաժանի բլոկների թիվը, քանի որ բլոկների վերջին խումբը կարող է ամբողջական չլինել: Բլոկների յուրաքանչյուր խմբի սկիզբն ունի հասցե, որը կարելի է ստանալ որպես ((խմբի համարը - 1)* (խմբի բլոկների թիվը)):

Բլոկների յուրաքանչյուր խումբ ունի նույն կառուցվածքը: Դրա կառուցվածքը ներկայացված է հետևյալ աղյուսակում:

Արգելափակել սկավառակի բաժանման խմբի կառուցվածքը ext2fs

Այս կառուցվածքի առաջին տարրը (սուպերբլոկը) նույնն է բոլոր խմբերի համար, իսկ մնացած բոլորը անհատական ​​են յուրաքանչյուր խմբի համար։ Սուպերբլոկը պահվում է բլոկների յուրաքանչյուր խմբի առաջին բլոկում (բացառությամբ 1-ին խմբի, որտեղ առաջին բլոկը պարունակում է. boot record). Սուպերբլոկֆայլային համակարգի մեկնարկային կետն է: Այն ունի 1024 բայթ չափ և Միշտ գտնվում է օֆսեթում 1024 բայթ ֆայլային համակարգի սկզբից. Սուպերբլոկի մի քանի օրինակների առկայությունը բացատրվում է ֆայլային համակարգի այս տարրի ծայրահեղ կարևորությամբ։ Superblock կրկնօրինակներն օգտագործվում են ֆայլային համակարգը խափանումներից հետո վերականգնելիս:

Սուպերբլոկում պահվող տեղեկատվությունը օգտագործվում է սկավառակի մնացած տվյալների հասանելիությունը կազմակերպելու համար: Սուպերբլոկը որոշում է ֆայլային համակարգի չափը, բաժանման ֆայլերի առավելագույն քանակը, ազատ տարածության քանակը և պարունակում է տեղեկատվություն այն մասին, թե որտեղ պետք է փնտրել չբաշխված տարածքները: Երբ ՕՀ-ն սկսվում է, սուպերբլոկը կարդացվում է հիշողության մեջ, և ֆայլային համակարգի բոլոր փոփոխությունները նախ արտացոլվում են օպերացիոն համակարգում տեղակայված սուպերբլոկի պատճենում և միայն պարբերաբար գրվում սկավառակի վրա: Սա բարելավում է համակարգի աշխատանքը, քանի որ շատ օգտվողներ և գործընթացներ անընդհատ թարմացնում են ֆայլերը: Մյուս կողմից, երբ անջատում ես համակարգը, սուպերբլոկը պետք է գրվի սկավառակի վրա, ինչը թույլ չի տալիս անջատել համակարգիչը՝ ուղղակի հոսանքազրկելով։ Հակառակ դեպքում հաջորդ բեռնման ժամանակ սուպերբլոկում գրված տեղեկատվությունը չի համապատասխանի ֆայլային համակարգի իրական վիճակին։

Սուպերբլոկն ունի հետևյալ կառուցվածքը

Դաշտի անվանումը

Տիպ

Մեկնաբանություն

s_inodes_count

ՈՒԼՈՆԳ

Ֆայլային համակարգում ինոդների քանակը

s_blocks_count

ՈՒԼՈՆԳ

Ֆայլային համակարգում բլոկների քանակը

s_r_blocks_count

ՈՒԼՈՆԳ

Գերօգտագործողի համար վերապահված բլոկների քանակը

s_free_blocks_count

ՈՒԼՈՆԳ

Անվճար բլոկների հաշվիչ

s_free_inodes_count

ՈՒԼՈՆԳ

Անվճար inode հաշվիչ

s_first_data_block

ՈՒԼՈՆԳ

Առաջին բլոկը, որը պարունակում է տվյալներ: Կախված բլոկի չափից, այս դաշտը կարող է լինել կամ 0 կամ 1:

s_log_block_size

ՈՒԼՈՆԳ

Տրամաբանական բլոկի չափի ցուցիչ՝ 0 = 1 ԿԲ; 1 = 2 ԿԲ; 2 = 4 ԿԲ:

s_log_frag_size

ԵՐԿԱՐ

Հատվածի չափի ցուցիչ (կարծես թե հատված հասկացությունը ներկայումս չի օգտագործվում)

s_blocks_per_group

ՈՒԼՈՆԳ

Բլոկների քանակը բլոկների յուրաքանչյուր խմբում

s_frags_per_group

ՈՒԼՈՆԳ

Բլոկների յուրաքանչյուր խմբում բեկորների քանակը

s_inodes_per_group

ՈՒԼՈՆԳ

Յուրաքանչյուր բլոկային խմբում ինոդների (ինոդների) քանակը

s_mtime

ՈՒԼՈՆԳ

Ֆայլային համակարգը վերջին անգամ տեղադրելու ժամանակը:

s_wtime

ՈՒԼՈՆԳ

Ժամանակը, երբ ֆայլային համակարգը վերջին անգամ գրվել է

s_mnt_count

ՈՒՇՈՐՏ

Ֆայլային համակարգի ամրացումների քանակի հաշվարկ: Եթե ​​այս հաշվիչը հասնում է հաջորդ դաշտում նշված արժեքին (s_max_mnt_count), ապա ֆայլային համակարգը պետք է ստուգվի (դա արվում է վերագործարկման ժամանակ), և հաշվիչը զրոյականացվում է:

s_max_mnt_count

ԿԱՐՃ

Համարը, որը նշում է, թե քանի անգամ կարող է տեղադրվել ֆայլային համակարգը

s_magic

ՈՒՇՈՐՏ

«Magic number» (0xEF53), որը ցույց է տալիս, որ ֆայլային համակարգը ex2fs տեսակի է

s_state

ՈՒՇՈՐՏ

Դրոշներ, որոնք ցույց են տալիս ֆայլային համակարգի ներկայիս վիճակը (արդյո՞ք այն մաքուր է և այլն)

s_errors

ՈՒՇՈՐՏ

Դրոշներ, որոնք նշում են սխալ հաղորդագրությունների մշակման ընթացակարգերը (ինչ անել, եթե սխալներ հայտնաբերվեն):

s_pad

ՈՒՇՈՐՏ

լցնում

s_lastcheck

ՈՒԼՈՆԳ

Վերջին ֆայլային համակարգի ստուգման ժամանակը

s_checkinterval

ՈՒԼՈՆԳ

Ֆայլային համակարգի ստուգումների միջև առավելագույն ժամանակահատվածը

s_creator_os

ՈՒԼՈՆԳ

ՕՀ-ի տեսակի նշում, որում ստեղծվել է ֆայլային համակարգը

s_rev_level

ՈՒԼՈՆԳ

Ֆայլային համակարգի տարբերակը (վերանայման մակարդակը):

s_վերապահված

ՈՒԼՈՆԳ

Լիցքավորում մինչև 1024 բայթ

Սուպերբլոկին հաջորդում է բլոկների խմբի նկարագրությունը (Group Descriptors): Այս նկարագրությունը զանգված է հետևյալ կառուցվածքով.

Դաշտի անվանումը

Տիպ

Նպատակը

bg_block_bitmap

ՈՒԼՈՆԳ

Տվյալ խմբի բլոկի բիթքարտը պարունակող բլոկի հասցեն

bg_inode_bitmap

ՈՒԼՈՆԳ

Այս խմբի inode bitmap-ը պարունակող բլոկի հասցեն

bg_inode_table

ՈՒԼՈՆԳ

Այս խմբի inode աղյուսակը պարունակող բլոկի հասցեն

bg_free_blocks_count

ՈՒՇՈՐՏ

Այս խմբի անվճար բլոկների քանակի հաշվիչը

bg_free_inodes_count

ՈՒՇՈՐՏ

Ազատ ինոդների քանակը այս խմբում

bg_used_dirs_count

ՈՒՇՈՐՏ

Այս խմբի ինոդների քանակը, որոնք դիրեկտորիաներ են

bg_pad

ՈՒՇՈՐՏ

լցնում

bg_reserved

ՈՒԼՈՆԳ

լցնում

Բլոկի խմբի նկարագրության չափը կարող է հաշվարկվել որպես (block_group_size_in_ext2 *_of_groups) / block_size(անհրաժեշտության դեպքում կլոր):

Խմբի նկարագրության մեջ պահվող տեղեկատվությունը օգտագործվում է բլոկի և ինոդի բիթքարտեզները և inode աղյուսակը գտնելու համար: Հիշեք, որ բլոկները և բլոկների խմբերը համարակալված են 1-ից սկսած:

Բլոկ bitmap-ը կառուցվածք է, որի յուրաքանչյուր բիթ ցույց է տալիս, թե արդյոք իրեն համապատասխան բլոկը վերագրված է որևէ ֆայլի: Եթե ​​բիթը 1 է, ապա բլոկը զբաղված է: Այս քարտեզը օգտագործվում է անվճար բլոկների որոնման համար այն դեպքերում, երբ անհրաժեշտ է տարածք հատկացնել ֆայլի համար: Բլոկի բիթքարտեզը զբաղեցնում է բլոկների քանակը, որը հավասար է (բլոկների_թիվ_խմբում / 8) / block_size(անհրաժեշտության դեպքում կլոր):

Inode bitmap-ը կատարում է նույն գործառույթը, ինչ inode աղյուսակը. այն ցույց է տալիս, թե որ inode-ներն են զբաղված:

Բլոկային խմբի կառուցվածքի հաջորդ տարածքը օգտագործվում է ֆայլի inode աղյուսակը պահելու համար: Ինոդի կառուցվածքն ավելի մանրամասն կքննարկվի հաջորդ ենթաբաժնում:

Դե, և վերջապես, բլոկների խմբում մնացած ամբողջ տարածքը հատկացվում է իրական ֆայլերը պահելու համար:

Ֆայլային համակարգԱրտաք 2-ը բնութագրվում է.

  • հիերարխիկ կառուցվածքը,
  • տվյալների զանգվածների համակարգված մշակում,
  • դինամիկ ֆայլի ընդլայնում,
  • ֆայլերում տեղեկատվության պաշտպանություն,
  • ծայրամասային սարքերը (ինչպիսիք են տերմինալները և ժապավենային կրիչները) որպես ֆայլեր:

Ֆայլերի ներքին ներկայացում

Ext 2 համակարգի յուրաքանչյուր ֆայլ ունի յուրահատուկ ինդեքս: Ցուցանիշը պարունակում է տեղեկատվություն, որն անհրաժեշտ է ցանկացած գործընթացի ֆայլ մուտք գործելու համար: Գործընթաց է ֆայլեր մուտք գործելու համար՝ օգտագործելով լավ սահմանված հավաքածու համակարգային զանգերև նույնականացնել ֆայլը նիշերի շարանով, որոնք ծառայում են որպես բարդ ֆայլի անվանում: Յուրաքանչյուր բաղադրյալ անվանումը եզակիորեն նույնականացնում է ֆայլը, որի շնորհիվ համակարգի միջուկը այս անունը փոխակերպում է ֆայլի ինդեքսի:Ինդեքսը ներառում է հասցեների աղյուսակ, որտեղ ֆայլի տեղեկատվությունը գտնվում է սկավառակի վրա: Քանի որ սկավառակի յուրաքանչյուր բլոկ հասցեագրված է իր համարով, այս աղյուսակը պահում է սկավառակի բլոկի համարների հավաքածու: Ճկունությունը մեծացնելու համար միջուկը ֆայլին մեկական բլոկ է ավելացնում՝ թույլ տալով ֆայլի տեղեկատվությունը ցրվել ֆայլային համակարգով մեկ: Բայց նման դասավորությունը բարդացնում է տվյալներ գտնելու խնդիրը: Հասցեների աղյուսակը պարունակում է բլոկի համարների ցանկ, որը պարունակում է տեղեկատվություն, որը պատկանում է ֆայլին, սակայն պարզ հաշվարկները ցույց են տալիս, որ ինդեքսում ֆայլերի բլոկների գծային ցանկը դժվար է կառավարել: Որպեսզի փոքր ինդեքսի կառուցվածքը աշխատի մեծ ֆայլերի հետ, սկավառակի բլոկի հասցեների աղյուսակը հավասարեցվում է Նկար 1-ում ներկայացված կառուցվածքին:

Ext 2 համակարգում ֆայլերի մեծ մասը 10 ԿԲ-ից պակաս է կամ նույնիսկ 1 ԿԲ: Քանի որ ֆայլի 10 ԿԲ-ը գտնվում է ուղղակի հասցեների բլոկներում, ֆայլերում պահվող տվյալների մեծ մասը հասանելի է մեկ սկավառակի հասանելիությամբ: Ուստի, ի տարբերություն բողոքարկման մեծ ֆայլեր, աշխատել ֆայլերի հետ ստանդարտ չափսարագ հոսում է.

Ֆայլի ինոդներ

Սկավառակի յուրաքանչյուր ֆայլ ունի մեկ և միայն մեկ ֆայլ inode, որը նույնականացվում է իր հերթական համարով՝ ֆայլի inode: Սա նշանակում է, որ ֆայլերի թիվը, որոնք կարող են ստեղծվել ֆայլային համակարգում, սահմանափակված է ինոդների քանակով, որը կա՛մ հստակորեն սահմանված է, երբ ֆայլային համակարգը ստեղծվում է, կա՛մ հաշվարկվում է սկավառակի բաժանման ֆիզիկական չափից: Ինոդները գոյություն ունեն սկավառակի վրա ստատիկ ձևով, և միջուկը դրանք կարդում է հիշողության մեջ՝ նախքան դրանց հետ աշխատելը:

Ֆայլի inode-ն ունի հետևյալ կառուցվածքը.

Դաշտի անվանումը

Տիպ

Նկարագրություն

I_mode

ՈՒՇՈՐՏ

Այս ֆայլի տեսակը և թույլտվությունները:

I_uid

ՈՒՇՈՐՏ

Ֆայլի սեփականատիրոջ ID (Owner Uid):

I_size

ՈՒԼՈՆԳ

Ֆայլի չափը բայթերով:

I_atime

ՈՒԼՈՆԳ

Ֆայլին վերջին մուտքի ժամանակը (Մուտքի ժամանակ):

I_ctime

ՈՒԼՈՆԳ

Ֆայլի ստեղծման ժամանակը:

I_mtime

ՈՒԼՈՆԳ

Ֆայլի վերջին փոփոխության ժամանակը:

I_dtime

ՈՒԼՈՆԳ

Ֆայլի ջնջման ժամանակը:

I_gid

ՈՒՇՈՐՏ

Խմբի ID (GID):

I_links_count

ՈՒՇՈՐՏ

Հղումները հաշվում են:

I_blocks

ՈՒԼՈՆԳ

Ֆայլի զբաղեցրած բլոկների քանակը:

I_flags

ՈՒԼՈՆԳ

Ֆայլի դրոշներ (Ֆայլի դրոշներ)

I_Reserved1

ՈՒԼՈՆԳ

Վերապահված է ՕՀ-ի համար

I_block

ՈՒԼՈՆԳ

Ցուցիչներ դեպի բլոկներ, որոնցում գրված են ֆայլի տվյալները (ուղղակի և անուղղակի հասցեավորման օրինակ Նկար 1-ում)

I_տարբերակ

ՈՒԼՈՆԳ

Ֆայլի տարբերակը (NFS-ի համար)

I_file_acl

ՈՒԼՈՆԳ

Ֆայլ ACL

I_dir_acl

ՈՒԼՈՆԳ

գրացուցակ ACL

I_faddr

ՈՒԼՈՆԳ

Հատված հասցե

I_frag

ՈւՉԱՐ

Հատվածի համարը

I_fsize

ՈւՉԱՐ

Բեկորի չափը

I_pad1

ՈՒՇՈՐՏ

լցնում

I_Reserved2

ՈՒԼՈՆԳ

վերապահված

Ֆայլի տեսակը և թույլտվությունները դաշտը երկու բայթանոց բառ է, որի յուրաքանչյուր բիթը ծառայում է որպես դրոշակ, որը ցույց է տալիս, թե արդյոք ֆայլը կապված է որոշակի տեսակի կամ ֆայլի վրա մեկ որոշակի թույլտվության հետ:

Նույնացուցիչ

Իմաստը

Դրոշի նպատակը (դաշտը)

S_IFMT

F000

Ֆայլի տիպի դիմակ

S_IFSOCK

A000

Դոմենի վարդակ (վարդակ)

S_IFLNK

C000

S_IFREG

8000

Սովորական (սովորական) ֆայլ

S_IFBLK

6000

Արգելափակման կողմնորոշված ​​սարքը

S_IFDIR

4000

Կատալոգ

S_IFCHR

2000

Բայթ ուղղված (նիշերի) սարք

S_IFIFO

1000

Անվանված խողովակ (fifo)

S_ISUID

0800

SUID - փոխել սեփականության բիթը

S_ISGID

0400

SGID - խմբի փոփոխության բիթ

S_ISVTX

0200

Առաջադրանք կպչուն բիթ

S_IRWXU

01C0

Ֆայլի սեփականատիրոջ իրավունքների դիմակ

S_IRUSR

0100

Կարդալու իրավունք

S_IWUSR

0080

Ճիշտ գրիր

S_IXUSR

0040

Կատարելու իրավունք

S_IRWXG

0038

Խմբի իրավունքների դիմակ

S_IRGRP

0020

Կարդալու իրավունք

S_IWGRP

0010

Ճիշտ գրիր

S_IXGRP

0008

Կատարելու իրավունք

S_IRWXO

0007

Իրավունքների դիմակ այլ օգտվողների համար

S_IROTH

0004

Կարդալու իրավունք

S_IWOTH

0002

Ճիշտ գրիր

S_IXOTH

0001

Կատարելու իրավունք

Ինոդների շարքում կան մի քանի ինոդներ, որոնք վերապահված են հատուկ նպատակների համար և հատուկ դեր են խաղում ֆայլային համակարգում։ Սրանք հետևյալ բնութագրիչներն են

Նույնացուցիչ

Իմաստը

Նկարագրություն

EXT2_BAD_INO

Inode, որը թվարկում է սկավառակի վատ բլոկների հասցեները (Bad blocks inode)

EXT2_ROOT_INO

Ֆայլային համակարգի արմատային գրացուցակի inode (Root inode)

EXT2_ACL_IDX_INO

ACL ինոդ

EXT2_ACL_DATA_INO

ACL ինոդ

EXT2_BOOT_LOADER_INO

Boot loader inode

EXT2_UNDEL_DIR_INO

Ջնջել inode գրացուցակը

EXT2_FIRST_INO

Առաջին անվերապահ inode

Այս ցուցակի ամենակարևոր բռնիչը արմատային գրացուցակի բռնակն է: Այս նկարագրիչը մատնանշում է արմատային գրացուցակը, որը, ինչպես բոլոր գրացուցակները, բաղկացած է հետևյալ կառուցվածքով գրառումներից.

Դաշտի անվանումը

Տիպ

Նկարագրություն

ինոդ

ՈՒԼՈՆԳ

ֆայլի inode համարը (ինդեքսը):

rec_len

ՈՒՇՈՐՏ

Այս մուտքի երկարությունը

անունը_լեն

ՈՒՇՈՐՏ

Ֆայլի անվան երկարությունը

Անուն

ՉԱՐ

Ֆայլի անունը

Գրացուցակի մեկ մուտքագրումը չի կարող հատել բլոկի սահմանը (այսինքն, այն պետք է ամբողջությամբ տեղակայված լինի մեկ բլոկի ներսում): Հետևաբար, եթե հաջորդ գրառումն ամբողջությամբ չի տեղավորվում այս բլոկում, այն տեղափոխվում է հաջորդ բլոկ, և նախորդ գրառումը շարունակվում է այնպես, որ այն լրացնում է բլոկը մինչև վերջ։

Նկար 1 Ուղղակի և անուղղակի հասցեագրման բլոկներ ինդեքսում

Նկար 2 Ֆայլի չափը բայթերով՝ 1 ԿԲ բլոկի չափով

Նկար 3. Սկավառակի ինդեքսի օրինակ

Նկար 3-ը ցույց է տալիս ֆայլի սկավառակի ինոդը: Այս inode-ը պատկանում է սովորական ֆայլին, որի սեփականատերը «mjb» է և որի չափը 6030 բայթ է: Համակարգը թույլ է տալիս «mjb» օգտագործողին կարդալ, գրել և կատարել ֆայլը; «os» խմբի անդամներին և մյուս բոլոր օգտատերերին թույլատրվում է միայն կարդալ կամ կատարել ֆայլը, այլ ոչ թե գրել տվյալներ: Ֆայլը վերջին անգամ կարդացվել է 1984 թվականի հոկտեմբերի 23-ին, ժամը 13:45-ին, վերջին անգամ գրվել է 1984 թվականի հոկտեմբերի 22-ին, ժամը 10:30-ին: Ինդեքսը վերջին անգամ փոխվել է 1984 թվականի հոկտեմբերի 23-ին, ժամը 13:30-ին, թեև այդ պահին ֆայլում որևէ տեղեկություն չի գրվել։ Միջուկը կոդավորում է վերը նշված բոլոր տվյալները ինդեքսում: Ուշադրություն դարձրեք ինդեքսի բովանդակության և ֆայլի բովանդակության սկավառակի վրա գրելու տարբերությանը: Ֆայլի բովանդակությունը փոխվում է միայն այն ժամանակ, երբ ֆայլը գրվում է: Ինդեքսի բովանդակությունը փոխվում է ինչպես ֆայլի բովանդակության փոփոխության ժամանակ, այնպես էլ երբ փոխվում է ֆայլի սեփականատերը, մուտքի իրավունքները և ցուցիչների հավաքածուն: Ֆայլի բովանդակությունը փոխելը ավտոմատ կերպով առաջացնում է ինդեքսի ուղղում, սակայն ինդեքսի ուղղումը չի նշանակում ֆայլի բովանդակության փոփոխություն:

Կատալոգներ

Գրացուցակները ֆայլեր են, որոնք կազմում են ֆայլային համակարգի հիերարխիկ կառուցվածքը. նրանք կարևոր դեր են խաղում ֆայլի անունը inode համարի վերածելու գործում: Գրացուցակը ֆայլ է, որի բովանդակությունը գրացուցակում ներառված ինոդ թվից և ֆայլի անունից բաղկացած գրառումների մի շարք է: Բաղադրյալ անունը նիշերի տող է, որն ավարտվում է դատարկ գրանշանով և բաժանվում է կտրվածքով («/») մի քանի բաղադրիչների: Յուրաքանչյուր բաղադրիչ, բացի վերջինից, պետք է լինի գրացուցակի անուն, բայց վերջին բաղադրիչը կարող է լինել այն ֆայլի անունը, որը գրացուցակ չէ: UNIX համակարգի V տարբերակը սահմանափակում է յուրաքանչյուր բաղադրիչ 14 նիշով; Այսպիսով, ինոդի համարին հատկացված 2 բայթերի հետ միասին գրացուցակի մուտքի չափը 16 բայթ է։

Բայթ օֆսեթ
գրացուցակի ներսում

Ինդեքսային համարը
(2 բայթ)

Անունֆայլ

1798

սկզբում

1276

fsck

clri

1268

motd

1799

լեռը

mknod

2114

passwd

1717

գումար

1851

ստուգաթերթ

fsdbld

կազմաձևում

1432

getty

վթար

mkfs

Նկար 4 /etc գրացուցակի ձևաչափ

Նկար 4-ը ցույց է տալիս «etc» գրացուցակի ձևաչափը: Յուրաքանչյուր գրացուցակ պարունակում է ֆայլեր, որոնց անունները մի կետ են և երկու կետ ("." և ".."), և որոնց ինոդային համարները համապատասխանաբար համապատասխանում են տվյալ գրացուցակի և մայր գրացուցակի ինդեքսային թվերին: «» ֆայլի ինդեքսային համարը: գրացուցակում «/etc»-ն ունի օֆսեթ 0 հասցե և 83 արժեք: «..» ֆայլի ինոդային համարը գրացուցակի սկզբից ունի օֆսեթ 16 հասցե և 2 արժեք: Գրացուցակի գրառումները կարող են դատարկ լինել, և inode համարը 0 է: Օրինակ, «/etc» գրացուցակի 224 հասցեի մուտքը դատարկ է, թեև այն ժամանակին պարունակում էր «crash» անունով ֆայլի մուտքի կետ: mkfs ծրագիրը նախաստորագրում է ֆայլային համակարգը այնպես, որ inode համարները «. և «..» արմատային գրացուցակում համընկնում են ֆայլային համակարգի արմատային ինոդի համարին:

Միջուկը պահում է տվյալները գրացուցակում, ինչպես դա անում է սովորական ֆայլի տեսակի մեջ՝ օգտագործելով ինդեքսի կառուցվածքը և բլոկները՝ ուղիղ և անուղղակի հասցեների մակարդակներով: Գործընթացները կարող են կարդալ տեղեկատուներից տվյալները այնպես, ինչպես կարդում են սովորական ֆայլերը, սակայն գրացուցակում գրելու բացառիկ հասանելիությունը վերապահված է միջուկի կողմից՝ համոզվելու համար, որ գրացուցակի կառուցվածքը ճիշտ է: Գրացուցակի թույլտվություններն ունեն հետևյալ իմաստները. կարդալու թույլտվությունը գործընթացներին տալիս է գրացուցակից տվյալները կարդալու հնարավորություն; Գրելու թույլտվությունը գործընթացին թույլ է տալիս ստեղծել նոր գրառումներ գրացուցակում կամ ջնջել հինները (օգտագործելով creat, mknod, link և unlink համակարգի գործողությունները), ինչը փոխում է գրացուցակի բովանդակությունը. կատարման իրավունքը թույլ է տալիս գործընթացին որոնել գրացուցակը ըստ ֆայլի անունով (քանի որ գրացուցակի «կատարումն» անիմաստ է):

Երբ գործընթացն օգտագործում է ֆայլի ուղի, միջուկը որոնում է դիրեկտորիաներում համապատասխան inode համարը: Ֆայլի անունը ինոդ համարի վերածվելուց հետո այդ inode-ը տեղադրվում է հիշողության մեջ և այնուհետև օգտագործվում է հետագա հարցումներում:

Unix ֆայլային համակարգերի հայեցակարգը ներառում է կապի հասկացությունը: Մեկ inode կարող է կապված լինել մի քանի ֆայլի անունների հետ: Նկարագրիչը պարունակում է դաշտ, որը պարունակում է այն համարը, որի հետ կապված է ֆայլը: Հղում ավելացնելը բաղկացած է գրացուցակի մուտքագրումից, որտեղ ինոդի համարը մատնանշում է մեկ այլ ինոդ, և նկարագրիչում հղման հաշվիչը մեծացնելուց: Երբ հղումը հեռացվում է, միջուկը նվազեցնում է հղման հաշվիչը և հեռացնում է բռնիչը, եթե այդ հաշվիչը դառնում է զրո:

Նման հղումները կոչվում են կոշտ հղումներ և կարող են օգտագործվել միայն մեկ ֆայլային համակարգում (դուք չեք կարող ստեղծել ֆայլի հղում մեկ այլ ֆայլային համակարգից): Ավելին, կոշտ հղումը կարող է մատնանշել միայն ֆայլը (գրացուցակի կոշտ հղումը կարող է հանգեցնել ֆայլային համակարգում հանգույցի):

Մեծ մասը Unix համակարգերկա մեկ այլ տեսակի հղում. Այս հղումները, որոնք պարունակում են միայն ֆայլի անվանումը, կոչվում են խորհրդանշական հղումներ։ Երբ միջուկը մշակում է նման հղումներ, ֆայլի ուղին ինոդի վերածելիս, միջուկը փոխարինում է հղման անվանումը նկարագրիչի բովանդակությամբ (այսինքն՝ նպատակակետ ֆայլի անվանումը) և վերաիմաստավորում է ֆայլի ուղին։ Քանի որ խորհրդանշական հղումը չի մատնանշում ինոդը, հնարավոր է ստեղծել հղումներ դեպի ֆայլեր, որոնք գտնվում են այլ ֆայլային համակարգում: Այս հղումները կարող են մատնանշել ցանկացած տեսակի ֆայլ, նույնիսկ եթե այն գոյություն չունի: Խորհրդանշական հղումները լայնորեն օգտագործվում են, քանի որ դրանք չունեն նույն սահմանափակումները, ինչ կոշտ հղումները: Այնուամենայնիվ, նրանք որոշակի տեղ են զբաղեցնում սկավառակի վրա, որտեղ գտնվում են inode և տվյալների բլոկները: Դրանց օգտագործումը կարող է հանգեցնել որոշակի ուշացումների՝ ֆայլի ուղին ինոդի փոխարկելիս, ինչը պայմանավորված է նրանով, որ խորհրդանշական հղումը մշակելիս միջուկը պետք է վերաիմաստավորի ֆայլի ուղին։

Սարքի ֆայլեր

Unix-ի նման օպերացիոն համակարգերում սարքերը հասանելի են հատուկ ֆայլերի միջոցով: Նման ֆայլը ֆայլային համակարգում տեղ չի զբաղեցնում: Դա միայն սարքի վարորդի մուտքի կետ է:

Սարքի ֆայլերի երկու տեսակ կա՝ նիշ և բլոկ: Նիշերի տեսակն օգտագործելիս սարքի հետ տվյալների փոխանակումը հնարավոր է միայն նիշերի ռեժիմում, մինչդեռ բլոկ տիպի սարքի ֆայլերը թույլ են տալիս փոխանակել միայն բլոկները՝ օգտագործելով բուֆեր: Երբ I/O հարցումը կատարվում է սարքի ֆայլին, հարցումը վերահղվում է համապատասխան սարքի վարորդին: Յուրաքանչյուր նման ֆայլ ունի հիմնական համար, որը նույնականացնում է սարքի տեսակը, և փոքր համար, որը նույնականացնում է հենց սարքը:

EXT2fs-ի լրացուցիչ հնարավորություններ

Ի լրումն ստանդարտ Unix-ի առանձնահատկությունների, EXT2fs-ը տրամադրում է որոշ լրացուցիչ հնարավորություններ, որոնք սովորաբար չեն աջակցվում Unix ֆայլային համակարգերի կողմից:

Ֆայլի ատրիբուտները թույլ են տալիս փոխել միջուկի արձագանքը ֆայլերի հավաքածուների հետ աշխատելիս: Դուք կարող եք ատրիբուտներ սահմանել ֆայլի կամ գրացուցակի վրա: Երկրորդ դեպքում, այս գրացուցակում ստեղծված ֆայլերը կժառանգեն այս հատկանիշները:

Համակարգի տեղադրման ժամանակ կարող են սահմանվել ֆայլի ատրիբուտների հետ կապված որոշ գործառույթներ: Mount տարբերակը թույլ է տալիս ադմինիստրատորին ընտրել, թե ինչպես են ստեղծվում ֆայլերը: BSD-ին հատուկ ֆայլային համակարգում ֆայլերը ստեղծվում են նույն խմբի ID-ով, ինչ մայր գրացուցակը: System V-ի առանձնահատկությունները մի փոքր ավելի բարդ են: Եթե ​​գրացուցակի setgid բիթը սահմանված է, ապա ստեղծված ֆայլերը ժառանգում են գրացուցակի խմբի ID-ն, իսկ ենթագրանցերը ժառանգում են խմբի ID-ն և setgid բիթը: Հակառակ դեպքում, ֆայլերը և գրացուցակները ստեղծվում են զանգի գործընթացի առաջնային խմբի ID-ով:

EXT2fs համակարգը կարող է օգտագործել տվյալների համաժամանակյա փոփոխություն, ինչպես օրինակ BSD համակարգ. Mount տարբերակը թույլ է տալիս ադմինիստրատորին նշել, որ բոլոր տվյալները (ինդեքսի նկարագրիչները, բիթային բլոկները, անուղղակի բլոկները և գրացուցակի բլոկները) սինխրոն կերպով գրվեն սկավառակի վրա, երբ դրանք փոփոխվում են: Սա կարող է օգտագործվել գրելու բարձր թողունակություն ձեռք բերելու համար, բայց նաև հանգեցնում է վատ կատարողականության: Իրականում, այս գործառույթը սովորաբար չի օգտագործվում, քանի որ, բացի կատարողականը նվաստացնելուց, այն կարող է հանգեցնել օգտվողի տվյալների կորստի, որոնք նշված չեն ֆայլային համակարգը ստուգելիս:

EXT2fs-ը թույլ է տալիս ֆայլային համակարգ ստեղծելիս ընտրել տրամաբանական բլոկի չափը: Այն կարող է լինել 1024, 2048 կամ 4096 բայթ չափի: Խոշոր բլոկների օգտագործումը հանգեցնում է ավելի արագ I/O գործողությունների (քանի որ սկավառակի հարցումների քանակը կրճատվում է), և, հետևաբար, ղեկավարների ավելի քիչ շարժման: Մյուս կողմից, մեծ բլոկների օգտագործումը հանգեցնում է սկավառակի տարածության կորստի: Սովորաբար ֆայլի վերջին բլոկը ամբողջությամբ չի օգտագործվում տեղեկատվության պահպանման համար, ուստի բլոկի չափի մեծացման հետ ավելանում է սկավառակի վատնված տարածության քանակը:

EXT2fs-ը թույլ է տալիս օգտագործել արագացված սիմվոլիկ հղումներ: Երբ օգտագործվում են նման հղումներ, ֆայլային համակարգի տվյալների բլոկները չեն օգտագործվում: Նպատակային ֆայլի անունը պահվում է ոչ թե տվյալների բլոկում, այլ հենց inode-ում: Այս կառուցվածքը թույլ է տալիս խնայել սկավառակի տարածությունը և արագացնել խորհրդանշական հղումների մշակումը։ Իհարկե, բռնակի համար նախատեսված տարածքը սահմանափակ է, ուստի ամեն հղում չի կարող ներկայացվել որպես արագացված հղում: Ֆայլի անվան առավելագույն երկարությունը արագացված հղման մեջ 60 նիշ է: Մոտ ապագայում նախատեսվում է ընդլայնել այս սխեման փոքր ֆայլերի համար։

EXT2fs-ը վերահսկում է ֆայլային համակարգի վիճակը: Միջուկը սուպերբլոկում օգտագործում է առանձին դաշտ՝ ցույց տալու ֆայլային համակարգի վիճակը: Եթե ​​ֆայլային համակարգը տեղադրված է կարդալու/գրելու ռեժիմում, ապա դրա վիճակը սահմանվում է «Not Clean»: Եթե ​​այն ապամոնտաժված է կամ նորից տեղադրվում է միայն կարդալու ռեժիմում, ապա դրա վիճակը սահմանվում է «Մաքուր»: Համակարգի բեռնման և ֆայլային համակարգի առողջական ստուգումների ժամանակ այս տեղեկատվությունը օգտագործվում է որոշելու, թե արդյոք անհրաժեշտ է ֆայլային համակարգի ստուգում: Միջուկը նաև որոշ սխալներ է տեղադրում այս դաշտում: Երբ միջուկը հայտնաբերում է անհամապատասխանություն, ֆայլային համակարգը նշվում է «Սխալ»: Ֆայլային համակարգի ստուգիչը ստուգում է այս տեղեկատվությունը համակարգը ստուգելու համար, նույնիսկ եթե դրա վիճակը իրականում «Մաքուր» է:

Ֆայլային համակարգի փորձարկումը երկար ժամանակ անտեսելը երբեմն կարող է հանգեցնել որոշ դժվարությունների, ուստի EXT2fs-ը ներառում է համակարգը պարբերաբար ստուգելու երկու մեթոդ: Սուպերբլոկը պարունակում է համակարգի ամրացման հաշվիչ: Այս հաշվիչը ավելանում է ամեն անգամ, երբ համակարգը տեղադրվում է կարդալու/գրելու ռեժիմում: Եթե ​​դրա արժեքը հասնում է առավելագույն արժեքին (այն նաև պահվում է սուպերբլոկում), ապա ֆայլային համակարգի փորձարկման ռեժիմն իրականացնում է ֆայլային համակարգի ստուգում, նույնիսկ եթե դրա վիճակը «Մաքուր» է։ Վերջին ստուգման ժամանակը և չեկերի միջև առավելագույն միջակայքը նույնպես պահվում են սուպերբլոկում: Երբ հասնում է ստուգումների միջև առավելագույն միջակայքը, ֆայլային համակարգի վիճակը անտեսվում է և սկսվում է դրա ստուգումը:

EXT2fs համակարգը պարունակում է հարմարություններ այն կարգավորելու համար: tune2fs ծրագիրը կարող է օգտագործվել փոխելու համար.

  • գործողություններ սխալի հայտնաբերման դեպքում: Եթե ​​միջուկը հայտնաբերում է անհամապատասխանություն, ֆայլային համակարգը նշվում է որպես «Սխալ» և կարելի է կատարել հետևյալ երեք գործողություններից մեկը. շարունակել կատարումը, վերամիավորել ֆայլային համակարգը միայն կարդալու ռեժիմում՝ վնասից խուսափելու համար, վերագործարկել համակարգը՝ ստուգելու համար։ ֆայլային համակարգը:
  • առավելագույն արժեքըմոնտաժում.
  • ստուգումների միջև առավելագույն ընդմիջում.
  • արմատային օգտագործողի համար վերապահված տրամաբանական բլոկների քանակը:

Մոնտաժի ընտրանքները կարող են օգտագործվել նաև միջուկի սխալ հայտնաբերումը փոխելու համար:

Ատրիբուտների օգտագործումը թույլ է տալիս օգտվողներին ջնջել գաղտնի ֆայլերը: Երբ նման ֆայլը ջնջվում է, պատահական տեղեկատվությունը գրվում է այն բլոկների վրա, որոնք նախկինում օգտագործվել են այս ֆայլը տեղադրելու համար: Սա թույլ չի տալիս կողմնակի անձանց մուտք գործել այս ֆայլի նախորդ բովանդակությունը՝ օգտագործելով սկավառակի խմբագրիչը:

EXT2fs-ում վերջերս ավելացվել են ֆայլերի նոր տեսակներ՝ վերցված 4.4 BSD ֆայլային համակարգից: Առաջին տեսակի ֆայլերը կարող են լինել միայն կարդալու. ոչ ոք իրավունք չունի դրանք փոխել կամ ջնջել: Սա կարող է օգտագործվել կարևոր կազմաձևման ֆայլերը պաշտպանելու համար: Ֆայլերի մեկ այլ տեսակ են այն ֆայլերը, որոնք կարող են բացվել գրելու ռեժիմում, և տվյալները կարող են ավելացվել միայն այս ֆայլի վերջում: Այս տեսակի ֆայլերը նույնպես չեն կարող ջնջվել կամ վերանվանվել: Նրանք կարող են օգտագործվել որպես գրանցամատյանների ֆայլեր, որոնք կարող են աճել միայն չափերով:

Կատարման օպտիմալացում

EXT2fs համակարգը պարունակում է բազմաթիվ հնարավորություններ, որոնք օպտիմալացնում են դրա կատարումը, ինչը հանգեցնում է տեղեկատվության փոխանակման արագության բարձրացմանը ֆայլեր կարդալու և գրելու ժամանակ:

EXT2fs-ը մեծապես օգտագործում է սկավառակի բուֆերը: Երբ բլոկը պետք է ընթերցվի, միջուկը մի քանի հարակից բլոկների I/O հարցում է ուղարկում: Այսպիսով, միջուկը փորձում է համոզվել, որ հաջորդ ընթերցվող բլոկն արդեն բեռնված է սկավառակի բուֆերում: Նման գործողությունները սովորաբար կատարվում են ֆայլերի հաջորդական ընթերցման ժամանակ:

EXT2fs համակարգը պարունակում է նաև մեծ թվով տեղեկատվության դասավորության օպտիմալացումներ: Բլոկ խմբերն օգտագործվում են համապատասխան ինոդներ և տվյալների բլոկներ խմբավորելու համար: Միջուկը միշտ փորձում է մեկ ֆայլի տվյալների բլոկները տեղադրել նույն խմբում, ինչպես նաև դրա նկարագրիչը։ Սա նախատեսված է նվազեցնելու շարժիչների գլխիկների շարժումը նկարագրիչը և դրա համապատասխան տվյալների բլոկները կարդալիս:

Ֆայլի վրա տվյալներ գրելիս EXT2fs-ը նախապես հատկացնում է մինչև 8 հարակից բլոկ նոր բլոկ տեղադրելիս: Այս մեթոդը թույլ է տալիս հասնել բարձր արդյունավետության համակարգի ծանր բեռի դեպքում: Այն նաև թույլ է տալիս ֆայլերի համար հարակից բլոկներ հատկացնել, ինչը արագացնում է դրանց հետագա ընթերցումը:

EXT2fs գրադարան

EXT2fs ռեսուրսների օգտագործումը պարզեցնելու և այս ֆայլային համակարգի կառավարման կառուցվածքները գործարկելու համար մշակվել է libext2fs գրադարանը։ Այս գրադարանը պարունակում է գործառույթներ, որոնք կարող են օգտագործվել EXT2 ֆայլային համակարգի տվյալները սահմանելու և փոփոխելու համար՝ ուղղակիորեն մուտք գործելով ֆիզիկական սարք:

EXT2fs կոմունալ ծառայություններից շատերը (mke2fs, e2fsck, tune2fs, dumpe2fs, debugfs և այլն) օգտագործում են այս գրադարանը: Սա մեծապես հեշտացնում է այս կոմունալ ծառայությունների փոփոխումը, քանի որ ցանկացած փոփոխություն պետք է մտցվի լրացուցիչ հնարավորություններդեպի EXT2fs ֆայլային համակարգը պետք է կատարվի միայն EXT2fs գրադարանում:

Քանի որ EXT2fs գրադարանի ինտերֆեյսը բավականին լայն է և վերացական, այն կարող է օգտագործվել հեշտությամբ գրելու ծրագրեր, որոնք պահանջում են ուղղակի մուտք դեպի ֆայլային համակարգ: Օրինակ, EXT2fs գրադարանն օգտագործվել է որոշ կոմունալ ծառայությունների 4.4 BSD թափման և վերականգնման ժամանակ: Այս գործիքները Linux-ին հարմարեցնելու համար շատ քիչ փոփոխություններ էին պահանջվում (մենք ստիպված էինք փոխարինել մի քանի գործառույթներ, որոնք փոխազդում են ֆայլային համակարգի հետ EXT2fs գրադարանի զանգերով):

EXT2fs գրադարանը ապահովում է մի քանի դասերի գործողությունների հասանելիություն: Առաջին դասը ֆայլային համակարգի հետ կապված գործողություններ են: Ցանկացած ծրագիր կարող է բացել կամ փակել ֆայլային համակարգ, կարդալ կամ գրել բիթերի բլոկ, ստեղծել նոր ֆայլային համակարգ սկավառակի վրա: Կան նաև ֆայլային համակարգում վատ բլոկների ցանկը շահարկելու գործառույթներ։

Գործառնությունների երկրորդ դասը վերաբերում է դիրեկտորիաներին: EXT2fs գրադարանն օգտագործող ծրագիրը կարող է ստեղծել կամ ընդլայնել գրացուցակ, ինչպես նաև ավելացնել կամ հեռացնել գրացուցակի գրառումները: Կան գործառույթներ ինչպես ֆայլի ուղու ինոդով որոշելու, այնպես էլ նշված նկարագրիչով դեպի ֆայլ տանող ճանապարհը որոշելու համար:

Գործողությունների վերջին դասը գործում է ինդեքսի նկարագրիչների վրա: Հնարավոր է կարդալ նկարագրիչի աղյուսակը, կարդալ կամ գրել նկարագրիչը, դիտել նշված նկարագրիչի բոլոր բլոկները: Հնարավոր է օգտագործել տեղաբաշխման և թողարկման գործառույթները բլոկների և նկարագրիչների համար:

EXT2fs համակարգի գործիքներ

EXT2fs համակարգի համար մշակվել են հզոր կառավարիչներ: Այս գործիքներն օգտագործվում են EXT2fs ֆայլային համակարգերում ցանկացած անհամապատասխանություն ստեղծելու, փոփոխելու և ուղղելու համար: Mke2fs ծրագիրը օգտագործվում է սկավառակի բաժանման տեղադրման համար, որը պարունակում է դատարկ EXT2fs ֆայլային համակարգ:

Tune2fs ծրագիրը կարող է օգտագործվել ֆայլային համակարգի պարամետրերը կարգավորելու համար: Այն կարող է օգտագործվել սխալների արձագանքը, համակարգի ամրացումների առավելագույն քանակը, համակարգի ստուգումների միջև առավելագույն միջակայքը և արմատային օգտագործողի համար վերապահված տրամաբանական բլոկների քանակը փոխելու համար:

Թերևս ամենահետաքրքիր գործիքը ֆայլային համակարգի ստուգիչն է: E2fsck-ը նախատեսված է ֆայլային համակարգի անհամապատասխանությունները շտկելու համար ամբողջ համակարգի ոչ ճշգրիտ անջատումից հետո: e2fsck ծրագրի նախնական տարբերակը հիմնված է Minix ֆայլային համակարգի Linus Torvald fsck ծրագրի վրա։ Այնուամենայնիվ, ծրագրի ընթացիկ տարբերակը վերագրվում է EXT2fs գրադարանի միջոցով և ավելի արագ է և կարող է ավելի շատ սխալներ շտկել համակարգում, երբ այն ստուգվում է, համեմատած սկզբնական տարբերակի հետ:

E2fsck ծրագիրը նախագծվել է հնարավորինս արագ աշխատելու համար: Քանի որ ֆայլային համակարգի ստուգման ծրագրերը հանգեցնում են սկավառակի բեռնման, e2fsck ալգորիթմները պետք է օպտիմիզացվեն այնպես, որ ֆայլային համակարգի կառուցվածքները հասանելի լինեն շատ ավելի հազվադեպ: Եվ բացի այդ, ինոդների և տեղեկատուների ստուգման կարգը կկատարվեր բլոկի համարով, որպեսզի կրճատվի սկավառակի ղեկավարների տեղափոխման ժամանակը:

Առաջին անցումում e2fsck-ն անցնում է ֆայլային համակարգի բոլոր ինոդներով և ստուգում է յուրաքանչյուր ինոդ որպես համակարգի առանձին տարր։ Այսպիսով, այս թեստը չի ստուգում ֆայլային համակարգի այլ օբյեկտները: Նման ստուգումների նպատակներից մեկն է ստուգել ստուգվող ֆայլի տեսակի առկայությունը, ինչպես նաև նկարագրիչի բոլոր բլոկների համապատասխանությունը գոյություն ունեցող համարներով բլոկների հետ: Առաջին անցումում ստուգվում են բիթքարտեզները, որոնք ցույց են տալիս բլոկների և նկարագրիչների օգտագործումը:

Եթե ​​e2fsck-ը գտնում է տվյալների բլոկներ, որոնց թվերը պարունակվում են մեկից ավելի նկարագրիչներում, ապա 1B-ից մինչև 1D գործարկումները գործարկվում են անհամապատասխանությունը լուծելու համար՝ կա՛մ ընդհանուր բլոկների ավելացումով, կա՛մ մեկ կամ մի քանի նկարագրիչներ ջնջելով:

Առաջին անցումը ամենաշատ ժամանակն է խլում, քանի որ բոլոր ինոդները պետք է կարդալ հիշողության մեջ և ստուգել: Հետագա անցումներում I/O գործառնությունների ժամանակը նվազեցնելու համար բոլոր անհրաժեշտ տեղեկությունները մնում են բուֆերում: Այս սխեմայի բնորոշ առանձնահատկությունը ֆայլային համակարգում դիրեկտորիաների բոլոր բլոկների որոնումն է: Այս տեղեկատվությունը ստանալու համար երկրորդ անցումում ֆայլային համակարգի բոլոր դիրեկտորիաների նկարագրիչ կառուցվածքները նորից կարդում են:

Երկրորդ անցումում գրացուցակները ստուգվում են որպես ֆայլային համակարգի առանձին տարրեր: Յուրաքանչյուր գրացուցակի բլոկ ստուգվում է առանձին՝ առանց հղումների այլ գրացուցակների բլոկների: Սա թույլ է տալիս e2fsck-ին տեսակավորել գրացուցակի բոլոր բլոկները ըստ բլոկի համարի և ստուգել դրանք աճման կարգով՝ այդպիսով նվազեցնելով սկավառակի մուտքի ժամանակը: Գրացուցակի բլոկները փորձարկվում են՝ ստուգելու համար, որ դրանց գրառումները վավեր են, և որ դրանք պարունակում են հղումներ առկա թվերով նկարագրիչներին (ինչպես որոշվել է առաջին անցումում):

Յուրաքանչյուր գրացուցակի նկարագրիչի առաջին գրացուցակի բլոկի համար ստուգվում է «.» գրառումների առկայությունը: և «..», և որ «» մուտքի նկարագրիչի համարը: համապատասխանում է ընթացիկ գրացուցակին: («..» մուտքի նկարագրիչ համարը չի ստուգվում մինչև երրորդ անցումը:)

Երկրորդ անցման ընթացքում մայր գրացուցակին համապատասխան տեղեկատվությունը պահվում է բուֆերում:

Հարկ է նշել, որ երկրորդ անցման ավարտին սկավառակի մուտքի/ելքի գրեթե բոլոր գործողություններն ավարտված են: Երրորդ, չորրորդ և հինգերորդ անցումների համար պահանջվող ամբողջ տեղեկատվությունը պահվում է հիշողության մեջ, սակայն մնացած անցումները CPU ինտենսիվ են և վերցնում են e2fsck-ի ընդհանուր կատարման 5-10%-ից պակաս:

Երրորդ անցումում ստուգվում են գրացուցակի հղումները: E2fsck-ը ստուգում է յուրաքանչյուր գրացուցակի երթուղիները դեպի արմատ՝ օգտագործելով երկրորդ անցման ընթացքում ստացված տեղեկատվությունը: Այն նաև ստուգում է «..» մուտքը յուրաքանչյուր գրացուցակի համար: Բոլոր դիրեկտորիաները, որոնք հայտնաբերված են ստուգումից հետո և կապված չեն արմատի հետ, տեղադրվում են /lost+found գրացուցակում:

Չորս անգամ, E2FSCK-ը հասնում է հղումներին յուրաքանչյուր ինդեքսային սեղանադիրի համար՝ կիրառելով բոլոր դեսկիպտները և հղումների մեկնաբանությունը (այս տեղեկությունը կեսօրից հետո) բնիկ հաշվիչների հետ, որոնց արժեքները հաշվարկվել են երկրորդում և այսպիսով.Coopers. Բոլոր չջնջված ֆայլերը, որոնց թվաքանակը զրո է, նույնպես տեղադրվում են /lost+found գրացուցակում:

Եվ վերջապես, հինգերորդ անցումում e2fsck-ը ստուգում է, որ ֆայլային համակարգի մասին բոլոր տեղեկությունները համընկնում են: Այստեղ նախորդ անցումներում ստացված բլոկի և նկարագրիչի բիթքարտեզները համեմատվում են իրական արժեքների հետ և, անհրաժեշտության դեպքում, սկավառակի տեղեկատվությունը համապատասխանաբար ուղղվում է:

Մեկ այլ օգտակար գործիք ֆայլային համակարգի կարգաբերիչն է: Debugfs-ը հզոր ծրագիր է, որը թույլ է տալիս որոշել և սահմանել ֆայլային համակարգի վիճակը: Ըստ էության, այն EXT2fs գրադարանի ինտերակտիվ ինտերֆեյս է, այսինքն՝ մուտքագրված հրամանները թարգմանում է գրադարանային ֆունկցիայի կանչերի։

Debugf-ները կարող են օգտագործվել ֆայլային համակարգի ներքին կառուցվածքը որոշելու, վնասված համակարգը ձեռքով վերանորոգելու կամ e2fsck-ի համար պայմանական թեստեր ստեղծելու համար: Ցավոք, այս ծրագիրը կարող է վնասել ֆայլային համակարգը, եթե դուք չգիտեք, թե ինչպես օգտագործել այն: Օգտագործելով այս գործիքը, բավական է պարզապես ոչնչացնել ֆայլային համակարգը: Հետևաբար, debugfs-ը լռելյայն բացում է ֆայլային համակարգը միայն կարդալու ռեժիմով: Կարդալու/գրելու հասանելիության համար պետք է նշել -w տարբերակը:

Կատարողականի հաշվարկ

Bonnie թեստի արդյունքները երևում են հետևյալ աղյուսակից.

Նիշերի գրություն (Կբ/վ)

Արգելափակել գրելը (կբ/վ)

Վերագրել (Կբ/վ)

Նիշերի ընթերցում (Կբ/վ)

Արգելափակել ընթերցվածը (Կբ/վ)

BSD Async

BSD Sync

ext2 fs

1237

1033

Xia fs

Արդյունքները բավականին լավ են I/O բլոկի համար. EXT2fs համակարգը գերազանցում է մյուս համակարգերին: Դա պայմանավորված է բաշխման ընթացակարգերում ներառված օպտիմալացումներով: Ձայնագրումը նույնպես բավականին արագ է ընթանում՝ պայմանավորված այն հանգամանքով, որ այն կատարվում է խմբային ռեժիմով։ Ընթերցանության բարձր արագությունը պայմանավորված է նրանով, որ բլոկները հատկացվել են ֆայլին, ուստի սկավառակի գլուխները չեն շարժվում երկու ընթերցումների միջև, և նախնական ընթերցման օպտիմալացումը լիովին գործում է:

Մյուս կողմից, FreeBSD համակարգերխորհրդանշական մուտքի/ելքի դեպքում կատարողականը ավելի բարձր է: Թերևս դա պայմանավորված է նրանով, որ FreeBSD-ն և Linux-ը օգտագործում են տարբեր ընթացակարգեր իրենց համապատասխան C գրադարաններում: Բացի այդ, FreeBSD-ն, ամենայն հավանականությամբ, կունենա ավելի օպտիմիզացված նիշերի ընթերցման գրադարան, և, հետևաբար, այստեղ կատարողականը մի փոքր ավելի լավ է:

Էնդրյուի թեստի արդյունքները

Էնդրյուի թեստի արդյունքները տեսանելի են հետևյալ աղյուսակից.

Pass 1 Ստեղծում

Անցում 2 Պատճեն

Անցեք 3 կարգավիճակի ստուգում

Անցեք 4 բայթ ստուգում

Pass 5 Կազմում

2203

7391

6319

17466

75314

BSD Sync

2330

7732

6317

17499

75681

ext2 fs

Առաջին երկու անցումների արդյունքները ցույց են տալիս, որ Linux-ը հաղթում է ասինխրոն հաղորդակցությամբ: Երբ ստեղծվում են դիրեկտորիաներ և ֆայլեր, BSD համակարգը համաժամանակյա գրում է գրացուցակի նկարագրիչները և գրացուցակի մուտքերը: Կան ենթադրություններ, որ FreeBSD-ի ասինխրոն աջակցությունը դեռ ամբողջությամբ չի իրականացվել:

Երրորդ անցումում Linux-ի և BSD-ի արժեքները շատ նման են: Թեև BSD-ի կատարումն ավելի լավն է, Linux համակարգի VFS-ին ֆայլերի անունների համար բուֆեր ավելացնելը վերացնում է այս խնդիրը:

Չորրորդ և հինգերորդ անցումներում Linux-ն ավելի արագ է, քան FreeBSD-ը, հիմնականում ընդհանուր բուֆերային կառավարման կիրառման շնորհիվ։ Բուֆերի չափը կարող է աճել ըստ անհրաժեշտության և ավելի շատ հիշողություն գրավել, քան FreeBSD-ն, որն օգտագործում է ֆիքսված քանակություն: EXT2fs և Xia fs համակարգերի արդյունքների համեմատությունը ցույց է տալիս, որ EXT2fs-ում ներառված օպտիմալացումն իսկապես օգտագործվում է. այդ համակարգերի աշխատանքի տարբերությունը կազմում է մոտ 5-10%:

Եզրակացություն

EXT2 ֆայլային համակարգը առավել լայնորեն օգտագործվում է Linux-ի օգտատերերի շրջանակում: Այն ապահովում է ստանդարտ Unix-ի առանձնահատկություններ և լրացուցիչ հնարավորություններ: Ավելին, միջուկում ներառված օպտիմալացման շնորհիվ այն ցույց է տալիս գերազանց կատարողական արդյունքներ։

EXT2fs համակարգը ներառում է հնարավորություններ, որոնք թույլ են տալիս ավելացնել նոր հնարավորություններ: Որոշ մարդիկ աշխատում են իրական ֆայլային համակարգի ընդլայնումների մշակման վրա՝ Posix մուտքի վերահսկման ցուցակ, վերականգնում ջնջված ֆայլերև ֆայլերի սեղմում իրական ժամանակում:

Նախ, EXT2fs համակարգը ինտեգրվել է Linux միջուկին, իսկ այժմ այն ​​ակտիվորեն տեղափոխվում է այլ օպերացիոն համակարգեր: EXT2fs-ը նաև Masix օպերացիոն համակարգի կարևոր բաղադրիչն է, որը ներկայումս մշակվում է հեղինակներից մեկի կողմից։

Եթե ​​ունեք երկու օպերացիոն համակարգ՝ Windows-ը և Linux-ը տեղադրված, ապա, անկասկած, կցանկանայիք պարունակվել անվճար օպերացիոն համակարգի միջնորմների վրա անմիջապես Windows-ի տակից՝ առանց ձեր համակարգիչը վերագործարկելու:

Ցավոք, Linux OS բաժանմունքները Windows-ում չեն ապահովվում: Բայց ապարդյուն։ Ինձ թվում է, որ սա կարող է լավ ժեստ լինել Microsoft-ի կողմից:

Խնդիրի էությունը կայանում է նրանում, որ Windows-ն օգտագործում է NTFS ֆայլային համակարգը, իսկ Linux-ն ունի ֆայլերի կազմակերպման իր ձևը՝ ընդլայնված ֆայլային համակարգը, Վերջին տարբերակըորն ունի 4 սերիական համար:

Linux-ն ավելի բարյացակամ է իր օգտագործողների համար, քան իր առևտրային քույրը. Linux-ը լռելյայն ապահովում է ֆայլային համակարգի աջակցություն Windows NTFS. Իհարկե, դուք չեք կարողանա տեղադրել Linux-ը NTFS բաժանման վրա, բայց դուք կարող եք կարդալ և գրել տվյալներ այդպիսի բաժանման վրա:

Ext2 IFS

Ext2 IFS-ն աջակցում է Windows NT4.0/2000/XP/2003/Vista/2008 x86 և x64 տարբերակները և թույլ է տալիս դիտել և գրել Linux ext2 բաժինները: Կոմունալ ծրագիրը տեղադրում է ext2fs.sys համակարգի դրայվերը, որը տարածվում է Windows-ի առանձնահատկություններըև ներառում է ամբողջական աջակցություն ext2-ի համար. ext2 միջնորմներին տրվում են դրայվային տառեր, և դրանց վրա գտնվող ֆայլերը և թղթապանակները ցուցադրվում են բոլոր հավելվածների երկխոսություններում, օրինակ, Explorer-ում:

Ext2 FSD

Ext2 FSD-ն անվճար վարորդ է Windows համակարգեր(2K/XP/VISTA/7 x86 և x64 տարբերակներ): Ինչպես նախորդ կոմունալ ծրագիրը, որն իր էությամբ նաև վարորդ է, այն ներառում է Windows-ի ext2 ֆայլային համակարգի ամբողջական աջակցություն:

LTOOLS - կոմունալ ծառայությունների մի շարք հրամանի տող, որը թույլ է տալիս կարդալ և գրել տվյալներ Linux ext2, ext3 և ReiserFS միջնորմներից (ստանդարտ Linux ֆայլային համակարգեր) DOS-ից կամ Windows-ից:

Կա ծրագրի գրաֆիկական կեղևով տարբերակ (գրված Java-ով)՝ LTOOLSgui, ինչպես նաև գրաֆիկական պատյանով տարբերակ՝ գրված .

Ext2Read

Աղանդերի համար, ինչպես միշտ, ամենահամեղը։

Ext2Read-ը ֆայլերի կառավարչի օգտակար ծրագիր է, որը թույլ է տալիս դիտել և գրել ext2/ext3/ext4 միջնորմները: Աջակցում է LVM2-ին և ինչն է այն տարբերում այս վերանայման այլ ծրագրերից՝ ext4 ֆայլային համակարգը: Ներկառուցված է դիրեկտորիաների ռեկուրսիվ պատճենման աջակցություն:

Եվ ահա երկրորդ աղանդերը. Սկզբում ասվում էր, որ Microsoft-ի կողմից լավ քայլ կլիներ Windows-ում Linux-ի միջնորմների աջակցությունը լռելյայնորեն միացնելու համար:

Ժեստը, այնուամենայնիվ, արվել է Linux-ի 20-ամյակի կապակցությամբ: Տեսեք ինքներդ:

Այսքանը: Շնորհակալություն ուշադրության համար. Ես պատրաստվում եմ պայքարել մայիսյան սխալների դեմ: Այս գարնանը դրանք այնքան շատ են: 🙂