TGViewer
Неопознанный кактус Неопознанный кактус @kvktyc · 33 subscribers
Post #134 18
Всё дело в файловой системе FAT.
(и в том, что Windows - поделка, извините)

Windows 90х - начала 20х в принципе была довольно рыхлой (но очень душевной).
Накопители того времени были довольно медленными, запись на диск была отложенной - активно использовался "кэш записи", данные первично сохранялись в оперативную память и на диск записывались с изрядной задержкой. Это позволяло серезно ускорить работу, но создавало риски: если выключить питание до полной синхронизации, данные терялись, файловая система повреждалась.

Для корректного выключения Windows сначала завершала все процессы, затем сбрасывала данные на диск (flush), потом синхронизировала файловую систему и размонтировала тома. Любое прерывание могло оставить её в несогласованном состоянии.

FAT - крайне простая файловая система; хороша для флэшек, microSD-карт, где и здравствует. Но для операционной системы ее возможностей откровенно недостаточно. Ключевое - нет журналирования. Можно было бы компенсировать архитектурой самой ОС и вниманием к деталям, но и с этим были серьезные проблемы. Современные Windows работают на NTFS, что интересным образом соотносится с Windows NT (2000) - переосмысленной и переделанной ревизией всей Windows, после чего она смогла стать в общем-то "production ready" для бизнеса. И там и там "NT" - New Technology, переписали и ядро и файловую систему (а это ж еще надо и про OS/2 здесь писать, ох, ну это потом отдельно), одно без другого не сработало бы.

Windows и сегодня любит че то попроверять попересчитывать своим FSCK при выключении и запуске, но в целом замена ФС проблему решила и мы больше не ждём разрешения выключить компьютер.

Была ли такая проблема в UNIX системах?

Удивительно, но нет. Журналируемые файловые системы в UNIX появились в 90х, но с самого начала, с 1970х и файловая система и ядро писались с учетом того, что питание в любое мгновение может пропасть. Решала архитектура: метаданные, inode и суперблоки писались синхронно, фиксировалось "намерение о записи", далее формировались рассчеты для экстренного восстановления и лишь затем через несколько служебных циклов сами данные физически доезжали до сброса. И получалось, что потеря питания также могла приводить к потере данных, но система была к этому готова и заранее всё вычисляла для эффективного восстановления. С появлением ext-fs возможности систем по контролю целостности и восстановления конечно многократно усилились.

Первые такие ФС появились на AIX (IBM UNIX): JFS (1990) и Slaris: VxFS (1991).
Linux, создаваймый в те года, начал свой путь сразу на журналируемых ФС.
Почему Windows потербовалось 10 лет чтобы перенять этот опыт - загадка.

Ну а венцом "умных" и "отказоустойчивых" ФС стала ZFS, где математики и вычислений столько, что сама она без оперативной памяти работать не может, хе-хе, иронично. О ней тоже как-нибудь отдельно.
Telegram Неопознанный кактус Однажды ты в последний раз выключил компьютер с разрешения, но не знал об этом. Почему мы видели эту надпись? И почему прерванное питание грозило потерей данных, поломкой системы и как минимум долгой проверкой при следующем запуске?
More from @kvktyc
  1. Sep 27, 2026Занятный форк Midnight Commander с фокусом на современные сценарии: • просмотр MD-файлов •…
  2. Sep 27, 2026Почему об этом актуально говорить и сегодня? Ничего потому что на самом деле не поменялось…
  3. Sep 27, 2026Однажды компьютер в последний разрешил тебе себя выключить. Почему мы видели эту надпись?…
  4. Sep 25, 2026Из интересного. Недавно появилась новость о том, что некий бывший инженер Microsoft восста…
  5. Sep 25, 2026Первая версия UNIX была написана на ассемблере для PDP-7 в 1969. Официально началом эпохи…
  6. Sep 13, 2026Не тот саундтрек сделали к игре, не тот. И аккорды нам расставили не те, но эту песню возм…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →