LINUX.ORG.RU

юнионы в C++

 


2

4

Пишу телегу против плюсов. В связи с этим вопрос - насколько широко в плюсах используются нуль-терминированные строки, юнионы, неумные указатели и всё такое плохое, что делает Си опасным языком.

Даже интересует не столько то, насколько они используются в существующих программах, а есть ли примеры программ, где хорошие средства плюсов сконсолидировались и поставили заслон от опасных конструкций Си, позволив полностью избежать их использования и избавиться от типичных ошибок Си. Можно ли так написать что-то существенно сложное? Сделано ли это в любимых библиотеках (Буст, QT и иже с ними)? Вторая часть вопроса - это неопределённое поведение. В Си его много. Это подаётся как фича, но с точки зрения безопасности это дыра. Меньше ли неопределённого поведения в С++?

Есть две полярные точки зрения на вопрос:

а) С++ перекрывает Си, поэтому там всё сделано по-другому, поэтому безопасность выше б) С++ - наследник Си и в целом наследует его недостатки.

Поскольку я мало пишу на Си и ещё меньше на Си++, у меня нет сложившегося мнения на эту тему. А у ЛОРа наверняка есть мнение, даже несколько.

★★★★★

Последнее исправление: xaizek (всего исправлений: 4)

Ответ на: комментарий от den73

Я верно понял, что Вам неочевидно, что требования расширения функционала и улучшения безопасности несколько мешают друг другу и требуются пояснения?

Требуются. Кроме того, если уж рассуждать в Вашем стиле, то надо сразу говорить о триаде «безопасность-функциональность-скорость».

Тут сразу вспоминается мем «выбери любые два», и даже он нуждается в ad-hoc аргументации.

Но Вы пишите:

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

приоритет безопасности над быстродействием

Мема «выберите 1 из 3» я не знаю, и не хотел бы пользоваться такой ОС-ью (тормозящей и без функционала, зато безопасной).

Там же на графике всё показано

Я уже дал вам прозрачный намёк, что я ваши видео не открывал. Судя по комментариям в этой теме, не я один такой эстет... Вы не обижайтесь, пожалуйста, я Вам просто говорю, что в 2022 году надо сильно постараться, чтобы заставить человека смотреть ваш двухчасовой «стрим». Да, поколение тик-тока, но другой молодёжи у меня для вас нет... Зато ваши тексты мне очень нравятся, продолжайте! 🙂

Примерно 20 релизов ядра содержали dirty pipe или dirty cow. Чем больше времени прошло с момента внесения уязвимости, тем выше вероятность её обнаружения. При этом средний срок жизни серьёзной уязвимости до её обнародования исчисляется 3-5 годами (на примере уязвимостей с графика). Т.е. если мы сегодня начнём визировать свежую версию линукса, то мы всем миром где-то через 10-15 лет этот процесс более-менее закончим (найдём, скажем, 2/3 или 9/10 всех дыр и можно будет условно считать, что теперь-то этот «новый» линукс стал относительно безопасным). Это то, что непосредственно следует из рассмотрения графика.

В этих рассуждениях действительно есть логика... Но далеко не всем такой подход по душе. Скажу одно слово: Debian

Если Вы хотите предложить какой-то способ кардинально ускорить процесс нахождения дыр

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

Crocodoom ★★★★★
()
Ответ на: комментарий от den73

Ни на расте, ни на лиспе ОС не выйдет до тех пор, пока люди не поймут, что с линуксом что-то не в порядке. Точнее, она может выйти, но никто не будет ей пользоваться. Пока что нормальность линукса (он плохой, но лучше сделать нельзя) принята, как религиозная догма. Именно над развенчанием данной догмы я и работаю, потому что это ложь, угрожающая безопасности России (да и в общем-то, всех других стран тоже

Не знаю, что там у кого принято, но альтернативные линуксу ОСи появляются пачками ежегодно. На расте уж точно, насчёт лиспа не в курсе

Вон, даже на гланге висит

Релиз ОС Genode 22.05

Немцы делают, между прочим, а они дотошнее русских (no offence implied)

Crocodoom ★★★★★
()
Ответ на: комментарий от Crocodoom

Но Вы пишите:

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

приоритет безопасности над быстродействием

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

Требуются.

Понял. Как объяснить, пока не знаю.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от den73

Я уже дал вам прозрачный намёк, что я ваши видео не открывал.

Я не обижаюсь, но без просмотра графика обсуждения не получится. Я понимаю, что час - это много (там две условно независимых темы, каждая на час), но чтобы сделать из часа полчаса, нужно потратить ещё недели две, и не факт, что получится лучше. Потому что от постоянного повторения одного и того же теряешь понимание, что надо говорить, а что лишнее. Нужно, как минимум, повторять перед аудиторией и отслеживать обратную связь.

Не знаю, что там у кого принято, но альтернативные линуксу ОСи появляются пачками ежегодно.

Появляются, но в России пока линукс доминирует. А время не ждёт. Хотя на десктопах в России вообще доминирует винда :)

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от Crocodoom

потому что дыр они там смогут найти больше

Нужно не «найти больше дыр», а чтобы «осталось меньше дыр».

Но далеко не всем такой подход по душе.

Мы находимся фактически в состоянии войны с Западом. Почитайте, какие усилия вложила Англия (на самом деле не она одна) в расшифровку немецких шифров. По душе, не по душе - это уже лирика.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73

Полная безопасность в любом случае недостижима.

Тут у меня какие мысли есть на тему. Условно безопасной можно считать связку (очень высокоуровневый язык) + (драйверы на си).

Поскольку я неравнодушен к ФП, то для первого предлагаю хаскель (а ещё лучше идрис) или вот тот же лисп. В логике чем меньше императивной лапши, тем легче проверять/доказывать её корректность. Потому что логика не императивна по природе. Кстати, те же таблички в экселе — тоже очень безопасная вещь

Ну а железо — это всё равно принципиально небезопасная (я бы даже сказал стохастическая) фигня, поэтому тут ничего особо лучше байтоперекладывания в стиле сишки (или unsafe Rust) не придумаешь

Crocodoom ★★★★★
()
Ответ на: комментарий от Crocodoom

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

den73 ★★★★★
() автор топика
Ответ на: комментарий от saibogo

Это было хорошо видно по Crypto AG: для своих один протокол, для остальных - другой. Опять же, про это есть во второй части доклада.

den73 ★★★★★
() автор топика
Ответ на: комментарий от Crocodoom

Условно безопасной можно считать связку (очень высокоуровневый язык) + (драйверы на си).

Википедия говорит, что ядро написано на смеси Си и Ассемблера. Т.е. получится тогда 3 языка. Один этаж выглядит лишним. Если его выкинуть, то получится как A2/ЯОС, высокоуровневый язык и ассемблер. Хотя Оберон по нынешним меркам не слишком высокоуровневый.

В случае Эль-76 обошлись вообще одним языком, но я пока не уверен, что у них получилось хорошо. Чтобы это проверить, нужно было бы год на нём что-нибудь поделать.

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

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 4)
Ответ на: комментарий от Crocodoom

Залил на Дзен первую часть и добавил оглавление (в описании видео)

https://zen.yandex.ru/video/watch/62a707336b3cdf7ff5cb8282

00:00 - о конференции OS DAY 2022
02:15 - как идёт внедрение линукса в России и в мире?
03:43 - отказ СССР от автономии в ИТ в 1967 году
05:14 - в ИТ мы наняли наших врагов охранять нашу границу
05:47 - доля Windows на компьютерах, подключенных к интернету - 80-90% в РФ и мире
07:10 - неудачное внедрение Linux в Мюнхене (во второй части видео исправляю свои ошибки)
08:35 - неудачное внедрение Linux в Управлении Делами Президента РФ
09:36 - Windows в Российских военных НИИ и в батутостроении
10:20 - ФСБ: любой невыясненный сбой нужно считать кибератакой - февраль 2022
11:00 - мы не контролируем свою ИТ-инфраструктуру. Кто ответит за это? Поздно заливать пожар деньгами.
12:25 - что делать? смотрите дальше и узнаете.
13:05 - в РФ 100 млн компьютеров, "Астра" продала 1 млн лицензий
15:30 - Китай тоже не осилил перейти на Linux, вопреки экономической мощи и плановой экономике.
16:30 - Как Компас переходит на Linux? Благодаря слою совместимости wine. 
17:29 - wine: вместо переделки Компаса под Linux, быстро запустили Компас для Linux за счёт "переходника"
18:00 - ключевой момент: помимо попыток перехода на Linux, нужно создать среду для запуска Windows-приложений
19:50 - в Сбербанке 100000 компьютеров под Windows, и завтра они могут сломаться из-за диверсии
20:00 - как оценить трудоёмкость разработки программ, в том числе, операционных систем? 
20:50 - оценка по COCOMO и оценка по численности участников проекта и его длительности
22:00 - миф о том, что "одна страна не может разработать операцинную систему" и его последствия. 
22:30 - оценки трудоёмкости некоторых операционных систем
24:12 - оценка ресурса российских ИТ организаций и страны в целом. В России достаточно сил для написания своей ОС
26:38 - ИТ-специалисты - это особое сословие в России с интересами, противоречащими интересам России
27:20 - Платформа "Гостех" основан на американском ПО и не может обновляться из-за санкций. Идиотизм или предательство?
29:04 - Блогер Алексей узнает о сделках чиновников с недвижимостью благодаря платформе Гостех
30:00 - приложения во много раз дороже самой операционной системы. У России нет ресурсов перевести все приложения.
34:10 - но Россия может быстро создать российский аналог Windows
34:20 - возможные варианты - национализация Windows, wine, reactos.
37:00 - etersoft и успех wine
38:10 - запускаем ReactOS
39:56 - ИТ-сословие. Пролетарий, воин, священник
41:26 - Что в голове у ИТ? Глобализм.
42:00 - Что тебе важнее - Линукс или Россия?
43:19 - Чиновники некомпетентны в ИТ. Из-за засилья глобалистов цифровой суверенитет у РФ отсутствует
44:00 - подведение итогов
den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от den73
Что тебе важнее - Линукс или Россия?

Бггг. Предлагаю переименовать LOR в «LorR: Русская информация или ОС Линукс».

thesis ★★★★★
()
Ответ на: комментарий от thesis

Ты-то думаешь, что ты тут стебёшься, а на самом деле ты становишься иллюстрацией к тезису о том, что в голове у ИТ-шников, можно прямо ссылку подвёрстывать.

den73 ★★★★★
() автор топика
Ответ на: комментарий от den73

А что в голове у айтишников?
Ты-то не айтишник, как я понимаю. На державную задачу метишь, государственный человек практически, историческую миссию на себя взваливаешь.
Язык уже разработал, я гляжу. Язык мощный, востребованный, развитый. Занимает все новые и новые ниши, стремительно набирает популярность, комьюнити программистов растет день ото дня.
Пора и за ОСь браться, а там и за всю цифровую инфраструктуру, ухх.

thesis ★★★★★
()
Ответ на: комментарий от thesis

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

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)