Как стать автором
Обновить
0
0
Брусникин Михаил @Ambroyz

Системный программист

Отправить сообщение

Не понятно почему в дескрипторе отправки сетевушки физ адрес буфера 32 битный. Они заставляют копировать память при отправке? Странно смотрится в сочетании с StartOfPacket/EndOfPacket.

Существует большая техническая проблема по возвращению состояния железа в первоначальное состояние. ОС которая грузится второй ожидает, что управление пришло из legacy bios или uefi и строит на этом основании необоснованные выводы. Примером может служить отлучение usb контроллера от биоса. Первоначально он сидит на SMI работы с клавой, а после первая ось его забирает на себя, неявно отключая SMI хуки. Вторая ось найдет контроллер в необычном состоянии и может запаниковать. Проблема относится не только к ядру, но и к некоторым внешним драйверам.

Антоним слова "дискретная" — "непрерывная", а не встроенная. Именно поэтому я использовал термин "аналоговая", так как там все процессы основаны на непрерывных функциях.

Очень режет глаз "дискретная видеокарта" в понимании "не встроенная в чип процессора". Вы же считаете что в чипе она аналоговая. Мне в сводных таблицах не хватило графы энергопотребления, мы же про ноутбуки читаем.

Обычно в фирмах скрывают зп коллег, поэтому было бы очень сложно на это ориентироваться. У нас, например, на митинги зовут людей, которые «шарят» в аспектах обсуждаемой темы, чтобы было больше экспертных мнений при выборе пути.
речь была не про «полсекунды» и не про «ровно полсекунды», а как спать меньше миллисекунды.
То что Вы описали со стороны клиента верно, понятно и работает очень давно как классическая схема выбора точки доступа.
Тут речь про влияние точки доступа на стандартные реализации клиентских wifi стеков, чтобы перераспределить клиентов. В статье озвучивалась проблема точки доступа: как скинуть с себя медленного клиента, чтобы он не тормозил других. Если просто сделать дизассоциацию и позволить обратно подключаться, то клиент может опять подключиться к той же точке, т.к. сигнал к ней будет наиболее сильным, хотя рядом есть другая точка у которой сигнал чуть меньше, но нет ни одного клиента.
Поэтому я подозреваю наличие какого-то интересного алгоритма на группе точек доступа, который позволяет обмануть алгоритм выбора точки на клиенте так, как это хочет группа точек.
Анонсируется фича — принудительное переключение клиента, вместо добровольного. Не увидел в тестах доказательств, что переключала именно точка, а не сам клиент прыгал на новую точку. Было бы интересно увидеть снифы беспроводного трафика в момент переключения. Как именно точка заставляет клиента быстро переключиться? Отключает через дизассоциацию и не даёт вновь проассоциироваться? Как реально работает то, что вы описываете?
В текущем состоянии статья больше похожа на маркетинговый анонс, чем на техническую статью.
Я думаю, что проблема использования hosts во всей этой истории в том, что виндовая функция DnsQuery, в которую приходят все способы резолва имени (кроме самописной реализации на сокетах), имеет флаг DNS_QUERY_NO_HOSTS_FILE — который поддерживается еще с XP и запрещает резолвить из hosts. Довольно много программ использует его если не постоянно, то при недоверии к ответу.
У Вас бы тоже не дошло дальше загрузчика, если бы сами писали загрузчик и не заимствовали код.
Ага, а 9 женщин выносят ребенка за 1 месяц. Бывает горизонтальный рост.
Перефразируя длинный комментарий: дискреционный контроль не сработал, попробуйте мандатный. Ответ с 99% вероятностью будет: аналогично не работает. Дело в том, что оба контроля сидят в описателе безопасности, который в данной системе подвязан почему-то к имени, а не к объекту.

Удивительно, что автор статьи нашел хоть какие-то продукты такого рода в общем доступе, да еще официальное демо. Это может объяснять архитектурные просчеты.
При обучении озвучивался аргумент, что функции с goto выпадают из поля зрения оптимизатора. Потому и привился такой стиль программирования. Насколько я знаю, современные компиляторы не имеют такого недостатка. Кстати, приведенный мной пример не моя идея, это распространенный паттерн инициализации в драйверах Windows (функции создания объектов, StartDevice и прочие). Более адекватно код выглядит, если учесть, что описатели нужно закрывать не только здесь на откате при проблемах, но и при очистке объекта.
А в целом вы правы, это попытка не использовать goto там где он подходит лучше.
Способ передачи параметров в Си все же лучше рассматривать с точки зрения платформы, а не языка. В X64 первые 4 или 5 аргументов без вариантов уйдут через регистры.
Такие конструкции прекрасно реализуются через
FILE *f1 = NULL, *f2 = NULL, *f3 = NULL;
int retval = 0;
do
{
if(!(f1=fopen(«aaa.txt»,«r»)))
break;
if(!(f2=fopen(«bbb.txt»,«r»)))
break;
if(!(f3=fopen(«ccc.txt»,«r»)))
break;
/*… do something with the files… */
retval = 1;
} while(FALSE);

if(!retval)
{
if (f1) fclose(f1);
if (f2) fclose(f2);
if (f3) fclose(f3);
}

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

Информация

В рейтинге
Не участвует
Откуда
Пенза, Пензенская обл., Россия
Дата рождения
Зарегистрирован
Активность