Previous Entry Share Next Entry
photo25

Эпик фейл

К счастью, arm64 у нас разве что на айфоне и на каких-то Очень Экспериментальных Серверах.
Но, блин, сколько можно всё-таки писать такие штуки на C?

Оригинал взят у amarao_san в Эпик фейл
CVE-2014-7843 - It was found that a read of n*PAGE_SIZE+1 from /dev/zero will cause the kernel to panic due to an unhandled exception since it's not handling the single byte case with a fixup (anything larger than a single byte will properly fault.) A local, unprivileged user could use this flaw to crash the system.


  • 1
mbr December 7th, 2014
Бля, ну а на чем еще писать ядра операционных систем?

Системные вещи - си/ассемблер.
Прикладной софт - си/object c/кресты.

95% основного софта сделано именно так. Все, что не следует этому правилу - на практике является тормозным говном.

Проблема с линуксом не в си, а в архитектуре. Собственно, в самом начале GNUшники хотели делать микроядро, но не осилили. А потом пришел Линус и запилил монолит, который стал стандартом. Таненбаумовский проект до сих имеет лишь академическое применение.

Так вот в микроядре падало бы лишь /dev/zero, рестартовалось и продолжало работать.

juan_gandhi December 7th, 2014
Очень смешно. Я про языки.

mbr December 7th, 2014
Главное аргументированно.

wizzard0 December 7th, 2014
Про ядро я согласен, да.

А вот тормозного гавна предостаточно и на крестах тоже.

mbr December 7th, 2014
Да, безусловно.

nponeccop December 7th, 2014
ядро нельзя писать ни на чём кроме сей потому, что
- ядро уже написано на сях
- пока есть более перспективные направления исследований, чем отказ от сей
- до промышленности хипсторство телекома не дошло - см нефтедобыу, химпром, металлургию, тяжпром, космос и т д - там время течёт очень медленно, всерьёз говорят почему бы не сделать проверенный Аполлон.

иныестиции пока идут только в хипсторство. Вот когда стартапы за миллиард будут никому не нужны, дойдет дело и до эмбедщиков с системщиками. Рисковано очень пытаться там что-то делать, вот и живут пока в каменном веке.

nponeccop December 7th, 2014
Так не на чем писать. Адепты нормальных языков ленятся и не пишут на них ничего, кроме веба да гуя.

Даёшь браузер на хаскеле! Даешь IP для энкодера HEVC, скомпилированный из ФЯ!

blackyblack December 7th, 2014
Пардон, какой именно арм64 на ваших очень экспериментальных серверах?

wizzard0 December 7th, 2014
Лично у меня арм64 нету. А так вообще AppliedMicro их уже делает, например.

dmih December 7th, 2014
Я помню я патчил файл в ядре, который обрабатывапет #! в начале файла при exec().

Вот сейчас смотрю, а там всё то же.

/*
* linux/fs/binfmt_em86.c
*
* Based on linux/fs/binfmt_script.c
* Copyright (C) 1996 Martin von Löwis
* original #!-checking implemented by tytso.
*
* em86 changes Copyright (C) 1997 Jim Paradis
*/

Вот этот прекрасный Фон Лю(?)ис, с Джимом на пару, как написали, причем написали не идеально, по коду видно, что наполовину костыль. Так туда никто и не смотрел ни разу наверное 20 лет с тех пор. При том, что exec() - чуть ли не самая частая функция в Linux-е.
С тех пор вот помню, и до сих пор код тот же.

Так что таких багов нас еще ждет...

  • 1
?

Log in

No account? Create an account