Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI22 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Как работает WSL (Windows Subsystem for Linux)
WSL — это подсистема Windows для Linux, позволяющая запускать среду Linux непосредственно на Windows. Это революционная технология, которая устраняет необходимость в виртуальных машинах для разработки.
1. Архитектура WSL
WSL работает на двух уровнях:
WSL 1 (устарело)
- Трансляция системных вызовов: вызовы Linux переводятся в Windows API
- Не полная совместимость: некоторые системные вызовы не поддерживаются
- Быстрый старт: легче, чем виртуальная машина
WSL 2 (текущий стандарт)
Windows Host
↓
Hyper-V
↓
Lightweight VM (Linux Kernel)
↓
Linux userspace
WSL 2 использует:
- Настоящее ядро Linux (4.19, 5.10+)
- Hyper-V для виртуализации
- Полная совместимость с Linux
- Лучшая производительность файловой системы
2. Установка и настройка
# Проверка версии Windows (нужна 19041+)
winver
# Установка WSL 2 (PowerShell с правами админа)
wsl --install
wsl --install -d Ubuntu-22.04
# Установка конкретного дистрибутива
wsl --list --online # Список доступных
wsl --install -d Debian
# Проверка версии WSL
wsl --version
# Установка WSL 2 по умолчанию
wsl --set-default-version 2
wsl --set-version Ubuntu-22.04 2
3. Работа с файловой системой
# Доступ к Windows файлам из WSL
cd /mnt/c/Users/YourUsername/Documents
ls -la
# Доступ к WSL файлам из Windows
# В проводнике: \\\wsl.localhost\Ubuntu\home\username
# Быстрое открытие WSL папки в проводнике
wslpath -w .
# Пути до файлов
wslpath -u 'C:\\Users\\User' # Windows → WSL
wslpath -w '/home/user' # WSL → Windows
4. Сетевые подключения
# WSL 2 имеет отдельный IP адрес в виртуальной сети
ip addr show eth0
# Доступ к Windows localhost из WSL 2
# В WSL используйте: $(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')
WINDOWS_IP=$(grep -m 1 nameserver /etc/resolv.conf | awk '{print $2}')
curl http://$WINDOWS_IP:3000 # Доступ к приложению на Windows
# Доступ к WSL сервисам из Windows
# Используйте IP адрес WSL:
WSL_IP=$(wsl hostname -I)
curl http://$WSL_IP:8000
5. Установка Python и разработка
# Установка Python в WSL
sudo apt update
sudo apt install python3 python3-pip python3-venv
# Проверка версии
python3 --version
# Создание виртуального окружения
python3 -m venv myenv
source myenv/bin/activate
# Установка зависимостей
pip install django flask celery redis
# Запуск Django приложения
python manage.py runserver 0.0.0.0:8000
6. Docker в WSL 2
# Docker отлично работает в WSL 2
# Установка Docker Desktop с WSL 2 backend
# Проверка в WSL
docker --version
docker run hello-world
# Запуск контейнера с Python
docker run -it python:3.11 bash
python3 -c "print('Hello from container')"
7. Интеграция с IDE
# VS Code с WSL расширением
# 1. Установите Remote - WSL расширение
# 2. Откройте папку в WSL через VS Code
# Команда: code .
# PyCharm
# Settings → Project → Python Interpreter
# Выберите интерпретатор из WSL
# /home/user/myenv/bin/python
8. Производительность
# Тестирование скорости
time dd if=/dev/zero of=test.img bs=1M count=100
# Оптимизация
# 1. Используйте файлы WSL на диске /home, не /mnt/c
# 2. Отключите Windows Defender для папки WSL
# 3. Используйте SSD диск
# 4. Выделите достаточно оперативной памяти в .wslconfig
9. Конфигурация WSL
# Файл ~/.wslconfig (при использовании WSL 2)
[interop]
enabled=true
appendWindowsPath=true
[user]
default=username
[boot]
systemd=true
10. Полезные команды
# Список установленных дистрибутивов
wsl --list --verbose
# Завершение WSL машины
wsl --shutdown
# Запуск команды в WSL из Windows PowerShell
wsl ls -la
# Запуск WSL как определённый пользователь
wsl --user root
# Экспорт и импорт дистрибутива
wsl --export Ubuntu-22.04 backup.tar.gz
wsl --import Ubuntu-22.04-restore . backup.tar.gz
# Удаление дистрибутива
wsl --unregister Ubuntu-22.04
Best Practices для разработчиков
1. Используйте WSL 2: забудьте о WSL 1, переходите на WSL 2 2. Храните код в WSL: файловая система WSL работает быстрее 3. Docker Desktop: интегрируется идеально с WSL 2 4. VS Code Remote: разрабатывайте прямо в WSL через VS Code 5. systemd: включите systemd для полноценной Linux среды 6. Резервные копии: регулярно экспортируйте дистрибутив 7. Производительность: следите за использованием памяти в .wslconfig