Надеюсь, что клятвы кровью никто не подписывает, но только мемы и "народная любовь" вещь очень упрямая. И уточню, что речь скорее не про халяву, а наоборот: привлечение большой головной боли и вместо реализации предложений/патчей/технологий/идей от других делается попытка сделать собственную реализацию (иногда в формате велосипеда).
Смотреть термин "Фатальный недостаток". Например, простой поиск выдал страничку:
Ну как-бы это давно пройдённый этап: ещё Qnx в 1990-х сделала инсталляцию ОС на дискету: несколько утилит и даже интернет-браузер - можно было лазать по интернет.
А вот кнопочка Donate - это да, собираем денежки. Однако, лучше было бы поставить тэг "реклама".
Сарказм: название операционки тоже слегка "доставляет".
А почему именно на старте системы? Например, возможен такой вариант, что железо начинает усиленно выдавать данные, драйвер не успевает и железка начинает генерить дичь (интеррапты, запись в левую память и т.д.). И это может проявиться только на большой загрузке, явно не на старте. И если железо с драйвером эту ситуацию предусмотрели и обрабатывают, то будет всё ОК. А вот если не предусмотрели, то ... bsod?
Если тяжёлая задача и нет ресурсов, то по-правильному должна падать задача. Винда как-бы не должна выдавать bsod и должна продолжать работать. Если рассматривать гиперболизированный пример: не сумел записать файл в блокноте - и вот винда упала. Ну не должно так быть.
Одна из "фишек" линукса, почему он может быть быстрее винды: линукс в драйверах (модулях ядра) не сильно держится за совместимость по структурам (и даже иногда api): есть вариант работать быстрее - и вот он уже в ядре линукса, винда отстаёт.
Например, столкнулся с хэш-таблицами в виртуальных файловых системах (раньше были списки): и линуск их навтыкал везде - потому что быстрее. А винда - упс ...
Нет, есть отличия. В открытом софте не любят патчи, не совпадающие с мнением автора. В "других" не любят патчи вообще.
Также не забываем, что в открытом софте если уже есть патч, то он гарантированно где-то внедрён: возможно эта версия с патчем не настолько популярна, однако всё может поменяться.
ЭТО КАКОЙ-ТО КАПЕЦ. У людей в мозгах кроме интернета ничего не осталось. Заходит речь про часы и
ОС сама поправит
Сервер времени в КД
Может опишете как поправит? В операционке есть встроенные часы, которые тикают, когда операционка не работает? Или это лёгкое ощущение вездесущего интернета?
Например, у нас на объектах нет интернета. Вообще нет. Сервер времени поставить можно, но ему тоже нужно время как-то задавать (без интернета). Есть "часы", которые тикают временем и синхронизируются по радиосигналам. Стоят как чугунный мост (потому что сертифицированные). И некоторые объекты от этого отказываются.
Кроме собственно времени ещё "доставляет" перевод времени - это всегда боль. Поэтому время не переводят - разгоняют или замедляют системные часы пока показания не сравняются. И в такой ситуации даже сутки можно нагонять очень долго.
Почему все думают только про десктоп или офис? Не дальше?
Ну маленький кусочек usb-накопителя обычно требует контроллера в отличие от более старых/простых/дешёвых микросхем (схем организации) памяти.
ПРО ЧАСЫ - ЭТО БОЛЬ! БОЛЬ!
Какой @#!$@$ придумал, что "есть интернет", поэтому давайте всё по-проще и по-дешевле?
Сейчас можно встретить материнские платы, в которых часики за сутки могут ошибиться на несколько минут (а то и больше). МИНУТ, КАРЛ! Все эти разговоры про кварцевые часы и точность в несколько секунд в год - теперь это только разговоры. Сейчас ставят часы "из говна и палок", а дальше "подключайтесь к интернету".
А интернета нет/барахлит/авария/зашейпен? И вот уже два соседних компьютера в одной сети показывают время с разницей в полчаса. Упс!
Ситуация даже хуже: производители считают, что жёсткий диск должен хранить информацию 2 года (диски или настройки - неважно; 2 года). Хороший производитель прогнозирует 5 лет хранения. Дальше - как получится.
С батарейкой банально проще. Батарейку припаиваешь рядом с биосом (и да, они не обязательно заменяемые, как на древних компах) и она всё запитывает. Если через 10-15 лет тебе этот ноутбук (вдруг!) ещё нужен - неси в сервис, там всё сделают.
С аккумулятором нужно делать отдельное питание (часы тикают всегда) с выделенным преобразователем и прокидывать это всё через половину материнской платы? Кому нужны лишние проблемы?
realOtakuNekoP только что прислал мне исправленный BIOS. Я прошил его, подключил свой старый жёсткий диск с уже установленной Ubuntu, и он просто загружается прямо в ОС
Наверное, лучше посмотреть на ключевое слово "исправленный".
У энергонезависимой памяти (такой как в биосе) есть батарейка: она и память "держит" и часы "тикает". Сдохла батарейка - при каждом отключении питания всё сбрасывается: и настройки и часы.
Основной вопрос: перепрошить чем? Насколько понял, паренёк на этом и споткнулся. Потом считал биос, скинул в сообщество и далее на основе родного биоса ему собрали некий "хак" без лишних проверок (или, возможно, собрали с нуля) - паренёк его прошил и всё завелось.
Прим.: прошивка биоса зависит "от фазы луны и погоды на марсе". Как минимум нужно учитывать семейство чипсета, семейство процессора, размер памяти микросхемы биоса и аппаратный протокол стыка. Поэтому там не всё так просто.
Из текста так и не понял, в чём состоит атака (может в комментариях расскажут)!
Похоже, что нужно взять левую Usb зарядку и вместо стабильных 5v гнать какие-то импульсы. Т.е. хочешь повредить телефон - возьми "поломанную" зарядку! Почему я не удивлён?
Основная претензия и к этой статье и к "Четыре причины ..." - смешивание NULL и 0. Да, согласен, обычно это так. Однако, например, в стандартах не говорится про ноль. Там говорится про NULL или null pointer.
Придерживайтесь стандартов, тем более разработчику анализатора кода соответствие стандарту - это в принципе обязательно. Тогда и проверка
if (ptr == NULL)
будет правильным, единственным и очевидным выбором.
Прим.: почему на это указываю? В недавней статье https://habr.com/ru/companies/ruvds/articles/788654/ было обсуждение, что как-бы существуют (или существовали) платформы (и компиляторы под них), где NULL не равно 0. Упс!
Многие задачи не имеют решения в общем случае. Например, валидация кода на завершение, отсутствие крэша. И всё равно их пытаются решать: статические анализаторы и т.п. Поэтому отсутствие решения в общем случае - ну так себе аргументик.
Программирование на ассемблере не означает, что ОЗУ не используется. Не сильно много я видел программ на ассемблере, которые не пользовались бы стеком
Здесь ключевой момент в отсутствии ОЗУ, а использование ассемблера это следствие. И да, стеком не пользуются. Пытались писать такие вещи на чистом C и не зашло: как Вы уже отметили, без стека мало кто может.
Однако такая программа (блок кода, который работает без использования ОЗУ) есть в подавляющем большинстве современных компьютеров. Очевидно, этот код занимается инициализацией ОЗУ. В архитектуре x86 это кусочек BIOS-а.
Скорее не опрос, а констатация по факту.
Надеюсь, что клятвы кровью никто не подписывает, но только мемы и "народная любовь" вещь очень упрямая. И уточню, что речь скорее не про халяву, а наоборот: привлечение большой головной боли и вместо реализации предложений/патчей/технологий/идей от других делается попытка сделать собственную реализацию (иногда в формате велосипеда).
Смотреть термин "Фатальный недостаток". Например, простой поиск выдал страничку:
https://neolurk.org/wiki/Фатальный_недостаток
Ну как-бы это давно пройдённый этап: ещё Qnx в 1990-х сделала инсталляцию ОС на дискету: несколько утилит и даже интернет-браузер - можно было лазать по интернет.
А вот кнопочка Donate - это да, собираем денежки. Однако, лучше было бы поставить тэг "реклама".
Сарказм: название операционки тоже слегка "доставляет".
А почему именно на старте системы? Например, возможен такой вариант, что железо начинает усиленно выдавать данные, драйвер не успевает и железка начинает генерить дичь (интеррапты, запись в левую память и т.д.). И это может проявиться только на большой загрузке, явно не на старте. И если железо с драйвером эту ситуацию предусмотрели и обрабатывают, то будет всё ОК. А вот если не предусмотрели, то ... bsod?
Если тяжёлая задача и нет ресурсов, то по-правильному должна падать задача. Винда как-бы не должна выдавать bsod и должна продолжать работать. Если рассматривать гиперболизированный пример: не сумел записать файл в блокноте - и вот винда упала. Ну не должно так быть.
Одна из "фишек" линукса, почему он может быть быстрее винды: линукс в драйверах (модулях ядра) не сильно держится за совместимость по структурам (и даже иногда api): есть вариант работать быстрее - и вот он уже в ядре линукса, винда отстаёт.
Например, столкнулся с хэш-таблицами в виртуальных файловых системах (раньше были списки): и линуск их навтыкал везде - потому что быстрее. А винда - упс ...
Там же где и asterisk под виндой. Как-бы есть, но неродной, корявый, с ограничениями.
Или работа с образами dmg вне mac os.
У каждой ос есть свои эксклюзивы.
Превосходство в том, что линукс работает в тех условиях и окружении, где винда сливает.
Наверное, ответкой был бы модуль ядра линукса, который запускает винду (без перезагрузки) после кернел-паник в пингвине.
Нет, есть отличия. В открытом софте не любят патчи, не совпадающие с мнением автора. В "других" не любят патчи вообще.
Также не забываем, что в открытом софте если уже есть патч, то он гарантированно где-то внедрён: возможно эта версия с патчем не настолько популярна, однако всё может поменяться.
Пардонь-те, но:
ЭТО КАКОЙ-ТО КАПЕЦ. У людей в мозгах кроме интернета ничего не осталось. Заходит речь про часы и
Может опишете как поправит? В операционке есть встроенные часы, которые тикают, когда операционка не работает? Или это лёгкое ощущение вездесущего интернета?
Например, у нас на объектах нет интернета. Вообще нет. Сервер времени поставить можно, но ему тоже нужно время как-то задавать (без интернета). Есть "часы", которые тикают временем и синхронизируются по радиосигналам. Стоят как чугунный мост (потому что сертифицированные). И некоторые объекты от этого отказываются.
Кроме собственно времени ещё "доставляет" перевод времени - это всегда боль. Поэтому время не переводят - разгоняют или замедляют системные часы пока показания не сравняются. И в такой ситуации даже сутки можно нагонять очень долго.
Почему все думают только про десктоп или офис? Не дальше?
Ещё раз пардонь-то, иногда болит.
Сарказм: Санкции работают!
Ну маленький кусочек usb-накопителя обычно требует контроллера в отличие от более старых/простых/дешёвых микросхем (схем организации) памяти.
ПРО ЧАСЫ - ЭТО БОЛЬ! БОЛЬ!
Какой @#!$@$ придумал, что "есть интернет", поэтому давайте всё по-проще и по-дешевле?
Сейчас можно встретить материнские платы, в которых часики за сутки могут ошибиться на несколько минут (а то и больше). МИНУТ, КАРЛ! Все эти разговоры про кварцевые часы и точность в несколько секунд в год - теперь это только разговоры. Сейчас ставят часы "из говна и палок", а дальше "подключайтесь к интернету".
А интернета нет/барахлит/авария/зашейпен? И вот уже два соседних компьютера в одной сети показывают время с разницей в полчаса. Упс!
Ситуация даже хуже: производители считают, что жёсткий диск должен хранить информацию 2 года (диски или настройки - неважно; 2 года). Хороший производитель прогнозирует 5 лет хранения. Дальше - как получится.
И ещё табличка для информации:
С батарейкой банально проще. Батарейку припаиваешь рядом с биосом (и да, они не обязательно заменяемые, как на древних компах) и она всё запитывает. Если через 10-15 лет тебе этот ноутбук (вдруг!) ещё нужен - неси в сервис, там всё сделают.
С аккумулятором нужно делать отдельное питание (часы тикают всегда) с выделенным преобразователем и прокидывать это всё через половину материнской платы? Кому нужны лишние проблемы?
Ну как бы есть цитата:
Наверное, лучше посмотреть на ключевое слово "исправленный".
У энергонезависимой памяти (такой как в биосе) есть батарейка: она и память "держит" и часы "тикает". Сдохла батарейка - при каждом отключении питания всё сбрасывается: и настройки и часы.
Перепрошить биос не самая большая проблема.
Основной вопрос: перепрошить чем? Насколько понял, паренёк на этом и споткнулся. Потом считал биос, скинул в сообщество и далее на основе родного биоса ему собрали некий "хак" без лишних проверок (или, возможно, собрали с нуля) - паренёк его прошил и всё завелось.
Прим.: прошивка биоса зависит "от фазы луны и погоды на марсе". Как минимум нужно учитывать семейство чипсета, семейство процессора, размер памяти микросхемы биоса и аппаратный протокол стыка. Поэтому там не всё так просто.
Из текста так и не понял, в чём состоит атака (может в комментариях расскажут)!
Похоже, что нужно взять левую Usb зарядку и вместо стабильных 5v гнать какие-то импульсы. Т.е. хочешь повредить телефон - возьми "поломанную" зарядку! Почему я не удивлён?
Основная претензия и к этой статье и к "Четыре причины ..." - смешивание NULL и 0. Да, согласен, обычно это так. Однако, например, в стандартах не говорится про ноль. Там говорится про NULL или null pointer.
Придерживайтесь стандартов, тем более разработчику анализатора кода соответствие стандарту - это в принципе обязательно. Тогда и проверка
будет правильным, единственным и очевидным выбором.
Прим.: почему на это указываю? В недавней статье https://habr.com/ru/companies/ruvds/articles/788654/ было обсуждение, что как-бы существуют (или существовали) платформы (и компиляторы под них), где NULL не равно 0. Упс!
Уважаемый Haqreu!
Многие задачи не имеют решения в общем случае. Например, валидация кода на завершение, отсутствие крэша. И всё равно их пытаются решать: статические анализаторы и т.п. Поэтому отсутствие решения в общем случае - ну так себе аргументик.
Кроме того, у вас под именем подпись:
Пардонь-те, Задачка недостаточно абсурдна?
Здесь ключевой момент в отсутствии ОЗУ, а использование ассемблера это следствие. И да, стеком не пользуются. Пытались писать такие вещи на чистом C и не зашло: как Вы уже отметили, без стека мало кто может.
Однако такая программа (блок кода, который работает без использования ОЗУ) есть в подавляющем большинстве современных компьютеров. Очевидно, этот код занимается инициализацией ОЗУ. В архитектуре x86 это кусочек BIOS-а.