ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ управлСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Β«reiser fsΒ»

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

X — это 8192 Π±Π»ΠΎΠΊΠΎΠ² + 1 Π±Π»ΠΎΠΊ для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΆΡƒΡ€Π½Π°Π»Π°. Π–ΡƒΡ€Π½Π°Π» состоит ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΆΡƒΡ€Π½Π°Π»Π°. Он Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся списком Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Вранзакция ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ 3 дисковых Π±Π»ΠΎΠΊΠ° ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΆΡƒΡ€Π½Π°Π»Π°, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π² Ρ‚очности ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ. Π–ΡƒΡ€Π½Π°Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°. ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ reiserfs ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ управлСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Β«reiser fsΒ» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

  • Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
  • Π‘Π»ΠΎΠΊΠΈ Π‘ΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊ
  • BitmapΠ±Π»ΠΎΠΊΠΈ Π”Π΅Ρ€Π΅Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠšΠ»ΡŽΡ‡ΠΈ Π’Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ Π›ΠΈΡΡ‚ΡŒΡ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ ΠΈΡ‚Π΅ΠΌΠΎΠ² Π˜Ρ‚Π΅ΠΌΡ‹
  • Statdata items
  • Directory items
  • Direct items
  • I. ndirect items
  • Π–ΡƒΡ€Π½Π°Π» Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΆΡƒΡ€Π½Π°Π»Π° Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ДСскриптор Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с reiserfs
  • Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
  • Π›ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π°

ПолС sd_rdev примСняСтся для ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ². Оно Ρ…Ρ€Π°Π½ΠΈΡ‚ Π½ΠΎΠΌΠ΅Ρ€ устройства (ΠΈΠ»ΠΈ сокСта). sd_generation примСятся Π²ΠΎ Π²ΡΠ΅Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… случаях ΠΈ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ inode для Ρ„Π°ΠΉΠ»Π°/ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°/ссылки. ПолС sd_first_direct_byte, ΠΊΠ°ΠΊ ΠΈ Ρ…ΠΎΡ‚Π΅Π» Hans Reiser, Π² Π²Π΅Ρ€ΡΠΈΠΈ 3.6 Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы Π±ΠΎΠ»Π΅Π΅ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся.

Directory items

Π˜Ρ‚Π΅ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° описываСт Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ. Если ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈΠΌΠ΅Π΅Ρ‚ слишком ΠΌΠ½ΠΎΠ³ΠΎ элСмСнтов ΠΈ Π½Π΅ ΡƒΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΡ‚Π΅ΠΌΠ΅, ΠΎΠ½ Ρ€Π°Π·Π±ΠΈΠ²Π°Π΅Ρ‚ся Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΎ directoryΠΈΡ‚Π΅ΠΌΠΎΠ² с ΠΎΠ±Ρ‰ΠΈΠΌ ObjectID. Directory item состоит ΠΈΠ· Π΄Π²ΡƒΡ… массивов: Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠ² элСмСнтов ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΈ ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ²; ΠΎΠ±Π° массива растут ΠΊ ΡΠ΅Ρ€Π΅Π΄ΠΈΠ½Π΅.

Array of dentry headers [0,n] Free space Array of names [n, 0] /* */ Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ элСмСнта ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

struct reiserfs_de_head {

__le32 deh_offset; /* - Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊΠ»ΡŽΡ‡Π° элСмСнта ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

* */ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ…ΡΡˆΠ° ΠΈ Π½ΠΎΠΌΠ΅Ρ€ поколСния

__le32 deh_dir_id; /* Object ID */ Ρ€ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°

__le32 deh_objectid; /* Object ID */ Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта

__le16 deh_location; /* */ Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Π² Π΄Π°Π½Π½ΠΎΠΌ ΠΈΡ‚Π΅ΠΌΠ΅

__le16 deh_state; /* 1, Π‘ΠΈΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Ρ‡Ρ‚ΠΎ этот элСмСнт содСрТит

* stat-data (), 2 — Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся Π±ΠΈΡ‚ элСмСнт

* (set) (clear) */ доступСн ΠΈΠ»ΠΈ скрыт

};

Имя Ρ„Π°ΠΉΠ»Π° — простая ASCII строка, Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π°ΡΡΡ Π½ΡƒΠ»Π΅ΠΌ. ПолС offset просто Π½Π΅Π²Π΅Ρ€Π½ΠΎ Π½Π°Π·Π²Π°Π½ΠΎ — ΠΎΠ½ΠΎ содСрТит Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ…ΡΡˆΠ° для ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π°. Π‘ΠΈΡ‚Ρ‹ [730] - это Ρ…ΡΡˆ, [06] - ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΠ΅ для Ρ„Π°ΠΉΠ»ΠΎΠ² с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ Ρ…ΡΡˆΠ΅ΠΌ, Π±ΠΈΡ‚ 31 Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ся. Π₯эш ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² reiserfs для поиска ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ², отсортированных ΠΏΠΎ ΠΏΠΎΠ»ΡŽ offset. Π’ Π½Π°ΡΡ‚оящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ доступны 3 Ρ…ΡΡˆΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ: keyed tea Ρ…ΡΡˆ, rupasov-Ρ…ΡΡˆ ΠΈ r5-Ρ…ΡΡˆ. Π—Π°Π΄Π°Ρ‡Π° Ρ…ΡΡˆΡ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ — Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ значСния для Ρ€Π°Π·Π½Ρ‹Ρ… строк с ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшим количСством ΠΊΠΎΠ»Π»ΠΈΠ·ΠΈΠΉ. Π’ Linux Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ reiserfs ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ r5Ρ…ΡΡˆ.

Direct items

DirectΠΈΡ‚Π΅ΠΌΡ‹ (Ρ‚Π°ΠΊΠΆΠ΅ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ tail-ΠΈΡ‚Π΅ΠΌΠ°ΠΌΠΈ) содСрТат Π»ΠΈΠ±ΠΎ вСсь малСнький Ρ„Π°ΠΉΠ», Π»ΠΈΠ±ΠΎ «Ρ…вост» большого Ρ„Π°ΠΉΠ»Π°. Для ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ² вся другая информация ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½Π° Π² statdata для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°.

Indirect items

ΠšΠΎΡΠ²Π΅Π½Π½Ρ‹Π΅ ΠΈΡ‚Π΅ΠΌΡ‹ содСрТат ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Π½Π΅Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ, ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‰ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρƒ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ — 4Π±Π°ΠΉΡ‚Π½ΠΎΠ΅ число, содСрТащСС Π½ΠΎΠΌΠ΅Ρ€ Π±Π»ΠΎΠΊΠ°. ΠšΠΎΡΠ²Π΅Π½Π½Ρ‹ΠΉ ΠΈΡ‚Π΅ΠΌ, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ вСсь лист Π΄Π΅Ρ€Π΅Π²Π°, ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ (blocksize48)/4 ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ (48 Π±Π°ΠΉΡ‚ ΠΈΠ΄ΡƒΡ‚ Π½Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΈ Π±Π»ΠΎΠΊΠ° ΠΈ ΠΈΡ‚Π΅ΠΌΠ°). Π‘ΠΎΠ»ΡŒΡˆΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… косвСнных ΠΈΡ‚Π΅ΠΌΠΎΠ² (Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅ΠΌΡ‹Ρ… ΠΏΠΎ ΠΏΠΎΠ»ΡŽ offset Π² ΠΊΠ»ΡŽΡ‡Π΅) плюс «Ρ…вост».

Π–ΡƒΡ€Π½Π°Π» Π–ΡƒΡ€Π½Π°Π» Π² reiserfs ΠΈΠΌΠ΅Π΅Ρ‚ фиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€: для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Linux2.

4. x — это 8192 Π±Π»ΠΎΠΊΠΎΠ² + 1 Π±Π»ΠΎΠΊ для Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΆΡƒΡ€Π½Π°Π»Π°. Π–ΡƒΡ€Π½Π°Π» состоит ΠΈΠ· Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΆΡƒΡ€Π½Π°Π»Π°. Он Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ся списком Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π° Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π΅Ρ‚ся Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ. Вранзакция ΠΎΡ…Π²Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅ 3 дисковых Π±Π»ΠΎΠΊΠ° ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΆΡƒΡ€Π½Π°Π»Π°, Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‰ΠΈΠΉ Π² Ρ‚очности ΠΎΠ΄ΠΈΠ½ Π±Π»ΠΎΠΊ. Π–ΡƒΡ€Π½Π°Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π² Π²ΠΈΠ΄Π΅ ΠΊΠΎΠ»ΡŒΡ†Π΅Π²ΠΎΠ³ΠΎ Π±ΡƒΡ„Π΅Ρ€Π°. ΠŸΡ€ΠΈΠ½ΡΡ‚ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ reiserfs ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Π΅. Π­Ρ‚ΠΎ Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ Π²Π΅Ρ€Π½ΠΎ. НС ΡΠΌΠΎΡ‚Ρ€Ρ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ†Π΅Π»ΡŒΡŽ Турналирования являСтся сохранСниС цСлостности ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, reiserfs ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дисковыС Π±Π»ΠΎΠΊΠΈ, Ρ‚.ΠΊ. ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΠΎΡΠ²ΠΈΡ‚ΡŒΡΡ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС лишь послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΉ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ…, ΠΈ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΡ… ΠΏΡ€ΡΠΌΠΎ Π½Π° Π΄ΠΈΡΠΊ Π΄ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ нСльзя. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΈ, statdata ΠΈ ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹, хранящиСся прямо Π² Π»ΠΈΡΡ‚ΡŒΡΡ… Π΄Π΅Ρ€Π΅Π²Π°, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΏΠ°ΡΡ‚ΡŒ Π² ΠΆΡƒΡ€Π½Π°Π» ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для рСконструкции Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы.

Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΆΡƒΡ€Π½Π°Π»Π° Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΆΡƒΡ€Π½Π°Π»Π° — Ρ†Π΅Π»Ρ‹ΠΉ Π±Π»ΠΎΠΊ, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΠΈΠΉ, Π³Π΄Π΅ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ находится пСрвая Π½Π΅ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Π½Π°Ρ (unflushed) транзакция. Он Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ послСдний Π±Π»ΠΎΠΊ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ ΠΈ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 12 Π±Π°ΠΉΡ‚ Π΄Π°Π½Π½Ρ‹Ρ… — ΠΎΡΡ‚Π°Π»ΡŒΠ½Π°Ρ Ρ‡Π°ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠ° Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π°.

struct reiserfs_journal_header {

__le32 j_last_flush_trans_id; /* ID ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡƒΠ΄Π°Ρ‡Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ

* Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ */

__le32 j_first_unflushed_offset; /* Π‘ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ (Π² Π±Π»ΠΎΠΊΠ°Ρ…) ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ

* Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ (с Π½Π΅Π΅ Π±ΡƒΠ΄Π΅Ρ‚

* Π½Π°Ρ‡Π°Ρ‚ΠΎ восстановлСниС Π€Π‘ Π² ΡΠ»ΡƒΡ‡Π°Π΅

* сбоя) */

__le32 j_mount_id; /* MountID послСднСй Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎΠΉ

* Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ */

struct journal_params jh_journal;

};

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° jh_journal, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ…Ρ€Π°Π½ΠΈΡ‚ копию ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΆΡƒΡ€Π½Π°Π»Π° ΠΈΠ· ΡΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊΠ°. Вранзакция, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ ΠΏΠΎΠ»Π΅ offset, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒ больший trans ID ΠΈΠ»ΠΈ mount ID, Ρ‡Π΅ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Π°Ρ транзакция, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ ΠΊΠ°ΠΊ Π½Π΅ΡΠ±Ρ€ΠΎΡˆΠ΅Π½Π½Π°Ρ. Π’ ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС всС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠ±ΡŠΡΠ²Π»ΡΡŽΡ‚ΡΡΠ·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹ΠΌΠΈ, Π° Π±Π»ΠΎΠΊ, адрСсуСмый ΠΏΠΎ offset, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π½Π°Ρ‡Π°Π»Π° записи Π½ΠΎΠ²ΠΎΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π’Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ измСнСния Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. ВмСсто Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π±Ρ‹ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈ Π² Π΄Π΅Ρ€Π΅Π²ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы, reiserfs сначала вносит ΠΈΡ… Π² ΠΆΡƒΡ€Π½Π°Π», отобраТая ΠΏΡ€ΠΈ этом Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠ΅ мСстополоТСниС Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмС. Вранзакция состоит ΠΈΠ· Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Π°, массива Π±Π»ΠΎΠΊΠΎΠ² ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Π² ΠΊΠΎΠ½Ρ†Π΅. ВсС эти Π±Π»ΠΎΠΊΠΈ смСТны Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… ΠΆΡƒΡ€Π½Π°Π»Π°.

ДСскриптор Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ

struct reiserfs_journal_desc {

__le32 j_trans_id; /* ID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ */

__le32 j_len; /* Π”Π»ΠΈΠ½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² Π±Π»ΠΎΠΊΠ°Ρ…. len+1 —

* Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ */

__le32 j_mount_id; /* MountID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ */

__le32 j_realblock[1]; /* ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ для

* ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° */

};

Π’ ΠΊΠΎΠ½Ρ†Π΅ дСскриптора Ρ‚Π°ΠΊΠΆΠ΅ записываСтся magicстрока — «ReIsErLB». ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅: ΠΏΠΎΠ»Π΅ j_realblock прСдставляСт собой массив, содСрТащий для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½ΠΎΠΌΠ΅Ρ€ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π»ΠΎΠΊΠ° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмы. Если мСста Π² Π΄Π΅ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΡ€Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ для отобраТСния всСх Π΅Π΅ Π±Π»ΠΎΠΊΠΎΠ², Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ 2*(blocksize21)/4 Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π² Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ этот ΠΏΡ€Π΅Π΄Π΅Π» установлСн Π² ΡΡƒΠΏΠ΅Ρ€Π±Π»ΠΎΠΊΠ΅.

Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Π±Π»ΠΎΠΊ Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ Π±Π»ΠΎΠΊ содСрТит копию ID Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ Π΅Π΅ Π΄Π»ΠΈΠ½Ρƒ.

struct reiserfs_journal_commit {

__le32 j_trans_id; /* Transaction ID */

__le32 j_len; /* Π”Π»ΠΈΠ½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ */

__le32 j_realblock[1];

};

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с reiserfs

Из-Π·Π° Π½Π΅ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚имости reiserfs c ext2fs/ext3fs Π² ΠΏΠ»Π°Π½Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ обСспСчСния для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½ΠΎΠΉ фс Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ установлСны Π² ΡΠΈΡΡ‚Π΅ΠΌΠ΅ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с reiserfs:

debugreiserfs

fsck.reiserfs

mkfs.reiserfs

mkreiserfs

reiserfsck

resize_reiserfs

unpack

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Ρ‹ собраны Π² ΠΎΠ΄ΠΈΠ½ ΠΏΠ°ΠΊΠ΅Ρ‚ reiserfs-utils, поставляСтся с ΠΏΡ€Π°ΠΊΡ‚ичСски ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ дистрибутивом. ΠžΠΏΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, Π° Ρ‚Π°ΠΊ ΠΆΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ ΠΈΠ· ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ страницы Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ man.

Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурсы:

1) www.filesystems.nm.ru

2)

http://linux.s390.org/download/rpm2html/64−7.

1.s390x/reiserfs-utils-3.x.0f-1.s390x.html

3)

http://ru.wikipedia.org/wiki/ReiserFS

4)

http://www.opennet.ru/docs/RUS/reiserfs_ondisk_layout/

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. include/linux/reiserfs_fs.h

Π‘ΠΌ. man mkfs. reiserfs

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ рСсурсы:
  2. www.filesystems.nm.ru
  3. http://linux.s390.org/download/rpm2html/64−7.1.s390x/reiserfs-utils-3.x.0f-1.s390x.html
  4. http://ru.wikipedia.org/wiki/ReiserFS
  5. http://www.opennet.ru/docs/RUS/reiserfs_ondisk_layout/
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ
ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π˜Π›Π˜