OSDev

для всех
Текущее время: 26 авг 2019, 12:15

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 15:02 

Зарегистрирован: 31 дек 2011, 14:50
Сообщения: 2
Привет всем, делаю первые шаги в разработке операционной системы. В интернете прочитал, что нужно изучать assembler, в качестве упражнения нашел программу (см. ниже), записал в файл start.bin, и попытался создать виртуальную машину с помощью VmWare Workstation, где указал образ (iso-image) файла: имя данного файла (start.bin) - виртуальная машина не создалась и не загрузилась с данного файла ... С VMWare также работаю в качестве новичка. Буду благодарен, если на форуме подскажут какие практические шаги необходимо сделать (и с VMWare и с данным файлом), чтобы в дальнейшем иметь возможность тестировать загрузку с данного файла (а не записывать данный файл на CD каждый раз и затем перезагружать компьютер и загружаться с CD-ROM) при помощи VMWare. Спасибо.



[ORG 0x7C00]

start:

cli
mov ax, cs
mov ds, ax
mov ss, ax
mov sp, start

sti

mov si, msg
call kputs

cli
hlt
jmp short $

kputs:

.loop:
lodsb
test al, al
jz .quit
mov ah, 0x0E
int 0x10
jmp short .loop
.quit:
ret


msg: db "Hello from the world of real programming!",0x0A,0x0D,0
times 510-($-$$) db 0
db 0xAA, 0x55


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 15:17 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
Цитата:
Привет всем, делаю первые шаги в разработке операционной системы. В интернете прочитал, что нужно изучать assembler, в качестве упражнения нашел программу (см. ниже), записал в файл start.bin, и попытался создать виртуальную машину с помощью VmWare Workstation, где указал образ (iso-image) файла: имя данного файла (start.bin) - виртуальная машина не создалась и не загрузилась с данного файла ... С VMWare также работаю в качестве новичка. Буду благодарен, если на форуме подскажут какие практические шаги необходимо сделать (и с VMWare и с данным файлом), чтобы в дальнейшем иметь возможность тестировать загрузку с данного файла (а не записывать данный файл на CD каждый раз и затем перезагружать компьютер и загружаться с CD-ROM) при помощи VMWare. Спасибо.


VmWare я не настолько хорошо знаю. Но вроде как он использует особый формат для образов жёстких дисков. Поэтому не годится. А образ мягкого диска (floppy) требует соблюдения размера 1.44 Мбайта.
Вместо VmWare больше подойдёт Bochs.

Если вы ни капли ни знакомы с ассемблером, то наверно стоит начать с освоения книги
Л. Скэнлон Пер. с англ. И. В. Емелин М.-Персональные ЭВМ IBM PC и XT. Программирование на языке ассемблера-Радио и связь(1989)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 15:20 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
С чего начать написание ОС?

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

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

Большинство после такого колупания через месяц утрачивают интерес к писанию ОС.
Я их понимаю. Кто захочет продолжать если если написание загрузчика заняло месяц?
Многие после этого считают, что написание ОС это сложная задача.

А между тем это не так, но начинать надо с озов.


Этап первый. Осваиваем ассемблер и BIOS и программирование в ДОС.

Наше освоение мы начнём с ДОСа. ДОС эта примитивная ОС.
Но в тоже время это великолепный инструмент для нашей цели.
И так нам понадобится:
1) DOSBOX
2) Borland Pascal 7.0
3) Borland C++ 3.0
4) Tasm 5.0
5) Fasm для доса
6) Masm 6.11
7) Nasm
8) Turbo Debuger обычно поставляется вместе с программи со второй по четвёртую.

И так, кратко почему я выбрал такой инструмент.
Версия программ указаны те, которые будут работать с досом и в досе. Более новые могут не работать с досом.


ДОС, нам позволяет вызывать прерывания BIOS и напрямую обращаться к железу.
Эта среда напоминает ту в которую попадает ваша программа во время загрузки.
Но имеет ряд плюсов.
1) Ваша программа целиком загружается в память. В отличии от загрузчика который вынужден сам себя вытаскивать за уши.
Второе это богатый набор инструментов.


DOSBOX - это эмулятор доса. Он позволяет легко запускать программы из основной ОС.
Не возясь при этом с образами дисков которые нужны для других эмуляторов.
Но как любой эмулятор это не настоящий ДОС и не настоящее железо.
Что с одной стороны хорошо, но с другой накладывает ряд ограничений.


Borland Pascal 7.0 (BP)
Borland C++ 3.0 (BC++)

Это великолепный набор инструментов настоящие среды для программирования.
Редактор, компилятор, отладчик всё в одном.

Более того эти среды отлавливают ряд ошибок во время работы программы.
Так что, если выполнение вашей программы пойдёт не так, то эта среда спасёт от разных бед таких, как зависание программы и компьютера в целом.

Borland Pascal и Borland C++ позволяют писать на встроенном ассемблере (BASM -build in assembler).


Эти инструменты ускорят освоение, а также процесс разработки программ.

Ассемблеры: Tasm 5.0 ; Fasm для доса; Masm 6.11; Nasm - нам понадобятся потом.
На это есть ряд причин. К примеру для создания независимых, чистых бинарных файлов.
Или для работы с 32 битными регистрами (BASM в BP7 и BC++ не поддерживает их).



Turbo Debuger нужен для отладки программ. Он работает в ДОС.
Для наших целей он несколько удобнее чем отладчик встроенный в BP и BC++.

Домашнее задание познакомитья с DosBox. Настроить функциональные клавишы так чтобы они работали в досе.
А не как служебные для DosBox.
Вопросы где хранит dosbox свои настройки?
C:\Documents and Settings\USER\Local Settings\Application Data\DOSBox
Как изменить служебные клавиши ?
Правая кнопка мыши
CTRL+F1
mapper-0.74.map
dosbox-0.74.conf
Какие плюсы у DosBox?
Он поддерживает ДОС
Его легко запускать.
Почему ДОС?
Мне так захотелось.
Дос имеет прямой доступ к железу
Мы имеем абсолютно туже среду что после загрузки MBR, если не пользоваться сервисами DOS, но так и ряд плюсов.


Последний раз редактировалось pavia 31 дек 2011, 17:01, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 16:44 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
Урок первый запустите BP
c:\bp\bin\bp.exe

Горячие клавиши.

F10 - переход в основное меню
F6- переключение между окнами.

F3 - открыть программу, документ и тд.
F2 - сохранить программу, документ и тд.

CTRL+F9 - скомпилировать программу

F9 - запустить программу. Программа будет работать до тех пор пока не прикатиться или же не дойдет до точки остановки (brackpoint)
F8 - пошаговое выполнение программы без входа в подпрограммы. Если программа не запущенна то исполнение начнётся с первой инструкции
F7 - пошаговое выполнение программы с входом в подпрограммы. Если программа не запущенна то исполнение начнётся с первой инструкции

ALT+F9 установить отладочную точку остановки
ALT+F5 показать графический/текстовый результат работы программы.
Переключает отображение видеобуфера с видео буфера среды на видео буфер программа и обратно.

Программа первая откомпилируем и запустим.
begin
WriteLn('Hello');
end.

Программа выведет на экран слово Hello. Потренируйтесь компилировать запускать сохранять.


Вторая программа добавим строчки на ассемблере

asm
mov ah, 0
mov al, 03h
int 10h
end;

Ассемблер. Команда "MOV" перемещает значение из второго операнда в первый.
В качестве операндов могут быть регистры (ah, al, ax и тд), адрес в памяти или константа как у нас.
BP7 понимает только 16 битные регистры и команды. Другими словами он знает только синтаксис процессора i80286
И не поддерживает команды которые появились в более поздних моделей. Но это можно обойти используя TASM.

Первые 2 строчки присваивают значение регистру ah=0 и al=03
Третья строчка вызывает прерывание int 10h

Используя пошаговую отладку(F8) посмотрите как меняются регистры.


Программные прерывания BIOS это сервисы или другими словами наборы подпрограмм, функций, которые может выполнять компьютер.
Обычно на одном прерывании находиться несколько функций, номер функции задаётся регистром ah
asm
mov ah, 0 ; Функция 0 установка видео режима
mov al, 03h ; Номер видео режима
int 10h ; прерывание видео сервис
end;
Старший бит в AL отвечает за очистку экрана. Если он равен 0 то экран очищается если 1, то нет.
Что и предлагается проверить.

прерывания с номерами 0-Fh служат для обработки исключений или ошибок кода.
прерывания с номерами 10h-1Fh относятся к сервисам BIOSа
прерывания с номерами 20h-2Fh относятся к ДОСу. Из нх ДОС в основном использует 21h

Если в ДОСе не использовать прерывания int 21h то мы фактически будем иметь тот же набор сервисов что и при загрузке с MBR


ДЗ. Читаем справку по прерываниям БИОСа и по командам ассемблера и смотрим как меняются регистры.
Следующий урок TASM и культура программирования на ассемблере
ДЗ. Для продвинутых прочитать про команду "ORG 100h" , "ORG 7С00h". В разных компиляторах эффект может отличаться поэтому советую читать про свой компилятор.

Справка по биосам: Award, Phoenix
http://www.msc-ge.com/download/pc-syste ... %20v10.pdf

Справка по IBM PS/2, там и справка по Биосу есть.
http://www.mcamafia.de/pdf/pdfref.htm

Справка по прерываниям Ральфа Брауна. (Более чем в 6 файлах)
http://www.cs.cmu.edu/~ralf/files.html

Справка по ДОС фирмы IBM
http://www.redbooks.ibm.com/redbooks/pdfs/gg244459.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 17:59 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
Урок TASM и культура программирования на ассемблере.

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

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

Для демонстрации этих правил напишем простую програмку которая демонстрирует деление и умножение чисел.

Но прежде чем мы приступим я раскажу о соглашениях при вызовах функций.

Для работы со стеком есть следующие команды PUSH и POP
пример
push ax ; положить регистр на вершину стека
pop ax ; считать регистр с вершины стека

Стек действует по принципу последний вошёл первый вышил (ПоВПрВ англ. LIFO).
Также есть команды PUSHA, POPA и PUSHF, POPF

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

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

Асмблерная вставка должна сохранять регистры:
BP SP
SS DS

И ассемблерная вставка может свободно модифицировать следующие регистры:
AX BX
CX DX
SI DI
ES Flags

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

Но уже в Delphi 7 это пересмотрено и
процедуры и функции должны сохранять значения регистров:
EBX ESI EDI EBP
И может модифицировать регистры
EAX EDX ECX

CS,DS,ES,SS считаются неизменяемыми в течение всей работы программы, это особенность Windows.


Про передачу параметров в процедуру или функцию.
В паскале как и в биосе для передачи параметров используют регистры.
Но во всех остальных Delphi 7, Visual C++, GNU C и др для
передачи параметров используют стек.

Возвращение результата. Результат функции передается либо, как константа либо по ссылке. Ссылку используют для строк, объектов.
В зависимости от размера возвращаемого значения выбирается регистр:
BP7
AL,AX,DX:AX
Delphi 7
AL,AX,EAX,EDX:EAX

Для чисел с плавающей запятой используется sp(0)


Вернёмся к нашему tasm. Параметры


Код:
fill_screen:
 mov  edi,[ModeInfo_PhysBasePtr]

 mov  ecx,640*480
 @next:
 mov  DWord PTR [edi],ebx
 add  edi,4
 loop @next
ret


Найдите ошибки в оформление.
Программа не сохраняет EDI, ECX. Параметр передаётся через EBX, а должен в EAX или ещё лучше в стеке.

Более правильный вариант оформления
Код:
; eax - цвет заливки
fill_screen:
 push edi
 push ecx
 mov  edi,[ModeInfo_PhysBasePtr]

 mov  ecx,640*480
 @next:
 mov  DWord PTR [edi],eax
 add  edi,4
 loop @next
 pop  ecx
 pop  edi
ret


Теперь задание. Сделать преобразование числа в строку.
Использовать div для деления. И не менее одной процедуры.
Совет. Используйте стек, а передачу параметров делайте через стек или регистры ax, dx, bx или их братьев eax, edx, ebx. В порядке следования. Более детально смотри FastCall

Задание для продвинутых. Сохранить все регистры сделать вывода регистров
В следующем формате.
Для этого сделать процедуру
; Указатель на буфер с регистрами и координата для печати на экране.
PrintReg

Код:
EAX 0000 0000 EBX 0000 0000
ECX 0000 0000 EDX 0000 0000
ESI 0000 0000 EDI 0000 0000
EBP 0000 0000 ESP 0000 0000
  CS 0000 DS 0000 ES 0000
  SS 0000 FS 0000 GS 0000
EIP 0000 0000 EFL 0000 0000
CF=0 PF=0 AF=0 ZF=0 SF=0
TF=0 IF=0 DF=0 OF=0 IOPL=3
MEM[00000000],ud = 0

Здесь EFL сокращение от EFLAG
Ниже идут флаги.

MEM[00000000],ud =
Вывод форматированной ячейки или регистра
первая буква формат
u - беззнаковй
s - знаковый
с - символ или набор символов ASCII
f - число с плавающей запятой
x - шеснадцатеричное
b - бинарное число макс 16 бит с раз пробелами старший бит слева 1000 0000 0000 0000
Вторая буква размер
b-8 бит/1 байт
w-16 бит/2 байта
d-32 бита/4 байта
f-48 бит/6 байт
q-64 бита/8 байт

Пример простой программы на TASM и способ её скомпилировать.

Код:
    .model    tiny     ;Простая модель код и данные в одном сегменте
    .code                         ;Секция кода
    .486                          ; 32 битные регистры появились в 386, данная инструкция их разрешает
;     org    7C00h             ; нужно для MBR чтобы линкер правильно сформировал смещения
     org    100h                ; нужно для ДОС чтобы линкер правильно сформировал смещения

entery:                         ; Точка входа в программу.

    XOR   AX,AX
    MOV   SS,AX                              ; установка стека в 2 инструкции
    MOV   SP,7C00h       ;
            ; Стек настроен, ДОС делает за нас, но в MBR это нужно.
    PUSH  AX
    POP   ES
    PUSH  CS
    POP   DS                                   ;настройка сегментов данных, ДОС делает за нас, но в MBR это нужно.
   
    mov CX, 12
    MOV bp, offset SystemEror1
    CALL Far ptr WriteStr
@@: JMP   @@                              ; ВНИМАНИЕ: Бесконечный цикл

WriteStr:
    PUSHA
    MOV AX,1300h
    MOV BX,7
    MOV DX,0
    push cs
    pop  es
    int 10h
    POPA
    RETF
SystemEror1: db 'System Error'
end    entery             ; даём компилятору указания считать entery точкой входа в программу.

Данная программа выводит строчку "System Error" в самый верхний угол экрана.

Я обычно для компиляции пишу bat скрипты и сохраняю их в
make.bat
Код:
 ..\tool\tasm\Tasm.exe test.asm /z
 ..\tool\tasm\TLink.exe /3 /t test.obj,test.com


Для отладки удобно использовать Turbo Debuger.
ДЗ. Посмотреть в TD (turbo debuger) и WinHex порядок байт после записи
mov eax,12345678h
mov ds:[100], eax


Про соглашения о вызовах подпрограмм в различных компиляторах можно прочитать здесь
http://en.wikipedia.org/wiki/X86_calling_conventions
http://agner.org./optimize/calling_conventions.pdf


Последний раз редактировалось pavia 31 дек 2011, 20:14, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 18:12 

Зарегистрирован: 21 сен 2007, 17:24
Сообщения: 1088
Откуда: Балаково
В VMware нужно открыть параметры виртуального диска, нажать Utilities и Map, тогда он подключится к Windows, после чего на него можно записывать файлы и загрузочные сектора.

Перед запуском виртуальной машины диск нужно обратно отключать командой Disconnect. Чтобы процедуры подключения и отключения автоматизировать, можно использовать утилиту vmware-vdiskmanager.exe из директории VMware. Описание здесь http://www.vmgu.ru/articles/vmware-disk-tools


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 18:39 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
Более детально о эмуляторах.

Bochs
Qemu
DosBox
VmWare
VirtualBox

Какой выбрать?

Bochs - Открытый, свободный. Абсолютно программная эмуляция процессора и железа. Легко переносим на разные платформы. Отличительная чертой Bochs является наличие отладчика(встречаются бинарные версии без него), другие эмуляторы его не поддерживают.

Qemu - Открытый, свободный. Эмулятор-конвертер. Конвертирует код из одной системы команд в другую. Поэтому работает быстрее Bochs. Отличается богатым количеством эмулируемого железа.

DosBox - Свободный. Эмулирует ДОС и не предназначен для запуска других программ основан на коде Bochs. Отличительной особенностью является простота запуска программ.
Код:
dosbox c:\bp\bin\bp.exe

Недостаток не эмулирует жёсткий диск но есть эмуляция защищённого режима.

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

VirtualBox - статус точно не скажу вроде открытый, но под эгидой oracle. Аналог VmWare эмулирует по больше железа, но менее качественно. Плюсом является возможность запуска 64 битных приложений на 32 битной ОС.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 31 дек 2011, 19:22 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1111
Проверка загрузчика в эмуляторе.
Для этого нам надо создать образ диска.

Диски бывают 3 видов.
1)HDD, НЖМД, накопитель на жёстких магнитных дисках
2)Floppy, НГМД, накопитель на гибких магнитных дисках, дискетки
3) CD-Disk,DVD, оптический диск

Флэшки обычно форматируются под HDD.

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

1) IMG, hd, и тд.
2) IMA, IMZ, fd
3) ISO

И как следствие для работы с каждым форматом используется свои программа
1) WinImage
2) WinImage
3) UltraISO, Nero, winrar и тд.

В bochs для создания образа есть утилита bximage, в других эмуляторах свои утилиты .

Большинство образов является просто по секторной копией диска. То есть данные представлены в сыром виде(RAW).
Теперь поговорим про то, как записать загрузчик в образ. Я для этого использую WinHex и ручками копирую CTRL+C
и вставляю CTRL+B (вставка с заменой). При этом надо соблюдать формат загрузочной записи. Как вы наверно догадались для каждого типа дисков он свой.
1) MBR
2) BootRecord
3) надо отдельно описывать.

Так вот в MBR жёсткого диска хранится служебная информация разделы жёсткого диска чтобы их не попортить их надо сохранять.
http://en.wikipedia.org/wiki/Master_boot_record
http://frolov-lib.ru/books/bsp/v01b/ch2_1.htm

При копировании вы должны копировать только первые 440 байт. Сохраняя сигнатуры и таблицу разделов.

У дискет формат более сложный он должен описывать формат дискетки и формат FAT12.
Более подробно можно прочитать тут.
http://frolov-lib.ru/books/bsp/v01b/ch2_2.htm
Тут уже первые 62 байта должны оставаться нетронутыми. И при написание программы их лучше включить в программу. Ещё замечу что образ дискеты имеют строго определённые размеры. WinImage позволяет создавать такие образы. А вот эмуляторы зачастую требуют строго 1.44 МБайт.

Бутсектор HDD и Floppy в принципе можно писать, что угодно, но главное наличие сигнатуры db 55h, 0AAh
Реальное железо иногда более требовательное к бутсектору.
bochs вообще можно настроить так что он любой бинарник проглотит.

ДЗ. Задание разработать программу которая выводит структуру жёсткого диска и разбивает диск на разделы, а также форматирует его.
Аналог 2 программ fdisk и format. В fdisk есть ещё ключ /mbr который копирует оригинальный загрузчик.
Программа должна быть написана на С++ или Pascal. Для любителей ассемблера на ассемблере(считаю излишним). Программа должна работать по ДОС или Linux или Windows. А да программа может работать с не оригинальным диском, а с образом жёсткого диска.

Основная спецификация по загрузочному сектору.
http://www.acpica.org/download/specsbbs101.pdf
А вот про загрузчик с оптического диска
ftp://download.intel.com/support/mother ... scdrom.pdf
ещё есть
wpbootcd.pdf
А да более новая таблица разделов для дисков в несколько терабайт. Создавалось майкрософт для UEFI и нетолько.
http://ru.osdev.wikia.com/wiki/GPT


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 04 янв 2012, 14:30 

Зарегистрирован: 31 дек 2011, 14:50
Сообщения: 2
При работе с VmWare - правильно ли понимаю, что сначала необходимо создать виртуальный диск и установить гостевую операционную систему (например win), и только затем уже тестировать загрузчики (написанные на ассемблере) ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: первые практические шаги в os dev
СообщениеДобавлено: 04 янв 2012, 14:48 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
У CD диска размер сектора не 512 байт, вы пишите загрузчик для винта или дискеты, или флешки.
Загрузчик это либо первый сектор диска физического(мбр), либо первый сектор логического диска(партишена, который задан в конце 512 байт МБР). Причем если у вас не настроен мбр то ваш вторичный загрузчик не загрузится, а если просто скопировать сектор на первый партишен, то затрёте файловую систему этого партишена, придется прописывать в свой загрузчик файловую систему в первых байтах загрзчика.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 14 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB