Как плохие вызовы OpenGL могут вызвать целый системный катастрофический отказ?

Принятие Вас имеет доступ к Вашему брандмауэру, можно просто заблокировать префиксы Facebook. Можно узнать их ASN от traceroute:

$  traceroute -n -A www.facebook.com
....
14  4.69.149.82 [AS3356]  630.713 ms  633.180 ms 4.69.149.146 [AS3356]  629.633 ms
15  4.53.112.58 [AS3356]  578.959 ms  580.703 ms  579.624 ms
16  204.15.20.120 [AS32934/AS10753]  577.604 ms  557.247 ms  636.807 ms
17  74.119.76.67 [AS32934]  633.454 ms 74.119.76.186 [AS32934]  602.556 ms  603.583 ms
18  74.119.76.197 [AS32934]  634.461 ms 74.119.76.205 [AS32934]  634.431 ms 74.119.77.55 [AS32934]  702.079 ms
19  69.63.190.10 [AS32934/AS10753]  701.423 ms  700.644 ms  700.937 ms

Который можно проверить с инструментами, такими как они

$ dig +short AS32934.asn.cymru.com TXT
"32934 | US | arin | 2004-08-24 | FACEBOOK - Facebook, Inc."

Затем Вы получили бы их префиксы с помощью сервиса поиска

$ lynx --dump https://www.dan.me.uk/bgplookup?asn=32934 2>&1 | grep AS32934
   IPv4 Prefixes seen at AS32934:
     204.15.20.0/22       [AS32934]
     2620:0:1c00::/40     [AS32934]
     66.220.144.0/21      [AS32934]
     66.220.152.0/21      [AS32934]
     66.220.159.0/24      [AS32934]
     69.171.224.0/20      [AS32934]
     69.171.239.0/24      [AS32934]
     69.171.240.0/20      [AS32934]
     69.171.255.0/24      [AS32934]
     69.63.176.0/21       [AS32934]
     69.63.184.0/21       [AS32934]
     74.119.76.0/22       [AS32934]

Можно затем подать префиксы в брандмауэр.

Конечно, Если я - решительный пользователь, я мог бы использовать любой из свободных прокси, там представляющих это целое спорное сообщение.

0
27.10.2012, 21:32
2 ответа

Учитывая "монолитный" nautre ядра Linux, ошибка в коде, который работает на самом высоком уровне полномочий ЦП, обычно наделяемого правом "привилегированный режим", может разрушить целую систему.

Существует три причины этого:

  • Такой код может непосредственно получить доступ к пространству памяти любого другого кода. Таким образом, для такого кода возможно повредить само ядро, рабочие драйверы, и т.д.
  • Такой код может непосредственно получить доступ к устройствам ввода-вывода. Довольно возможно неправильно сконфигурировать или установить неправильные биты в неправильные времена на устройствах ввода-вывода способом, который вызывает всю систему к тупику. Неошибочные драйверы устройств не позволят пользователю кодировать, делают что-либо к аппаратным средствам, которые могли вызвать нестабильную систему, но багги, бету, или плохо записанный (или неправильно), драйверы просто могли бы.
  • Код, который встречается с проблемой или исключением, которое он не может обработать, не имеет более высокого уровня для "бросания" в. Таким образом, исключение ядра разрушит систему.

Таким образом, я не знаю, до какой степени OpenGL работает в ядре или с графическим драйвером, но я надеюсь, что это помогает.

2
28.01.2020, 02:38

Современные среды пользовательского интерфейса (Windows, OSX, Linux, мобильные устройства и т. д. )в значительной степени зависят от производительности графического конвейера.

Системы имеют один **графический конвейер. Все графические программы (рабочий стол, браузер, игры и т. д. )являются отдельными потоками, которые должны совместно использовать этот единый графический контекст.

Это создает необходимые условия для проблем с многопоточностью. Потоки могут быть заблокированы, заблокированы, запущены и т. д.

Вероятно, ваш поток «не очень хорошо работает» с графическим потоком рабочего стола и зависает. Вероятно, ожидание ресурса, который больше недоступен (, правильно ли вы освобождаете все ресурсы?)

OpenGL разрабатывается очень агрессивно и доводит аппаратные средства до предела. Вы можете обнаружить, что ошибка не возникает на другом оборудовании.

Однако, если вся ваша система выключается, то, вероятно, фактический набор микросхем конвейера перегревается и/или перенапряжение. В большинстве аппаратных средств есть датчики, которые отключают питание, если возникают вредные скачки нагрузки. Производители проводят нагрузочное тестирование своего оборудования и устанавливают соответствующие пороговые значения.

**Отдельные графические конвейеры заменяются несколькими конвейерами (, которые могут «владеть» отдельными меньшими областями экрана ). Это то, что касается OpenGL Vulkan , и для него требуются специальные наборы микросхем GPU.

enter image description here

0
28.01.2020, 02:38

Теги

Похожие вопросы