Тео де Раадт (Theo de Raadt) представил (https://marc.info/?l=openbsd-tech&m=152035796722258&w=2) новый метод защиты стека Stack-register, в рамках которого традиционные типы разрешения доступа к памяти (например, возможность чтение, запись и выполнения кода) расширены новым полномочием - MAP_STACK, которое реализуется программно на уровне ядра ОС. Суть предложенного метода в том, что когда память используется как стек, она обязательно должна быть отражена через mmap с использованием флага MAP_STACK.
При выделении областей под стек для процессов флаг MAP_STACK автоматически выставляется ядром во время запуска процесса, поэтому модификация кода приложений не требуется. При совершении системного вызова осуществляется проверка регистра с указателем на стек. Если регистр указывает на область памяти, помеченную MAP_STACK, то выполнение продолжатся в штатном режиме. Если нет, то считается, что указатель стека вышел за выделенную под стек область и процесс принудительно завершается.
Новая система защиты пока имеет экспериментальный характер и проходит тестирование (https://marc.info/?l=openbsd-misc&m=152060731327959&w=2) в свежих снапшотах OpenBSD. В тестовом режиме вместо фактического завершения процесса осуществляется вывод предупреждений в лог. За несколько дней тестировния уже выявлены и устранены проблемы, проявляющиеся при сборке портов go и SBCL, а также при выполнении двух тестов из набора src/regress. Тестирование портов продолжается и если не возникнет новых проблемных моментов, новый метод защиты может быть включен в состав OpenBSD 6.3.
Кроме того, сообщатся (https://marc.info/?l=openbsd-announce&m=152046776321836&w=2) о расширении применения системы syspatches для обновления OpenBSD через бинарные патчи. Отныне через syspatches будут поддерживаться не только обновления для текущего релиза, но и для прошлого выпуска, поддержание которого в актуальном виде теперь возможно без пересборки из исходных текстов. Например, помимо обновлений для OpenBSD 6.2 теперь через бинарные патчи можно обновлять и прошлую ветку OpenBSD 6.1. После выхода OpenBSD 6.3 аналогично будет продолжена поддержка для ветки OpenBSD 6.2. Как и раньше бинарные патчи формируются только для архитектур amd64 и i386.URL: http://undeadly.org/cgi?action=article;sid=20180310000858
Новость: https://www.opennet.me/opennews/art.shtml?num=48243
сначало полумал не плохая идея. а теперь думаю...> При совершении системного вызова осуществляется проверка регистра с указателем на стек.
ну и какой толк от этой проверки?
гаджет вместо вызова системных вызовов -- будет делать библиотечный вызов libc..
всё на что остаётся надеяться -- это рандомизация адресов символов библиотеки
Конечно так, ведь libc не общается с ядром и не использует сисколов.
> гаджет вместо вызова системных вызовов -- будет делать библиотечный вызов libc..Да пускай он как хочет делает, но ему придётся возиться с тем, чтобы указатель стека указывал бы на стек, а не в кучу и не в код.
> какой толк от этой проверки?
Это практически бесплатный способ создать проблем вредоносному коду и снизить риски переполнения стека. Он не серебряная пуля, и не решит всех проблем выхода связанных с переполнением стека, но во многих ситуациях он справится.
А потом они насыпают один "практически бесплатный" поверх другого и сумма, подозреваю, выходит совсем не бесплатной.В итоге всё это выгдялит как куча костылей.
> А потом они насыпают один "практически бесплатный" поверх другого и сумма, подозреваю,
> выходит совсем не бесплатной.Может быть. Сложно сказать, потому что здесь ведь речь об одной проверке одного бита в процессе сисколла, который сам по себе тормозной и содержит кучу проверок, поскольку ядерный код не склонен доверять юзерспейсу. Не факт, что дополнительную стоимость вообще возможно детектировать профайлером, она запросто может утонуть в статистическом шуме. Но, может быть, сумма выйдет не бесплатной.
Но положительные эффекты ведь тоже суммируются.> В итоге всё это выгдялит как куча костылей.
Сложная система вообще выглядит как куча костылей. Но этот конкретный костыль мне нравится -- он не создаёт новых взаимосвязей между подсистемами, он очень хорошо вписывается в *nix'овую модель памяти. Вон, sbcl работает с памятью (и со стеком) сильно особенным образом, но его допилили вместе с go, который, видимо, на фоне всей этой его модели горутинов, тоже со стеком играется очень интересно. Допилили за несколько дней. Что собственно неудивительно, поскольку всё что надо было сделать -- это в нужном месте в вызов mmap добавить ещё один флаг.
Положительные эффекты суммируются, когда они есть. IMHO, если ты не доверяешь запускаемому коду - заворачивай его в виртуалку или какую другую песочницу, где ты можешь настроить соотношение безопасность/геморрой. А если доверяешь - то защищать надо от тупости, и не более. А уж энфорсить в ядре защиту защиту приложений от их же дыр - это бред сивой кобылы. Кстати, то, что стек в результате заставляют выделять строго меммапом, мне не особо нравится. Впрочем, в линуксе, насколько я знаю, таким безумием не страдают (тем более, что это может сломать юзерспейс), так что, по большому счёту, можно не волноваться.
Сложная система выглядит как куча костылей, когда она используется за пределами тех областей, для которых предназначена, и при этом расширялась костылями, как современные иксы, допустим. Или если не проектировали вообще никак, тоже бывает. А когда используется подход, в принципе не особо подходящий под задачу, как в OpenBSD, где хотят и си с посиксом и совместимостью с существующим софтом, и безопасность - это совсем другое.
> при этом расширялась костылями, как современные иксы, допустим.ЕРЕТИК !!!
Ага, еретик. Я считаю, что если б тулкитчики сделали по-людски, расширив иксы нужными им функциями, а не плевались битмапами на каждый чих - мы бы сейчас имели и сетевую прозрачность, Ии шустрый универсальный GUI, и всё прочее - без необходимости изобретать велосипеды.
> Положительные эффекты суммируются, когда они есть. IMHO, если ты не доверяешь запускаемому
> коду - заворачивай его в виртуалку или какую другую песочницу, где
> ты можешь настроить соотношение безопасность/геморрой. А если доверяешь - то защищать
> надо от тупости, и не более. А уж энфорсить в ядре
> защиту защиту приложений от их же дыр - это бред сивой
> кобылы.Ну, так рассуждая, можно придти к выводу, что DOS лучшая операционная система, потому что она полностью доверяет приложениям. Они могут делать всё что угодно, и DOS им не мешает. Кстати да, когда я когда-то давно перелез из DOS в Windows, меня кошмарно раздражало, что Windows не пускает меня к видеопамяти, к контроллеру клавиатуры, к прерываниям таймера и прочим железкам. Со временем я привык и даже научился получать удовольствие от этих ограничений, но поначалу бесило ужасно: засунули меня в позорную ring3 песочницу, как ребёнка малого прям, и не выпускают оттуда. Одной из причин моего радостного перехода в linux было то, что в linux'е не нужно было платить денег за DDK, чтобы написать модуль, который будет по-взрослому работать в ring0. Но, как-то так выяснилось довольно быстро, что в ring0 мне делать нечего, и неинтересно. И я как ребёнок малый с тех пор сижу в песочнице ring3.
> Кстати, то, что стек в результате заставляют выделять строго меммапом,
> мне не особо нравится.Не знаю даже почему. Потому, что память из mmap надо освобождать через munmap, а не через free? Ну, это неудобство, наверное, но я не думаю, что какое-то особое: все эти развлечения со стеком всё равно требуют либо asm'а, либо этих дурацких костыльных API, типа setjmp/longjmp или makecontext, то есть вокруг переключения контекстов по-любому приходится устраивать какие-то особые пляски с бубном, поэтому если добавить в эти пляски ещё и ритуал вызова munmap, вместо free, то это не сделает ситуацию хуже.
Я пользовался mmap и с другими целями -- чтобы не выделять из кучи больших кусков. При помощи malloc получается почти то же самое, но с лишними посредниками в виде алгоритмов кучи, и с невозможностью потом отдать память обратно системе. Ещё я использовал его, чтобы файлы открывать -- если забить на переносимость программы на железо с другим endianess, то очень удобно бинарный файл открыть через mmap, привести указатель к типу struct my_binary_file_format, и работать потом с результатом, не парясь на вычитывание из FILE* одного поля за другим, и в то же время подгружая в память с диска только то, что надо. Так вот, я не упомню, чтобы необходимость использования munmap вместо free создавала каких-либо проблем, даже несмотря на то, что всё это происходило в C, где нет возможности создать тип параметризованный аллокатором, с тем чтобы свалить на компилятор проблемы выбора между free и munmap.
> Сложная система выглядит как куча костылей, когда она используется за пределами тех
> областей, для которых предназначена,Может быть. Но пускай в OpenBSD первой кинет камень та сложная система, которая не выходила за пределы своей области предназначения.
С моей точки зрения ответственность ядра - защищать ядро от юзерспейса и разных пользователей друг от друга. Всё остальное должно реализовываться поверх и по необходимости. Собственно, так оно традиционно и используется - как создаются отдельные пользователи для всяких веб-серверов и подобного. Даже то, что сверху накинули cgroups и capabilities прицнипиально это не меняет - конечной единицей остаётся процесс. А вот когда начинаются NX-биты на данные, подобные ограничения на стек и так далее - это уже лишнее, что, как минимум, должно быть опциональным - это личное дело приложения.Конкретно со стеком - понятия не имею, но наверняка найдётся пара-тройка экзотических случаев, когда таки удобно использовать под стек чёрт знает что.
Что до OpenBSD - не уверен, что у неё вообще область применения есть.
> Впрочем, в линуксе, насколько я знаю, таким безумием не страдают (тем более, что это может сломать юзерспейс), так что, по большому счёту, можно не волноваться.Ы. Я заглянул в man mmap, и нашёл там такое:
MAP_STACK (since Linux 2.6.27)
Allocate the mapping at an address suitable for a process or
thread stack. This flag is currently a no-op, but is used in
the glibc threading implementation so that if some architectures
require special treatment for stack allocations, support can
later be transparently implemented for glibc.Это правда, судя по описанию, создано не для софтварной защиты, а для железной -- на случай чего-нибудь в стиле особо экзотической не-гарвардской архитектуры, где память под стек особенная.
И что? Оно no-op, и фактически является костылём на случай чего. Это никак не значит, что кто-то рискнёт убить софтину за то, что она создала стек без этой плюшки. Разве что Линус помрёт и его место займёт кто-то странный.Под "безумием" я имел в виду вмешательство в личные дела юзерленда а не хинт, созданный на всякий случай в замшелом году и никак не применяемый.
Какую другую песочницу? Если речь идет о виртуальной машине то потеря производительности и накладные расходы будут гораздо больше.
Если речь идет о визуализации на уровне операционной системы, то во первых накладные расходы будут больше, во вторых как раз для таких контейнеров описываемый в новости защитный механизм очень нужен
Да любой из этих вариантов. Накладные расходы получаем только там, где они нужны. Как в плюсах - "платишь за то, что используешь"
> IMHO, если ты не доверяешь запускаемому
> коду - заворачивай его в виртуалку или какую другую песочницу, где
> ты можешь настроить соотношение безопасность/геморрой.После Spectre я вдруг понял почему Тео говорил, что виртуалка это не о безопасности. А после плевков Тео в сторону Core2Duo, с его кучей Erarata, у меня возникли мысли, что наверно Тео что-то там понимает и даже видимо уверенно прав. Жаль не хватает квалификации заценить всю его крутизну, если она есть. Хотя, как я понял, он утверждает, что на x86 невозможно построить гарантированно безопасную систему
Определённо, Тео таки кое-что понимает.
x86 небезопасна по двум причинам фундаментального свойства.Во-первых, из-за костылей и подпорок внутри себя, которыми её оборудовали для обратной совместимости с окаменелыми древностями доисторического программирования на перфокартах. Когда-то это было нужно, но вот после появления на свет OS/2 и NT, как по мне, следовало рвать и резать связи со старым по живому и строить домик на новом фундаменте. Они (Штеуд), кстати, делали такие попытки, да люди не поняли, не оценили.
Во-вторых, даже те средства обеспечения безопасности, которые в ней есть, программеры не используют, либо используют недостаточно, либо используют неправильно. По каким-то своим эзотерическим причинам, в которых стесняются признаться публике.
Сама Интел знает недостатки своих продуктов, и они неоднократно предлагали радикальные решения, но требующие разрыва с прошлым, смены железа и парадигм мышления и работы. Я не только про Итаниум, но и про него. Что же ответил рынок? А рынок отверг новые, хорошие правильные решения, продолжая чавкать протухшей x86ятиной. ИЧХ, даже открывшиеся уязвимости и проблемы с безопасностью не склоняют людей сделать выводы.
Из истории неудачных попыток уйти от сабжа:
> x86 небезопасна по двум причинам фундаментального свойства.У вас это предложение в утвердительной форме
> Во-вторых, даже те средства обеспечения безопасности, которые в ней есть, программеры не
> используют, либо используют недостаточно, либо используют неправильно. По каким-то своим
> эзотерическим причинам, в которых стесняются признаться публике.А вот тут с вами не согласен
При чем здесть программисты, если
https://webcache.googleusercontent.com/search?q=cache:ArAOiu...
И очень даже не стесняются признаться публике в какой помойной яме сидят> Сама Интел знает недостатки своих продуктов, и они неоднократно предлагали радикальные
> решения, но требующие разрыва с прошлым, смены железа и парадигм мышления
> и работы.
> Из истории неудачных попыток уйти от сабжа:
> https://en.wikipedia.org/wiki/Intel_iAPX_432
> https://en.wikipedia.org/wiki/Intel_i860А ΑΡΜ и MIPS взлетел, когда пришло время
Когда важное програмное обеспечение станет настолько сложным, что не будет требоваться закрытия сырцов ( например по причине первостепенного значения инфраструктуры создания ПО), тогда можно менять архитектуру железа на любую, но есть одно но:
если рынок требует скорости на однопоточном гов<CENSORED>коде, а на безопасность можно спокойно положить (ну утечет база пользователей с паролями, и что?), вот что делать?> Что же ответил рынок? А рынок отверг новые, хорошие правильные решения,
> продолжая чавкать протухшей x86ятиной. ИЧХ, даже открывшиеся уязвимости и проблемы с
> безопасностью не склоняют людей сделать выводы.Менеджеры Интела мудро и дальновидно угадали, что построив свои процессоры со свойством уязвимости к Meltdown получат конкурентное преимущество перед AMD и, пока, последняя будет на вторых ролях можно загребать рынок под себя (главное держать руку на пульсе, чтобы вовремя сбросить акции)
Рынок тянется к максимизации прибыли, и увы наверно со скорбью надо иметь ввиду, что здесь не до инженерных правильных решений. Пока кто-то тормозит на правильных решениях, конкуренты успевают вас обанкротить.Пока что мне видится надежда на изменение в майнерах, работающих на дырявых системах
>> x86 небезопасна по двум причинам фундаментального свойства.
> У вас это предложение в утвердительной формеМожете добавить ещё причин. Я выделил те, которые мне представляются имеющими значение в контексте дискуссии.
>> Во-вторых, даже те средства обеспечения безопасности, которые в ней есть, программеры не
>> используют, либо используют недостаточно, либо используют неправильно. По каким-то своим
>> эзотерическим причинам, в которых стесняются признаться публике.
> А вот тут с вами не согласен
> При чем здесть программисты, если
> https://webcache.googleusercontent.com/search?q=cache:ArAOiu...
> И очень даже не стесняются признаться публике в какой помойной яме сидятСпасибо, я знаком с этой статьёй и согласен с её тоном и смыслом.
От этого много раз пытались уйти (и та же Intel, к слову, тоже, как я уже писал) — в RISC, VLIW, микроядро, наноядро, экзоядро, да и «гарвардская архитектура» есть. Но «рынок» — точнее, общественное сознание в целом, искалеченное наркозависимостью от «новинок моды» — не принимает решения, которые менее быстры в простом измеримом исчислении (тестовых «попугаях», грубо говоря), хотя более надёжны и безопасны. А ведь не тайна, что сложные вещи всегда имеют больше точек отказа, чем простые. Но так и живём с этим всем.
> А ΑΡΜ и MIPS взлетел, когда пришло времяОни взлетели _не там_, где формируется общественное мнение, а потому не оказывают влияния не смену общественного отношения к проблеме и, в результате, не влияют на работу по исправлению проблемы. Обыватель даже не знает этих слов. Зато про Intel знает каждый ребёнок.
> Когда важное програмное обеспечение станет настолько сложным, что не будет требоваться
> закрытия сырцов ( например по причине первостепенного значения инфраструктуры создания
> ПО), тогда можно менять архитектуру железа на любую, но есть одно
> но:
> если рынок требует скорости на однопоточном гов<CENSORED>коде, а на безопасность можно
> спокойно положить (ну утечет база пользователей с паролями, и что?), вот
> что делать?Да. Именно в этом _проблема_, а не в собственно багах ПО и аппаратуры. И мы даже знаем имена тех, кого надо за неё благодарить: Intel и Microsoft. Они взрастили и воспитали этот менталитет на компьютерном рынке.
Что делать — _отказываться_ от использования фатально сложных технических систем. Упомянутые выше наноядро и экзоядро вполне решают одну из главных проблем небезопасности. Программистам стоило бы начать писать для MINIX, например, а не для модных JS-фреймфорков, потому что будущее строится сегодня.
>> Что же ответил рынок? А рынок отверг новые, хорошие правильные решения,
>> продолжая чавкать протухшей x86ятиной. ИЧХ, даже открывшиеся уязвимости и проблемы с
>> безопасностью не склоняют людей сделать выводы.
> Менеджеры Интела мудро и дальновидно угадали, что построив свои процессоры со свойством
> уязвимости к Meltdown получат конкурентное преимущество перед AMD и, пока, последняя
> будет на вторых ролях можно загребать рынок под себя (главное держать
> руку на пульсе, чтобы вовремя сбросить акции)
> Рынок тянется к максимизации прибыли, и увы наверно со скорбью надо иметь
> ввиду, что здесь не до инженерных правильных решений. Пока кто-то тормозит
> на правильных решениях, конкуренты успевают вас обанкротить.Хм. Значит не только я думаю, что они делали всё это _сознательно_. Беглое знакомство с Core 2 и, особенно, с Nehalem не может, по моему мнению, не вызвать таких мыслей.
> Пока что мне видится надежда на изменение в майнерах, работающих на дырявых
> системахВ каком-то смысле, для прогресса человечества было бы полезно понести сейчас на этих дырах самые тяжелейшие потери. Дабы на собственном опыте научиться не выбирать сложные технические системы по принципу покупки модных украшений.
Произвольно взятый отрывок из доступных в сети исходников Оффтопика-2000:
/*++Abstract:
This file implements the circular buffer management for
input events.The circular buffer is described by a header,
which resides in the beginning of the memory allocated when the
buffer is created. The header contains all of the
per-buffer information, such as reader, writer, and
reference counts, and also holds the pointers into
the circular buffer proper.When the in and out pointers are equal, the circular buffer
is empty. When the in pointer trails the out pointer
by 1, the buffer is full. Thus, a 512 byte buffer can hold
only 511 bytes; one byte is lost so that full and empty
conditions can be distinguished. So that the user can
put 512 bytes in a buffer that they created with a size
of 512, we allow for this byte lost when allocating
the memory.--*/
Я убрал упоминание про автора и прочие конкретизирующие моменты, как и сам текст программы, оставил только описательную часть. Дальше там интересно, в том числе про хаки. :)
Иходники, в целом, хорошо прокомментированы и структурированы. Я не думаю, что есть какие-то иные причины скрывать это от человечества, кроме копирайтов. На этот кусок, например, было упомянуто о преемственности от соответствующей подсистемы OS/2.
> В итоге всё это выгдялит как куча костылей.Так если ты не заметил, продакшны и не рвутся использовать OpenBSD. По всем бенчмаркам она относительно пингвина понятно где. Все быстренько прикидывают что лишние серваки придется оплатить - дальнейшее предсказуемо.
>> В итоге всё это выгдялит как куча костылей.
> Так если ты не заметил, продакшны и не рвутся использовать OpenBSD. По
> всем бенчмаркам она относительно пингвина понятно где. Все быстренько прикидывают что
> лишние серваки придется оплатить - дальнейшее предсказуемо.А продакшены, которые решились на OpenBSD кучу девяток сделать, это не продакшены?
Не продакшны. Ну есть где-то в углу рынка - и хрен с ним. Их же совсем единицы. Примерно как если где-то есть три гения, успешно пишущих коммерческий софт на лиспе это не делает лисп конкурентом пхп, питона или джавы.
> Не продакшны. Ну есть где-то в углу рынка - и хрен с
> ним. Их же совсем единицы. Примерно как если где-то есть три
> гения, успешно пишущих коммерческий софт на лиспе это не делает лисп
> конкурентом пхп, питона или джавы.Давайте просто в вашем сообщении заменим продакшен на мейнстрим и на этом порешим, а то надо будет определяться - после какого количества денег спродуцированного (в вашей терминологии видимо не участника, а всего рынка) системой можно считать продакшеном
А это, в общем, одно и то же - мейнстрим таков, каков он есть, не из-за заговора марсиан, а потому что в данных условиях это оптимум, отклоняться от которого - значит искать себе приключения. Иногда, конечно, это делать приходится - когда есть чёткое понимание, на кой оно надо. Но в абсолютном большинстве случаев это не понимание, а глюки, и результат выходит соответствующий.
Слой за слоем выходит армированная броня. Или вы представляете себе один метод решающий все проблемы безопасности? (power off хороший метод, но не вариант)
> Слой за слоем выходит армированная броня. Или вы представляете себе один метод
> решающий все проблемы безопасности? (power off хороший метод, но не вариант)Прям лирическое определение OpenBSD
Если уж продолжать метафору - ну и тащат эту броню потом на гонки Ф-1, потому как приросла и не снимается. Или сидят в ней в собственном доме в собственной спальне.
> армированная броняЭто, в смысле, бронированная броня?
>> армированная броня
> Это, в смысле, бронированная броня?Наверно в смысле композитная (костылями прошитая), а не цельнолитая
Думать - это не твой конек.
не понятно что дает такая защита? защищает от сбоев или еще от атак?
Защита от выхода за границу.
По своей воли или по принуждению - без разницы. :)
> не понятно что дает такая защита? защищает от сбоев или еще от атак?От сбоев она не защищает, а наоборот — добавляет их. Как и любые другие рантайм-проверки.
не понимаю, чего разбушевались комментаторы. Разве защищать не надо? Без защиты небезопасно же.
Защищать может кому-то и надо. Но, если перестараться, то получится концлагерь, где юзеру запрещают делать шаг влево или вправо. Хакеры 70-х вообще с подозрением относились к секурности, видели в ней инструменты воздействия на них со стороны администраторов. И когда появилась первая реализация паролей юзеров хакеры рекомендовали друг-другу использовать пустые пароли (в т.ч. чтобы терминалы отсутствующих на месте людей не простаивали без дела).
Наверное когда один такой "хакер" советовал ставить другому пустой пароль, в его кармане предательски и лицемерно звенели ключи от квартиры, которую он зачем-то запер, уходя из нее.
В те годы домашних (и не только) персоналок как таковых ещё не было. Машины тогда занимали большие залы вне дома, а люди работали на них через терминалы.Самая большая ошибка - приводить аналогии из материального мира для информации. Дерево или камень нельзя вот просто взять и скопировать. А информацию можно. И у того, у кого она была, она при этом никуда не исчезла. А вот если не закрыть квартиру, то из неё таки всё вынесут и того, что вынесут, у владельца уже не останется. То, что может быть такая информация, которую люди не желают выкладывать в открытый доступ, - это уже другой вопрос.
Самая большая ошибка - приводить разнообразные факты из 70-ых по типу "Знаете ли вы..." для новости 2018 года, которая относится к твоим фактам чуть менее, чем никак.
>А информацию можно. И у того, у кого она была, она при этом никуда не исчезла.Это расхожее ложное рассуждение проистекающее от невежества.
Ведь и содержимое квартиры тоже ценно не само по себе...а только в силу некой ценности существующей благодаря отношению к нему людей. например если квартира заполнена снегом зимой- то ценность вынесенного..невелика...
Информация так же имеет ценность. И если вы копируете информацию, то ввиду ее большей распространенности ценность ее может существенно меняться.
То есть копируя информацию - вы уменьшаете ее ценность. и неважно потерял владелец ценность от того что ее унесли руками и ногами, или оттого что ее уменьшили до нуля путем копирования. ценность то потеряна.
Только это имеет значение.А рассуждения что дескать можно скопировать- у вас не убудет - это просто от необразованности, невежества, жадности.
На самом деле тут другой практический принцип. Есть люди, которые готовы поддерживать авторов книг, фильмов, программ, игр,... и т.д. И им не важно есть у них бесплатный доступ к этой информации или нет. Они даже получив бесплатно эту информацию всё равно найдут как перевести деньги авторам и переведут. Причём, может быть, даже больше чем авторы хотели бы за продажу этой информации. А есть люди, которые ни при каких обстоятельствах платить за информацию не готовы. И если их поставить перед выбором между покупкой и игнорированием этой информации, то они спокойно выберут второе пожав плечами. Поскольку им нужна только бесплатная информация и никак иначе.
Ты даже в таких простейших вопросах умудряешься возводить категории, никак не соотносящиеся с реальностью. Это не люди делятся четко на "заплачу за что угодно" и "не заплачу ни за что ни при каких условиях". Это сам контент для каждого конкретного человека предстает в виде градации "какова вероятность, что я за него заплачу, если сумма составит [0..N] рублей".Эх, юношеско-максималистский черно-белый мирок.
Это, между прочим, из философии проекта GNU:"Хозяева говорят, что они терпят <<экономические потери>> или <<потери>>, когда пользователи самостоятельно
копируют программы. Hо копирование не воздействует прямо на хозяина, и оно никому не вредит. Хозяин терпит
убыток, только если иначе сделавший копию заплатил бы за нее хозяину.Hедолгое размышление показывает, что большинство таких людей не купили бы копию. Тем не менее хозяева
рассчитывают <<убытки>>, как если бы все и каждый покупали бы копию. Это преувеличение - мягко выражаясь."
(Ричард Столлман, "Почему у программ не должно быть хозяев")
Хорошо, теперь установили, из какой литературки ты черпаешь свое черно-белое мировоззреньице. Ты мне напомнил меня самого лет в 16, я тогда так же обчитывался исламских ученых и делил людей строго на кяфиров и строго на мусульман. Только там вместо "Почему у программ не должно быть хозяев" было "Почему вся земля принадлежит Аллаху".
Заметьте, я нигде не утверждал, что, якобы, проприетарщики и проприетарщина - абсолютное зло (да и Ричард Столлман нигде так не пишет). Понятное дело, что и проприетарщина может управлять очень важными процессами и спасать человеческие жизни. Я здесь говорю о другом. Об оправданности самих терминов. Проект GNU не случайно рекомендует избегать слова "пиратство":""Piracy (пиратство)". Издатели часто указывают на копирование, которое они не одобрили, как на "пиратство". Таким образом, они подразумевают, что это этически равнозначно нападению на корабли в открытом море, захвату и убийству людей на них. Основываясь на такой пропаганде, они в большей части мира провели законы, запрещающие копирование в большинстве, а иногда -- во всех случаях. (И все равно они оказывают давление, чтобы сделать эти запреты еще более полными.) Если вы не считаете, что копирование без разрешения издателя в точности подобно захвату или убийству людей, вы могли бы предпочесть не употреблять слово "пиратство" для описания этого. Вместо этого доступны такие нейтральные выражения, как "несанкционированное копирование" (или "запрещенное копирование" в ситуациях, когда копирование незаконно). Некоторые из нас могли бы даже предпочесть употребление такого положительного выражения, как "обмен информацией со своим соседом". Судья Соединенных Штатов, председательствуя на процессе о нарушении авторских прав, признала, что "пиратство" и "кража" -- грязные выражения." (c)
> Проект GNU не случайно рекомендует избегать слова "пиратство"В свою очередь последователи Абд уль-Уаххаба рекомендуют не называть их "ваххабитами", аргументируя это тем, что аль-Уаххаб не привнес в ислам ничего нового. Борьба с общепринятой терминологией - довольно увлекательное занятие, я и сам в школе растрачивал свободное время на формирование собственного новояз-словарика.
>Борьба с общепринятой терминологиейЧто значит "борьба"? На самом деле, и так многие люди одни и теже слова понимают с точностью до наоборот. Как бы кому ни хотелось обратного. Если бы каждый человек написал свой толковый словарь, то общего между ними было бы крайне мало. И в этом нет ничего плохого. Каждый человек имеет полное право на своё понимание слов. И в этом контексте нет никакого смысла бороться с ветряными мельницами. Зато есть смысл подумать о своей собственной терминологии.
> Если бы каждый человек написал свой толковый словарь, то общего между ними было бы крайне мало.То есть ты приходишь в магазин и просишь хлеба, а тебя вместо этого начинают стричь, т.к. продавец согласно своему пониманию слов считал, что работает парикмахером, а под "дайте мне хлеб" он понял "постригите меня коротко"?
Если такой ситуации у тебя не было, значит, что толковые словари рандомных людей совпадают на 99.9%. Иначе мы бы не увидели ни одного людского творения, где бы потребовались усилия более, чем 1 человека, поскольку при твоих "разных толковых словарях" не получилось бы никакого взаимодействия.
В понимании простых слов, разумеется, многие люди сходятся, но и то с определёнными различиями. С тем же хлебом вполне возможен разброс от "того, что пекут из муки" и "того, с чем едят еду" до "пищи простолюдинов" и "ну, кто-то там что-то такое делает и ест". Даже представлять себе при слове "хлеб" люди могут самое разное. Для кого-то и батон вполне себе хлеб. Другой при слове "хлеб" представляет себе именно белый хлеб, поскольку именно такой хлеб и предпочитает. А третий предпочитает именно чёрный хлеб. И вполне возможна ситуация, когда человек пришёл в магазин за чёрным хлебом, а при слове "хлеб" ему протягивают или булку белого хлеба или другое хлебо-булочное изделие. А по мере усложнений терминов разброс в их понимании становится всё больше и больше.
Ты снова путаешь теплое с мягким. Разные образы при слове хлеб никак не означают разное понимание этого слова. Слово "хлеб" обозначает не конкретный объект, а целый класс объектов. Ничего удивительного, что разные люди представляют его себе в виде разных объектов этого класса. Но при этом никто из них не представляет хлеб в виде болонки или в виде гаечного глюча 22-24.
Суть всё равно в том, что в одно и тоже слово разные люди вкладывают разные смыслы. Такое слово как "хлеб", повторяю, слишком простое чтобы ощутить эту разницу (хотя она всё равно есть и здесь). Разница начинает усиливаться по мере усложнений терминов.
> Такое слово как "хлеб", повторяю, слишком простоеСемибитное? или ещё проще?
> И вполне возможна ситуация, когда человек пришёл в магазин за чёрным хлебом, а при слове "хлеб" ему протягивают или булку белого хлеба или другое хлебо-булочное изделие. А по мере усложнений терминов разброс в их понимании становится всё больше и больше.KISS. В твоем понимании термины -- это пара вида "имя - определение". А на деле язык работает по-другому, и сейчас я это продемонстрирую.
Если разбудить ночью продавца и попросить дать определение слову "хлеб", то он выдаст его в одной форме, а покупатель (скорее всего) в абсолютно другой. И тут ты конечно же воскликнешь: "я же говорил! определения не совпадают, они даже хлеб понимают по-разному!11"
Но не спеши радоваться. Термины не обязательно должны осваиваться мозгом именно в форме пары "имя - определение". Иногда это может быть некий "предикат", некая функция, позволяющая отличать одно явление/предмет от другого.
Если показать продавцу, скажем, сотни тысяч предметов (плоскогубцы, телевизор, пеленки, батон, ядерный реактор и т. д.) и попросить назвать, что из этого является "хлебом", а затем проделать то же самое с покупателем, то вот тут-то и выяснится, что в 99.9% они дадут одинаковые друг с другом ответы.
Таким образом, покупатель, имевший в виду "черный хлеб", согласится, что "белый хлеб" - это тоже "хлеб".
Вот так работает язык. Определения понятиям выдаются уже после того, как сформировалось использование этого понятия. А используют понятия в 99.9% одинаковым образом, именно поэтому ты сейчас не в пещере, а в здании, построенном силами более, чем одного человека.
В этом сила языка: абсолютно правильно употреблять слова, определения которым выдать не сможешь.
Это спекуляция на простых терминах. Во-первых, даже если разные люди видят разное в одном и том же, то они видят именно разное (определения не существуют вне людей и отражают лишь определённые (не все) свойства). И это будет определять их дальнейшие выводы и поступки. Именно поэтому одно и тоже одних людей приводит в ужас, а других - нет. Во-вторых, это в случае простых слов первичны предметы, которые можно потрогать: хлеб, камни, деревья, столы, стулья, телевизоры, холодильники,... А есть термины более сложного порядка, которыми люди, разумеется, пытаются описывать свой опыт, но описывать именно по-разному. Нельзя нескольким разным людям показать, например, вражду. То, что для одного вражда, для другого ещё нет, поскольку, например, отравление колодцев и сдирание кожи с людей на другой стороне ещё и не начиналось. То, что для одного человека является дружбой, для другого просто приятельство на уровне "кружка по интересам". Поскольку дружба в его понимании в обязательном порядке предполагает, что один человек за другого даже жизнь отдаст, а такого в рассматриваемом случае не наблюдается. Ну и т.д. Точно также и с расширением терминов "собственность" и "кража" на информацию. Кто-то считает, что информация вполне может быть собственностью человека (а отсюда и растут корни того, что копирование информации собственники называют "кражей" и "пиратством"), а другой человек считает, что такого быть не может и не должно. И т.д.
> То, что для одного человека является дружбой, для другого просто приятельство на уровне "кружка по интересам".Это зависит не от определения слову "дружба", а от ценностей и интересов конкретного человека. Так что снова путаешь. Два человека с одним и тем же видением дружбы, но с разными ценностями/интересами, могут дружить и враждовать с неким третьим лицом соответственно.
> Кто-то считает, что информация вполне может быть собственностью человека (а отсюда и растут корни того, что копирование информации собственники называют "кражей" и "пиратством"), а другой человек считает, что такого быть не может и не должно.
Если взглянуть еще глубже, то выяснится, что даже здесь имеем дело с одними и теми же терминами, но разными интересами. Первому лицу выгодно=интересно, чтобы некую информацию считали его собственностью, а второму лицу это невыгодно=неинтересно, поэтому он будет отрицать необходимость применения (но не значение) термина "пиратство".
Довольно рассуждений. Кража - это когда что-то где-то убыло и где-то прибыло. А копирование - это копирование. Это не синонимы. Точка.http://download.2600.com/mediadownload/h2k2.hope.net/media/m...
> Защищать может кому-то и надо. Но, если перестараться, то получится концлагерь, где
> юзеру запрещают делать шаг влево или вправо.Какой концлагерь? Чем тебе это мешает? Не выделить из кучи память под стек юзерспейс-потока? Выдели эту память не из кучи, а через mmap, и будет тебе щщасте. Или у тебя какой другой кейс?
> Хакеры 70-х вообще с подозрением относились к секурности...
Сегодня не 70-е, а если ты сомневаешься, выложи сюда номер своей кредитки и пин-код. Или пароли от почты, вконтактика, ватсаппа или любых других сервисов, которыми ты пользуешься. Тебе быстро объяснят в чём разница между семидесятыми годами XX века и десятыми XXI.
> Сегодня не 70-еДа и в 70-ых всё было ровно то же. Или права на файлуху и процессы просто так завелись?
Он забыл добавить, что среди хакеров семидесятых были в тренде лсд, хиппи, коммунизм, рок и прочие атрибуты морального разложения. У хиппарей и так всё общее, даже бабы — что им до чужих компьютеров?
http://www.darwinawards.com/darwin/darwin2016-02.html
Каждому вызову по виртуальной машине!
И оркестрацию.
Вы вот шутите, а посмотрим что через 5 лет будет.
мясной /* fixed */
все это чушь. скоро каждому вызову будет свой процессор. аппаратный. со своим кусочком памяти. аппаратным...
>все это чушь. скоро каждому вызову будет свой процессор. аппаратный. со своим кусочком памяти. аппаратным...уже было, давно
> все это чушь. скоро каждому вызову будет свой процессор. аппаратный. со своим кусочком памяти. аппаратным...Каждой переменной по процессору!
переменные - это рудимент. зло порожденное порочной арихитектурой.
> переменные - это рудимент. зло порожденное порочной арихитектурой.Партия Навального? Свой вариант сложения двух чисел будет?
да. вам знакомо понятие жесткой логики? переменные ненужны. частота ненужна. скорость вычисления- равна скорости распространения сигнала в проводнике точно.
> да. вам знакомо понятие жесткой логики? переменные ненужны. частота ненужна. скорость вычисления-
> равна скорости распространения сигнала в проводнике точно.Как в этом случае создавать сложные приложения? Для простоты обсужедния, начнем с простых приложений объемом в 10 человеко-лет.
Сколько паять-перепаивать жесткую логику? Как делать бранчи кода для разработки? Как CI/CD организовать?
Жесткая логика очень дорогое удовольствие и в разработке и в поддержке. Переменные и программирование позволяет значительно снизить затраты. И ускорить реализацию.
Биологический компьютер ( Молекулярный компьютер ).
где песня, блин! уже полгода ждём. какие ещё стеки-шмеки, песню давай!
> Как и раньше, бинарные патчи формируются только для архитектур amd64 и i386.неужели сложно зайти на репозиторий, если не помните свои же новости
для amd64, i386 и arm64
Для прошлой ветки ветки были только amd64 и i386:
https://fastly.cdn.openbsd.org/pub/OpenBSD/syspatch/6.1/