- UNIX. Шаг первый. Эмуляция и установка UNIX System V Release 4
- Этап 1. Скачивание и приготовление дистрибутива
- Этап 4. Установка UNIX System V Release 4
- Access Linux filesystems in Windows and WSL 2
- Getting started
- Accessing these files with File Explorer
- Limitations
- Give us your feedback!
- Архитектура UNIX и Windows
- Архитектура UNIX
- Архитектура Windows
UNIX. Шаг первый. Эмуляция и установка UNIX System V Release 4
Любому человеку, работающему в сфере IT-инженерии, рано или поздно приходится сталкиваться с UNIX-подобными операционными системами, как бы не любил он продукцию корпорации Microsoft. Тоже самое приключилось и со мной, когда я стал устраиваться на работу в одну небезызвестную компанию. Именно после часа технического собеседования я серьёзно заинтересовался изучением UNIX-систем.
Самый первый вопрос, который встанет перед вами после решения окунуться в мир UNIX – с чего же начать изучение? Вопрос, на который однозначного ответа я для себя так и не нашёл. Поэтому решил так: начну изучать архитектуру и устройство системы, причём начать мне хотелось именно с тех самых ранних UNIX-систем. В своём городе стал искать в книжных магазинах (люблю всё читать с книги, электронные варианты использую только в крайних случаях) и нашёл книжку-руководство по легендарной UNIX System V Release 4. Перед тем, как заказывать её, мне хотелось точно понимать, что я смогу сэмулировать данную систему на своём ПК. Стал искать дистрибутивы данной системы на трекерах и всё-таки нашёл.
Первый вариант дистрибутива напугал наличием 30 IMA-файлов (файлы виртуальных дискет) с Readme-файлов описания назначения каждой из дискет, из которого начинающему IT-инженеру вряд ли что будет понятно. Попробовал добить в строку поиска фразу «готовый образ» — и, к своей радости, нашёл! Образ UNIX System V Release 4 для… Parallels Desktop (одним из лучших эмуляторов для Apple OS X, разработанным компанией Parallels, основанной нашим земляком, Сергеем Белоусовым). Попытки установить OS X с рабочим Интернетом и свободным доступом к папкам основной и гостевой ОС на VirtualBox и VMWare ограничился провалом (поиск по коду ошибок kernel.panic дал предположить, что всё дело в видеокарте AMD). Поэтому, стал искать другой способ эмуляции UNIX System V Release 4.
В комментариях к тому самому «страшному» торренту из 30 файлов-дискет я прочитал, что у многих получилось развернуть эту систему в эмуляторе Bochs. Начав искать информацию о принципе работы этого эмулятора и о том, как устанавливается UNIX System V Release 4, я начал понимать первые принципы организации дистрибутива этой ОС. Далее, я приведу Вам процедуру описания успешной установки этой системы, результатом которой станет доступ shell системы с правами супер-пользователя.
Не знаю, стоит ли выкладывать подобную информацию, но вот описание машины, на которой выполнялась вся процедура:
• Процессор Intel Core i5-3450 CPU 3,1 ГГц;
• ОЗУ 4 ГБ;
• ОС Microsoft Windows 8.1, 64-разрядная.
Нам понадобятся:
• Дистрибутив UNIX System V Release 4 (можно скачать с rutracker rutracker.org/forum/viewtopic.php?t=882391);
• Эмулятор Bochs 2.6 (НЕ работает в версиях 2.6.7 и 2.6.8, скачать можно здесь: bochs.software.informer.com/2.6).
Этап 1. Скачивание и приготовление дистрибутива
Поскольку, Bochs понимает только IMG-файлы, нужно преобразовать все скаченные IMA-образы в IMG. Делается это очень просто – переименованием расширения файлов (да, это действительно работает). В дистрибутив входят 30 дискет (U01.IMA – U30.IMA). В Readme-файле идёт их описание, которое я переведу для Вас на более понятный и простой язык. Для удобства, я советую Вам перекопировать все файлы в отдельную папку и переименовать их так, как это сделал я.
Итак, выделим три группы дискет:
• Необходимые для минимальной установки системы;
• Опциональные;
• Неиспользованные дискеты в данной процедуре установки системы.
1 группа – Необходимые файлы-дискеты для установки системы, которые располагаются в таком порядке:
U14.IMA —> Base — [01 of 10].img
U16.IMA —> Base — [02 of 10].img
U17.IMA —> Base — [03 of 10].img
U18.IMA —> Base — [04 of 10].img
U19.IMA —> Base — [05 of 10].img
U20.IMA —> Base — [06 of 10].img
U21.IMA —> Base — [07 of 10].img
U22.IMA —> Base — [08 of 10].img
U25.IMA —> Base — [09 of 10].img
U23.IMA —> Base — [10 of 10].img
U24.IMA —> Maintenance [01 of 02].img
U01.IMA —> Maintenance [02 of 02].img
Именно U14.IMA является первой загрузочной дискетой для установки системы, а не U01.IMA как это было бы логично. Советую Вам переименовать вышеперечисленные файлы в соответствующие им названия, указанные после стрелки – так будет гораздо удобнее переключаться между дискетами. Данная подгруппа называется Base – именно эти дискеты будет по порядку запрашивать программа установки UNIX. Два других дисковода (подгруппа Maintenance) содержат в себе базовые необходимые пакеты для работы с системой. Наличие этих дискет необходимо и достаточно для нормальной работы UNIX.
2 группа – Опциональные дискеты:
U02.IMA —> Remote Terminal Package [01 of 01].img
U03.IMA —> BSD Compatibility Package [01 of 02].img
U04.IMA —> BSD Compatibility Package [02 of 02].img
U05.IMA —> Networking Support [01 of 01].img
U06.IMA —> Xenix Compatibility Package [01 of 01].img
U07.IMA —> Framed Access Command Environment Package [01 of 01].img
U08.IMA —> Form + Menu Language Interpreter Package [01 of 01].img
U09.IMA —> Editing Utilities [01 of 01].img
U10.IMA —> Operations, Administration, and Maintenance package [01 of 03].img
U11.IMA —> Operations, Administration, and Maintenance package [02 of 03].img
U12.IMA —> Operations, Administration, and Maintenance package [03 of 03].img
U30.IMA —> 2 Users to 16 Users License [01 of 01].img
U29.IMA —> 16 Users to Unlimited Users License [01 of 01].img
U28.IMA —> Printer Package [01 of 03].img
U27.IMA —> Printer Package [02 of 03].img
U26.IMA —> Printer Package [03 of 03].img
Я думаю, что здесь пояснять ничего не нужно, названия дискет говорят сами за себя.
3 группа — Неиспользованные дискеты в данной процедуре установки системы:
U13.IMA Floppy Options) и выставляем следующие параметры:
• Type of floppy drive: 3.5” 1.44M;
• First floppy image/device – выбираем образ, соответствующий U14.IMA, то есть Base — [01 of 10].img;
• Type of floppy media: 1.44M;
• Установите галочку Inserted – это означает, что данная дискета вставлена в привод; если Вам потребуется далее выполнить перезагрузку системы, выгрузив все дискеты с приводов – просто снимите галочку.
Далее – подключаем жёсткий диск Disk & Boot -> ATA Channel 0:
• Устанавливаем галочку Enable this device;
• Path or physical device name – выбираем созданный файл-образ жёсткого диска;
• Здесь заполняем из блокнота информацию о цилиндрах, заголовках и SPT.
Теперь осталось настроить приоритет загрузки устройств Disk & Boot -> Boot Options:
• Boot drive #1: floppy;
• Boor drive #2: disk.
Нажимаем ОК и возвращаемся в главное меню Bochs. Сохраняем эту конфигурацию под любым удобным для Вас именем (получится файл с расширением BXRC) и после любого перезапуска эмулятора загружаем эту конфигурацию (кнопка Load), чтобы постоянно не производить все эти настройки вручную.
Этап 4. Установка UNIX System V Release 4
Убедитесь, что во floppy-дисководе находится файл-образ U14.IMA / Base – [01 of 10].img и нажимаем кнопку Start. Произойдёт загрузка с гибкого диска и мы начнём получать сообщения от программы установки:
Please insert the UNIX System «Base System Package» Floppy Disk 2 and then strike ENTER.
Вверху будет иконка floppy-диска A – используя её, мы сможем переключаться между нашими файлами-образами. Переключаемся на U16.IMA / Base — [02 of 10].img и нажимаем ENTER.
Please strike ENTER to install the UNIX System on your hard disk or DEL to cancel the installation.
Нажимаем ENTER.
WARNING: A new installation of the UNIX System will destroy all files currently on the system. Do you wish to continue (y or n)?
Конечно же, да – нажимаем y.
If you wish to use part of your hard disk for other operating system(s) other than the UNIX System, such as MS-DOS, that space MUST be reserved now. You are about to partition hard disk 0. Please strike ENTER when ready or DEL to cancel the installation.
Нажимаем ENTER.
The recommended default partitioning for your disk is: a 100% «UNIX System» partition. To select this, please type «y». To partition your disk differently, type «n» and the «fdisk» program will let you select other partitions
Если Вы желаете поделить диск сами, нажимайте n и используйте утилиту fdisk. Нажимаем y, затем ENTER, если соглашаемся на автоматическое разбиение диска.
Please select the File System Type for / (Root File System) from the following list: ufs, s5. Please press ENTER for the default type, ufs.
UFS нас устраивает, нажимаем ENTER.
Do you wish to create any optional disk slices of filesystems (y or n)?
В данной процедуре нас эта опция не интересует, нажимаем n, затем ENTER.
Далее система выведет информацию о логической организации диска и спросит Is this configuration acceptable (y/n)
Нажимаем y, затем ENTER.
Surface analysis will now be performed on your hard disk and UNIX System file systems will be created on your hard disk. This will overwrite all data in the UNIX System partition. Please strike ENTER to continue ot DEL to cancel the installation.
Нажимаем ENTER.
Система выведет конфигурацию жёсткого диска и спросит Is this configuration acceptable (y/n)
Нажимаем y, затем ENTER.
Далее система потребует перезагрузку и предупредит Вас о том, чтобы Вы изъяли из дисковода floppy-диск. Не забудьте это сделать (снимите галочку Inserted) и нажмите вверху кнопку Reset. Поскольку floppy-привод теперь пустой, система загрузится с жёсткого диска и выведет на экран следующее сообщение:
Затем нас спросят о том, с какого носителя будет устанавливаться система. Установку UNIX мы будем производить при помощи дискет, поэтому нажимаем f.
Далее потребуется поочерёдно эмулировать Base-дискеты с 3 по 10, когда этого требует система.
После этого нужно будет придумать и ввести пароли для трёх пользователей системы:
• Первый пользователь – это всем известный root или супер-пользователь;
• Второй пользователь – это install user, назначение которого мне пока не понятно;
• Третий пользователь – service user, назначение которого мне тоже пока не понятно.
Далее надо придумать и ввести системное имя. Введите любое (кроме «UNIX»). Система будет перестраивать ядро в соответствии с введёнными данными.
Установка продолжится и теперь нам понадобятся диски группы Maintenance. Сэмулируйте первый диск этой подгруппы и менеджер пакетов обнаружит список пакетов на этом диске для установки:
The following packages are available: 1 basepat UNIX SystemV/x86 Release 4.0 Version 2.1 Maintenance Disk #1 (i386) 4.0 2.1
Select package(s) you wish to process (or ‘all’ to process all packages). (default: all) [. q]:
Нам нужны все пакеты, поэтому просто нажимаем ENTER и через некоторое время эмулируем вторую дискету подгруппы Maintenance, пишем go и нажимаем ENTER. Появится следующее сообщение:
If any of the following packages are ever installed or reinstalled, you must reinstall the UNIX System V/x86 Release 4.0 Version 2.1 Maintenance Disk #1:
LP Print Service Version 4.0 2.1
Networking Support Utilities Version 4.0 2.1
XENIX Compatibility Package Version 4.0 2.1
Нажимаем ENTER. Теперь если Вы удалите гибкий диск из привода и перезагрузите машину, то, введя в качестве логина root и пароля – придуманный пароль, попадёте в командную оболочку легендарной операционной системы – поздравляю, Вы только что установили UNIX и можете лично прикоснуться к истории!
Если эта статья будет интересна, полезна и актуальна, то в следующий раз попробую описать установку опциональных пакетов. Всех благодарю за внимание, надеюсь увидеть конструктивную критику и советы от уже бывалых «юниксоидов»!
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Access Linux filesystems in Windows and WSL 2
September 10th, 2020
Starting with Windows Insiders preview build 20211, WSL 2 will be offering a new feature: wsl —mount . This new parameter allows a physical disk to be attached and mounted inside WSL 2, which enables you to access filesystems that aren’t natively supported by Windows (such as ext4).
So, if you’re dual booting with Windows & Linux using different disks, you can now access your Linux files from Windows!
Getting started
To mount a disk, open a PowerShell window with administrator privileges and run:
To list the available disks in Windows, run:
To unmount and detach the disk from WSL 2, run
The disks paths are available under the ‘DeviceID’ columns. Usually under the \\.\\\.\PHYSICALDRIVE* format. Below is an example of mounting a specific partition of a given hard disk into WSL and browsing its files.
Accessing these files with File Explorer
Once mounted, it’s also possible to access these disks through the Windows explorer by navigating to \wsl$ and then to the mount folder.
Limitations
By default, wsl —mount attempts to mount the disk as ext4. To specify a filesystem, or for more advanced scenarios, check out Mount a disk in WSL 2.
Also please note that this feature comes with the limitation that only physical disks can be attached to WSL 2. At this time, it’s not possible to attach a single partition. More details on the limitations here.
Give us your feedback!
If you run into any issues, or have feedback for our team please file an issue on our Github , and if you have general questions about WSL you can find all of our team members that are on Twitter on this twitter list.
Архитектура UNIX и Windows
Архитектура UNIX
Виртуальная память была изобретена в 1962 году, в Англии при создании суперкомпьютера Atlas. В большинстве современных компьютеров оперативная память не так велика, как используемое процессором адресное пространство. Размер ОЗУ типичного персонального компьютера варьируется от десятков до сотен мегабайт. При запуске программа загружается с какого-либо накопителя в оперативную память. Если же программа не помещается в ОЗУ, то те её части, которые в данный момент не выполняются, хранятся во вторичном запоминающем устройстве, чаще всего винчестере, и такая память называется виртуальной. Безусловно, перед выполнением необходимая часть программы должна быть перемещена в оперативную память. Данные функции выполняет ядро операционной системы (диспетчер виртуальной памяти, находящийся в микроядре). И для программы и для пользователя эти действия прозрачны. Естественно, на запросы к виртуальной памяти уходит гораздо большее время, нежели к ОЗУ.
Windows 2000/XP построены на архитектуре микроядра (microkernel architecture). ОС Windows 95/98 используют монолитное (monolithic) ядро. Микроядра являются сравнительно небольшими и модульными. Благодаря последнему новые устройства зачастую добавляются как модули, которые можно загружать/выгружать на этапе исполнения без перекомпиляции ядра. На архитектуре микроядра построены также FreeBSD и Mac OS X. Монолитные же ядра используются еще и в Linux. Они оптимизированы для более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку кода ядра для разработчиков, но требует перекомпиляции ядра при добавлении новых устройств. Следует отметить, что описанные здесь различия являются «классическими», на практике монолитные ядра могут поддерживать модульность (что зачастую и происходит), а микроядра могут требовать перекомпиляции.
Архитектура Windows
Ядро UNIX/Linux имеет два вида исключений, которые обычно называют «oops» и «panic». Почти в каждой операционной системе паника происходит в тех случаях, когда ядро обнаруживает серьезную неисправность. Если система каким-либо образом повредила сама себя, ей требуется остановиться немедленно, пока она не произведет необратимых критических изменений (типа уничтожения файловой системы). Везде, где только возможно, UNIX/Linux пытается детектировать проблему и справиться с ней без остановки всей системы. Например, многие ситуации типа «oops» приводят к завершению процесса, который нормально запустился, но потом зациклил систему. Бывают, однако, ситуации, когда все настолько плохо, что полная паника является наилучшим выходом. Считается, что пользователи стабильных версий ядра не должны встречать ни «паник», ни «oops». Но в реальном мире они иногда происходят.
Недавно найденный «TF-баг» (смотрите здесь ) является хорошим примером паники. Процессор пытается передать управление процессу, которого не существует. Это приводит к краху всей системы. В данном случае, у системы нет другой альтернативы, чем запаниковать.
Ядро, поставляемое с Red Hat Linux 7.3 (и некоторыми другими дистрибутивами), содержит баг в файловой системе ext3. Эта ошибка приводит к «oops», завершая время от времени некоторые процессы (также этот баг приводит к замедлению всей системы). Хотя данная ошибка уже исправлена (патч есть и в обновлении от Red Hat), этот случай познакомил многих пользователей с ошибками типа «oops».
Микроядро (Microkernel) — компактный код, можно сказать, сердце системы. В рамках микроядра работают ключевые службы: диспетчер памяти, диспетчер задач и другие.
Слой абстрагирования (Hardware Abstraction Layer, HAL). Полностью абстрагирует код системы от конкретного аппаратного оборудования. Использование HAL позволяет обеспечить переносимость 99% кода системы между различным оборудованием.
Диспетчер Ввода/Вывода (Input/Output Manager). Полностью контролирует потоки обмена между системой и устройствами. Драйверы устройств работают в контексте I/O Manager. Если драйвер написан с ошибками и может привести к сбою — это вызовет фатальный крах ядра и всей системы. 70% случаев фатальных сбоев («синий экран») — есть результат некорректного поведения драйверов устройств.
Windows XP содержит встроенный механизм контроля драйверов: правильно написанный и тщательно протестированный драйвер поставляется с цифровой подписью (Driver Signing). Правильная настройка системы заключается в запрещении установки драйверов без корректной подписи.
Модуль управления объектами (Object Manager), управления виртуальной памятью (Virtual Memory Manager), управления процессами (Process Manager), управления безопасностью (Security Reference Monitor), управления локальными вызовами (Local Procedure Calls Facilities) — важные компоненты ядра системы подробно рассматриваться не будут.
«Операционные системы Unix и Windows достаточно сильно отличаются в реализации различных сервисов и служб. В соответствии с темами, затронутыми в этой статье, можно отметить несколько глобальных различий.
В Unix/Linux графическая система существует отдельно от ядра и функционирует как обычное приложение. В операционных системах Windows графическая система интегрирована в ядро. В случае использования операционной системы на рабочей станции, особенно при запуске графикоемких приложений, возможно, лучше, когда графическая система входит в ядро — в этом случае она может быстрее работать. А при работе на сервере предпочтительней отделение графической системы от ядра ОС, так как она загружает память и процессор. В случае Unix/Linux графическую систему можно просто отключить, к тому же, если системный администратор ее все-таки хочет использовать, в Linux есть несколько графических оболочек на выбор, некоторые из них (например, WindowMaker) достаточно слабо загружают машину. Эта же особенность Unix-образных операционных систем позволяет запускать эти ОС на машинах с весьма скромными объемами ОЗУ и т.п. В случае Windows же графическая система слишком тесно интегрирована в ОС, поэтому она должна запускаться даже на тех серверах, на которых она вовсе не нужна.
Отметим также методику разделения прав доступа в Windows 2000 и Unix/Linux. В первом — разделение прав доступа основано на ACL (access control lists), то есть, к примеру, можно настроить систему таким образом, чтобы администратор не имел возможности управлять файлами пользователей. У Unix/Linux же всегда есть суперпользователь — root, который имеет доступ абсолютно ко всему. То есть теоретически модель безопасности в Windows лучше: чтобы полностью завладеть хорошо настроенной системой Windows, хакеру придется ломать больше, в Unix/Linux же достаточно взломать доступ к root. (В Unix/Linux используются более старые технологии, тем не менее, некоторые дистрибутивы Linux сейчас начинают поддерживать ACL, среди них — ASPLinux 7.3 Server Edition). Но теория несколько смазывается практикой с той стороны, что в Windows не так быстро, как в Linux, заделываются «дыры», что уже относится к плюсам открытой модели разработки. В результате оказывается, что в Windows по статистике больше дыр, через которые злоумышленник может пробраться в систему. Но, опять же, точно о количестве дыр в Linux и Windows можно будет сказать только тогда, когда количество пользователей обоих видов ОС будет примерно одинаковым.
В Linux поддерживаются несколько файловых систем, наиболее продвинутые — это Ext2, Ext3, XFS. ОС Windows завязана по большому счету на одну файловую систему — NTFS или FAT 32. Файловые системы Ext2, Ext3, XFS по оценкам работают быстрее. Принципиальное же отличие в том, что в UNIX/Linux вообще нет понятия диска, физического или логического. Вся работа с устройствами хранения данных организуется через специальные файлы устройств, которые отображают физический носитель (диск, лента и т. п ) или его части (разделы) в файловую систему.
Важное отличие — наличие в Windows технологии ActiveX, нечто подобное в Unix/Linux реализуется с помощью CORBA и Bonobo. Эта технология, с одной стороны, предоставляет пользователю множество удобств, с другой стороны — она же допускала в свое время такие вещи, как автоматический запуск Outlook’ом вируса, пришедшего по почте. Одно из важных отличий этих технологий в том, что элементы ActiveX могут внедряться в текст HTML, что имеет как ряд достоинств, так и недостатков.
Можно перечислить еще ряд отличий Unix-подобных операционных систем от Windows, например, встроенную поддержку удаленного доступа в Unix и отсутствие оной в Windows по умолчанию (она реализуется в серверных версиях Windows, а также с помощью дополнительных средств, например, Citrix). В Unix/Linux и Windows сильно различаются сетевые подсистемы (IP-stack), по ряду оценок сетевая подсистема Unix/Linux эффективнее.
Можно было бы упомянуть богатый набор ПО, которое может поставляться вместе с Linux, между тем, Windows также развивается в этом направлении. Дополнительные отличия же в архитектуре в основном сводятся к отличиям работы монолитных и модульных ядер, которые также зачастую не являются преимуществами или недостатками, а просто отличиями. При всем при этом можно с уверенностью сказать, что характеристики работы Windows или Linux гораздо больше зависят от аккуратности и квалификации пользователя, чем от архитектуры той или иной ОС».