Compare commits

...

10 Commits
main ... main

4 changed files with 927 additions and 5 deletions

View File

@ -1,7 +1,7 @@
<article id="issues">
<h2>Issues published</h2>
<ul>
<li>2022-10-30 - Issue #16 Special Halloween 2023 <a class="permalink" href="issue-16-special-octopenbsd-2023.html">English</a>, <a class="permalink" href="es_issue-16.html">Spanish</a></li>
<li>2023-10-30 - Issue #16 Special Halloween 2023 <a class="permalink" href="issue-16-special-octopenbsd-2023.html">English</a>, <a class="permalink" href="es_issue-16-special-octopenbsd-2023.html">Spanish</a>, <a class="permalink" href="ru_issue-16-special-octopenbsd-2023.html">Russian</a></li>
<li>2023-10-16 - Issue #15 <a class="permalink" href="issue-15.html">English</a>, <a class="permalink" href="ru_issue-15.html">Russian</a>, <a class="permalink" href="es_issue-15.html">Spanish</a></li>
<li>2023-09-13 - Issue #14 <a class="permalink" href="issue-14.html">English</a>, <a class="permalink" href="ru_issue-14.html">Russian</a>, <a class="permalink" href="es_issue-14.html">Spanish</a></li>
<li>2023-03-19 - Issue #13 <a class="permalink" href="issue-13.html">English</a>, <a class="permalink" href="fr_issue-13.html" hreflang="fr">French</a>, <a class="permalink" href="es_issue-13.html" hreflang="es">Spanish</a>, <a class="permalink" href="pt-br_issue-13.html">Brazilian Portuguese</a>, <a class="permalink" href="ru_issue-13.html" hreflang="ru">Russian</a></li>

View File

@ -7,9 +7,9 @@
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="alternate" type="application/rss+xml" href="https://webzine.puffy.cafe/atom.xml">
<meta property="og:title" content="Special OpenBSD webzine issue: OctOpenBSD">
<meta property="og:title" content="Special OpenBSD webzine issue: OctOpenBSD 2023">
<meta property="og:description" content="Webzine created by volunteers who are passionate about the OpenBSD project development.">
<meta property="og:url" content="https://webzine.puffy.cafe/issue-special-octopenbsd-2023.html">
<meta property="og:url" content="https://webzine.puffy.cafe/issue-16-special-octopenbsd-2023.html">
<meta property="og:image" content="https://webzine.puffy.cafe/images/ob-wz-monochrome-fs8.png" name="image">
<meta property="og:type" content="website">
<meta property="og:locale" content="en_EN">
@ -546,6 +546,12 @@ hr {
<div id="mag">
<p style="text-align: center; word-spacing: 5px;">
En
<a href="es_issue-16-special-octopenbsd-2023.html">Es</a>
<a href="ru_issue-16-special-octopenbsd-2023.html">Ru</a>
</p>
<div id="banner">
<img class="sp_thumb" src="images/sp3.png" alt="spooky puffy 3">
<img class="sp_thumb" src="images/sp1.png" alt="spooky puffy 1">

View File

@ -7,9 +7,9 @@
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="alternate" type="application/rss+xml" href="https://webzine.puffy.cafe/atom.xml">
<meta property="og:title" content="Número especial de OpenBSD webzine: OctOpenBSD">
<meta property="og:title" content="Número especial de OpenBSD webzine: OctOpenBSD 2023">
<meta property="og:description" content="Webzine creada por voluntarios apasionados por el proyecto de desarrollo OpenBSD.">
<meta property="og:url" content="https://webzine.puffy.cafe/issue-special-octopenbsd-2023.html">
<meta property="og:url" content="https://webzine.puffy.cafe/es-issue-16-special-octopenbsd-2023.html">
<meta property="og:image" content="https://webzine.puffy.cafe/images/ob-wz-monochrome-fs8.png" name="image">
<meta property="og:type" content="website">
<meta property="og:locale" content="en_EN">
@ -546,6 +546,12 @@ hr {
<div id="mag">
<p style="text-align: center; word-spacing: 5px;">
<a href="issue-16-special-octopenbsd-2023.html">En</a>
Es
<a href="ru_issue-16-special-octopenbsd-2023.html">Ru</a>
</p>
<div id="banner">
<img class="sp_thumb" src="images/sp3.png" alt="spooky puffy 3">
<img class="sp_thumb" src="images/sp1.png" alt="spooky puffy 1">

View File

@ -0,0 +1,910 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="alternate" type="application/rss+xml" href="https://webzine.puffy.cafe/atom.xml">
<meta property="og:title" content="Специальный выпуск OpenBSD webzine: OctOpenBSD 2023">
<meta property="og:description" content="Webzine created by volunteers who are passionate about the OpenBSD project development.">
<meta property="og:url" content="https://webzine.puffy.cafe/ru_issue-16-special-octopenbsd-2023.html">
<meta property="og:image" content="https://webzine.puffy.cafe/images/ob-wz-monochrome-fs8.png" name="image">
<meta property="og:type" content="website">
<meta property="og:locale" content="ru_RU">
<meta name="author" content="Solène Rapenne, Tomáš Rodr">
<title>Специальный выпуск OpenBSD Webzine</title>
<style>
@font-face {
font-family: "atari";
src: url("atari.ttf");
}
html, body {
background:white;
font-family: serif;
font-size: 1.1em;
}
h1 {
font-size: 3em;
text-align:center;
margin-bottom:0;
}
h1 a {
padding:.1em;
text-decoration-line: none;
color: black
}
h1 a:hover {
color: white;
background: black;
}
h1 span {
border-bottom:3px solid black;
}
h2 {
text-align: left;
}
#mag {
max-width:1150px;
margin: auto;
box-shadow:5px 5px black;
border-left:3px solid black;
padding: 2em;
}
.sp_thumb {
border:5px solid black;
display:inline-block;
/*max-width:30%;*/
width: 30%;
}
#mini {
margin: auto;
text-align: center;
}
#mini h2 {
text-align: center;
}
.mini {
max-width:38%;
display:inline-block;
border: 2px solid black;
padding:.3em;
margin:1em;
}
.mini li {
text-align: left;
}
#banner {
border-top:double .2em black;
border-bottom:double .2em black;
padding-top:1em;
text-align:center;
margin-top:12em;
margin-bottom:12em;
background: black;
color: white;
padding:1em;
}
#banner p {
text-align:right;
}
#banner a {
color: black;
text-decoration-line: underline;
text-decoration-style: double;
}
#banner a:hover {
color: white;
}
.issue {
display: block;
float: left;
}
#banner h2 {
text-align:left;
}
li {
list-style-type: square;
margin-bottom:.5em;
}
a {
color: black;
}
a:hover {
color:white;
background: black;
}
p {
line-height:1.5;
text-align:justify;
padding-left:.5em;
padding-right:.7em;
}
#toc p {
text-align:center;
margin:1em;
margin-bottom:.5em;
text-transform: uppercase;
font-weight: bold;
font-family: monospace;
font-size:1.1em;
}
#toc .details {
text-align: left;
font-weight: normal;
font-family: monospace;
margin-left: 4em;
font-size: 1em;
}
.ams a {
color: white;
}
.ams a:hover {
color: black;
background: white;
}
.details span {
font-weight: normal;
text-transform: none;
}
#toc .motto {
font-weight: normal;
font-family: monospace;
font-size:.9em;
margin:0;
}
#toc h2 {
text-align: center;
}
#toc ul {
margin-left:7em;
margin-top:4em;
margin-bottom:4em;
}
#toc li {
margin-bottom:1em;
list-style-type: none;
font-family: monospace;
}
#toc li a {
text-transform: uppercase;
font-family: monospace;
font-size:1.1em;
font-weight:bold;
text-decoration: none;
}
.motto {
text-align: center;
font-size:.8em;
}
#ad {
font-size:3em;
margin-bottom: 0;
margin-left:2em;
}
#cyber {
color: white;
background: black;
}
#cyber p {
padding-left:3em;
padding-right:3.5em;
}
#cyber .by {
background:white;
color: black;
max-width:95%;
}
#cyber h2 {
font-size: 3em;
color: white;
padding:.5em;
font-family: atari;
}
.ams {
background: black;
color: white;
}
h3 {
clear:both;
}
.ams img {
filter:invert(100%);
}
#gaming h3 {
margin-top:3em;
}
pre {
margin-left:2em;
overflow: scroll;
}
img {
display: block;
margin:auto;
max-width:99%;
border:3px solid black;
filter:grayscale(100%);
}
img:hover {
filter: grayscale(0%);
}
code {
background: black;
color: white;
padding:.3em;
}
article {
padding-top:1em;
padding-bottom:1em;
}
.author {
font-style:italic;
font-family:serif;
}
.by {
font-family: monospace;
margin-right:1em;
}
h3 {
margin:0;
margin-top:1em;
background:black;
padding:.3em;
color:white;
}
.spookystory {
font-style: italic;
font-size:.9em;
text-align: justify;
}
.octopus {
border:0;
max-width:33%;
float:right;
margin-left:1em;
margin-bottom: 1em;
}
.fll {
float:left;
margin-right:1em;
margin-bottom:1em;
}
.mono {
font-family: monospace;
}
#tales h2 {
text-align: center;
font-weight: normal;
font-size:2.5em;
margin-bottom: 2em;
}
#tales span {
font-size:.8em;
}
#s74 h2 {
font-size:7em;
text-align: center;
font-family:sans;
}
#s74 h4 {
margin-left:1em;
}
#gaming h2 {
font-size: 4em;
}
.surr {
border: none;
}
hr {
clear:both;
}
.code {
background:black;
color:white;
max-width:88%;
padding:.3em;
}
#unix_surrealism h2 {
display:none;
}
#octopen {
float: left;
margin:0;
padding:0;
font-weight:normal;
font-size:3em;
margin-right:.3em;
}
#intro {
max-width: 32em;
margin-bottom:2em;
}
#xconsole h2 {
text-align: center;
font-size:4.5em;
font-weight:normal;
font-family:monospace;
}
#xconsole h4 {
font-family:monospace;
font-size: 1.5em;
margin:0;
margin-top:2em;
margin-left:2em;
font-weight:normal;
}
#hands {
background: white;
color: black;
text-align: center;
font-weight:normal;
font-size:2em;
}
.double {
border:0;
border-bottom: double .2em black;
clear:both;
margin-top:3em;
margin-bottom:3em;
}
#links ul {
display: block;
}
#links li {
margin-bottom: .5em;
max-width:60%;
display:block;
}
#links h2 {
background: black;
color: white;
padding:.3em;
margin-bottom: 0;
}
#matto h2 {
font-weight: normal;
font-size: 2.5em;
text-align: center;
color: white;
background: black;
padding: .5em;
margin-bottom:0;
padding-top:1em;
padding-bottom:1em;
}
#matto h3, #xconsole h3 {
font-weight: normal;
background: white;
color: black;
font-size:1.5em;
margin:0;
margin-top:1em;
}
#matto pre {
color: white;
background: black;
padding:.3em;
}
#matto .mono {
margin:2em;
}
.hallo {
margin-top:14em;
}
@media only screen and (max-width: 640px) {
body {
width: 98%;
margin:auto;
}
#intro {
max-width:100%;
}
#ad {
margin-left:.5em;
}
#toc ul {
margin-left: 1em;
}
#links li {
max-width: 100%;
}
#links ul {
margin:0;
padding:0;
margin:auto;
}
.octopus {
float: none;
max-width: 100%;
margin:auto;
}
.fll {
float: left;
max-width:30%;
margin-right:1em;
margin-bottom:.5em;
}
.extra {
display: none;
}
.sp_thumb {
width: 24%;
}
#mag {
padding: 1em;
}
.mini {
max-width:95%;
}
}
.permalink::before { content: "↗ "; }
.permalink { display: inline-block; }
#toc .license { font-family: serif; font-weight: normal; font-size: .8em; margin:0; }
#toc .license em { text-transform: none;}
#license {margin-top:6em; margin-bottom: 2em;}
</style>
</head>
<body>
<div id="mag">
<p style="text-align: center; word-spacing: 5px;">
<a href="issue-16-special-octopenbsd-2023.html">En</a>
<a href="es_issue-16-special-octopenbsd-2023.html">Es</a>
Ru
</p>
<div id="banner">
<img class="sp_thumb" src="images/sp3.png" alt="Фрагмент чёрно-белой фотографии иглобрюхой рыбы">
<img class="sp_thumb" src="images/sp1.png" alt="Фрагмент чёрно-белой фотографии иглобрюхой рыбы">
<img class="sp_thumb" src="images/sp2.png" alt="Фрагмент чёрно-белой фотографии иглобрюхой рыбы">
<p>October 31st, 2023</p>
</div>
<article id="intro">
<h2 id="octopen">OctOpenBSD</h2>
<p class="mono">это месяц, посвященный операционной системе OpenBSD, её использованию, который был официально объявлен Solène 1<sup>-го</sup> октября. В рамках этого мероприятия всем желающим предлагалось делиться своим опытом использования OpenBSD. Это было немного провокационно, поскольку не было объявлено чем всё это должно закончиться. Прошло четыре недели с начала OctOpenBSD и этот специальный выпуск OpenBSD Webzine является кульминацией данного события. На волне популярных октябрьских мероприятий, таких как inktober или spooktober, перед запуском OctOpenBSD было шутливое предложение сделать специальный выпуск вебзина в конце месяца, приуроченный к Хэллоуину. И хотя идея была крайне интересной, но всё в итоге пришло к популяризации OpenBSD и, как следствие, её побратимов-демонов. В то время, как на окраинах свободного и открытого киберпространства все еще витают опьяняющие идеи использования BSD-систем, пользователи, чьи пути пересеклись с шипастыми рыбами, демонами и стрекозами, уже давно под властью их чар и редко оглядываются назад. В этом специальном выпуске вы можете найти что-то новое, полезное, забавное или пугающее, а, возможно, вы откроете для себя новых авторов или проекты, за которыми интересно будет следить. Плаваете ли вы непосредственно вместе с иглобрюхой рыбой или просто наблюдаете издали, сидя на спине пингвина, этот выпуск для всех вас: хакеры, техномаги, любители и ветераны кибервойн. Надеемся, что этот выпуск вам понравится. Ну и как всегда: RUNBSD.</p>
</article>
<hr class="double">
<p class="mono motto"><a href="https://bsd.network/@solene/111245934085536379" class="permalink">solene</a>: "Это OctOpenBSD!" (en)</p>
<hr class="double">
<article id="toc">
<h1><a href="https://webzine.puffy.cafe"><span><i>Open</i>BSD</span> Webzine</a></h1>
<p>Специальный выпуск OctOpenBSD</p>
<p class="motto"><em>"Рыба явилась ко мне во сне"</em></p>
<ul>
<li><a href="#s74">7.4</a></li>
<li><a href="#tales">Сказки из аквариума</a></li>
<li><a href="#matto">MFS</a>, matto</li>
<li><a href="#xconsole">xconsole</a>, prahou</li>
<li><a href="#gaming">игры на OpenBSD</a>, thfr, op</li>
<li><a href="#cyb">CYBFARM</a>, z3bra</li>
<li><a href="#ad">Шоу Lispy Gopher</a>, screwtape</li>
<li><a href="#unix_surrealism">unix_surrealism</a></li>
<li><a href="#links">Что почитать еще</a></li>
</ul>
<p class="details">Изображения в заголовке : <span>Три фотографии Puffy от prahou</span></p>
<div id="license">
<p class="license">Solène Rapenne, Tomáš Rodr</p>
<p class="license">Перевод :<br> quobit (Испанский), continue (Русский)</p>
<p class="license">Содержимое распространяется под лицензией <a class="permalink" href="https://creativecommons.org/licenses/by/4.0/legalcode">CC-BY-4.0</a>.</p>
<p class="license">Авторские тексты и иллюстрации распространяются под собственными лицензиями.</p>
<p class="license"><em>Большое спасибо всем, кто принимал участие в создании этого специального выпуска.</em></p>
<p class="license"><a class="permalink" href="https://webzine.puffy.cafe/atom.xml">ATOM лента</a></p>
</div>
</article>
<hr class="double">
<article id="s74">
<h2>7.4</h2>
<h3>Обновления -stable (с предыдущего выпуска)</h3>
<img src="images/74.png" alt="девушка и puffy" class="surr octopus">
<h4>001 (для всех архитектур)</h4>
<p>Исправление нескольких ошибок валидации ввода в X сервере.</p>
<ul>
<li><a href="https://cdn.openbsd.org/pub/OpenBSD/patches/7.4/common/001_xserver.patch.sig" class="permalink">001</a></li>
</ul>
<h4>002 (для всех архитектур)</h4>
<p>Сетевой пакет, который нужно разбить на части определённой длины, мог спровоцировать падение ядра.</p>
<ul>
<li><a href="https://cdn.openbsd.org/pub/OpenBSD/patches/7.4/common/002_msplit.patch.sig" class="permalink">002</a></li>
</ul>
</article>
<hr class="double">
<article id="tales">
<h2><em>Страшные</em> сказки <br>из <br>аквариума <br><span>(и не только)</span></h2>
<img src="images/octopus.png" alt="puffy в виде осьминога" class="octopus fll">
<p class="spookystory">ghane: Загружаю свой Thinkpad X220 после того, как несколько недель им не пользовался.
Обычно все заканчивается быстрее...
Я уже начинаю волноваться: "Почему до сих пор не загрузился?".
И тогда вывод от fsck заполняет весь экран очищенными inodes и тому подобным.
Паника начинает нарастать.
Вот и конец моему SSD?
Все мои данные, для которых я не сделал резервную копию!
Все исходные коды проектов на нём...
(Конечно, у меня есть git-зеркала, но они могли быть не актуализированы последними изменениями.)
Паника продолжает нарастать и засасывать меня в свой водоворот!
Наконец машина стартовала. Я смог войти в систему.
Файлы выглядят нормально и после двукратной проверки оказалось, что все проблемы были локализованы в /tmp и /var.
Я начинаю успокаиваться, но тут начинаю вспоминать, что в тот раз я отправил ноутбук в гибернацию с несколькими важными открытыми вкладками в firefox.
В режиме приватного просмотра.
Их конечно уже не вернуть... но всё могло быть намного хуже.
</p>
<p class="spookystory"><a class="permalink" href="https://mastodon.sdf.org/@gnemmi">gnemmi</a>:
Когда я купил Thinkpad E490, с которого сейчас пишу это, Dragonfly не загружался на нём из-за дважды необработанной ошибки в ACPI (обычно к этому приводит рекурсия в стеке) из-за ошибки в AML.
Я рассказал об этом Диллону, а он заставил пройтись "адрес за адресом в памяти" в поисках символов, похожих на <a class="permalink" href="https://apollo.backplane.com/DFlyMisc/noob237.txt">функции</a>.
Он придумал <a class="permalink" href="https://gitweb.dragonflybsd.org/dragonfly.git/commit/d9bb5dfdc3905237fb704584b71c9e0a9627656c">патч</a> с которым я смог загрузить свой новых Thinkpad!
И всё это было сделано из syscons!
</p>
<p class="spookystory"><a href="https://masto.ai/@simondassow" class="permalink">simon</a>: Много, много лет назад я доводил до ума драйвер bge на OpenBSD что бы пробросить IPMI...</p>
<p class="spookystory">анонимный пользователь BSD: Однажды ночью я пытаюсь подключиться по SSH к моему внешнему IP адресу и получаю предупреждение о ключе SSH! <b>У меня паника: меня взломали!</b> Но это оказался всего лишь мой провайдер, у которого оптоволоконный модем (медиаконвертер) из-за неправильной настройки удалённого интерфейса администрирования забирал себе ssh трафик. В общем, я попадал по ssh в совершенно в другое устройство на моем собственном IP!</p>
<p class="spookystory"><a href="https://hachyderm.io/@miah" class="permalink">miah</a>: Когда-то давно, мы с другом устанавливали NetBSD на старое железо Apple. Мы справились с установкой, загрузили его, но... сеть не работала. ЧЗХ? Почесав тыквы и осмотрев <b>всё</b> мы обнаружили, что в системе была установлена дата, <b>предшествующая</b> времени UNIX. Мы сбросили аппаратное время до актуальной даты и, внезапно, ... пинги заходили!
</p>
<p class="spookystory"><a href="https://freeradical.zone/@loop0" class="permalink">loop0</a>: работал с почтовым сервером для провайдера, в котором вдруг, без всякой видимой причины, перестал работать IMAP сервер. Я списал это на повреждение файла разделяемой библиотеки - исправление заключалось в копировании этого файла с другой BSD машины, на которой была запущена та же версия. Но что бы это выяснить мне потребовалось несколько часов, которые я потратил в выходные, в свое нерабочее время. Так получилось, что в тот день я выпил слишком много.
</p>
<p class="spookystory"><a href="https://merveilles.town/d6" class="permalink">esoterik</a>: Запускал netbsd/macppc на старом power macintosh 8600/120. Что бы заработал дисплей мне пришлось перед установкой прописывать OpenFirmware вслепую. С первой попытки у меня не получилось и я подумал, что, возможно, окрипичил машину. В конце концов мне удалось сбросить прошивку и сделать всё правильно, что бы включить дисплей. Машина после этого хорошо послужила, обеспечивая NAT/DHCP/firewall/обмен файлами для моих друзей.</p>
</article>
<hr class="double">
<article id="matto">
<h2 id="ramdisk">Монтирование файловой системы в памяти (Memory File System, MFS) на OpenBSD</h2>
<p class="by">: <a class="permalink" href="https://box.matto.nl">matto</a></p>
<p>Файловая система, расположенная в виртуальной памяти, иногда называется "RAM-диск". MFS живёт только в памяти и, когда она размонтируется, содержимое файловой системы теряется.</p>
<h3>Заполнение MFS</h3>
<p>OpenBSD поддерживает очень интересную опцию монтирования MFS - "-P".</p>
<p>В странице руководства (man) она описывается как "-P file". Вот что говорит нам эта страница:</p>
<p class="mono">
Если в качестве file указана директория, то создаваемая mfs будет<br>
заполнена содержимым этой директории. Если в качестве file задано<br>
блочное устройство, то создаваемая mfs будет заполнена содержимым<br>
файловой системы FFS, расположенной на устройстве.
<p>Перед монтированием MFS вы формируете содержимое дерева директорий и вызываете команду mount_mfs с флагом "-P", указывая на корень. MFS монтируется с уже заполненными данными из указанной директории.</p>
<h3>Задание размера MFS</h3>
<p>Опция "-s" используется для задания размера MFS. Эта опция задает максимальный объем RAM, который может использовать MFS. Размер задается в секторах, которые, обычно, занимают 512 байт. Так, например, что бы смонтировать 10 мегабайт MFS необходимо задать размер 20480.</p>
<h3>Монтирование MFS</h3>
<p>Как обычно, для монтирования нам необходимо указать устройство. Для MFS мы будем использовать swap. Допустим у нас уже есть дерево директорий в нашей системе с путём "/proto/test" и нам нужна MFS размером 10 мегабайт, смонтированная в /mnt.</p>
<p>Для нашего случая команда монтирования будет такой:</p>
<pre>mount_mfs -o rw -s 20480 -P /proto/test swap /mnt</pre>
<p>Или такая строка в /etc/fstab:</p>
<pre>swap /mnt mfs rw,-P=/proto/test,-s=20480 0 0</pre>
<h3>Читайте руководство</h3>
<p>У монтирования MFS много опцией. Страница руководства (man) для mount_mfs очень информативная. Прочитайте её.</p>
<h3>Для чего это может пригодиться</h3>
<p>MSF полезна для систем с хранилищем только для чтения или систем, которые, например, запускаются с SD-карты. Можно сильно уменьшить количество операций записи на SD-карту. Например директория /var/log для одноплатных компьютеров, таких как Raspberry Pi, может быть смонтирована в MFS. Мы можем подготовить минимальное дерево каталогов в /proto/var/log, а затем смонтировать его с использованием MFS с опцией -P.</p>
<p>Строка в /etc/fstab будет выглядеть как-то так:</p>
<pre>swap /var/log mfs rw,nosuid,noexec,-P=/proto/var/log,-i=128,-s=16384 0 0</pre>
<p>Другим примером может служить небольшая домашняя директория, например содержащая .ssh/authorized_keys. Опять же, монтирование ее с использованием MFS предотвратит попадание на диск любого изменения в ней.</p>
<p>Но в более экзотических случаях вы можете держать домашнюю директорию своего ноутбука в MFS. Вы можете подготовить все конфигурационные файлы в прото-директории, которая станет шаблоном заполнения данных при монтировании домашней директории с использованием MFS. В результате вы будете начинать всё с чистого листа каждую загрузку.</p>
</article>
<hr class="double">
<article id="xconsole">
<h2>xconsole</h2>
<p class="by">: <a class="permalink" href="https://triapul.cz">prahou</a></p>
<p>В адрес <code>xconsole(1)</code> часто прилетают лучи незаслуженной ненависти от пользователей OpenBSD, составляющих руководства по настройке рабочего стола. Нередко можно встретить что-то вроде: <em>"ну а теперь давайте избавимся от этой уродливой консоли"</em>; но мне бы хотелось реабилитировать xconsole и предложить вам превратить её в минималистичный центр сообщений.</p>
<p>Главное, что необходимо знать - любой вывод, перенаправленный в <code>/dev/console</code>, будет отображён в окне xconsole:</p>
<pre class="code">$ print "hi, xconsole" &gt;/dev/console</pre>
<p>Возможно, уже становится очевидным, как можно это использовать.</p>
<h3>Настройка</h3>
<p>Если вы используете xenodm, который сам запускает xconsole, то её внешний вид можно настроить опциями в <code>/etc/X11/xenodm/Xsetup_0</code>. А если вы запускаете xconsole вручную, например с использованием .xsession, то её можно настроить с использованием файла .Xresources (и выполнив xrdb -merge ~/.Xresources) после входа в систему, но до непосредственного запуска xconsole.</p>
<h4>Автоматический запуск xconsole после входа пользователя:</h4>
<pre class="code">..
# .xsession
xrdb -merge ~/.Xresources
xconsole &
..</pre>
<pre class="code">..
!Xresources
xconsole*background : pink
xconsole*foreground : black
..</pre>
<h4>Ручной запуск xconsole:</h4>
<p>Команда для запуска xconsole с оранжевым фоном, белым текстом и растровым шрифтом fixed-20.</p>
<pre class="code">$ xconsole -fn -misc-fixed-medium-r-*-*-20-*-*-*-*-*-iso10646-1 -bg orange -fg white</pre>
<h3>Ещё немного простых примеров</h3>
<h4>Компаньон cwm</h4>
<p>Печать текущей температуры CPU по нажатию Super+W:</p>
<pre class="code"># script
#!/bin/sh
echo "The CPU temperature is: $(sysctl -n hw.sensors.cpu0.temp0)" &gt;/dev/console</pre>
<pre class="code"># .cwmrc
bind-key 4-w /path/to/script</pre>
<h4>Новая электронная почта</h4>
<p>Можно уведомлять о приёме новых сообщений, если клиент электронной почты поддерживает запуск произвольной команды по этому событию. Например в клиенте Mutt, с использованием Muttrc, можно настроить выполнение скрипта:</p>
<pre class="code"># script
#!/bin/sh
echo "$(date +%H:%M) New mail!" &gt;/dev/console</pre>
<pre class="code"># Muttrc
set new_mail_command = "/path/to/previous/script"</pre>
<p>Возможности безграничны. Дайте xconsole шанс.</p>
</article>
<hr class="double">
<article id="gaming">
<img src="images/gaming.png" alt="Puffy с геймпадом" class="octopus">
<h2>Игры на<br> OpenBSD</h2>
<h3>Moonring</h3>
<p class="by">: <a href="https://bsd.network/@thrf" class="permalink">thfr</a></p>
<p>Moonring это дань уважения ранним RPG в духе ultima. Игра абсолютно бесплатна в Steam и может быть запущена на OpenBSD с использованием 11 версии пакета love.</p>
<p>Вы можете использовать <code>indierunner</code>, который пока еще находится в стадии альфа тестирования, или просто запустите:</p>
<p><code>$ love-11 moonring.exe</code></p>
<img src="images/thfr.png" alt="скриншот игры moonring">
<ul>
<li><a href="https://store.steampowered.com/app/2373630/Moonring/" class="permalink">Moonring on Steam</a></li>
<li><a href="https://github.com/IndieRunner/IndieRunner/commit/d97816c3da3a42503dc6bb87b1ed518db4ccfe9c" class="permalink">IndieRunner on GitHub</a></li>
</ul>
<h3>godot</h3>
<p class="by">: <a href="https://bsd.network/@op" class="permalink">op</a></p>
<p>Благодаря <a href="https://bsd.network/@thfr" class="permalink">thfr</a> мы продвигаемся в работе с godot4 на OpenBSD. После выматывающей борьбы с несовпадениями C++ типов, он уже здесь!</p>
<img src="images/godot.png" alt="скриншот godot на openbsd" class="surr">
<hr>
<p class="mono">Присоединяйтесь к сообществу #openbsd-gaming в IRC на сервере libera.chat!</p>
</article>
<hr class="double">
<article>
<div id="cyber">
<h2 id="cyb">CYB3R HUNT</h2>
<img src="images/cybfarm.png" alt="cyber hunt">
</div>
<p class="by">: <a href="https://z3bra.org" class="permalink">z3bra</a></p>
<p>Когда правительство решило изолировать всех за-за всемирной пандемии, никто не ожидал, что это продлится дольше нескольких месяцев.</p>
<p>Люди все больше и больше полагались на доставку на дом, а корпорации, в ответ на постоянно растущий спрос, построили самодостаточную сеть автоматизированных ферм и заводов: CYBFARM.</p>
<p>За 10 лет сеть CYBFARM разрослась настолько, что её чрезмерная эксплуатация превратила мир в пустошь. И пока мир становился всё более враждебным, CYBFARM запустила космические корабли на орбиту Земли, начав доставлять туда всё необходимое, тем самым вынудив человечество переселиться в космос.</p>
<p>Для тех, кто застрял на планете, сбор ресурсов с этих хорошо защищенных заводов стал вопросом жизни и смерти. После нескольких лет, проведенных в мусорных контейнерах CYBFARM, хакеры по всей планете начали искать более надежный способ получения пищи и припасов, взламывая их.</p>
<p>Мы называем их CYBER HUNTERS.</p>
<hr>
<p class="mono">CYB3R HUNT это игра, героем которой являетесь вы сами.</p>
<p class="mono">А антиутопичном будущем вы CYBER HUNTER, добывающий провизию на CYBFARM, сети автоматизированных ферм и заводов, управляемых мощным искусственным интеллектом. Разгадывайте головоломки от CYBFARM, зарабатывайте "флаги", что бы обновить свой счёт, и узнавайте историю этого мира по мере прохождения заданий!</p>
<ul>
<li><a href="https://cyb.farm" class="permalink">CYB3R HUNT</a></li>
</ul>
</article>
<hr class="double">
<article>
<h2 id="ad">Это<br> &nbsp; же<br> &nbsp; &nbsp; ШОУ<br> &nbsp; LISPY <br> GOPHER!</h2>
<img src="images/lispy2.png" alt="шоу lispy gopher" class="ad pic surr">
<h3 id="hands">Две руки помощи от BSD:<br>inetd и gophernicus</h3>
<p class="by">: <a href="https://mastodon.sdf.org/@screwtape" class="permalink">screwtape</a></p>
<p>Сетевые технологии трудно понять. Американские горки без ограничителя безопасности. И строишь их ты сам, и на первую поездку отправишься тоже ты и все, кого ты любишь. И у тебя нет возможности отказаться.</p>
<p>К счастью, я на собственном опыте убедился, насколько хороша OpenBSD. На всех BSD системах inetd(8) (интернет супер-сервер) уже является ожидаемой нормой, он берёт на себя всю грязную работу сетевого взаимодействия, обеспечивает ограничения по скорости, выясняет какое соединение кто будет обрабатывать и что для этого запустить. В этом контексте мой друг Paul Someone еще является пионером и делится <a href="https://codeberg.org/pkw/web" class="permalink">сетевым утилитами</a> на lisp для OpenBSD. Совместная разработка и доступная безопасность это те правила, которые привели к созданию безопасного, надёжного и полнофункционального gopher-сервера gophernicus(1) (в который внедрено использование pledge(2) и unveil(2)).</p>
<p>У меня возникли трудности с использованием UTF-8 и что я только не делал... Сообщение из списка рассылки подсказало мне, что я выставляю локаль слишком поздно, и я на практике убедился, что это правда. Приятно почувствовать себя наполовину компетентным с моим pf.conf(5), окунувшись в среду обмена знаниями и доступных безопасности и силы.</p>
<p>И это касается не только OpenBSD. Если уж на то пошло, то сопоставление идущего с NetBSD bozohttpd(8) и httpd(8) из OpenBSD позволило мне довольно хорошо освоиться с httpd(8), а также генту-образное руководство установки FreeBSD c <em>Итак, вы хотите Х</em> (и OpenBSD для слабонервных). Собственно, это помогло мне портировать на OpenBSD скрипты сборки виртуальной машины maiko от interlisp, один из которых уже существовал для FreeBSD. Так что можно сказать, что BSD это команда (со своими трудностями, различиями и разногласиями), которая формирует климат lispy gopher (SDF, где и происходит всё волшебство, буквально использует NetBSD).</p>
<hr>
<p class="mono">screwtape - ведущий шоу "Lispy Gopher" на aNONradio, выходящее в эфир каждую среду в 0UTC.</p>
<ul>
<li><a class="permalink" href="https://anonradio.net">aNONradio.net (en)</a></li>
<li><a class="permalink" href="https://archives.anonradio.net/#screwtape">архивы aNONradio (en)</a></li>
<li><a class="permalink" href="gopher://gopher.club/1/users/screwtape">[gopher] блог ~screwtape на gopher.club (en)</a></li>
</ul>
</article>
<hr class="double">
<article id="mini">
<div class="mini ams">
<h2>openbsd<br>.amsterdam</h2>
<img src="images/amsterdam.png" alt="логотип openbsd.amsterdam с монохромной классической puffy." class="surr">
<p>Хотите испытать удобство администрирования собственного сервера, но нет своего железа? Попробуйте VPS от openbsd.amsterdam!</p>
<ul>
<li><a href="https://openbsd.amsterdam" class="permalink">openbsd.amsterdam</a></li>
</ul>
</div>
<div class="mini">
<h2 id="jouwbuis">jouwbuis.nl</h2>
<img src="images/cloudtube.png" class="surr" alt="логотип cloudtube в виде нескольких окон с видео (логотип play), каждое следущее расположенно немного выше">
<p class="by">: <a href="https://exquisite.social/@h3artbl33d" class="permalink">h3artbl33d</a></p>
<p>Jouwbuis - это альтернативный фронтенд для YouTube, который уважает вашу конфиденциальность и не показывает рекламу. Он запущен и спонсируется голландским активистом h3artbl33d и может быть использован всеми желающими. Jouwbuis работает на базе CloudTube. Спасибо и приятного просмотра!</p>
<ul>
<li><a class="permalink" href="https://jouwbuis.nl/">jouwbuis.nl</a></li>
</ul>
</div>
<div class="mini">
<h2 id="technomage">analognowhere.com</h2>
<img src="images/technomagemini.png" alt="девушка-техномаг" class="surr">
<p class="by">: <a href="https://merveilles.town/@prahou" class="permalink">prahou</a></p>
<p>Вдохновлённый BSD сюрреализм, повествующий о приключениях Techno-Mage из клана Open в загадочном мире Analog Nowhere.</p>
<ul>
<li><a href="https://analognowhere.com" class="permalink">analognowhere.com</a></li>
</ul>
</div>
<div class="mini ams">
<h2 id="cybernuk">cybernuk.es</h2>
<img src="images/cybernuk-logo.png" class="surr" alt="cybernuk.es logo of a pen inside the nuclear sign">
<p class="by">: <a href="https://exquisite.social/@h3artbl33d" class="permalink">h3artbl33d</a></p>
<p>Пентест сети. Альтернативные фронтенды, ориентированные на приватность, и экземпляр SearXNG.<p>
<p>Хостится в Нидерландах, логирование полностью выключено.</p>
<ul>
<li><a href="https://cybernuk.es/" class="permalink">cybernuk.es</a></li>
</ul>
</div>
</article>
<hr class="double">
<article id="unix_surrealism">
<h2>unix_surrealism</h2>
<img src="images/unix_surrealism.png" alt="unix_surrealism" class="surr">
<img src="images/thedaemon8.png" alt="puffy в виде осьминога кликает мышкой перед монитором" class="surr">
<p class="mono">Puffy в виде осьминога кликает мышкой перед монитором</p>
<p class="by">: <a href="https://thedaemons.space">thedaemon</a></p>
<hr>
<img src="images/technomage.png" alt="techno-mage">
<p class="mono">маленькие демоны доставляют компьютерный компонент по руке девушки</p>
<p class="by">: <a href="https://merveilles.town/@prahou" class="permalink">prahou</a></p>
<hr>
<p>Создаете искусство, вдохновлённое BSD? Поделитесь им с миром в unix_surrealism!</p>
<ul>
<li><a href="https://lemmy.sdf.org/c/unix_surrealism" class="permalink">[lemmy] unix_surrealism</a></li>
</ul>
</article>
<hr class="double">
<article id="links">
<h2>Что почитать еще</h2>
<img src="images/veronika.png" class="surr octopus" alt="черно-беая veronika с наклейкой run bsd на плече">
<ul>
<li><a class="permalink" href="https://www.youtube.com/@EuroBSDcon/videos">EuroBSDCon 2023: Все видео (en)</a></li>
<li><a class="permalink" href="https://2023.eurobsdcon.org/slides/">EuroBSDCon 2023: Все слайды (en)</a></li>
<li><a class="permalink" href="https://www.openbsd.org/papers/eurobsdcon2023-espie-cache.pdf">EuroBSDCon 2023: презентация espie@ о pkg_add (en)</a></li>
<li><a class="permalink" href="https://www.openbsd.org/papers/eurobsdcon2023-kn-installer.pdf">EuroBSDCon 2023: презентация kn@ об инсталляторе OpenBSD (en)</a></li>
<li><a class="permalink" href="https://www.openbsd.org/papers/eurobsdcon2023-bluhm-mitigations.pdf">EuroBSDCon 2023: презентация @bluhm обо всех мерах безопасности, доступных в OpenBSD (en)</a></li>
<li><a class="permalink" href="https://www.openbsd.org/papers/eurobsdcon2023-matthieu-wayland-openbsd.pdf">EuroBSDCon 2023: Первые шаги Wayland Compositor на OpenBSD (en)</a> от matthieu@</li>
<li><a class="permalink" href="https://www.tumfatig.net/2023/using-openbsd-relayd8-as-an-application-layer-gateway/">Использование relayd(8) из OpenBSD в качестве шлюза прикладного уровня (en)</a></li>
<li><a class="permalink" href="https://www.cambus.net/openbsd-arm64-on-hetzner-cloud/">OpenBSD/arm64 в Hetzner Cloud (en)</a> от fcambus@</li>
<li><a class="permalink" href="https://vincentdelft.be/post/post_20230821">Удобное шифрование файлов в OpenBSD (en)</a></li>
<li><a class="permalink" href="https://si3t.ch/w/doku.php?id=ah:en:start">Self-host на OpenBSD (en)</a></li>
<li><a class="permalink" href="https://www.henryleach.com/2023/10/installing-openbsd-on-a-hp-stream-11-laptop">Установка OpenBSD на ноутбук HP Stream 11 (en)</a></li>
<li><a class="permalink" href="https://undeadly.org/cgi?action=article;sid=20230925061225">План перехода к ROP-free для i386/armv8/riscv64/alpha/sparc64 (en)</a></li>
<li><a class="permalink" href="https://marc.info/?l=openbsd-tech&m=169693428827975&w=2">malloc: более информативные сообщения об ошибках записи в освобождённую память (write-after-free) с опцией D (en)</a></li>
<li><a class="permalink" href="https://undeadly.org/cgi?action=article;sid=20231024064619">Встроенное средство обнаружения утечек памяти в OpenBSD (en)</a></li>
<li><a class="permalink" href="https://undeadly.org/cgi?action=article;sid=20231005080904">Фильтр электронной почты на C (en)</a></li>
<li><a class="permalink" href="https://si3t.ch/log/2023-10-02-octopenbsd-server.txt">What do I do with OpenBSD? (server)</a>, на ФРАНЦУЗСКОМ!</li>
<li><a class="permalink" href="https://si3t.ch/log/2023-10-02-octopenbsd-desktop.txt">What do I do with OpenBSD? (workstation)</a>, на ФРАНЦУЗСКОМ!</li>
</ul>
</article>
<hr class="double">
<p class="motto"><em>"Напевая из книги о кибервойнах."</em></p>
</div>
<img src="images/halloween.png" class="hallo surr" alt="Девушка и Puffy переодетые друг в друга позируют для фотографии">
</body>
</html>