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

1,268,048 7,775
 

adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: Поверонов от 10.08.2019 20:48:54Насколько помнится проблема ОС РВ была в том что там мог быть только один критический процесс, то есть если он включился то все прочие будут ждать. Наверное нынче эта проблема разрешима числом ядер в процессоре , то есть критических процессов может быть по числу ядер ( -1 на обработчик прерываний )

Нет никаких критических процессов – есть критические участки кода (критические секции), которые могут выполняться атомарно. Максимум, что может сделать любая ОС для секции критического кода – это не прерывать процесс по таймеру планировщика при вытесняющей многозадачности, пока процесс в критической секции. Как правило, пользовательский процесс, например, обработчик верхнего уровня, самостоятельно заботится о своих критических секциях, используя некоторые соглашения, которые должны соблюдать все процессы в системе. В результате никакой необходимости в услугах ОС для поддержки критических секций не требуется – это прерогатива алгоритмов синхронизации, а не ОС. В принципе, процесс может "известить"  ОС о входе в КС и выходе из нее, установив какой-нибудь флаг, а ОС, получив прерывание по таймеру может проверить состояние флага и прерывание проигнорить.
Внешние события прерывают критическую секцию, если их приоритет выше и контроллер прерываний "пропускает" запрос процессору/ядру и прерывания разрешены.
Количество же процессоров и/или ядер принципиально ни на что не влияет, кроме усложнения кода ОС.
Преимущества многоядерной оархитектуры проявляются только в тяжело нагруженных системах – в этом случае обработку запросов можно выполнять параллельно. Например, колупаться в сетевых пакетах на маршрутизаторе
  • +0.01 / 1
Поверонов
 
Слушатель
Карма: +37.12
Регистрация: 05.06.2010
Сообщений: 18,862
Читатели: 7
Цитата: adolfus от 11.08.2019 01:43:56Нет никаких критических процессов – есть критические участки кода (критические секции), которые могут выполняться атомарно. Максимум, что может сделать любая ОС для секции критического кода – это не прерывать процесс по таймеру планировщика при вытесняющей многозадачности, пока процесс в критической секции. Как правило, пользовательский процесс, например, обработчик верхнего уровня, самостоятельно заботится о своих критических секциях, используя некоторые соглашения, которые должны соблюдать все процессы в системе. В результате никакой необходимости в услугах ОС для поддержки критических секций не требуется – это прерогатива алгоритмов синхронизации, а не ОС. В принципе, процесс может "известить"  ОС о входе в КС и выходе из нее, установив какой-нибудь флаг, а ОС, получив прерывание по таймеру может проверить состояние флага и прерывание проигнорить.
Внешние события прерывают критическую секцию, если их приоритет выше и контроллер прерываний "пропускает" запрос процессору/ядру и прерывания разрешены.
Количество же процессоров и/или ядер принципиально ни на что не влияет, кроме усложнения кода ОС.
Преимущества многоядерной оархитектуры проявляются только в тяжело нагруженных системах – в этом случае обработку запросов можно выполнять параллельно. Например, колупаться в сетевых пакетах на маршрутизаторе


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

QNX гарантирует. Вы просто устанавливаете приоритеты для запросов и все. Никаких "свопиться" у нее нет и отродясь не было.

ОС РВ должна гарантировать не только высокоприоритетное переключение прерывания на процесс но и обработку этого прерывания то есть исполнение кода процесса в фиксированное время. Только критическими секциями вы не можете гарантировать время обработки  так как затраты на переключения процессов становятся плавающими - на каждую следующую критическую секцию вы добавляете затрату времени переключения процесса. При этом никакой другой процесс быть гарантирован уже не может так как его приоритет должен быть ниже.
Отредактировано: Поверонов - 11 авг 2019 07:41:25
  • +0.00 / 0
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: Поверонов от 11.08.2019 07:31:43\n\nОС РВ должна гарантировать не только высокоприоритетное переключение прерывания на процесс но и обработку этого прерывания то есть исполнение кода процесса в фиксированное время. Только критическими секциями вы не можете гарантировать время обработки  так как затраты на переключения процессов становятся плавающими - на каждую следующую критическую секцию вы добавляете затрату времени переключения процесса. При этом никакой другой процесс быть гарантирован уже не может так как его приоритет должен быть ниже.

QNX это гарантирует. Иначе бы ее не применяли в энергетике, в том числе и атомной, для управления реакторами, котлами, турбинами и прочими агрегатами. Обработка потока прерываний за фиксированное время – ее главная фишка и она в отношении нагрузочной способности впереди всех на земле и в воде.
Ни одна крафтовая операционка, изготовленная под серийные промышленные компы, не дотягивает ни по одному из параметров до QNX. Даже в маршрутизаторах она кроет все остальное как слон моську, включая сиськи и прочие хуавеи. Правда для просто маршрутизаторов QNX дороговата будет, но если нужно мониторить трафик и цинковать куда надо, то нет альтернативы.
Когда у вас десять тысяч каналов поступления данных (робот, блок газовой электростанции, нефтеперегонная колонна) и все они асинхронные, типа если параметр стоит, то датчик молчит, у вас нет альтернативы QNX.
  • +0.03 / 2
qurvax
 
lithuania
Вильнюс
Слушатель
Карма: +11.85
Регистрация: 29.03.2017
Сообщений: 2,270
Читатели: 1
Цитата: adolfus от 10.08.2019 01:52:49Не знаю, что под виндовсами используется сегодня, поскольку уже лет 15 виндовсы у меня только в виртуалке и большей частью для проверки валидности портирования под mingw. Думаю, что дальше ntfs  дело у микрософт не пошло. В *nix'ах же все файловые системы стандартно posix-совместимые. Многие нынешние дистрибутивы линукса используют txt3 или ext4. xfs, кстати, очень неплохая ФС и для многих приложений ей нет разумной альтернативы. Не помню, чтобы когда-нибудь xfs и/или extfs теряли или портили файлы – это одни из самых надежных ФС. Разумеется, сетевое питание должно быть подперто бесперебойником, котороый может сообщить системе, что пропало питание, а система – уходить в режим ожидания, если не успевает синхронизировать и закрыть файлы до разряда батарей.

Эх, жаль, была надежда, что я ченить хорошее проспалУлыбающийся
XFS хорошо, но тормозно местами, а екст4 имеет таки свойство тогойт, бывало. Питанием одним жив не будешь, ведь под фс еще дочертей слоев всяко-разного.
 Вот еще хотел спросить, а чего дает эта самая POSIX-совместимость на практике пользователям ОС общего назначения (общего - это не домашняя убунточка, это нон-критикал бизнес-приложения)? Дальше NTFS'а пошло. ReFS, сквозная интеграция с механизмами проверки целостности и востановления технологии storage spaces. В идеале "на лету". Проприетарщина, конечно, и тот самый EEE, но работает.
Консервированный чужой. Осторожно запах!
  • +0.00 / 0
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: DarkRaider от 12.08.2019 02:45:43\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 16:10:04
  • +0.00 / 0
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: DarkRaider от 12.08.2019 10:43:53Позволю вольный перевод: Совместимость с POSIX предъявляет требования к ОС, а не конкретно к файловой системе и определяет требования к API доступа к файловой системе. Это не обязательные требования, но облегчают нелёгкую жизнь программистов, правда только если они хотят работать с posix совместимой ОС. \n\nК слову вот тут немного интересного на буржуинском и про американские стандарты и про обосравшуюся на корабле NT с POSIX.

Не позорьтесь. Скачайте стандарт, что я ради Вас выложил, почитайте и подумайте, где там NTFS и вообще микрософт со своими осями.
Отредактировано: adolfus - 12 авг 2019 16:17:51
  • +0.02 / 1
qurvax
 
lithuania
Вильнюс
Слушатель
Карма: +11.85
Регистрация: 29.03.2017
Сообщений: 2,270
Читатели: 1
Цитата: adolfus от 12.08.2019 16:05:09А теперь эксперимент. У Вас есть под рукой виндовс с разделом 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 17:43:55
Консервированный чужой. Осторожно запах!
  • +0.01 / 2
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: qurvax от 12.08.2019 07:58:50XFS хорошо, но тормозно местами, а екст4 имеет таки свойство тогойт, бывало. Питанием одним жив не будешь, ведь под фс еще дочертей слоев всяко-разного.

Под файловой системой нет никаких слоев, кроме кода ядра, если точнее, кода, непоследственно обслуживающего устройство прямого доступа. Когда вы выдаете системный вызов, например, записи в файл write(fd, buff, cnt), ФС проверяет ваши права на запись, на валидность буфера, конвертирует вызов в команду устройства и ставит ее в очередь драйверу конкретного устройства на выполнение.
Цитата: qurvax от 12.08.2019 07:58:50Вот еще хотел спросить, а чего дает эта самая POSIX-совместимость на практике пользователям ОС общего назначения

Много чего. Например, прозрачную локализацию, хорошие имена файлов, быструю и надежную файловую систему, мощную командную оболочку, и набор утилит, позволяющие много чего сделать, не прибегая к разного рода крафтовым программам. Мало того, все это будет работать точно так же столько, сколько уже работает.
Это все внешнее, а внутреннего, не видимого каждый день, косвенного еще больше. Например, софт, который рулит электростанциями, энергетической и прочей инфраструктурой, управляет работой предприятий, например, рудным комбинатом или нефтепромыслами, в силу уникальности стоит очень дорого и разработан он на наши с вами кровные. POSIX позволяет не тратиться на постоянный апдейт сложного и дорогого софта при смене аппаратной или системной инфраструктуры – все основные вопросы совместимости ложатся на уровень ниже прикладного

Программистом он дает еще больше. Прежде всего стабильный и простой прикладной интерфейс. Вам не нужно каждые три-пять-семь-десять лет тратить свою жизнь на изучение каких-то модных фреймворков и прочих библиотек для взаимодействия с ОС – вы один раз разобрались и работаете, нарабатываете опыт. Вы знаете, как себя ведет тот или иной вызов и это не зависит от вычислительной платформы. Вы можете писать софт для любой системы на любом железе, вплоть до контроллеров, если система поддерживает Std IEEE 1003.1.
Мало того, вы думаете в контексте  и терминах этого стабильного и очень простого API.
У вас есть уверенность, что код, который вы написали наццать лет назад, скомпилируется и правильно отработает не только сегодня, но и через наццать лет. Если вдруг что-то пойдет не так, типа что-то устарело и это выбросили, то в стандарте или в дополнении/объяснении к нему вы всегда найдете информацию, что именно устарело и как это обойти без потерь в функциональности. Т.е. вам не нужно непрерывно переписывать однажды разработанный софт.
  • +0.02 / 1
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: LightElf от 12.08.2019 18:01:20Можно создать руками через 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 19:40:00
  • +0.07 / 4
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: DarkRaider от 12.08.2019 18:49:57Спасибо, почитал.
Хамить больше не буду, но и Вас попрошу,категорично писать о том, о чём, Вы, знаете доподлинно, а не о том, что, Вам, кажется. \n\n
Без проблем, правда есть тонкость. Такие имена создаются средствами POSIX подсистемы windows и доступ к ним тоже из POSIX API, в обычном "проводнике" Вы их не увидите.

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

Вы не описание от общих слов, а конкретные вызовы приведите. Ссылку на MSDN.
Как открыть/закрыть файл каталога. Как читать каталог в режиме итерирования, а как просто в виде файла (каталог это такой же файл, как и все остальные, только в атрибутах у него бит каталога выставлен). Как отобразить файл в память, вместо read()/write()...
  • +0.02 / 1
TAU
 
Слушатель
Карма: +54.06
Регистрация: 24.07.2008
Сообщений: 4,134
Читатели: 0
Цитата: adolfus от 11.08.2019 21:48:26Когда у вас десять тысяч каналов поступления данных (робот, блок газовой электростанции, нефтеперегонная колонна) и все они асинхронные, типа если параметр стоит, то датчик молчит, у вас нет альтернативы QNX

Ишшо один апологет...
Ребят, а вы вообще ландшафт изучали? ОС РВ - целый мир свой...
  • +0.04 / 3
LightElf
 
ussr
Слушатель
Карма: +15.82
Регистрация: 02.09.2010
Сообщений: 2,572
Читатели: 1
Цитата: adolfus от 12.08.2019 19:31:50Запилили опцию, которую нужно особо включить, чтобы она заработала на явно указанной ФС. Причина – проблемы с портированием игр и плагинов из виндовсов в линукс.

Ну, кагбэ, в NTFS нечувствительность к регистру (и еще кое-какие ограничения) точно также устанавливается на конкретные каталоги. Другое дело, что именно в Win32 API из стремления к совместимости этот флаг по умолчанию включен. А вот если работать не через Win32,  а непосредственно через NT API, то можно изгаляться по-всякому.
ЦитатаДело в том, что развелось школоты, которая привыкнув к регистровой независимости фатов и прочих нтфс, в пределах одного программного модуля может именовать один и тот же файл в разных регистрах. Члены Cекты Свидетелей Микрософт обычно не заморачиваются регистром и могут именовать один и тот же файл по разному. Например, Units.dat, UNITS.dat и даже UnitS.Dat. При этом все они ссылаются на один и тот же файл с перечнем ролей какой-нибудь стратегии.

Ну то ситуация зеркальная. Другая школота любит понасувать в один каталог архива файлы, отличающиеся только регистром и радоваться, что "противные виндузятники" не могут этот архив корректно распаковать. И потом с удивлением обнаружить, что доля POSIX-совместимых OS на десктопах не превышает статистической погрешности, а проклятый микрософт продолжает рубить капусту карьерным экскаватором.
  • +0.00 / 0
AndreyK-AV
 
russia
Уфа
63 года
Слушатель
Карма: +102.13
Регистрация: 10.11.2008
Сообщений: 45,821
Читатели: 13
Цитата: adolfus от 11.08.2019 21:48:26Когда у вас десять тысяч каналов поступления данных (робот, блок газовой электростанции, нефтеперегонная колонна) и все они асинхронные, типа если параметр стоит, то датчик молчит, у вас нет альтернативы QNX.

Ничего не имею против QNX, но я Вами очень удивлен, 
Вы готовы навесить все десять тысяч каналов одновременно на один микропроцессор, при этом включая всё перечисленное?
Э как .... Бэ.... для чего....
Или Вы написали это в запале полемики, и QNX путь и считается одной из лучших, но все же одна из ОС РВВеселый
Отредактировано: AndreyK-AV - 12 авг 2019 23:34:13
Да будь я и негром преклонных годов, и то, без унынья и лени, я русский бы выучил только за то, что им разговаривал Ленин.
-------------------------------------------------------------
Наше дело правое. Враг будет разбит. Победа будет за нами.(с)
  • +0.07 / 3
qurvax
 
lithuania
Вильнюс
Слушатель
Карма: +11.85
Регистрация: 29.03.2017
Сообщений: 2,270
Читатели: 1
Цитата: adolfus от 12.08.2019 19:16:32Под файловой системой нет никаких слоев, кроме кода ядра, если точнее, кода, непоследственно обслуживающего устройство прямого доступа. Когда вы выдаете системный вызов, например, записи в файл write(fd, buff, cnt), ФС проверяет ваши права на запись, на валидность буфера, конвертирует вызов в команду устройства и ставит ее в очередь драйверу конкретного устройства на выполнение.

Вы, случайно, не проподаватель какой-нить? Что-то уж больно далече от практики... Между ФС и "драйвером устройства" дохренища всякого, обычно. И еще больше - между драйвером ее же, и, собсно, физическим носителем. Где так все прямо? В какой-нибудь встраеваемой системе, наверное, может быть. Теоритически. В какой ОС права доступа проверяет ФС?


Цитата: adolfus от 12.08.2019 19:16:32Т.е. вам не нужно непрерывно переписывать однажды разработанный софт.


Свежо предание... А на самом деле как дела с переносимостью?Подмигивающий Вопрос риторический. Я то осознаю, что пачкой стандартов на интерфейсы ОС ничего не обеспечишь. Абстракции они такие - вечно текут, сучки.
Консервированный чужой. Осторожно запах!
  • +0.06 / 3
slavae
 
russia
Москва
Слушатель
Карма: +193.02
Регистрация: 21.03.2013
Сообщений: 26,985
Читатели: 6
Суперхитрость
Дискуссия   101 0
Вот сделал себе мужик автомобильный номер NULL.
(дело было в Калифорнии там можно регистрировать в качестве автомобильного номера произвольный текст).

Думал "вот здорово, камеры с автоматическим распознаванием номеров меня не опознают".

А ему возьми и прийди все штрафы за все машины, у которых номер не распознался.

А ещё )
Скрытый текст
Империя - это мир, и этой идеологии достаточно. Мы живём в самой лучшей стране в мире и все нам завидуют.
Одушевлённое Одевают, Неодушевлённое Надевают.
  • +0.04 / 4
Прокруст
 
Слушатель
Карма: +0.97
Регистрация: 25.01.2014
Сообщений: 1,432
Читатели: 1
Цитата: qurvax от 13.08.2019 09:09:38Вы, случайно, не проподаватель какой-нить? Что-то уж больно далече от практики... Между ФС и "драйвером устройства" дохренища всякого, обычно. И еще больше - между драйвером ее же, и, собсно, физическим носителем. Где так все прямо? В какой-нибудь встраеваемой системе, наверное, может быть. Теоритически. В какой ОС права доступа проверяет ФС? \n\n

Именно по этой причине считаю винды и линукс поделками. Их пилили куча умных людей, каждый приносил что-то свое, результат мы видим - куча всего и весь этот хлам обязателен.
QNX делала очень сильная и опытная команда программистов, у них была четкая единая концепция, все не нужное они просто не делали.
Что касается других конкурентов - там команды были гораздо слабее.
  • +0.00 / 0
slavae
 
russia
Москва
Слушатель
Карма: +193.02
Регистрация: 21.03.2013
Сообщений: 26,985
Читатели: 6
Цитата: Прокруст от 13.08.2019 11:40:05Именно по этой причине считаю винды и линукс поделками. Их пилили куча умных людей, каждый приносил что-то свое, результат мы видим - куча всего и весь этот хлам обязателен.

Сегодня статью читал на хабре.

ЦитатаВ Авито используются: Vertica, PostgreSQL, Redis, MongoDB, Tarantool, VoltDB, SQLite… Всего у нас 456+ баз для 849+ сервисов. И с этим как-то нужно жить.
...
Реально большая проблема — для сотни баз понять кто там главный. При том, что кто ее создавал, давно уволился, или перешёл на другую должность, или вообще не помнит, кто с ней работает.

Представляю, какой бардачище развели там креативные, которым даже не пришло в голову сделать какой-то реестр этих БД.
Империя - это мир, и этой идеологии достаточно. Мы живём в самой лучшей стране в мире и все нам завидуют.
Одушевлённое Одевают, Неодушевлённое Надевают.
  • 0.00 / 2
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: qurvax от 13.08.2019 09:09:38Вы, случайно, не проподаватель какой-нить? Что-то уж больно далече от практики... Между ФС и "драйвером устройства" дохренища всякого, обычно. И еще больше - между драйвером ее же, и, собсно, физическим носителем. Где так все прямо? В какой-нибудь встраеваемой системе, наверное, может быть. Теоритически.

Возможно, мы по-разному понимаем термин "драйвер". Я имею ввиду драйвер блочного устройства, который представляет для клиента (в частности, для ФС) любое мыслимое DASD в виде линейного массива блоков безотносительно того, что оно собой представляет физически. Драйвер этот – реальный системный слой во всех ОС, где есть возможность написать и имплементировать свою файловую систему.
Между вызовом, например, write(fd, buf,cnt) и вызовом к этому драйверу ничего кроме проверки, можно ли вызывающему писать на это устройство (права), и трансляции некоторых параметров состояния из блока описания открытого файла (это, что извлекается по fd) во входные параметры этого драйвера нет. Всем, что касается планирования работы с этим устройством и, собственно, работы, лежит ниже, т.е. в области ответственности драйвера.

Цитата: qurvax от 13.08.2019 10:09:38
Цитата: qurvax от 13.08.2019 09:09:38В какой ОС права доступа проверяет ФС? \n\n

В любой, в которой, например,  вызов write() возвращает EACCES. Вы можете унаследовать файл, открытый с RDWR, обрезать ему запись через fcntl(F_SETFL), а потом вызвать write(). Тут случится проверка прав на операцию для дескриптора – вашему процессу вернут ошибку и к драйверу обращения не будет, а тот же вызов из родителя пройдет в драйвер после трансляции в его API.
  • +0.00 / 0
adolfus
 
Слушатель
Карма: +21.87
Регистрация: 12.02.2010
Сообщений: 11,200
Читатели: 2
Цитата: DarkRaider от 13.08.2019 15:34:16Я всей душой ненавижу "регистрозависимость" в компьютерах. Я её не навидел ещё с Си...  это пздц сопровождать софт где приходится выискивать по коду разницу getHren() и Gethren().

Кто Вас заставляет использовать "горбатый" стиль именования? Можно просто следовать стилю, который используется в нативных стандартах 14882 и 9899.Чай не дураки их писали.
  • +0.00 / 0
Прокруст
 
Слушатель
Карма: +0.97
Регистрация: 25.01.2014
Сообщений: 1,432
Читатели: 1
Цитата: qurvax от 13.08.2019 13:27:52Вы что, сейчас сравнили QNX и ОС общего назначения? В чем сакральных смысл, сравнивать баги с маршруткой?

Вообще-то QNX 6 изначально позиционировался как десктопный помимо всего прочего.
Отредактировано: Прокруст - 13 авг 2019 19:45:21
  • +0.00 / 0
Сейчас на ветке: 3, Модераторов: 0, Пользователей: 0, Гостей: 2, Ботов: 1