Сборка мусора Java

Java управляет памятью кучи за вас. Вы запускаете свое приложение внутри виртуальной машины (JVM). JVM выполняет работу по выделению пространства, когда это необходимо, и освобождению его, когда оно больше не нужно. Сборщик мусора (GC) — вот что вам поможет.

Переработка памяти включает в себя «циклы» сборки мусора, которые влияют на производительность. Степень воздействия зависит от характера вашего приложения и выбранного вами GC. Хорошая новость заключается в том, что существует более одного сборщика мусора, и каждый последний выпуск Java предлагает больше вариантов. Вы можете выбрать GC, который наилучшим образом соответствует потребностям вашего приложения.

Новые сборщики мусора

В последних двух выпусках Java представлены три новых GC. Мы рассмотрим каждый из них и то, что они добавляют в экосистему.

Java 11 представила Epsilon и сборщик мусора Z (ZGC). Epsilon — это сборщик мусора без операций. Он выделяет новую память, но никогда не перерабатывает ее. ZGC обещает управлять большими объемами памяти с высокой пропускной способностью и коротким временем паузы.

Java 12 добавляет сборщик мусора Shenandoah. Как и ZGC, он управляет большими кучами с коротким временем паузы, но использует совершенно другой подход.

Сборщик мусора Эпсилон

Что такое Эпсилон?

Epsilon — это пассивный или «нерабочий» GC. Он обрабатывает выделение памяти, но не перерабатывает ее, когда объекты больше не используются. Когда ваше приложение исчерпывает кучу Java, JVM отключается. Другими словами, Epsilon позволит вашему приложению исчерпать память и сломаться.

Как использовать Эпсилон 

Параметры командной строкиПримечания
 -XX:+UnlockExperimentalVMOptions Разблокируйте экспериментальные возможности Java.
 -XX:+UseEpsilonGC Используйте Эпсилон ГХ
 -XmxXg Установить размер кучи. JVM завершит работу с OutOfMemoryError, если это количество будет превышено.
 -XX:HeapDumpOnOutOfMemoryError Создайте дамп кучи, если JVM не хватает памяти.
 -XX:OnOutOfMemoryError= Выполнить указанную команду при возникновении ошибки нехватки памяти.


Зачем использовать No-Op GC? 

Неактивный сборщик мусора полезен для измерения производительности приложений и управления ею. Активные сборщики мусора — это сложные программы, которые запускаются внутри JVM вместе с вашим приложением. Они несут накладные расходы, которые могут вызвать задержку и снизить пропускную способность.

Epsilon устраняет влияние GC на производительность. Нет циклов GC или барьеров чтения или записи. При использовании Epsilon GC ваш код выполняется изолированно. Вы можете использовать его, чтобы увидеть, как сбор мусора влияет на производительность вашего приложения и каков ваш порог памяти, поскольку он сообщит вам, когда он закончится. Если вы думаете, что вам нужно всего четыре гигабайта памяти, запустите его  -Xmx4g и посмотрите, правы ли вы. Если вы ошибаетесь, перезапустите его с  XX:HeapDumpOnOutOfMemoryError включенным и посмотрите на дамп кучи, чтобы увидеть, где вы ошибаетесь.

Если вам нужно выжать из приложения все, что можно, от производительности, Epsilon может стать лучшим выбором для сборщика мусора. Но вам нужно иметь полное представление о том, как ваш код использует память. Если он почти не создает мусора или вы точно знаете, сколько памяти он использует за период, в течение которого он работает, Epsilon является приемлемым вариантом.

Сборщик мусора Z

Что такое сборщик мусора Z?

ZGC — сборщик мусора с малой задержкой, предназначенный для работы с огромными объемами памяти. Документация Oracle ссылается на многотерабайтные кучи в своем описании Z. Oracle представила ZGC в Java 11. В Java 12 Oracle добавила исправления производительности и выгрузку классов, хотя Z все еще находится в экспериментальном состоянии. Он доступен только в 64-разрядной версии Linux.

Как работает ЗГК?

ZGC работает параллельно с вашим приложением, выполняя всю свою работу в своих потоках. Он использует барьеры нагрузки для ссылок на кучу. Барьеры нагрузки вызывают меньше задержек, чем те, которые накладываются барьерами до и после записи коллектора G1.

ZGC использует преимущества 64-битных указателей с помощью метода, называемого раскрашиванием указателей. Цветные указатели хранят дополнительную информацию об объектах в куче. (Это одна из причин, по которой он ограничен 64-битной JVM.) Ограничив GC кучами размером 4 ТБ, разработчики получили 22 дополнительных бита в каждом указателе для кодирования дополнительной информации. В настоящее время Z использует четыре дополнительных бита. Каждый указатель имеет бит для финализации, переназначения, метки0 или метки1.

Сборщик мусора Z переназначает объекты, когда память становится фрагментированной. Сопоставление позволяет избежать снижения производительности, когда сборщику мусора требуется найти место для нового выделения. Цвет указателя помогает при переназначении, поскольку переназначенная ссылка обнаруживает новое местоположение при следующем доступе.

Когда ваше приложение загружает ссылку из кучи, ZGC проверяет лишние биты. Если ему нужно выполнить какую-либо дополнительную работу (например, получить переназначенный экземпляр), он обрабатывает ее в барьере нагрузки. Это нужно сделать только один раз, когда он загружает ссылку. Это отличает его от барьеров записи, используемых основными сборщиками мусора, такими как G1.

Сборщик мусора Z выполняет свои циклы в своих потоках. Он приостанавливает приложение в среднем на 1 мс. Сборщики G1 и Parallel в среднем составляют около 200 мс.

Как использовать ЗГК

Параметры командной строкиПримечания
 -XX:+UnlockExperimentalVMOptions Разблокируйте экспериментальные возможности Java
 -XX:+UseZGC Используйте ЗГК.
 -XmxXg Установить размер кучи.
 -XX:ConcGCThreads=X Установить количество потоков GC

ZGC — это параллельный сборщик мусора, поэтому установка правильного размера кучи очень важна. Куча должна быть достаточно большой для размещения вашего приложения, но также нуждается в дополнительном запасе, чтобы Z мог удовлетворять новые запросы при перемещении активных объектов. Объем необходимого запаса зависит от того, насколько быстро ваше приложение запрашивает новую память.

ZGC сам попытается установить количество потоков, и обычно это правильно. Но если у ZGC слишком много потоков, ваше приложение будет голодать. Если его недостаточно, вы создадите мусор быстрее, чем сборщик мусора сможет его собрать.

Зачем использовать ZGC?

Дизайн ZGC хорошо работает с приложениями большого размера кучи. Он управляет этими кучами с временем паузы менее 10 мс и незначительно влияет на пропускную способность. Эти времена лучше, чем у G1.

ZGC выполняет маркировку в три этапа. Первая — это короткая фаза остановки мира. Он проверяет корни GC, локальные переменные, которые указывают на остальную часть кучи. Общее количество этих корней обычно минимально и не масштабируется с размером нагрузки, поэтому паузы ZGC очень короткие и не увеличиваются по мере роста вашей кучи.

После завершения начальной фазы ZGC переходит к параллельной фазе. Он проходит по графу объектов и исследует цветные указатели, отмечая доступные объекты. Барьер нагрузки предотвращает конкуренцию между фазой сборки мусора и активностью любого приложения.

После того, как ZGC завершил маркировку, он перемещает живые объекты, чтобы освободить большие разделы кучи для более быстрого выделения памяти. Когда начинается фаза перемещения, ZGC делит кучу на страницы и работает с одной страницей за раз. Как только ZGC завершает перемещение всех корней, остальная часть перемещения происходит в параллельной фазе.

Фазы ZGC иллюстрируют, как он управляет большими кучами, не влияя на производительность по мере роста памяти приложения.

Шенандоа

Что такое Шенандоа?

Shenandoah — еще один сборщик мусора с коротким временем паузы. Эти времена короткие и предсказуемые, независимо от размера кучи. Shenandoah был разработан в Red Hat и существует уже несколько лет. Теперь это часть выпуска Java 12.

Как и ZGC, Shenandoah выполняет большую часть своей работы параллельно с работающим приложением. Но его подход к сбору мусора отличается. Shenandoah использует области памяти для управления тем, какие объекты больше не используются, а какие активны и готовы к сжатию. Shenandoah также добавляет указатель переадресации к каждому объекту кучи и использует его для управления доступом к объекту.

Как работает Шенандоа?

Дизайн Shenandoah обменивает параллельные циклы ЦП и пространство на улучшение времени паузы. Указатель переадресации упрощает перемещение объектов, но агрессивные перемещения означают, что Shenandoah использует больше памяти и требует больше параллельной работы, чем другие сборщики мусора. Но он выполняет дополнительную работу с очень короткими паузами в стиле «останови мир».

Фазы Шенандоа

Shenandoah обрабатывает кучу в несколько небольших этапов, большинство из которых выполняются одновременно с приложением. Такой дизайн позволяет сборщику мусора эффективно управлять большой кучей.

Первая фаза содержит первую остановку мира в цикле. Он подготавливает кучу для одновременной маркировки и сканирует корневой набор. Как и в ZGC, длина этой паузы соответствует размеру корневого набора, а не кучи. Затем на параллельной фазе выполняется обход кучи и идентификация доступных и недоступных объектов.

Третий завершает процесс маркировки, сливая ожидающие обновления кучи и повторно сканируя корневой набор. Эта фаза запускает вторую паузу в цикле «останови мир». Количество ожидающих обновлений и размер корневого набора определяют продолжительность паузы.

Затем другая параллельная фаза копирует объекты из регионов, определенных на последней фазе маркировки. Этот процесс отличает Shenandoah от других сборщиков мусора, поскольку он агрессивно сжимает кучу параллельно с потоками приложения.

Следующая фаза запускает третью (и самую короткую) паузу в цикле. Это гарантирует, что все потоки GC завершили эвакуацию. По завершении параллельная фаза проходит по куче и обновляет ссылки на объекты, перемещенные ранее в цикле.

Последняя пауза в цикле «останови мир» завершает обновление ссылок путем обновления корневого набора. В то же время он утилизирует эвакуированные регионы. Наконец, последняя фаза восстанавливает эвакуированные регионы, в которых теперь нет ссылок.

Как использовать Шенандоа

Параметры командной строкиПримечания
 -XX:+UnlockExperimentalVMOptions Разблокируйте экспериментальные возможности Java.
 -XX:+UseShenanodoahC Используйте Шенандоа GC.
 -XmxXg Установить размер кучи.
 -XX:ShenandoahGCHeuristics=  Выберите эвристику.

Эвристика Шенандоа

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

1. Адаптивный : наблюдает за циклами GC и запускает следующий цикл, чтобы он завершился до того, как приложение исчерпает кучу. Эта эвристика является режимом по умолчанию.

2. Статический . Запускает цикл сборки мусора в зависимости от занятости кучи и давления на выделение.

3. Компактный : Непрерывно запускает циклы ГХ. Shenandoah начинает новый цикл, как только заканчивается предыдущий или на основе объема кучи, выделенной с момента последнего цикла. Эта эвристика влечет за собой накладные расходы на пропускную способность, но обеспечивает наилучшее высвобождение пространства.

Режимы отказа

Shenandoah должен собирать кучу быстрее, чем приложение, которое он обслуживает, выделяет его. Если давление выделения слишком велико и для новых выделений недостаточно места, произойдет сбой. У Shenandoah есть настраиваемые механизмы для этой ситуации.

  • Шаг : если Shenandoah начинает отставать от скорости выделения, потоки выделения останавливаются, чтобы наверстать упущенное. Прилавков обычно достаточно для умеренных всплесков распределения. Shenandoah вводит задержки в 10 мс или меньше. Если стимуляция не удалась, Шенандоа перейдет к следующему этапу: вырожденному GC.
  • Вырожденный GC : если происходит сбой распределения, Shenandoah запускает фазу остановки мира. Он использует фазу для завершения текущего цикла GC. Поскольку остановивший мир не соперничает с заявкой на ресурсы, цикл должен завершиться быстро и устранить дефицит распределения. Часто вырожденный цикл происходит после того, как большая часть работы цикла уже завершена, поэтому остановка мира непродолжительна. Однако журнал GC сообщит об этом как о полной паузе.
  • Полный GC : если и стимуляция, и вырожденный GC терпят неудачу, Шенандоа возвращается к полному циклу GC. Этот окончательный сборщик мусора гарантирует, что приложение не завершится с ошибкой нехватки памяти, если не останется кучи.

Зачем использовать Шенандоа?

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

Хотя Shenandoah не был доступен как часть Java до версии 12, он существует дольше, чем ZGC. Он прошел больше тестов и даже доступен в качестве резервной копии для Java 8 и 10.

Заключение

Сборщик мусора Java прошел долгий путь за несколько коротких лет. Сборщик по умолчанию G1 претерпел значительные улучшения по сравнению с Java 7, и на платформу были добавлены три новых.

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

xubuntu lightdm error

Random logout (Xorg crashing?)
Падает Xorg
Внезапный рестарт сессии xubunta
Рестарт иксов
Падают иксы
Крах(рестарт) Xfce

Смотрим логи

>journalctl -S «2022-03-05 12:10» -U «2022-03-05 22:00»

И видим красные строки

lightdm[19715]: PAM unable to dlopen(pam_kwallet.so): /lib/security/pam_kwallet.so: cannot open shared object file: No such file or directory
lightdm[19715]: PAM adding faulty module: pam_kwallet.so
lightdm[19715]: PAM unable to dlopen(pam_kwallet5.so): /lib/security/pam_kwallet5.so: cannot open shared object file: No such file or directory
lightdm[19715]: PAM adding faulty module: pam_kwallet5.so

Поскольку эта штука глючная и бороться с ней дело неблагодарное, то отключаем ее и живем счастливо.

  1. Редактируем два файла /etc/pam.d/lightdm и /etc/pam.d/lightdm-greeter 
    Коментируем # или вообще удаляем строки
    auth    optional        pam_kwallet.so
    auth    optional        pam_kwallet5.so
    session optional        pam_kwallet.so auto_start
    session optional        pam_kwallet5.so auto_start
    2. Перезапускаем  systemctl restart lightdm

Selenium, Java, E-mail, pop3

Добавляем в зависимости Мавена

<!-- http://repo1.maven.org/maven2/javax/mail/javax.mail-api/1.5.6/javax.mail-api-1.5.6.jar -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>javax.mail-api</artifactId>
    <version>1.6.2</version>
</dependency>
<!-- http://repo1.maven.org/maven2/javax/mail/mail/1.4.7/mail-1.4.7.jar -->
<dependency>
    <groupId>javax.mail</groupId>
    <artifactId>mail</artifactId>
    <version>1.4.7</version>
</dependency>
  1. Setup properties for the mail session.
  2. Creates a javax.mail.Authenticator object.
  3. Creating mail session.
  4. Get the POP3 store provider and connect to the store.
  5. Get folder and open the INBOX folder in the store.
  6. Retrieve the messages from the folder.
  7. Close folder and close store.

Выглядит все просто, но из коробки не завелось. Вылезла странная проблема с кодировкой Subject-a писем.

Полезные программы

Список программ из обсуждения в интернете. Без привязки к платформе (ОС), хотя кое где это может быть указано. Короче просто список программ, которыми пользуется народ. Каждый абзац — это предпочтения отдельного пользователя.

7-Zip
Anki
Audacity
Calibre
LibreOffice
Notepad++
qBittorrent
SMPlayer
WinDJView
youtube-dl

TechStudio, WinShell. STDU Viewer, Foxit Reader, PicPick, VLC MEdia player, Gaaiho Reader, Adobe Digital Edition, Semagic, TeamViewer.

Sequoia View
Advanced Jpeg Compressor
LightShot
MouseImp
PuntoSwitcher

mp3DirectCut, IrfanView, WinSCP, Renamer, freac, FAR (Find And Replace), 1by1.

Stereophotomaker
FastStone
FreeFileSync
VLC player
Advanced File Renamer
Double Killer
Remove Empty Directories
Hugin Panorama Stitcher
Foxit PDF reader
Revo Uninstaller

Belarc Advisor
Camera utilities (RAW converters according to camera maker) — они, как правило, бесплатны
Comodo Internet Security
Dropbox
FBReader
Chrome
Firefox 55.0.2 (последняя версия, которая ещё работает с DownThemAll plugin)
MP3Tag
Opera
Quick Time
Skype

mobaxterm (это сильно болше чем одна программа, конечно)

7-zip
Calibre
Libre office
WinDJView
WinSCP
PuTTY
PDFsam
MiKTeX (это много программ:)
Ghostscript
VLC media player

Ну и очевидное: Acroread плюс парочка браузеров.

iSpring 8 Free Cam — экранная камера, мышка с маркером.
IrfanView — просмотр графики, аудио, видео.
OpenOffice — бесплатный аналог Ворда, на общей основе из огромной библиотеки плагинов собирается твоя личная удобная конфигурация.
Advego Plagiatus — поиск текста в инете, с любой степенью повторяемости.
WavePad Sound Editor.
Reg Organizer

Кроме многих уже упомянутых:
AnyDesk
CuneiForm Open OCR
Daum Potplayer
Stellarium

Рекомендую MediaHuman для скачивания mp3 с youtube.
VLC media player, конечно, а как же без него.
Foxit Reader для pdf
FormatFactory резать большие видео на куски
Evernote — записная книжка, которую можно share between comp and phone

Ditto clipboard manager

7-Zip
Audacity
CppCheck
ZCPUID
DjVuLibre DjView
ECW Calculator
FAR
Foxit Reader
Git
Chrome
FireFox
MuseScore
MinGW
Notepad++
VirtualBox
Python
DiffMerge
TeraTerm
VLC
WinAmp
WinDirStat
XnView

Chrome
Far
Vim
Git
WinDirStat
TaskSwitchXp
Notepad++
StduViewer
TotalCommander
autoruns.exe
autorunsc.exe
ColorTool.exe
ctags.exe
curl.exe
EditPadLite7.exe
egrep.exe
fgrep.exe
hiew32demo.exe
HxD.exe
iconv.exe
jq.exe
md5sums.exe
nmake.exe
PathEd.exe
procexp.exe
procexp64.exe
putty.exe
sed.exe
tidy.exe
wgrep.exe
youtube-dl.exe

chocolatey
windows terminal
powershell-core
cmake
ninja
GCC (tdm-gcc)
git
rclone
rsync
vim
miktex
lyx
lilypond
musescore
tightvnc
python
autohotkey
everything
launchy

Double Commander, Captura, CPUID HWMonitor, Daemon Tools Lite, Filezilla, uTorrent, Viber, OpenServer, DB Browser, StarUML, Android Studio, DesignSpark PCB, Segger Embedded Studio for ARM, STM32Cube, Lazarus, CoDeSys, DipTrace, Firebird, IAR EW for ARM, MPLAB X IDE, Maria DB, TightVNC

Macrium Reflect
Classic Shell
CloneSpy
WinDirTree
Allways Sync
ShotCut
VLC
Picasa
GIMP
Tor
Foxit
VeraCrypt

под Линуксом список схож, исключая системные вещи и мелкие утилиты
Libreoffice
Wireshark
Vlc
Ffmpeg
Youtube-dl
Gimp
Smplayer
Audacity
Texlive
zoom
Skype
Virtualbox
Backuppc
masterpdfeditor

Chocolatey
Conemu+far
Irfanview
Handbrake
Windirstat
VLC
Transmissionremotegui
Cpuz
Wget
Linqpad
Deluge
Putty
Curl
Greenshot
Fiddler
Lockhunter
Rufus

Разгон мозга

Проблема здесь в сроках: если использовать обычный пирацетам (ноотропил, луцетам), который наиболее безопасен и доступен, даже в достаточно высокой дозе, например 2,4 и более грамма в день, не факт, что в течение недели ощутимый полезный эффект наступит у всех. Однако есть интересный момент — я давно заметил (и не только на себе), что долговременный прием пирацетама (курс на 2–3 месяца) сенситизирует к нему. И в дальнейшем, даже через длительное (месяцы) время после этого курса эффект наступает уже после первой-второй дозы.

Есть и еще одно интересное наблюдение — чем выше нагрузка, тем быстрее и сильнее проявляется эффект. Прамирацетам, анирацетам и т.д. являются аналогами пирацетама, разница между ними только в дозировке. Все сказанное о пирацетаме будет относиться и к ним. Более новые отечественные ноотропы, такие как фентропил и ноопепт, подействуют быстрее — они явно обладают и психостимулирующей компонентой действия. Как по мне, так даже и слишком, но есть немало людей, отзывающихся о них весьма позитивно.

Семакс работает достаточно быстро, хотя я бы давал дня 3 на разгон для развития полноценного эффекта. Можно попробовать и саму глутаминовую кислоту: хотя о ее проникновении через гематоэнцефалический барьер ведутся длительные споры, по крайней мере в моем опыте психостимулирующий разгоняющий эффект явно есть.

И тут мы подходим к сочетанию «безопасных» психостимуляторов и ноотропов.

Полностью безопасным психостимулятором я могу назвать разве что пантокрин. Часто им с этой целью пользовался. Считается таковым и модафинил. В авральных ситуациях модафинил вполне пригоден к употреблению, но это должен быть реальный аврал: сутки без сна и т.д.

Есть еще такая интересная группа соединений как эрготропы, которые увеличивают выносливость: как физическую, так и умственную. Они как раз разрабатывались для подобных ситуаций. Идеальным эрготропом, ИМХО, является отечественный бемитил. Но я даже не уверен насчет его доступности сейчас. Пантокрин также обладает эрготропным действием. Ко всему перечисленому можно добавлять энцефабол и вазодилятаторы вроде кавинтона.

страхи за здоровье биохимия мозга ноотропы психостимуляторы психика стимулирование разгон

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

Парадоксально, но в таких случаях имеет смысл использовать агонисты нейротрансмиттера, имеющего противоположную глутамату роль — ГАМК (гамма-аминомасляной кислоты), вместе с ноотропами. Подчеркиваю, речь здесь идет не о бензодиазепинах, а о слабых агонистах, таких как афобазол, пикамилон, возможно, фенибут. В советское время их даже относили к ноотропам.

Общая идея такого подхода/сочетания такова:

ампакины etc. — усиление уровня несущего сигнала;
слабые агонисты ГАМК — уменьшение уровня окружающего шума.
Но здесь нужно подбирать наиболее сильную комбинацию уже строго индивидуально. Что касается меня лично, я чрезвычайно успешно использовал подобное сочетание: ноотропил + пикамилон.

Как безопасно пользоваться телефоном и интернетом. Правила, которые нужно соблюдать абсолютно всем

Всегда выходите в интернет из-под VPN — и с телефона, и с компьютера

Не пугайтесь аббревиатуры VPN. Пользоваться такими сервисами очень просто: достаточно скачать приложение и залогиниться, дальше оно все сделает само. VPN создает своеобразную прослойку между вашим устройством и интернетом и делает соединение безопасным — почти наверняка трафик не смогут перехватить.

Бесплатными сервисами пользоваться рискованно, поскольку они могут продавать ваши данные, поэтому купите подписку. Выбирать стоит из тех, кто обещает не делиться вашими данными и проходит независимый аудит. Например, Private Internet Access или NordVPN.

Практически все VPN-провайдеры используют в своих приложениях OpenVPN-протокол. Роскомнадзор недавно потребовал от компании — разработчика OpenVPN ограничивать доступ к ресурсам из российского «черного списка», пригрозив блокировкой. Представители ведомства не объяснили, собираются ли они блокировать все соединения по протоколу OpenVPN, или угроза касается только дочернего VPN-провайдера компании.

В качестве альтернативы можно попробовать новый перспективный протокол WireGuard. Он, к сожалению, пока не способен обеспечить тот же уровень приватности: VPN-провайдеры должны запоминать, какие IP-адреса присвоены клиентам. Но некоторые компаниипридумывают разные обходные пути.СВЕРНУТЬ

Учтите, что, несмотря на включенный VPN, ваш исходный IP-адрес все равно может «утечь». Например, из-за неправильно настроенного DNS или включенной функции WebRTC в браузере. Проверить, есть ли у вас эти «утечки», обычно можно на сайте VPN-провайдера. Или используйте сторонние сервисы.

Откажитесь от биометрии

Отключите на своем андроиде разблокировку по отпечатку пальца, распознанному лицу или радужной оболочке глаза, а на айфоне, соответственно, — Touch ID и Face ID. В противном случае, если телефон окажется в чужих руках, его можно будет разблокировать против вашей воли — достаточно будет поднести экран к лицу или приложить палец к сканеру.

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

Используйте надежные и разные пароли. Их не нужно запоминать!

Забудьте свой любимый и единственный пароль, который у вас стоит и на компьютере, и на почте, и во «ВКонтакте», и везде. Вам нужен менеджер паролей: например, 1PasswordKeePassXC или Firefox Lockwise. С ними вам нужно будет запомнить только один (но длинный!) пароль, а все остальные пароли для разных сервисов будут разными. Если кто-то узнает ваш пароль для фейсбука, он хотя бы не сможет зайти к вам в почту.

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

Включите двухфакторную аутентификацию везде, где только можно

Это ваш второй уровень защиты. Первый фактор — это пароль, второй — устройство. Даже если злоумышленник сумеет удаленно взломать ваш пароль (например, от почты), он все равно не сможет им воспользоваться, не имея доступа к устройству. Это сильно усложняет задачу взлома.

Самый популярный способ двухфакторной аутентификации — специальное приложение на телефоне, которое генерирует одноразовые пароли. Таким приложением может быть бесплатный Google Authenticator или тот же 1Password.

Обычно при включении двухфакторной аутентификации вас попросят навести камеру на QR-код или вручную ввести последовательность символов. Приложение сохранит эту секретную последовательность и с ее помощью будет генерировать одноразовые коды.

Не используйте СМС в качестве второго фактора. Перехват СМС — хорошо известный и популярный способ взлома, именно так в России взламывали телеграм оппозиционным активистам.

Откажитесь от СМС и обычных звонков по телефону

Используйте вместо них защищенные мессенджеры с поддержкой сквозного шифрования: WhatsApp, Signal, Telegram. Там же можно и звонить. Иначе вся ваша переписка и переговоры в открытом виде будут храниться на серверах операторов связи — они обязаны это делать по «закону Яровой». Зашифрованную переписку операторы тоже будут хранить, но расшифровать ее не смогут. В российских социальных сетях лучше не переписываться — они с легкостью выдают перепискуи информацию о пользователях.

Научитесь проверять, что вас никто не прослушивает

Сделать это довольно просто. Собеседникам нужно сверить так называемые отпечатки ключей, которые используются в процессе шифрования. Только в этом случае вы можете быть уверены, что сообщения от вас получит именно тот, кому вы пишете.

В вотсапе собеседники могут отсканировать друг у друга QR-код с экранов телефонов или обменяться 60-значными номерами. Пользователям секретных чатов телеграм предлагает сравнитьспециальную картинку или последовательность 64 символов, а при звонке достаточно сверить голосом четыре эмодзи.

Вот так выглядит звонок в телеграме. На скриншотах видно, что эмодзи в верхнем правом углу одинаковые, значит, собеседники точно говорят друг с другом

Включите шифрование файловой системы

И на айфонах, и на телефонах с андроидом шифрование данных обычно включено по умолчанию, но на андроиде лучше проверить. Обычно этот пункт находится в настройках безопасности и так и называется — «Шифрование данных» или «Шифрование карты SD» — на карточке данные тоже должны быть зашифрованы.

В противном случае вас не спасет даже сквозное шифрование переписки. Телефон может попасть в чужие руки вместе с архивом всех расшифрованных сообщений.

На компьютере тоже важно включить шифрование данных. На Windows это называется Bitlocker, инструкцию по включению которого можно найти здесь. Она на русском языке. На Mac та же функция называется FileVault. Инструкция на русском есть на официальном сайте.

Отключите отображение сообщений на заблокированном экране

Это может спасти не только тайну ваших сообщений, но и неприкосновенность банковского счета. Вы можете потерять деньги, если у вас сначала выведают логин и пароль к интернет-банку, который использует в качестве второго фактора СМС с одноразовыми паролями.

По той же причине важно установить ПИН-код на сим-карту. Иначе ваш телефон могут украсть, переставить сим-карту в свой и получить код подтверждения для интернет-банка.

Также на айфоне имеет смысл запретить Siri зачитывать сообщения вслух.

Всегда устанавливайте все обновления

Это хорошая привычка. Обновления в первую очередь нужны, чтобы закрывать уязвимости — и только потом для улучшений сервиса. Правда, теоретически программы можно взломать как раз через установку обновления с вредоносным кодом. Иногда это происходит на практике, но это не то, о чем следует переживать.

Привыкайте обращать внимание на необычное поведение собеседников

Сообщение пришло рано утром, а ваш знакомый — «сова». Обычно вы переписываетесь в вотсапе, а тут он решил завести себе телеграм. Вы никогда не обсуждали в почтовой переписке деловые вопросы, а тут вас просят скачать и посмотреть какой-то документ. Все это может быть признаками атаки. Будьте бдительны.

Научите ваших собеседников всему, что вы прочитали

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

Не переживайте, если не можете выполнить все пункты сразу

Мы понимаем, что не всегда есть время сесть и поставить себе везде двухфакторную аутентификацию. Просто поставьте себе напоминание вернуться к этой статье. Со временем вы пройдете все шаги и будете в относительной безопасности.

Что делать, если я параноик?

Забудьте обо всем, что мы писали выше, и как можно скорее избавьтесь от мобильного телефона

Телефон оставляет слишком много следов. Ваши перемещения можно отслеживать через сотовые базовые станции, точки Wi-Fi или Bluetooth-маяки. В некоторых современных телефонах нельзя полностью отключить беспроводные модули связи.

В вашем телефоне может оказаться бэкдор, то есть возможность получить к нему удаленный доступ. Тогда под угрозой окажутся переписка и поисковые запросы, а встроенный микрофон и видеокамеры рискуют превратиться в подслушивающее и подсматривающие устройства. Иногда вредоносные программы находят даже в только что купленных телефонах, на которые пользователи еще ничего не успели установить.

Единственный достойный компромисс — телефон с опенсорсным железом, возможностью механического отключения беспроводных модулей связи, микрофона, камеры и установки произвольной свободной операционной системы. Под это описание подпадает пока только Librem 5, да и он пока еще не продается.

Вы готовы рискнуть? Подготовьте свой Android

Установите на свой телефон альтернативную прошивку, заточенную на приватность и безопасность. Например, LineageOS или Replicant. Пользуйтесь свободными «магазинами» приложений вроде F-Droid. По возможности избегайте сервисов Google.

Купите пару токенов для двухфакторной аутентификации

Основной и запасной на случай потери первого, чтобы не остаться без доступа к своим аккаунтам. Возьмите, к примеру, токены производства Yubico или SoloKeys. Они выглядят как небольшие брелоки и могут подключаться к телефону по USB или NFC.

Tокены, которые поддерживают протокол FIDO U2F, надежнее приложений-аутентификаторов. Они гарантированно защищают пользователя от фишинговых атак. К сожалению, еще не все сервисы поддерживают U2F-аутентификацию, так что полностью без TOTP-аутентификатора пока не обойтись.

В качестве приятного бонуса ваши токены могут поддерживать стандарт FIDO2 — ваш пропуск в беспарольное будущее.

Наконец, заведите себе OpenPGP-ключ

Он пригодится для шифрования электронной почты и переписки в XMPP-мессенджере, работы со специальным менеджером паролей, защиты бэкапов вашего TOTP-аутентификатора и других приложений. Если ваш телефон взломают, злоумышленник не сможет расшифровать эти данные.

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

Остались без интернета? Обменивайтесь шифрованными эсэмэсками

Silence заменит вам стандартное приложение для обмена SMS- и MMS-сообщениями. А эсэмэски можно передавать даже в том случае, если отключен мобильный интернет и осталась только голосовая связь. Silence будет работать в обычном режиме, пока вы не обменяетесь ключами для шифрования с собеседником. Сервис работает только на андроиде.

Внимание! Silence защитит только содержимое переписки. По метаданным можно будет понять, когда, с кем и как часто вы общались.

Лучшие игры

Примерно раз в год появляется видеоигра, которую ни в коем случае нельзя пропускать — даже тем, кто к играм не притрагивается. В 2018-м это был драматичный вестерн Red Dead Redemption 2, а в 2019-м — Death Stranding.

Юмор

Один знакомый пытался мышкой вернуть на место уезжающее изображение на мониторе, пока не понял, что это он со стула падает.

Другой знакомый досиделся за компом до такого состояния, что взяв в руку карандаш долго тупил, как же он с латиницы на кириллицу переключается. Где же эта кнопка?

А третий знакомый все время ищет кнопку Enter в лифте, после того как нажмет цифру этажа.

Meld программа для сравнения

Meld — компьютерная программа для сравнения содержимого текстовых файлов или каталогов.

Функции