<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://anisimov1988.ru/mm/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mih</id>
	<title>test - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="https://anisimov1988.ru/mm/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mih"/>
	<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/Mih"/>
	<updated>2026-07-21T20:46:17Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=30</id>
		<title>Видимость символов, статическая, динамическая линковка</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=30"/>
		<updated>2026-07-01T17:45:14Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Объектные файлы (relocatable). Статические библиотеки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Посмотреть таблицу символов (используется при линковке, во время сборки):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objdump -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Посмотреть динамическую таблицу символов (используется в рантайме динамическим линкером):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objdump -T&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Объектные файлы (relocatable). Статические библиотеки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line&amp;gt;&lt;br /&gt;
int reloc_global_without(int b) {&lt;br /&gt;
    return b + 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int reloc_static_without(int b) {&lt;br /&gt;
    return b + 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int __attribute__((visibility (&amp;quot;hidden&amp;quot;))) reloc_global_hidden(int b) {&lt;br /&gt;
    return reloc_static_without(b) + 3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int __attribute__((visibility (&amp;quot;default&amp;quot;))) reloc_global_default(int b) {&lt;br /&gt;
    return b + 4;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
разобрать:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
clang reloc.c -c&lt;br /&gt;
&lt;br /&gt;
objcopy --globalize-symbol=reloc_static_without reloc.o&lt;br /&gt;
objcopy --localize-symbol=reloc_static_without reloc.o&lt;br /&gt;
&lt;br /&gt;
clang reloc.c -c -fvisibility=hidden&lt;br /&gt;
&lt;br /&gt;
clang reloc.o main.c -o main&lt;br /&gt;
&lt;br /&gt;
meson and CMake:&lt;br /&gt;
CMake default without hidden flag&lt;br /&gt;
meson default without hidden flag&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
meson setup build_meson&lt;br /&gt;
meson compile -C build_meson --verbose&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
cmake link.txt compile_commands.json&lt;br /&gt;
meson compile_commands.json&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Динамические библиотеки (shared objects) ==&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://gcc.gnu.org/wiki/Visibility Дока gcc];&lt;br /&gt;
* [https://cs.dartmouth.edu/~sergey/cs258/ABI/UlrichDrepper-How-To-Write-Shared-Libraries.pdf Статья про динамические либы (UlrichDrepper)];&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=29</id>
		<title>Видимость символов, статическая, динамическая линковка</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=29"/>
		<updated>2026-07-01T17:35:26Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Объектные файлы (relocatable). Статические библиотеки */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Посмотреть таблицу символов (используется при линковке, во время сборки):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objdump -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Посмотреть динамическую таблицу символов (используется в рантайме динамическим линкером):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objdump -T&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Объектные файлы (relocatable). Статические библиотеки ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line&amp;gt;&lt;br /&gt;
int reloc_global_without(int b) {&lt;br /&gt;
    return b + 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int reloc_static_without(int b) {&lt;br /&gt;
    return b + 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int __attribute__((visibility (&amp;quot;hidden&amp;quot;))) reloc_global_hidden(int b) {&lt;br /&gt;
    return reloc_static_without(b) + 3;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int __attribute__((visibility (&amp;quot;default&amp;quot;))) reloc_global_default(int b) {&lt;br /&gt;
    return b + 4;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Динамические библиотеки (shared objects) ==&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://gcc.gnu.org/wiki/Visibility Дока gcc];&lt;br /&gt;
* [https://cs.dartmouth.edu/~sergey/cs258/ABI/UlrichDrepper-How-To-Write-Shared-Libraries.pdf Статья про динамические либы (UlrichDrepper)];&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=28</id>
		<title>Видимость символов, статическая, динамическая линковка</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=28"/>
		<updated>2026-07-01T17:30:46Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Посмотреть таблицу символов (используется при линковке, во время сборки):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objdump -t&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Посмотреть динамическую таблицу символов (используется в рантайме динамическим линкером):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
objdump -T&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Объектные файлы (relocatable). Статические библиотеки ==&lt;br /&gt;
== Динамические библиотеки (shared objects) ==&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://gcc.gnu.org/wiki/Visibility Дока gcc];&lt;br /&gt;
* [https://cs.dartmouth.edu/~sergey/cs258/ABI/UlrichDrepper-How-To-Write-Shared-Libraries.pdf Статья про динамические либы (UlrichDrepper)];&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=27</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=27"/>
		<updated>2026-06-29T18:49:02Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Tun интерфейс */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Виртуалка в подсети хоста, получает адрес от роутера ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
sudo ip link set br0 up&lt;br /&gt;
sudo ip link set enp59s0 master br0&lt;br /&gt;
sudo ip link set enp59s0 up&lt;br /&gt;
sudo dhcpcd br0&lt;br /&gt;
sudo ip tuntap add tap0 mode tap&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
&lt;br /&gt;
sudo ip r del default via 192.168.1.1 dev enp59s0&lt;br /&gt;
sudo ip r del 192.168.1.0/24 dev enp59s0 proto kernel scope link src 192.168.1.13 metric 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 4 -drive file=test.qcow2,format=qcow2 -accel kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:54:00:11:22:33&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вернуть обратно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link set tap0 nomaster&lt;br /&gt;
sudo ip link delete tap0&lt;br /&gt;
sudo ip link set enp59s0 nomaster&lt;br /&gt;
sudo ip link set br0 down&lt;br /&gt;
sudo ip link delete br0&lt;br /&gt;
sudo dhcpcd enp59s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tun интерфейс ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tun0 mode tun&lt;br /&gt;
sudo ip link set tun0 up&lt;br /&gt;
sudo ip addr add 10.0.0.1/24 dev tun0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap del dev tun0 mode tun&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читает пакеты из tun-интерфейса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if_tun.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void print_hex(const unsigned char *buf, size_t len) {&lt;br /&gt;
    for(size_t i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
	    printf(&amp;quot;%02x &amp;quot;, buf[i]);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    printf(&amp;quot;hi\n&amp;quot;);&lt;br /&gt;
    int tun_fd;&lt;br /&gt;
    const char *iface_name = &amp;quot;tun0&amp;quot;;&lt;br /&gt;
    struct ifreq ifr;&lt;br /&gt;
    int ret = 0;&lt;br /&gt;
&lt;br /&gt;
    tun_fd = open(&amp;quot;/dev/net/tun&amp;quot;, O_RDWR);&lt;br /&gt;
    memset(&amp;amp;ifr, 0, sizeof(ifr));&lt;br /&gt;
    strncpy(ifr.ifr_name, iface_name, IFNAMSIZ - 1);&lt;br /&gt;
    ifr.ifr_flags = IFF_TUN | IFF_NO_PI;&lt;br /&gt;
    ret = ioctl(tun_fd, TUNSETIFF, (void*)&amp;amp;ifr);&lt;br /&gt;
    &lt;br /&gt;
    unsigned char buffer[2048];&lt;br /&gt;
    ssize_t bytes_read;&lt;br /&gt;
    while(1) {&lt;br /&gt;
	    bytes_read = read(tun_fd, buffer, sizeof(buffer));&lt;br /&gt;
	    printf(&amp;quot;read %zd bytes\n&amp;quot;, bytes_read);&lt;br /&gt;
	    print_hex(buffer, bytes_read);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    close(tun_fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=26</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=26"/>
		<updated>2026-06-29T18:46:46Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Tun интерфейс */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Виртуалка в подсети хоста, получает адрес от роутера ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
sudo ip link set br0 up&lt;br /&gt;
sudo ip link set enp59s0 master br0&lt;br /&gt;
sudo ip link set enp59s0 up&lt;br /&gt;
sudo dhcpcd br0&lt;br /&gt;
sudo ip tuntap add tap0 mode tap&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
&lt;br /&gt;
sudo ip r del default via 192.168.1.1 dev enp59s0&lt;br /&gt;
sudo ip r del 192.168.1.0/24 dev enp59s0 proto kernel scope link src 192.168.1.13 metric 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 4 -drive file=test.qcow2,format=qcow2 -accel kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:54:00:11:22:33&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вернуть обратно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link set tap0 nomaster&lt;br /&gt;
sudo ip link delete tap0&lt;br /&gt;
sudo ip link set enp59s0 nomaster&lt;br /&gt;
sudo ip link set br0 down&lt;br /&gt;
sudo ip link delete br0&lt;br /&gt;
sudo dhcpcd enp59s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tun интерфейс ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tun0 mode tun&lt;br /&gt;
sudo ip link set tun0 up&lt;br /&gt;
sudo ip addr add 10.0.0.1/24 dev tun0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читает пакеты из tun-интерфейса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if_tun.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void print_hex(const unsigned char *buf, size_t len) {&lt;br /&gt;
    for(size_t i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
	    printf(&amp;quot;%02x &amp;quot;, buf[i]);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    printf(&amp;quot;hi\n&amp;quot;);&lt;br /&gt;
    int tun_fd;&lt;br /&gt;
    const char *iface_name = &amp;quot;tun0&amp;quot;;&lt;br /&gt;
    struct ifreq ifr;&lt;br /&gt;
    int ret = 0;&lt;br /&gt;
&lt;br /&gt;
    tun_fd = open(&amp;quot;/dev/net/tun&amp;quot;, O_RDWR);&lt;br /&gt;
    memset(&amp;amp;ifr, 0, sizeof(ifr));&lt;br /&gt;
    strncpy(ifr.ifr_name, iface_name, IFNAMSIZ - 1);&lt;br /&gt;
    ifr.ifr_flags = IFF_TUN | IFF_NO_PI;&lt;br /&gt;
    ret = ioctl(tun_fd, TUNSETIFF, (void*)&amp;amp;ifr);&lt;br /&gt;
    &lt;br /&gt;
    unsigned char buffer[2048];&lt;br /&gt;
    ssize_t bytes_read;&lt;br /&gt;
    while(1) {&lt;br /&gt;
	    bytes_read = read(tun_fd, buffer, sizeof(buffer));&lt;br /&gt;
	    printf(&amp;quot;read %zd bytes\n&amp;quot;, bytes_read);&lt;br /&gt;
	    print_hex(buffer, bytes_read);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    close(tun_fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=25</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=25"/>
		<updated>2026-06-29T18:46:02Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Tun интерфейс */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Виртуалка в подсети хоста, получает адрес от роутера ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
sudo ip link set br0 up&lt;br /&gt;
sudo ip link set enp59s0 master br0&lt;br /&gt;
sudo ip link set enp59s0 up&lt;br /&gt;
sudo dhcpcd br0&lt;br /&gt;
sudo ip tuntap add tap0 mode tap&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
&lt;br /&gt;
sudo ip r del default via 192.168.1.1 dev enp59s0&lt;br /&gt;
sudo ip r del 192.168.1.0/24 dev enp59s0 proto kernel scope link src 192.168.1.13 metric 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 4 -drive file=test.qcow2,format=qcow2 -accel kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:54:00:11:22:33&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вернуть обратно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link set tap0 nomaster&lt;br /&gt;
sudo ip link delete tap0&lt;br /&gt;
sudo ip link set enp59s0 nomaster&lt;br /&gt;
sudo ip link set br0 down&lt;br /&gt;
sudo ip link delete br0&lt;br /&gt;
sudo dhcpcd enp59s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tun интерфейс ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tun0 mode tun&lt;br /&gt;
sudo ip link set tun0 up&lt;br /&gt;
sudo ip addr add 10.0.0.1/24 dev tun0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читает пакеты из tun-интерфейса:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if_tun.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void print_hex(const unsigned char *buf, size_t len) {&lt;br /&gt;
    for(size_t i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
	printf(&amp;quot;%02x &amp;quot;, buf[i]);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    printf(&amp;quot;hi\n&amp;quot;);&lt;br /&gt;
    int tun_fd;&lt;br /&gt;
    const char *iface_name = &amp;quot;tun0&amp;quot;;&lt;br /&gt;
    struct ifreq ifr;&lt;br /&gt;
    int ret = 0;&lt;br /&gt;
&lt;br /&gt;
    tun_fd = open(&amp;quot;/dev/net/tun&amp;quot;, O_RDWR);&lt;br /&gt;
    memset(&amp;amp;ifr, 0, sizeof(ifr));&lt;br /&gt;
    strncpy(ifr.ifr_name, iface_name, IFNAMSIZ - 1);&lt;br /&gt;
    ifr.ifr_flags = IFF_TUN | IFF_NO_PI;&lt;br /&gt;
    ret = ioctl(tun_fd, TUNSETIFF, (void*)&amp;amp;ifr);&lt;br /&gt;
    &lt;br /&gt;
    unsigned char buffer[2048];&lt;br /&gt;
    ssize_t bytes_read;&lt;br /&gt;
    while(1) {&lt;br /&gt;
	bytes_read = read(tun_fd, buffer, sizeof(buffer));&lt;br /&gt;
	printf(&amp;quot;read %zd bytes\n&amp;quot;, bytes_read);&lt;br /&gt;
	print_hex(buffer, bytes_read);&lt;br /&gt;
	&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    close(tun_fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=24</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=24"/>
		<updated>2026-06-29T18:45:32Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Tun интерфейс */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Виртуалка в подсети хоста, получает адрес от роутера ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
sudo ip link set br0 up&lt;br /&gt;
sudo ip link set enp59s0 master br0&lt;br /&gt;
sudo ip link set enp59s0 up&lt;br /&gt;
sudo dhcpcd br0&lt;br /&gt;
sudo ip tuntap add tap0 mode tap&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
&lt;br /&gt;
sudo ip r del default via 192.168.1.1 dev enp59s0&lt;br /&gt;
sudo ip r del 192.168.1.0/24 dev enp59s0 proto kernel scope link src 192.168.1.13 metric 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 4 -drive file=test.qcow2,format=qcow2 -accel kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:54:00:11:22:33&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вернуть обратно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link set tap0 nomaster&lt;br /&gt;
sudo ip link delete tap0&lt;br /&gt;
sudo ip link set enp59s0 nomaster&lt;br /&gt;
sudo ip link set br0 down&lt;br /&gt;
sudo ip link delete br0&lt;br /&gt;
sudo dhcpcd enp59s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tun интерфейс ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tun0 mode tun&lt;br /&gt;
sudo ip link set tun0 up&lt;br /&gt;
sudo ip addr add 10.0.0.1/24 dev tun0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читает пакеты из tun-интерфейса&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;с&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if_tun.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void print_hex(const unsigned char *buf, size_t len) {&lt;br /&gt;
    for(size_t i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
	printf(&amp;quot;%02x &amp;quot;, buf[i]);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    printf(&amp;quot;hi\n&amp;quot;);&lt;br /&gt;
    int tun_fd;&lt;br /&gt;
    const char *iface_name = &amp;quot;tun0&amp;quot;;&lt;br /&gt;
    struct ifreq ifr;&lt;br /&gt;
    int ret = 0;&lt;br /&gt;
&lt;br /&gt;
    tun_fd = open(&amp;quot;/dev/net/tun&amp;quot;, O_RDWR);&lt;br /&gt;
    memset(&amp;amp;ifr, 0, sizeof(ifr));&lt;br /&gt;
    strncpy(ifr.ifr_name, iface_name, IFNAMSIZ - 1);&lt;br /&gt;
    ifr.ifr_flags = IFF_TUN | IFF_NO_PI;&lt;br /&gt;
    ret = ioctl(tun_fd, TUNSETIFF, (void*)&amp;amp;ifr);&lt;br /&gt;
    &lt;br /&gt;
    unsigned char buffer[2048];&lt;br /&gt;
    ssize_t bytes_read;&lt;br /&gt;
    while(1) {&lt;br /&gt;
	bytes_read = read(tun_fd, buffer, sizeof(buffer));&lt;br /&gt;
	printf(&amp;quot;read %zd bytes\n&amp;quot;, bytes_read);&lt;br /&gt;
	print_hex(buffer, bytes_read);&lt;br /&gt;
	&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    close(tun_fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=23</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=23"/>
		<updated>2026-06-29T18:43:46Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Виртуалка в подсети хоста, получает адрес от роутера ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
sudo ip link set br0 up&lt;br /&gt;
sudo ip link set enp59s0 master br0&lt;br /&gt;
sudo ip link set enp59s0 up&lt;br /&gt;
sudo dhcpcd br0&lt;br /&gt;
sudo ip tuntap add tap0 mode tap&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
&lt;br /&gt;
sudo ip r del default via 192.168.1.1 dev enp59s0&lt;br /&gt;
sudo ip r del 192.168.1.0/24 dev enp59s0 proto kernel scope link src 192.168.1.13 metric 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 4 -drive file=test.qcow2,format=qcow2 -accel kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:54:00:11:22:33&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вернуть обратно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link set tap0 nomaster&lt;br /&gt;
sudo ip link delete tap0&lt;br /&gt;
sudo ip link set enp59s0 nomaster&lt;br /&gt;
sudo ip link set br0 down&lt;br /&gt;
sudo ip link delete br0&lt;br /&gt;
sudo dhcpcd enp59s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tun интерфейс ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tun0 mode tun&lt;br /&gt;
sudo ip link set tun0 up&lt;br /&gt;
sudo ip addr add 10.0.0.1/24 dev tun0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Читает пакеты из tun-интерфейса&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;с&amp;quot; line&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
#include &amp;lt;string.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/ioctl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/socket.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/if_tun.h&amp;gt;&lt;br /&gt;
#include &amp;lt;errno.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void print_hex(const unsigned char *buf, size_t len) {&lt;br /&gt;
    for(size_t i = 0; i &amp;lt; len; i++) {&lt;br /&gt;
	printf(&amp;quot;%02x &amp;quot;, buf[i]);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
int main(void) {&lt;br /&gt;
    printf(&amp;quot;hi\n&amp;quot;);&lt;br /&gt;
    int tun_fd;&lt;br /&gt;
    const char *iface_name = &amp;quot;tun0&amp;quot;;&lt;br /&gt;
    struct ifreq ifr;&lt;br /&gt;
    int ret = 0;&lt;br /&gt;
&lt;br /&gt;
    tun_fd = open(&amp;quot;/dev/net/tun&amp;quot;, O_RDWR);&lt;br /&gt;
    memset(&amp;amp;ifr, 0, sizeof(ifr));&lt;br /&gt;
    strncpy(ifr.ifr_name, iface_name, IFNAMSIZ - 1);&lt;br /&gt;
    ifr.ifr_flags = IFF_TUN | IFF_NO_PI;&lt;br /&gt;
    ret = ioctl(tun_fd, TUNSETIFF, (void*)&amp;amp;ifr);&lt;br /&gt;
    &lt;br /&gt;
    unsigned char buffer[2048];&lt;br /&gt;
    ssize_t bytes_read;&lt;br /&gt;
    while(1) {&lt;br /&gt;
	bytes_read = read(tun_fd, buffer, sizeof(buffer));&lt;br /&gt;
	printf(&amp;quot;read %zd bytes\n&amp;quot;, bytes_read);&lt;br /&gt;
	print_hex(buffer, bytes_read);&lt;br /&gt;
	&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
&lt;br /&gt;
    close(tun_fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=22</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=22"/>
		<updated>2026-06-24T17:56:47Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Виртуалка в подсети хоста, получает адрес от роутера ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
sudo ip link set br0 up&lt;br /&gt;
sudo ip link set enp59s0 master br0&lt;br /&gt;
sudo ip link set enp59s0 up&lt;br /&gt;
sudo dhcpcd br0&lt;br /&gt;
sudo ip tuntap add tap0 mode tap&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
&lt;br /&gt;
sudo ip r del default via 192.168.1.1 dev enp59s0&lt;br /&gt;
sudo ip r del 192.168.1.0/24 dev enp59s0 proto kernel scope link src 192.168.1.13 metric 100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск qemu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 4 -drive file=test.qcow2,format=qcow2 -accel kvm -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:54:00:11:22:33&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Вернуть обратно:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip link set tap0 nomaster&lt;br /&gt;
sudo ip link delete tap0&lt;br /&gt;
sudo ip link set enp59s0 nomaster&lt;br /&gt;
sudo ip link set br0 down&lt;br /&gt;
sudo ip link delete br0&lt;br /&gt;
sudo dhcpcd enp59s0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=21</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=21"/>
		<updated>2026-06-15T18:01:23Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
An extract of source &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; inline&amp;gt;&amp;lt;?php echo &amp;quot;Done!&amp;quot;; ?&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; on one line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// some php code&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def quick_sort(arr):&lt;br /&gt;
	less = []&lt;br /&gt;
	pivot_list = []&lt;br /&gt;
	more = []&lt;br /&gt;
	if len(arr) &amp;lt;= 1:&lt;br /&gt;
		return arr&lt;br /&gt;
	else:&lt;br /&gt;
		pass&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=20</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=20"/>
		<updated>2026-06-15T18:00:36Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Some other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
An extract of source &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; inline&amp;gt;&amp;lt;?php echo &amp;quot;Done!&amp;quot;; ?&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; on one line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// some php code&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=19</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=19"/>
		<updated>2026-06-15T17:53:05Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
An extract of source &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; inline&amp;gt;&amp;lt;?php echo &amp;quot;Done!&amp;quot;; ?&amp;gt;&amp;lt;/syntaxhighlight&amp;gt; on one line.&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=18</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=18"/>
		<updated>2026-06-15T17:51:09Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=17</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=17"/>
		<updated>2026-06-15T17:50:34Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
int a;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=16</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=16"/>
		<updated>2026-06-15T17:50:21Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=15</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=15"/>
		<updated>2026-06-15T17:50:15Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
int&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=14</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=14"/>
		<updated>2026-06-15T17:50:08Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// some php code&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=13</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=13"/>
		<updated>2026-06-15T17:47:11Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
// some php code&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=12</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=12"/>
		<updated>2026-06-14T18:30:20Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Some other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def quick_sort(arr):&lt;br /&gt;
	less = []&lt;br /&gt;
	pivot_list = []&lt;br /&gt;
	more = []&lt;br /&gt;
	if len(arr) &amp;lt;= 1:&lt;br /&gt;
		return arr&lt;br /&gt;
	else:&lt;br /&gt;
		pass&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; copy&amp;gt;&lt;br /&gt;
def quick_sort(arr):&lt;br /&gt;
    less = []&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=11</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=11"/>
		<updated>2026-06-14T18:19:16Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Some other */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;python&amp;quot; line&amp;gt;&lt;br /&gt;
def quick_sort(arr):&lt;br /&gt;
	less = []&lt;br /&gt;
	pivot_list = []&lt;br /&gt;
	more = []&lt;br /&gt;
	if len(arr) &amp;lt;= 1:&lt;br /&gt;
		return arr&lt;br /&gt;
	else:&lt;br /&gt;
		pass&lt;br /&gt;
‎&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=10</id>
		<title>Видимость символов, статическая, динамическая линковка</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%92%D0%B8%D0%B4%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C_%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D0%BE%D0%B2,_%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F,_%D0%B4%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BB%D0%B8%D0%BD%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0&amp;diff=10"/>
		<updated>2026-06-14T18:15:07Z</updated>

		<summary type="html">&lt;p&gt;Mih: Новая страница: «== Объектные файлы (relocatable). Статические библиотеки == == Динамические библиотеки (shared objects) == == Ссылки == * [https://gcc.gnu.org/wiki/Visibility Дока gcc]; * [https://cs.dartmouth.edu/~sergey/cs258/ABI/UlrichDrepper-How-To-Write-Shared-Libraries.pdf Статья про динамические либы (UlrichDrepper)];»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Объектные файлы (relocatable). Статические библиотеки ==&lt;br /&gt;
== Динамические библиотеки (shared objects) ==&lt;br /&gt;
== Ссылки ==&lt;br /&gt;
* [https://gcc.gnu.org/wiki/Visibility Дока gcc];&lt;br /&gt;
* [https://cs.dartmouth.edu/~sergey/cs258/ABI/UlrichDrepper-How-To-Write-Shared-Libraries.pdf Статья про динамические либы (UlrichDrepper)];&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=9</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=9"/>
		<updated>2026-06-14T18:07:26Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Разное */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;MediaWiki успешно установлена.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Информацию по работе с этой вики можно найти в [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Начало работы ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
[[Pulseaudio]]&lt;br /&gt;
&lt;br /&gt;
== RTS ==&lt;br /&gt;
&lt;br /&gt;
== Разное ==&lt;br /&gt;
[[QEMU сеть]]&lt;br /&gt;
&lt;br /&gt;
[[Видимость символов, статическая, динамическая линковка]]&lt;br /&gt;
&lt;br /&gt;
== My test ==&lt;br /&gt;
&lt;br /&gt;
[[backup_test]]&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=8</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=8"/>
		<updated>2026-06-14T18:07:11Z</updated>

		<summary type="html">&lt;p&gt;Mih: /* Разное */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;MediaWiki успешно установлена.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Информацию по работе с этой вики можно найти в [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Начало работы ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
[[Pulseaudio]]&lt;br /&gt;
&lt;br /&gt;
== RTS ==&lt;br /&gt;
&lt;br /&gt;
== Разное ==&lt;br /&gt;
[[QEMU сеть]]&lt;br /&gt;
[[Видимость символов, статическая, динамическая линковка]]&lt;br /&gt;
&lt;br /&gt;
== My test ==&lt;br /&gt;
&lt;br /&gt;
[[backup_test]]&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=7</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=7"/>
		<updated>2026-05-28T17:58:46Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;MediaWiki успешно установлена.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Информацию по работе с этой вики можно найти в [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Начало работы ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
[[Pulseaudio]]&lt;br /&gt;
&lt;br /&gt;
== RTS ==&lt;br /&gt;
&lt;br /&gt;
== Разное ==&lt;br /&gt;
[[QEMU сеть]]&lt;br /&gt;
&lt;br /&gt;
== My test ==&lt;br /&gt;
&lt;br /&gt;
[[backup_test]]&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=6</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=6"/>
		<updated>2026-05-28T17:57:50Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface ens3 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=5</id>
		<title>QEMU сеть</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=QEMU_%D1%81%D0%B5%D1%82%D1%8C&amp;diff=5"/>
		<updated>2026-05-28T17:56:52Z</updated>

		<summary type="html">&lt;p&gt;Mih: Новая страница: «== Две машины, связанные сетью ==  Связанные между собой, изолированные от хоста.  На хосте нужно создать два tap-интерфейса и бридж:  &amp;lt;pre&amp;gt; sudo ip tuntap add dev tap0 mode tap sudo ip tuntap add dev tap1 mode tap  sudo ip link set tap0 up sudo ip link set tap1 up  sudo ip link add name br0 type bridge  sudo ip link set tap0 master br0 sudo ip link set tap1 m...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Две машины, связанные сетью ==&lt;br /&gt;
&lt;br /&gt;
Связанные между собой, изолированные от хоста.&lt;br /&gt;
&lt;br /&gt;
На хосте нужно создать два tap-интерфейса и бридж:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ip tuntap add dev tap0 mode tap&lt;br /&gt;
sudo ip tuntap add dev tap1 mode tap&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 up&lt;br /&gt;
sudo ip link set tap1 up&lt;br /&gt;
&lt;br /&gt;
sudo ip link add name br0 type bridge&lt;br /&gt;
&lt;br /&gt;
sudo ip link set tap0 master br0&lt;br /&gt;
sudo ip link set tap1 master br0&lt;br /&gt;
&lt;br /&gt;
sudo ip link set dev br0 up&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Параметры запуска QEMU для сети:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;-netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Запуск может выглядеть например так (для разных машин нужно выбрать разный mac-адрес):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
qemu-system-x86_64 -m 2048 -smp 2 -drive file=my_disk.qcow2,format=qcow2 -netdev tap,id=net0,ifname=tap0,script=no,downscript=no -device e1000,netdev=net0,mac=52:55:00:d1:55:01&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
В самих машинах нужно настроить статический ip-адрес.&lt;br /&gt;
&lt;br /&gt;
В /etc/network/interfaces прописать, например:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iface enp3s0 inet static&lt;br /&gt;
    address 192.168.0.1&lt;br /&gt;
    netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=4</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=4"/>
		<updated>2026-05-28T17:35:04Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;MediaWiki успешно установлена.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Информацию по работе с этой вики можно найти в [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Начало работы ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]&lt;br /&gt;
&lt;br /&gt;
== Multimedia ==&lt;br /&gt;
&lt;br /&gt;
== RTS ==&lt;br /&gt;
&lt;br /&gt;
== Разное ==&lt;br /&gt;
[[QEMU сеть]]&lt;br /&gt;
&lt;br /&gt;
== My test ==&lt;br /&gt;
&lt;br /&gt;
[[backup_test]]&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=3</id>
		<title>Backup test</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=Backup_test&amp;diff=3"/>
		<updated>2026-05-21T17:47:04Z</updated>

		<summary type="html">&lt;p&gt;Mih: Новая страница: «== First ==  This page is made for backup test  == Some other ==  info»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== First ==&lt;br /&gt;
&lt;br /&gt;
This page is made for backup test&lt;br /&gt;
&lt;br /&gt;
== Some other ==&lt;br /&gt;
&lt;br /&gt;
info&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
	<entry>
		<id>https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=2</id>
		<title>Заглавная страница</title>
		<link rel="alternate" type="text/html" href="https://anisimov1988.ru/mm/index.php?title=%D0%97%D0%B0%D0%B3%D0%BB%D0%B0%D0%B2%D0%BD%D0%B0%D1%8F_%D1%81%D1%82%D1%80%D0%B0%D0%BD%D0%B8%D1%86%D0%B0&amp;diff=2"/>
		<updated>2026-05-21T17:46:21Z</updated>

		<summary type="html">&lt;p&gt;Mih: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;MediaWiki успешно установлена.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Информацию по работе с этой вики можно найти в [https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents справочном руководстве].&lt;br /&gt;
&lt;br /&gt;
== Начало работы ==&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Список возможных настроек];&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Manual:FAQ/ru Часто задаваемые вопросы и ответы по MediaWiki];&lt;br /&gt;
* [https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/ Рассылка уведомлений о выходе новых версий MediaWiki].&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Перевод MediaWiki на свой язык]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Узнайте, как бороться со спамом в вашей вики]&lt;br /&gt;
&lt;br /&gt;
== My test ==&lt;br /&gt;
&lt;br /&gt;
[[backup_test]]&lt;/div&gt;</summary>
		<author><name>Mih</name></author>
	</entry>
</feed>