Глобальная Авантюра  
ФОРУМ
главное меню
  1. >
  2. Форум >
  3. Научно-технический раздел >
  4. IT в России и мире в реалиях мирового кризиса

IT в России и мире в реалиях мирового кризиса

←Пред←1348349351352367→След→
 
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
Насколько я помню, жестский реалтайм отличаеться от мягкого тем, что ГАРАНТИРУЕТ время обработки события.
Например, если реактор пошел вразнос, то его необходимо загасить за 100 миллисекунд и никого не волнует, что ОС решила посвапироваться в этот момент.
Поэтому, если время обработки прерывания не гарантированно - это мягкий реалтайм
QNX гарантирует. Вы просто устанавливаете приоритеты для запросов и все. Никаких "свопиться" у нее нет и отродясь не было. Там как и везде сегодня используется подкачка страниц. Поскольку QNX POSIX-совместимая, вам самому решать, какие области вашей программы могут выгружаться, а какие нет. Обработчики прерываний всегда располагаются в невыгружаемой памяти и им пофиг, идет обмен с джисками, сетью или еще с чем – они будут вызваны. Причем не в пределах 100 мс, а в пределах нескольких десятков наносекунд после запроса по линии LINT0 (в рамках приоритетов APIC, разумеется).
+ 0.06 / 3
   
Поверонов  

Слушатель

Карма: +33.99
Регистрация: 05.06.2010
Сообщений: 11,350
Читатели: 7
 
QNX гарантирует. Вы просто устанавливаете приоритеты для запросов и все. Никаких "свопиться" у нее нет и отродясь не было. Там как и везде сегодня используется подкачка страниц. Поскольку QNX POSIX-совместимая, вам самому решать, какие области вашей программы могут выгружаться, а какие нет. Обработчики прерываний всегда располагаются в невыгружаемой памяти и им пофиг, идет обмен с джисками, сетью или еще с чем – они будут вызваны. Причем не в пределах 100 мс, а в пределах нескольких десятков наносекунд после запроса по линии LINT0 (в рамках приоритетов APIC, разумеется).
Насколько помнится проблема ОС РВ была в том что там мог быть только один критический процесс, то есть если он включился то все прочие будут ждать. Наверное нынче эта проблема разрешима числом ядер в процессоре , то есть критических процессов может быть по числу ядер ( -1 на обработчик прерываний )
+ 0.01 / 1
  TAU
   
   
TAU  

Слушатель

Карма: +44.58
Регистрация: 24.07.2008
Сообщений: 3,668
Читатели: 0
 
QNX. Для мягкого реал-тайма лучшее.
Хммм... Смелое заявление... Вы вообще с другими знакомы?
+ 0.02 / 1
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
Насколько помнится проблема ОС РВ была в том что там мог быть только один критический процесс, то есть если он включился то все прочие будут ждать. Наверное нынче эта проблема разрешима числом ядер в процессоре , то есть критических процессов может быть по числу ядер ( -1 на обработчик прерываний )
Нет никаких критических процессов – есть критические участки кода (критические секции), которые могут выполняться атомарно. Максимум, что может сделать любая ОС для секции критического кода – это не прерывать процесс по таймеру планировщика при вытесняющей многозадачности, пока процесс в критической секции. Как правило, пользовательский процесс, например, обработчик верхнего уровня, самостоятельно заботится о своих критических секциях, используя некоторые соглашения, которые должны соблюдать все процессы в системе. В результате никакой необходимости в услугах ОС для поддержки критических секций не требуется – это прерогатива алгоритмов синхронизации, а не ОС. В принципе, процесс может "известить" ОС о входе в КС и выходе из нее, установив какой-нибудь флаг, а ОС, получив прерывание по таймеру может проверить состояние флага и прерывание проигнорить.
Внешние события прерывают критическую секцию, если их приоритет выше и контроллер прерываний "пропускает" запрос процессору/ядру и прерывания разрешены.
Количество же процессоров и/или ядер принципиально ни на что не влияет, кроме усложнения кода ОС.
Преимущества многоядерной оархитектуры проявляются только в тяжело нагруженных системах – в этом случае обработку запросов можно выполнять параллельно. Например, колупаться в сетевых пакетах на маршрутизаторе
+ 0.01 / 1
   
Поверонов  

Слушатель

Карма: +33.99
Регистрация: 05.06.2010
Сообщений: 11,350
Читатели: 7
 
Нет никаких критических процессов – есть критические участки кода (критические секции), которые могут выполняться атомарно. Максимум, что может сделать любая ОС для секции критического кода – это не прерывать процесс по таймеру планировщика при вытесняющей многозадачности, пока процесс в критической секции. Как правило, пользовательский процесс, например, обработчик верхнего уровня, самостоятельно заботится о своих критических секциях, используя некоторые соглашения, которые должны соблюдать все процессы в системе. В результате никакой необходимости в услугах ОС для поддержки критических секций не требуется – это прерогатива алгоритмов синхронизации, а не ОС. В принципе, процесс может "известить" ОС о входе в КС и выходе из нее, установив какой-нибудь флаг, а ОС, получив прерывание по таймеру может проверить состояние флага и прерывание проигнорить.
Внешние события прерывают критическую секцию, если их приоритет выше и контроллер прерываний "пропускает" запрос процессору/ядру и прерывания разрешены.
Количество же процессоров и/или ядер принципиально ни на что не влияет, кроме усложнения кода ОС.
Преимущества многоядерной оархитектуры проявляются только в тяжело нагруженных системах – в этом случае обработку запросов можно выполнять параллельно. Например, колупаться в сетевых пакетах на маршрутизаторе

Цитата: adolfus от 10.08.2019 18:10:54Почему мягкого? Самого что ни на есть жесткого. У нее на 20-й век м начало 2000-х самая высокая скорость обслуживания аппаратных прерываний на всех поддерживаемых архитектурах. Для одноядерных компов промышленного класса как бы и альтернативы нет – все остальное будет лагать и глючить. На фоне ценников на промышленные компы QNX стоит сущие копейки.Цитата
Цитата: adolfus от 10.08.2019 18:58:56

QNX гарантирует. Вы просто устанавливаете приоритеты для запросов и все. Никаких "свопиться" у нее нет и отродясь не было.
ОС РВ должна гарантировать не только высокоприоритетное переключение прерывания на процесс но и обработку этого прерывания то есть исполнение кода процесса в фиксированное время. Только критическими секциями вы не можете гарантировать время обработки так как затраты на переключения процессов становятся плавающими - на каждую следующую критическую секцию вы добавляете затрату времени переключения процесса. При этом никакой другой процесс быть гарантирован уже не может так как его приоритет должен быть ниже.
Отредактировано: Поверонов - 11 августа 2019 08:41:25
+ 0.00 / 0
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
\n\nОС РВ должна гарантировать не только высокоприоритетное переключение прерывания на процесс но и обработку этого прерывания то есть исполнение кода процесса в фиксированное время. Только критическими секциями вы не можете гарантировать время обработки так как затраты на переключения процессов становятся плавающими - на каждую следующую критическую секцию вы добавляете затрату времени переключения процесса. При этом никакой другой процесс быть гарантирован уже не может так как его приоритет должен быть ниже.
QNX это гарантирует. Иначе бы ее не применяли в энергетике, в том числе и атомной, для управления реакторами, котлами, турбинами и прочими агрегатами. Обработка потока прерываний за фиксированное время – ее главная фишка и она в отношении нагрузочной способности впереди всех на земле и в воде.
Ни одна крафтовая операционка, изготовленная под серийные промышленные компы, не дотягивает ни по одному из параметров до QNX. Даже в маршрутизаторах она кроет все остальное как слон моську, включая сиськи и прочие хуавеи. Правда для просто маршрутизаторов QNX дороговата будет, но если нужно мониторить трафик и цинковать куда надо, то нет альтернативы.
Когда у вас десять тысяч каналов поступления данных (робот, блок газовой электростанции, нефтеперегонная колонна) и все они асинхронные, типа если параметр стоит, то датчик молчит, у вас нет альтернативы QNX.
+ 0.03 / 2
  DarkRaider
   
   
DarkRaider   Россия
Москва
39 лет

Слушатель

Карма: +7.28
Регистрация: 05.12.2016
Сообщений: 195
Читатели: 0
 
NT – это отдельная пестня.

... Чтобы как-то вписаться со своей, якобы, файловой системой в этот документ была разработана для NTFS компонента, позволявшая монтировать похиксовые файловые системы, которые даже сегодня в самом примитивном их варианте конца 90-х кроют фаты и прочие нтифээсы, как слон моську по всем параметрам, включая безопасность, гибкость, функционал и скорость

Цитата
Не знаю, что под виндовсами используется сегодня, поскольку уже лет 15 виндовсы у меня только в виртуалке и большей частью для проверки валидности портирования под mingw. Думаю, что дальше ntfs дело у микрософт не пошло. В *nix'ах же все файловые системы стандартно posix-совместимые.

Вы, любезный, наверное, удивитесь, но NTFS полностью соответствует стандарту POSIX 1003.1
Если не верится почитайте описание. Люблю это волшебное слово POSIX. Вот как только вижу - сразу понимаю - это не в тапки срать! Это серьёзно! Стандарты, однако! Заклинание из этого слова безотказно действующее расслабляюще на всех неофитов и вызывающее смиренное покачивание головой в знак уважения у старожил.

Ну и конечно, слезу умиления, вызывает отзыв "владельца мерседеса" с пятнадцати летним стажем, о недостатках запорожца. Ясно дело! Не мерседес!

Будет ли следующая стадия? Обычно в таких разборках начинают сравнивать тру-файловые системы и богомерзкую. Причём сравнивают всё только на никсах, чтобы было достоверней.
Сообщение скрыто автором
Отредактировано: DarkRaider - 12 августа 2019 16:00:01
+ 0.00 / 0
  qurvax
   
   
qurvax  

Слушатель

Карма: +6.37
Регистрация: 29.03.2017
Сообщений: 287
Читатели: 1
 
Не знаю, что под виндовсами используется сегодня, поскольку уже лет 15 виндовсы у меня только в виртуалке и большей частью для проверки валидности портирования под mingw. Думаю, что дальше ntfs дело у микрософт не пошло. В *nix'ах же все файловые системы стандартно posix-совместимые. Многие нынешние дистрибутивы линукса используют txt3 или ext4. xfs, кстати, очень неплохая ФС и для многих приложений ей нет разумной альтернативы. Не помню, чтобы когда-нибудь xfs и/или extfs теряли или портили файлы – это одни из самых надежных ФС. Разумеется, сетевое питание должно быть подперто бесперебойником, котороый может сообщить системе, что пропало питание, а система – уходить в режим ожидания, если не успевает синхронизировать и закрыть файлы до разряда батарей.
Эх, жаль, была надежда, что я ченить хорошее проспал
XFS хорошо, но тормозно местами, а екст4 имеет таки свойство тогойт, бывало. Питанием одним жив не будешь, ведь под фс еще дочертей слоев всяко-разного.
Вот еще хотел спросить, а чего дает эта самая POSIX-совместимость на практике пользователям ОС общего назначения (общего - это не домашняя убунточка, это нон-критикал бизнес-приложения)? Дальше NTFS'а пошло. ReFS, сквозная интеграция с механизмами проверки целостности и востановления технологии storage spaces. В идеале "на лету". Проприетарщина, конечно, и тот самый EEE, но работает.
+ 0.00 / 0
  DarkRaider
   
   
DarkRaider   Россия
Москва
39 лет

Слушатель

Карма: +7.28
Регистрация: 05.12.2016
Сообщений: 195
Читатели: 0
 
...
Вот еще хотел спросить, а чего дает эта самая POSIX-совместимость на практике пользователям ОС общего назначения (общего - это не домашняя убунточка, это нон-критикал бизнес-приложения)? Дальше NTFS'а пошло.
...

Ну как же! Всем дальше пошло!

Вот тут Stackoverflow по русски перевели:

Цитата
В области "требуется семантика файловой системы POSIX", что обычно подразумевается:

позволяет иерархические имена файлов и разрешения (.,..,...)
поддерживает по крайней мере семантику, близкую к открытой
разрешения umask/unix, 3 файла времени
поддержка 8-битного байта
поддерживает атомные переименования в той же файловой системе
fsync()/dirfsync() durability gurantee/ограничение
поддерживает многопользовательскую защиту (файл изменения размера возвращает 0 байт, а не мусор)
переименовать и удалить открытые файлы (Windows этого не делает)
имена файлов, поддерживающие все байты рядом с '/' и \0

Иногда это также означает поддержку symlink/hardlink, а также имена файлов и 32-битные указатели файлов (минимум). В некоторых случаях он также используется для ссылки на конкретные функции API, такие как fcntl() блокировка, mmap() или truncate() или AIO.

Вот тут на буржуинском.

Правда когда переводили не привели первый ответ в теме:

Цитата
NOTE that POSIX compliance pertains to the OS, not the file system specifically. Part of it does specify the API for accessing the file system. In that context: 1) it's not required, but it's helpful for programmers, 2) only if they want to work with a POSIX compliant OS,

Позволю вольный перевод: Совместимость с POSIX предъявляет требования к ОС, а не конкретно к файловой системе и определяет требования к API доступа к файловой системе. Это не обязательные требования, но облегчают нелёгкую жизнь программистов, правда только если они хотят работать с posix совместимой ОС.


К слову вот тут немного интересного на буржуинском и про американские стандарты и про обосравшуюся на корабле NT с POSIX.

Впрочем, что то я опять поперёк батьки малину лезу портить. Извиняюсь.
Мне тоже любопытен анамнез, чем 15 лет назад ntfs человека обидел.
Сообщение скрыто автором
+ 0.00 / 0
  qurvax
   
   
qurvax  

Слушатель

Карма: +6.37
Регистрация: 29.03.2017
Сообщений: 287
Читатели: 1
 
Позволю вольный перевод: Совместимость с POSIX предъявляет требования к ОС, а не конкретно к файловой системе и определяет требования к API доступа к файловой системе. Это не обязательные требования, но облегчают нелёгкую жизнь программистов, правда только если они хотят работать с posix совместимой ОС.
А если не хотят (но их заставляют) - то не облегчает... Логично, чо.
POSIX_ME_HARDER ©RMS Смеющийся
Сообщение скрыто автором
+ 0.00 / 0
  DarkRaider
   
   
DarkRaider   Россия
Москва
39 лет

Слушатель

Карма: +7.28
Регистрация: 05.12.2016
Сообщений: 195
Читатели: 0
 
А если не хотят (но их заставляют) - то не облегчает... Логично, чо.
POSIX_ME_HARDER ©RMS Смеющийся
Сказать по чести, в юности, когда я был программистом, не приходилось как то задумываться о ФАЙЛОВОЙ СИСТЕМЕ... Две команды синхронного чтения/записи ФАЙЛА, ещё две асинхронного... (не считая всяких там копирований и созданий)... и по барабану как то было, каким АПИ ОС (windows) общается со своей файловой системой... Но я в итоге не настоящий программист, так что дилетант.
Сообщение скрыто автором
+ 0.00 / 0
  qurvax
   
   
qurvax  

Слушатель

Карма: +6.37
Регистрация: 29.03.2017
Сообщений: 287
Читатели: 1
 
Сказать по чести, в юности, когда я был программистом, не приходилось как то задумываться о ФАЙЛОВОЙ СИСТЕМЕ... Две команды синхронного чтения/записи ФАЙЛА, ещё две асинхронного... (не считая всяких там копирований и созданий)... и по барабану как то было, каким АПИ ОС (windows) общается со своей файловой системой... Но я в итоге не настоящий программист, так что дилетант.
Ну дык... мы ж все любим абстракции. Где надо и где не надо. А ищо мы любим стандарты. Кто сказал USB2.0?! Вот так привыкаем, и вместо тупой записи блока на блин в нужный сектор, который ты максимум что перепутать с другим сможешь, в итоге вообще не знаешь, где твои данные, записались ли или уже Билл сожрал. И приходится знать тучу хаков, как попробовать заставить тот или иной стек технологий всетаки записать долбанный блок на долбанный диск, гарантированно. Ровно до следующей версии ОС, ага. Зато нескучно. И деньги плотют, опять же, и все при деле.
Сообщение скрыто автором
Отредактировано: qurvax - 13 августа 2019 16:30:01
+ 0.01 / 1
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
\n\n
Вы, любезный, наверное, удивитесь, но NTFS полностью соответствует стандарту POSIX 1003.1
Если не верится почитайте описание. Люблю это волшебное слово POSIX. Вот как только вижу - сразу понимаю - это не в тапки срать! Это серьёзно! Стандарты, однако! Заклинание из этого слова безотказно действующее расслабляюще на всех неофитов и вызывающее смиренное покачивание головой в знак уважения у старожил.
Вы это серьезно? Вы знаете про что этот POSIX 1003.1? Читали соответсвующий документ и/или предшествовавшие ему выпуски? Сомневаюсь. Вы по диагонали глянули в перевод какой-то рекламной муйни от микрософ, котороый Вам подсунул гугль.
Вот Вам стандарт, почитайте и больше не хамите.

Цитата со страницы 60:
Цитата
3.170 Filename
A sequence of bytes consisting of 1 to {NAME_MAX} bytes used to name a file. The bytes composing the name shall not contain the or characters. In the context of a pathname, each filename shall be followed by a or a character; elsewhere, a filename followed by a character forms a string (but not necessarily a character string). The filenames dot and dot-dot have special meaning. A filename is sometimes referred to as a ``pathname component’’. See also Section 3.271 (on page 76).
Цитата со страницы 76:
Цитата
3.271 Pathname
A string that is used to identify a file. In the context of POSIX.1-2017, a pathname may be limited to {PATH_MAX} bytes, including the terminating null byte. It has optional beginning characters, followed by zero or more filenames separated by characters. A pathname can optionally contain one or more trailing characters. Multiple successive characters are considered to be the same as one , except for the case of exactly two
leading characters.
Note:
If a pathname consists of only bytes corresponding to characters from the portable filename character set (see Section 3.282, on page 79), characters, and a single terminating character, the pathname will be usable as a character string in all supported locales; otherwise, the pathname might only be a string (rather than a character string). Additionally, since the single-byte encoding of the character is required to be the same across alllocales and to not occur within a multi-byte character, references to a character within a pathname are well-defined even when thepathname is not a character string. However, this property does not necessarily hold for the remaining characters within the portable filename character set.
Короче, в имени файла и пути к файлу допустимы все символы за исключением двух -- '/' и '\0'. При этом имена '.' и '..' представляют собой ссылку на текущий каталог и родительский, соответственно. Иными словами, имя файла, состоящее только из пробелов валидно.

А теперь эксперимент. У Вас есть под рукой виндовс с разделом NTFS? Создайте в каком-нибудь каталоге файлы с именами (валидными в контексте Std. IEEE 1003.1):
"...", " ..", ".. "или " ".
":::"
"\\\"
"c:\windows\system32\cmd.exe"
"c:\windows\system32\cmd.exe "
"c:\windows\system32\cmd.exe "

Расскажите нам о результатах.

У меня на POSIX-совместимой системе они такие:
Отредактировано: adolfus - 12 августа 2019 17:10:04
+ 0.00 / 0
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
Позволю вольный перевод: Совместимость с POSIX предъявляет требования к ОС, а не конкретно к файловой системе и определяет требования к API доступа к файловой системе. Это не обязательные требования, но облегчают нелёгкую жизнь программистов, правда только если они хотят работать с posix совместимой ОС. \n\nК слову вот тут немного интересного на буржуинском и про американские стандарты и про обосравшуюся на корабле NT с POSIX.
Не позорьтесь. Скачайте стандарт, что я ради Вас выложил, почитайте и подумайте, где там NTFS и вообще микрософт со своими осями.
Отредактировано: adolfus - 12 августа 2019 17:17:51
+ 0.02 / 1
  qurvax
   
   
qurvax  

Слушатель

Карма: +6.37
Регистрация: 29.03.2017
Сообщений: 287
Читатели: 1
 
А теперь эксперимент. У Вас есть под рукой виндовс с разделом NTFS? Создайте в каком-нибудь каталоге файлы с именами (валидными в контексте Std. IEEE 1003.1):
"...", " ..", ".. "или " ".
":::"
"\\\"
"c:\windows\system32\cmd.exe"
"c:\windows\system32\cmd.exe "
"c:\windows\system32\cmd.exe "

Расскажите нам о результатах.

У меня на POSIX-совместимой системе они такие:
Вы путаете ФС и ОС. Ограничения эти от ОС. Сама ФС может иметь несколько атрибутов имен, в т.ч. и POSIX-совместимый. А то так я тож могу "эксперимент" выктатить, где из под WSL'а покажу вам нативный, соответствующий стандарту вывод df, который слушается ту самую переменную. Но это ничего не скажет о ФС.

Доку по нтфс'у я нахрапом не нашел, но педивикия таки клевещит от че:

Paths can be up to 32,000 characters.
Forbids the use of characters in range 1-31 (0x01-0x1F) and characters " * / : < > ? \ | unless the name is flagged as being in the Posix namespace. NTFS allows each path component (directory or filename) to be 255 characters long[dubiousdiscuss].
Windows forbids the use of the MS-DOS device names AUX, CLOCK$, COM1, …, COM9, CON, LPT1, …, LPT9, NUL and PRN, as well as these names with any extension (for example, AUX.txt), except when using Long UNC paths (ex. \\.\C:\nul.txt or \\?\D:\aux\con). (CLOCK$ may be used, if an extension is provided.) The Win32 API strips trailing space and period (full-stop) characters from filenames, except when UNC paths are used. These restrictions only apply to Windows; in Linux distributions that support NTFS, filenames are written using NTFS's Posix namespace, which allows any Unicode character except / and NULL
Отредактировано: qurvax - 12 августа 2019 18:43:55
+ 0.01 / 2
  LightElf
   
   
LightElf   СССР

Слушатель

Карма: +10.31
Регистрация: 02.09.2010
Сообщений: 2,157
Читатели: 1
 
Короче, в имени файла и пути к файлу допустимы все символы за исключением двух -- '/' и '\0'. При этом имена '.' и '..' представляют собой ссылку на текущий каталог и родительский, соответственно. Иными словами, имя файла, состоящее только из пробелов валидно.

А теперь эксперимент. У Вас есть под рукой виндовс с разделом NTFS? Создайте в каком-нибудь каталоге файлы с именами (валидными в контексте Std. IEEE 1003.1):
"...", " ..", ".. "или " ".
":::"
"\\\"
"c:\windows\system32\cmd.exe"
"c:\windows\system32\cmd.exe "
"c:\windows\system32\cmd.exe "

Расскажите нам о результатах.

У меня на POSIX-совместимой системе они такие:
Можно создать руками через NT API (выбрав POSIX Namespace) ну или bash-ем из-под WSL. Из-под Win32 API конечно же нет, но для Win32 никогда не обещали POSIX совместимости, что в общем-то логично для десктопной операционки.
Кстати, в EXT4 таки наконец-то запилили case-insensitive filename handling. Видать POSIX им надоел
Сообщение скрыто автором
+ 0.00 / 0
  DarkRaider
   
   
DarkRaider   Россия
Москва
39 лет

Слушатель

Карма: +7.28
Регистрация: 05.12.2016
Сообщений: 195
Читатели: 0
 
...
Вот Вам стандарт, почитайте и больше не хамите.
...
Спасибо, почитал.
Хамить больше не буду, но и Вас попрошу,категорично писать о том, о чём, Вы, знаете доподлинно, а не о том, что, Вам, кажется.

Цитата
А теперь эксперимент. У Вас есть под рукой виндовс с разделом NTFS? Создайте в каком-нибудь каталоге файлы с именами (валидными в контексте Std. IEEE 1003.1):
"...", " ..", ".. "или " ".

Без проблем, правда есть тонкость. Такие имена создаются средствами POSIX подсистемы windows и доступ к ним тоже из POSIX API, в обычном "проводнике" Вы их не увидите.

Файловая система NTFS (глава из книги "Ресурсы Windows NT" )

Цитата
Глава 5 Файловые системы Windows NT и улучшенное управление дисками________169

Согласованность с POSIX

Согласованность с POSIX позволяет переносить приложения UNIX в среду Windows NT. Windows NT полностью согласована со стандартом 1003.1 института IEEE, который определяет присвоение имен и идентификацию файлов.

Следующие возможности POSIX включены в NTFS:

• Чувствительные к регистру имена Для POSIX файлы README TXT, Readme.txt и readme.txt являются различными.

• Жесткие связи (hard Imks) Файлу может быть присвоено несколько имен. Это позволяет двум файлам с различными именами, которые могут быть размещены в различных каталогах, содержать одни и те же данные.

• Дополнительные отметки времени Показывают, когда файл был последний раз использован или изменен.

Внимание! Несмотря на то что NTFS поддерживает рсшстрозависимые имена, нельзя использовать стандартные операции NTFS для управления файлами, имена которых отличаются только регистром (к стандартным операциям относятся вьшолняемые из командной строки, типа copy, del и move, и их эквиваленты в File Manager). Например, оба файла annm.doc и AnnM.Doc будут удалены при использовании следующей команды:

del AnnM.Doc

Таким образом, для управления файлами, имена которых отличаются только регистром, следует использовать приложения POSIX.

Дополнительная информация по рассматриваемому вопросу приведена в разделах, связанных с подсистемой POSIX, в главах 1 и 17.
Сообщение скрыто автором
Отредактировано: DarkRaider - 13 августа 2019 20:00:01
+ 0.01 / 1
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
XFS хорошо, но тормозно местами, а екст4 имеет таки свойство тогойт, бывало. Питанием одним жив не будешь, ведь под фс еще дочертей слоев всяко-разного.
Под файловой системой нет никаких слоев, кроме кода ядра, если точнее, кода, непоследственно обслуживающего устройство прямого доступа. Когда вы выдаете системный вызов, например, записи в файл write(fd, buff, cnt), ФС проверяет ваши права на запись, на валидность буфера, конвертирует вызов в команду устройства и ставит ее в очередь драйверу конкретного устройства на выполнение.
Вот еще хотел спросить, а чего дает эта самая POSIX-совместимость на практике пользователям ОС общего назначения
Много чего. Например, прозрачную локализацию, хорошие имена файлов, быструю и надежную файловую систему, мощную командную оболочку, и набор утилит, позволяющие много чего сделать, не прибегая к разного рода крафтовым программам. Мало того, все это будет работать точно так же столько, сколько уже работает.
Это все внешнее, а внутреннего, не видимого каждый день, косвенного еще больше. Например, софт, который рулит электростанциями, энергетической и прочей инфраструктурой, управляет работой предприятий, например, рудным комбинатом или нефтепромыслами, в силу уникальности стоит очень дорого и разработан он на наши с вами кровные. POSIX позволяет не тратиться на постоянный апдейт сложного и дорогого софта при смене аппаратной или системной инфраструктуры – все основные вопросы совместимости ложатся на уровень ниже прикладного

Программистом он дает еще больше. Прежде всего стабильный и простой прикладной интерфейс. Вам не нужно каждые три-пять-семь-десять лет тратить свою жизнь на изучение каких-то модных фреймворков и прочих библиотек для взаимодействия с ОС – вы один раз разобрались и работаете, нарабатываете опыт. Вы знаете, как себя ведет тот или иной вызов и это не зависит от вычислительной платформы. Вы можете писать софт для любой системы на любом железе, вплоть до контроллеров, если система поддерживает Std IEEE 1003.1.
Мало того, вы думаете в контексте и терминах этого стабильного и очень простого API.
У вас есть уверенность, что код, который вы написали наццать лет назад, скомпилируется и правильно отработает не только сегодня, но и через наццать лет. Если вдруг что-то пойдет не так, типа что-то устарело и это выбросили, то в стандарте или в дополнении/объяснении к нему вы всегда найдете информацию, что именно устарело и как это обойти без потерь в функциональности. Т.е. вам не нужно непрерывно переписывать однажды разработанный софт.
+ 0.02 / 1
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
Можно создать руками через NT API (выбрав POSIX Namespace) ну или bash-ем из-под WSL. Из-под Win32 API конечно же нет, но для Win32 никогда не обещали POSIX совместимости, что в общем-то логично для десктопной операционки.
Кстати, в EXT4 таки наконец-то запилили case-insensitive filename handling. Видать POSIX им надоел
Запилили опцию, которую нужно особо включить, чтобы она заработала на явно указанной ФС. Причина – проблемы с портированием игр и плагинов из виндовсов в линукс. Дело в том, что развелось школоты, которая привыкнув к регистровой независимости фатов и прочих нтфс, в пределах одного программного модуля может именовать один и тот же файл в разных регистрах. Члены Cекты Свидетелей Микрософт обычно не заморачиваются регистром и могут именовать один и тот же файл по разному. Например, Units.dat, UNITS.dat и даже UnitS.Dat. При этом все они ссылаются на один и тот же файл с перечнем ролей какой-нибудь стратегии. Неаккуратно работают -- полное отсутствие определенности и педантичности. В результате сильно усложняется, вплоть до невозможного, портирование такого софта на регистрозависимую ФС. Поэтому уговорили Линуса сделать опцию, чтобы упростить портирование наркотиков игроманам.
Отредактировано: adolfus - 12 августа 2019 20:40:00
+ 0.07 / 4
  adolfus
   
   
adolfus  

Слушатель

Карма: +11.98
Регистрация: 12.02.2010
Сообщений: 6,556
Читатели: 2
 
Спасибо, почитал.
Хамить больше не буду, но и Вас попрошу,категорично писать о том, о чём, Вы, знаете доподлинно, а не о том, что, Вам, кажется. \n\n
Без проблем, правда есть тонкость. Такие имена создаются средствами POSIX подсистемы windows и доступ к ним тоже из POSIX API, в обычном "проводнике" Вы их не увидите.

Файловая система NTFS (глава из книги "Ресурсы Windows NT" )
Вы не описание от общих слов, а конкретные вызовы приведите. Ссылку на MSDN.
Как открыть/закрыть файл каталога. Как читать каталог в режиме итерирования, а как просто в виде файла (каталог это такой же файл, как и все остальные, только в атрибутах у него бит каталога выставлен). Как отобразить файл в память, вместо read()/write()...
+ 0.02 / 1
загрузить следующие сообщения: 20 из 328
←Пред←1348349351352367→След→
 
НОВОСТИ ПАРТНЕРОВ

AFTERSHOCK

     
Сейчас на ветке:
Всего: 0, Гостей: 0, Пользователей: 0, Мобильных: 0
  1. >
  2. Форум >
  3. Научно-технический раздел >
  4. IT в России и мире в реалиях мирового кризиса
Глобальная Авантюра © 2007-2019 Глобальная Авантюра. Все права защищены и охраняются законом. При использовании любого материала любого автора с данного сайта в печатных или Интернет изданиях, ссылка на оригинал обязательна. Мнение администрации не обязательно совпадает с мнением авторов документов и комментариев, опубликованных на сайте.

CCBot/2.0 (https://commoncrawl.org/faq/)
Unknown

Яндекс.Метрика