Дело не в букваре, а в непонятном подходе антивирусников.
Вот почему антивирус с телефона без рута и спецзнаний снести нельзя? А «вирус» (какой он кстати вирус? малварь чистейшей воды) — можно. Как так? И кто за кого тут решает?
На десктопе кстати еще хуже, вместо классического сканера (аидстест, если кто помнит) и контроля периметра — жуткие монстры, перехватывающие в системе всю активность, тормозящие и привносящие глюки, но при этом использующие заведомо устаревшие базы сигнатур.
Да вы что! Вам просто необходим новейший антивирус, срочно ставьте ;-)
Так это ж голубая мечта любого безопасника — чтобы юзеры сами, с песней, себе немножечко вредили в целях безопасности ;-)
Всегда смешили эти профессиональные девиации сознания — а давайте на использование молотка введем сертификацию, лицензирование и краткие курсы при ФАПСИ! А то ведь для вождения автомобиля права требуются, о как.
Но спроси такого эксперта — сколько тысяч в год погибает от компьютерных вирусов на компах третьих лиц? Ноль? А туда же, права на использование телефона им подавай.
Вот и пытаются заткнуть оргдыру техсредствами. И еще немножечко запугивают — если уж ты вышел за пивом из убежища первого класса — то минимум в кирасе и шлеме, а то ведь на голову упасть кирпич может! И не обманывают — может ;-)
Был такой шикарный рассказ про профессора Тарантогу и его посетителя — «вы представляете себе, сколько электроники можно запихнуть в дамский каблук-шпильку?» Очень напоминает современную гонку вирусы — антивирусы. И ладно бы пилили свои DLP и сканеры всех видов (дело однозначно полезное), а то уже не поймешь где антивирус заканчивается и руткит начинается.
Да, там FIFO в partial list. Это не самый лучший способ, я согласен. Однако тут я разбираю готовую работу, а не свое пишу, свое я бы немного не так делал ;-)
Да, и учтите, работа вышла аж в 2004м, кто тогда серьезно задумывался про lock-free? Все более менее известные аллокаторы появились позже, емнип. Исходная работа вообще была рассчитана на 32 бита и Linux, это уже последователи ее перенесли и адаптировали.
По выделенному тексту — я был косноязычен, согласен.
Идея тут вот в чем — при выделении памяти мы можем начальную таблицу proc heap (для блоков размером до 2К) выделить в TLS aka thread local storage. Тогда нам не надо будет задумываться о дополнительной синхронизации, мелочь — а приятно.
А вот при освобождении памяти назад — мы можем блок выделенный в одном треде освобождать в другом, поэтому в качестве penalty каждый memory block descriptor должен знать — из какого он proc heap.
Битовые поля. 64бит целое делим на битовые поля — верхнюю (top) 46 бит (адрес) и нижнюю (ocount) 18 бит, для индикации прогресса в цикле. Зачем так странно — в общем известный ход.
CAS (который compare-and-swap) атомарен только сам по себе.
И если 2 треда одновременно наступят на это — у них может получиться весьма интересный набор эффектов (ABA problem). Чтобы такого не происходило — надо использовать индикатор прогресса, и в цикле этот ocount каждый раз наращивается. Т… о. каждый раз в compare-and-swap используется уникальное число.
Конечно, 18 бит под счетчик отводить это сурово — но в работе Michael именно так. Я к примеру когда реализовывал свои lock-free lists в kernel-mode использовал пару бит всего для этого, а тут — оставил ровно как есть.
Пока что 48 бит это то что можно реально адресовать, так что страшного ничего не вижу. Да, в kernel mode не сработает, там чуть сложнее, ибо старший бит / биты — индикация.
Используется такой трюк чтобы не допускать возможных коллизий. Вот почему
Note that if a thread is delayed at any point while executing this routine, other active threads will be able to proceed with their operations without waiting for the delayed thread, and every time a thread executes a full iteration of the loop, some operation must have made progress.
If the CAS succeeds, then the increment of the current thread has taken effect. If the CAS fails, then the value of the counter must have changed during the loop. The only way the counter changes is if a CAS succeeds.
Then, some other thread’s CAS must have succeeded during the loop and hence that other thread’s increment must have taken effect.
Зато стандартный аллокатор от msvcrt — очень даже занимается тем что висит в giant locks (тьфу на него еще раз).
Вообще je / tc аллокаторы гораздо сложнее для понимания, тут-то весь исходник в 30 килобайт, они обозримы. Конечно, это не тот простой код из книжки Кернигана, Ритчи и Фьюэра — но тоже боле-мене понятен.
Вы о чем, какие блок-схемы? Я их последний раз чертил тушью по ГОСТу на ватманских листах, когда диплом сдавал 20 лет назад. Уже тогда это выглядело явным маразмом. Код гораздо понятнее.
Вообще, я вот по таким книжкам учился — ни одной блок-схемы и состоит из распечаток. Или по таким и таким.
Тут вся соль именно в деталях реализации — в том как именно этот список построен, как его собрать в страйпы, что из этого получается. Вот суперблок размера 48, вот у него раздача прямо из суперблока, вот — классический однонаправленный список свободных блоков. Вот тут — попадает в список, вот тут — берется. Суть метода то именно в деталях.
> Вы всегда знаете как подействует очередной апдейт на все установленные приложения?
Обычно я ставлю если у меня есть проблема, которую этот патч лечит. Например — уже не работает некоторое оборудование. Или соответственно — софт. Например — патч на експлорер, без которого он при открытии сидирома обваливал винду в синий экран.
Вот вы зачем ставили странный патч на ком-порт? Он без этого не работал? У микрософта знаете ли очень много патчей, в описании которых прямо написано — не ставьте если у вас нет описанных симптомов!
И очень, очень плохо, что это видно только в описании, а не напрямую в вин-апдейте. Это явно critical misfeature. Видите ли, я-то этим апдейтом пользуюсь, поэтому — знаю. Далеко не все optional / recommended патчи можно ставить не глядя.
Про андроиды, ублюдочные приложения и кастомные прошивки я ничего не понял, простите. Можно пару примеров, для таких тупых как я?
А то голая винда это не есть недостаток, а голый андроид — это проблема. И в маркете софт вам не нравится — на цианоген видимо не ставится без бубна. Ось должна запускать и не отсвечивать — поэтому андроид плох, что дает запускать что попало. Двойные стандарты двойными же погоняют, извините.
Сращивание метро с десктопом не будет никогда. Не для того делали.
Почему не позволять совать в плитки старые приложения? Ведь технически это несложно. Но — нет такого, хоть сам пиши. А ведь банальным затачиванием window manager делается на раз и для всех.
Или с тачем — мелкие элементы проблемы не составляют. Попал пальцем на пять сразу — нарисуй их все увеличенные, дай выбрать. И все — не нужны в десктопе мегаплитки 2 на 3 метра как таковые.
Но — вот так.
>>И вот незадача — Win32 обрел популярность из-за чудовищной extensibility, в ущерб стабильности и безопасности.
> В windows 7 им таки удалось достичь очень приличной стабильности
… под этим предлогом сурово обрезав расширябельность.
Тут не в стабильности дело — а в жадности. Почему драйвер надо подписать ко-сертификатом микрософт? А потому что самоподписанный сертификат… обрезает возможность просмотра blu-ray дисков!!!
Вот такие у них компромиссы. В огороде бузина — в Киеве дядька.
А у меня winXP до сих пор работает в ноуте 2005 года. И сам ноут еще жив — я специально для вас его снял с антресолей и включил. Не переставлял ни разу. И обрезать ничего не пришлось ;-)
И с UEFI под предлогом стабильности — банальная борьба с активаторами на флэшках. А подано-то как — не менее чем вселенскую проблему масонского заговора решают.
Стартовый экран win8 и есть этот самый winRT. Весь новый софт микрософт хочет видеть именно тут. Пропадание легаси десктопа — всего лишь вопрос времени.
Точно так же WinNT 3.1/3.5 умели штатно поддерживать os/2 подсистему. Но вот прошло три года — и все, поддержка убрана. Точно так же будет убрана win32.
И вот незадача — Win32 обрел популярность из-за чудовищной extensibility, в ущерб стабильности и безопасности. Это был его конек — можно было поменять все. Никаких особых требований — полная свобода. Нарисовать во всех приложениях кнопки круглые? Пожалуйста. Добавить сплиттер haali — штатно.
Инженера, которые решали задачи в микрософт — они их решали грамотно, и расширяемость — была на первом месте.
Надо выдать звук — мы сделаем систему минипортов, с изменяемой топологией, перестраиваемой на лету, и в каждом месте — можно будет расширить! Мы добавим фильтры и кодеки — и добавить новый формат сможет каждый студент!
Именно это позволило их архитектурным решениям продержаться по 10-15-20 лет без серьезных изменений.
А вот в метро — ну вы сами видите. Стиль «икс-бокс на марше». Вам не нравится что штатный плеер не умеет? Идите нафиг Пишите свой. С нуля. На XAML. Не забудьте подписать отдельный контракт!
Так-то.
Теперь пальму расширяемости микрософт подарила андроиду.
>>Я не предлагал серверную винду ставить вместо андроида, вы чего?
>>Она ж стоит как ноут целиком.
> Зато упомянули её при сравнении десктопной винды против планшетных ОС.
Всего лишь как пример того, что маразматический trustworthy — существует во всей линейке микрософт. И как это они не додумались еще и UAC на планшетку притянуть ;-)
>> Я не в курсе, а что — на WinRT уже можно поставить K-Lite Codec Pack?;-)
> Понятия не имею.
А как тогда матрешку на сурфейсе смотреть? Без перекодировки? Никак? А на андроиде — ну вы знаете, три тынца пальцем.
И если никак — WinRT has a built in set of codecs but doesn't support the MKV container — то вот этот контекст
>>Без ай-тюнсов, перекодировок и заливок.
> Винда тоже лишена этих танцев с бубном
вы уж определитесь — что делать в этом случае.
You would have to write your own player app. WinRT doesn't seem to have a way to share functionality with other apps except by contracts. Microsoft would have to create an MKV container codec for the Xbox Video app and bundle it inside the package.
The Matroska splitter doesn't work because there isn't a way for an app to use regular Win32 DirectShow filters.
Отлично, да? На данный момент плеера матрешки в метро вин8 — не существует. И даже стандартный стек фильтров — и тот не существует.
А вы говорите — без танцев с бубном. Тут не бубен, тут система барабанов нужна, как в до-win95-эпоху.
Перекодировка матрешек — пока что единственный способ.
> Я не пользуюсь WinUpdate не потому что неудобен… [ а потому ] что и когда обновится на моем компе решаю я
Разрешите вам не поверить.
Любой хоть раз запускавший вин-апдейт, знает, что один из режимов так и называется — ручной. В котором каждый фикс показан отдельно, про каждый — есть ссылка в kb c подробностями, и ставится он только по вашей команде. Решайте на здоровье — что мешает?
> Я привык настраивать так, чтобы ежедневные дела требовали минимум затрат времени и рутинных действий.
… поэтому вместо стандартного андроида вы ставите опенсорцный аналог, а затем жалуетесь, что программы из гугельплея в нем не настраиваются? Странная логика, уж простите.
> нет никакой смотрелки документов офис… в голом Android на планшете
А в голой винде полтора кодека видео/аудио форматов, и вам надо нормальный набор кодеков скачать из неофициального места и настроить, понимая чем ffdshow отличается от ffmpeg.
Однако — в винде это отлично и «можно даже не настраивать».
А в андроиде — штатно тынцнуть три раза пальцем — лютый баттхерт. Это почему так?
К слову в линуксе эти же кодеки берутся штатно из официальных репов, но это тоже вам не нравится, вы почему-то предпочитаете пересобрать.
Вы уж простите, но у меня такое ощущение… в общем, вам лично андроид не нравится потому что он не требует огромного багажа трюков и ужимок, которые вы трудолюбиво собирали полжизни. В нем многие вещи проще на порядок, чем вы ожидаете.
(включает самоиронию) да, я интернет-похметолог и лечу по фотографии аватарке ;-)
Вот почему антивирус с телефона без рута и спецзнаний снести нельзя? А «вирус» (какой он кстати вирус? малварь чистейшей воды) — можно. Как так? И кто за кого тут решает?
На десктопе кстати еще хуже, вместо классического сканера (аидстест, если кто помнит) и контроля периметра — жуткие монстры, перехватывающие в системе всю активность, тормозящие и привносящие глюки, но при этом использующие заведомо устаревшие базы сигнатур.
Да вы что! Вам просто необходим новейший антивирус, срочно ставьте ;-)
Всегда смешили эти профессиональные девиации сознания — а давайте на использование молотка введем сертификацию, лицензирование и краткие курсы при ФАПСИ! А то ведь для вождения автомобиля права требуются, о как.
Но спроси такого эксперта — сколько тысяч в год погибает от компьютерных вирусов на компах третьих лиц? Ноль? А туда же, права на использование телефона им подавай.
Вот и пытаются заткнуть оргдыру техсредствами. И еще немножечко запугивают — если уж ты вышел за пивом из убежища первого класса — то минимум в кирасе и шлеме, а то ведь на голову упасть кирпич может! И не обманывают — может ;-)
Был такой шикарный рассказ про профессора Тарантогу и его посетителя — «вы представляете себе, сколько электроники можно запихнуть в дамский каблук-шпильку?» Очень напоминает современную гонку вирусы — антивирусы. И ладно бы пилили свои DLP и сканеры всех видов (дело однозначно полезное), а то уже не поймешь где антивирус заканчивается и руткит начинается.
Реализаций таких много, одна из них на гитхабе, как заказывали.
Это ж больше исследовательская работа, подробно расписанная самим автором, ссылки приведены. Код там кстати ровно такой же и без комментариев.
Да, и учтите, работа вышла аж в 2004м, кто тогда серьезно задумывался про lock-free? Все более менее известные аллокаторы появились позже, емнип. Исходная работа вообще была рассчитана на 32 бита и Linux, это уже последователи ее перенесли и адаптировали.
По выделенному тексту — я был косноязычен, согласен.
Идея тут вот в чем — при выделении памяти мы можем начальную таблицу proc heap (для блоков размером до 2К) выделить в TLS aka thread local storage. Тогда нам не надо будет задумываться о дополнительной синхронизации, мелочь — а приятно.
А вот при освобождении памяти назад — мы можем блок выделенный в одном треде освобождать в другом, поэтому в качестве penalty каждый memory block descriptor должен знать — из какого он proc heap.
CAS (который compare-and-swap) атомарен только сам по себе.
И если 2 треда одновременно наступят на это — у них может получиться весьма интересный набор эффектов (ABA problem). Чтобы такого не происходило — надо использовать индикатор прогресса, и в цикле этот ocount каждый раз наращивается. Т… о. каждый раз в compare-and-swap используется уникальное число.
Конечно, 18 бит под счетчик отводить это сурово — но в работе Michael именно так. Я к примеру когда реализовывал свои lock-free lists в kernel-mode использовал пару бит всего для этого, а тут — оставил ровно как есть.
И добавил в текст парочку иллюстраций — возможно они будут более наглядными.
Используется такой трюк чтобы не допускать возможных коллизий. Вот почему
Note that if a thread is delayed at any point while executing this routine, other active threads will be able to proceed with their operations without waiting for the delayed thread, and every time a thread executes a full iteration of the loop, some operation must have made progress.
If the CAS succeeds, then the increment of the current thread has taken effect. If the CAS fails, then the value of the counter must have changed during the loop. The only way the counter changes is if a CAS succeeds.
Then, some other thread’s CAS must have succeeded during the loop and hence that other thread’s increment must have taken effect.
Вообще je / tc аллокаторы гораздо сложнее для понимания, тут-то весь исходник в 30 килобайт, они обозримы. Конечно, это не тот простой код из книжки Кернигана, Ритчи и Фьюэра — но тоже боле-мене понятен.
Вообще, я вот по таким книжкам учился — ни одной блок-схемы и состоит из распечаток. Или по таким и таким.
Тут вся соль именно в деталях реализации — в том как именно этот список построен, как его собрать в страйпы, что из этого получается. Вот суперблок размера 48, вот у него раздача прямо из суперблока, вот — классический однонаправленный список свободных блоков. Вот тут — попадает в список, вот тут — берется. Суть метода то именно в деталях.
Обычно я ставлю если у меня есть проблема, которую этот патч лечит. Например — уже не работает некоторое оборудование. Или соответственно — софт. Например — патч на експлорер, без которого он при открытии сидирома обваливал винду в синий экран.
Вот вы зачем ставили странный патч на ком-порт? Он без этого не работал? У микрософта знаете ли очень много патчей, в описании которых прямо написано — не ставьте если у вас нет описанных симптомов!
И очень, очень плохо, что это видно только в описании, а не напрямую в вин-апдейте. Это явно critical misfeature. Видите ли, я-то этим апдейтом пользуюсь, поэтому — знаю. Далеко не все optional / recommended патчи можно ставить не глядя.
Про андроиды, ублюдочные приложения и кастомные прошивки я ничего не понял, простите. Можно пару примеров, для таких тупых как я?
А то голая винда это не есть недостаток, а голый андроид — это проблема. И в маркете софт вам не нравится — на цианоген видимо не ставится без бубна. Ось должна запускать и не отсвечивать — поэтому андроид плох, что дает запускать что попало. Двойные стандарты двойными же погоняют, извините.
Почему не позволять совать в плитки старые приложения? Ведь технически это несложно. Но — нет такого, хоть сам пиши. А ведь банальным затачиванием window manager делается на раз и для всех.
Или с тачем — мелкие элементы проблемы не составляют. Попал пальцем на пять сразу — нарисуй их все увеличенные, дай выбрать. И все — не нужны в десктопе мегаплитки 2 на 3 метра как таковые.
Но — вот так.
>>И вот незадача — Win32 обрел популярность из-за чудовищной extensibility, в ущерб стабильности и безопасности.
> В windows 7 им таки удалось достичь очень приличной стабильности
… под этим предлогом сурово обрезав расширябельность.
Тут не в стабильности дело — а в жадности. Почему драйвер надо подписать ко-сертификатом микрософт? А потому что самоподписанный сертификат… обрезает возможность просмотра blu-ray дисков!!!
Вот такие у них компромиссы. В огороде бузина — в Киеве дядька.
А у меня winXP до сих пор работает в ноуте 2005 года. И сам ноут еще жив — я специально для вас его снял с антресолей и включил. Не переставлял ни разу. И обрезать ничего не пришлось ;-)
И с UEFI под предлогом стабильности — банальная борьба с активаторами на флэшках. А подано-то как — не менее чем вселенскую проблему масонского заговора решают.
Пока — есть. Пока. Но скоро не будет. За ненадобностью.
Точно так же WinNT 3.1/3.5 умели штатно поддерживать os/2 подсистему. Но вот прошло три года — и все, поддержка убрана. Точно так же будет убрана win32.
И вот незадача — Win32 обрел популярность из-за чудовищной extensibility, в ущерб стабильности и безопасности. Это был его конек — можно было поменять все. Никаких особых требований — полная свобода. Нарисовать во всех приложениях кнопки круглые? Пожалуйста. Добавить сплиттер haali — штатно.
Инженера, которые решали задачи в микрософт — они их решали грамотно, и расширяемость — была на первом месте.
Надо выдать звук — мы сделаем систему минипортов, с изменяемой топологией, перестраиваемой на лету, и в каждом месте — можно будет расширить! Мы добавим фильтры и кодеки — и добавить новый формат сможет каждый студент!
Именно это позволило их архитектурным решениям продержаться по 10-15-20 лет без серьезных изменений.
А вот в метро — ну вы сами видите. Стиль «икс-бокс на марше». Вам не нравится что штатный плеер не умеет?
Идите нафигПишите свой. С нуля. На XAML. Не забудьте подписать отдельный контракт!Так-то.
Теперь пальму расширяемости микрософт подарила андроиду.
Почему? Особенно в свете ваших же пояснений?
> Никто из простых пользователей сервер в глаза не должен видеть, а администраторы знают, что делают
Вот именно — и зачем админам этот костыль? Если они знают что делают?
> это поведение можно изменить в два клика
Полноценно, в гамаке и на лыжах? Так для этого poweershell есть ;-)
>>Она ж стоит как ноут целиком.
> Зато упомянули её при сравнении десктопной винды против планшетных ОС.
Всего лишь как пример того, что маразматический trustworthy — существует во всей линейке микрософт. И как это они не додумались еще и UAC на планшетку притянуть ;-)
>> Я не в курсе, а что — на WinRT уже можно поставить K-Lite Codec Pack?;-)
> Понятия не имею.
А как тогда матрешку на сурфейсе смотреть? Без перекодировки? Никак? А на андроиде — ну вы знаете, три тынца пальцем.
И если никак — WinRT has a built in set of codecs but doesn't support the MKV container — то вот этот контекст
>>Без ай-тюнсов, перекодировок и заливок.
> Винда тоже лишена этих танцев с бубном
вы уж определитесь — что делать в этом случае.
You would have to write your own player app. WinRT doesn't seem to have a way to share functionality with other apps except by contracts. Microsoft would have to create an MKV container codec for the Xbox Video app and bundle it inside the package.
The Matroska splitter doesn't work because there isn't a way for an app to use regular Win32 DirectShow filters.
Отлично, да? На данный момент плеера матрешки в метро вин8 — не существует. И даже стандартный стек фильтров — и тот не существует.
А вы говорите — без танцев с бубном. Тут не бубен, тут система барабанов нужна, как в до-win95-эпоху.
Перекодировка матрешек — пока что единственный способ.
Разрешите вам не поверить.
Любой хоть раз запускавший вин-апдейт, знает, что один из режимов так и называется — ручной. В котором каждый фикс показан отдельно, про каждый — есть ссылка в kb c подробностями, и ставится он только по вашей команде. Решайте на здоровье — что мешает?
> Я привык настраивать так, чтобы ежедневные дела требовали минимум затрат времени и рутинных действий.
… поэтому вместо стандартного андроида вы ставите опенсорцный аналог, а затем жалуетесь, что программы из гугельплея в нем не настраиваются? Странная логика, уж простите.
> нет никакой смотрелки документов офис… в голом Android на планшете
А в голой винде полтора кодека видео/аудио форматов, и вам надо нормальный набор кодеков скачать из неофициального места и настроить, понимая чем ffdshow отличается от ffmpeg.
Однако — в винде это отлично и «можно даже не настраивать».
А в андроиде — штатно тынцнуть три раза пальцем — лютый баттхерт. Это почему так?
К слову в линуксе эти же кодеки берутся штатно из официальных репов, но это тоже вам не нравится, вы почему-то предпочитаете пересобрать.
Вы уж простите, но у меня такое ощущение… в общем, вам лично андроид не нравится потому что он не требует огромного багажа трюков и ужимок, которые вы трудолюбиво собирали полжизни. В нем многие вещи проще на порядок, чем вы ожидаете.
(включает самоиронию) да, я интернет-похметолог и лечу по
фотографииаватарке ;-)