All posts by proolix

Пруликс инсталлировался на физический жесткий диск и загрузился с него!

Итак, что я сегодня выяснил:

Флешки бывают двух типов: флешка как HDD и флешка как дискета. У флешки-HDD первый физич. блок это master boot record
с таблицей partition table. А дальше идут разделы, чаще всего один. В терминах моего Ubuntu Linux флешка как физич. устройство
это /dev/sdb, а раздел /dev/sdb2. При загрузке с такой флешки сама флешка становится устройством 0x80 в терминах прерывания
0x13. А реальный физич. HDD – device 0x81.

Я загрузился с такой флешки (она была создана при помощи unetbootin) и набрал команду install. И инсталлировал Пруликс на
устройство 80, то есть на эту же флешку, только в raw формате (без syslinux и файловой системы). И смог загрузиться
с raw флешки.

Затем я сделал флешку другого типа (флешка-как-дискета). Первым блоком у нее идет boot sector, никакой MBR нет. На такую флешку
тоже можно при помощи unetbootin установить syslinux и загрузить с нее Proolix-l. Но при этом диск 80 – это реальный
HDD! Я этого тогда не знал и набрал команду install и инсталлировался на устройство 80 и установил Пруликс на реальный
HDD и запортил Винду на ноуте. Но такой случайный эксперимент показал, что установленный на реальный жесткий диск
реального компьютера Пруликс загружается и работает. (То есть загружается ядро, пока кроме ядра у Пруликса еще ничего нет,
файловой системы нет).

А Винду я потом восстановил без проблем, так как первый цилинд винчестера почти не используется. MBR я восстановил, загрузившись с CD с Виндой и вначале запустив автоматич. восст. (оно ничего не дало), а потом выполнив в консоли восстановления команду

bootrec /fixmbr

и потом на всякий случай

bootrec /fixboot

Винда стала нормально загружаться, но при этом в первом цилиндре (начиная с сектора номер 1, то есть второго сектора, то есть сектора,
непосредственно следующего за MBR) осталось ядро Пруликса и никто его не затер.

Надо еще с Линуксом поэкспериментировать, он тоже вроде как не использует первый цилиндр


7-Feb-2017. Update. Как оказалось, использование команды bootrec /fixmbr восстановило только диск C, то есть только первую запись в partition table. Для восст. диска D пришлось загрузиться с System Rescue CD (он построен на базе Gentoo) и использовать команду testdisk. И диск D нормально восстановился.

Gentoo, кстати, прикольно выглядит, там красивый текстовый интерфейс, в нем чувствуется дух старой школы Linux. Надо и себе похожий сделать в Proolix

Пруль

VDS

Свежий Пруликс сегодня кратко потестировал на VDS: сделал свежий Proolix CD ISO image и загружался с него. Загружается и работает. Инсталляцию на HDD пока не проверял, так как тестировался на рабочей VDS, где крутится MUD

install

Сделан простейший инсталлятор. Теперь можно загрузится с дискеты, CD или флешки и инсталлировать командой install (сначала run ct, естественно) ядро Пруликс на жесткий диск (если конечно жесткого диска не жалко, потому что с НЖМД Пруликс работает как с большой дискетой, то есть затирает MBR и рассматривает диск как одно большое блочное устройство)

CPU Prool-16

Я окончательно поехал крышей и подумал, что писать свою операционную систему это мелко. И начал разрабатывать свой процессор. Так как я программист, то пока просто пишу эмулятор. Пока не буду пытаться сделать что-то сложное с виртуальной памятью и прочими плюшками. Для тренировки пальцев сделаю нечто 16-разрядное, с минимальным набором команд. Впоследствии это вполне реально будет сделать в железе, например на базе FPGA. А потом и выпустить партию в кремнии. Интел уже трепещет, наверное. Я стану миллионером!

А всё почему: пока еду на работу и с работы в метро, мне скучно и я думаю. И всякую херь придумываю. В трамвае проще, там можно по сторонам в окно смотреть и отвлекаться на окружающий мiръ

Теоретики знают, что функционально полный набор команд состоит из 2 команд, который можно объединить в одну. Но это уже брейнфак какой-то. Команд должно быть несколько, чтобы было веселее и чтобы можно было сравнительно легко программировать в кодах

https://github.com/prool/cpu16

Заработала загрузка с флешки

6ad7245a0a5bfb50b02c3652ded019f568b61190

Заработала загрузка с флешки. В качестве флешкиного бутсектора я использовал бутсектор от OS Kolibri.

Флешку надо форматировать как FAT-32, затем инсталлировать туда бутсектор (см. make installflash в каталоге boot-sector), затем просто скопировать туда файл stage2 (см. make installflash в каталоге stage2)

Замечание: флешка грузится как flash-HDD, то есть эмулирует HDD. На уровне BIOS прооисходит подмена прерывания 0x13 и устройство 0x80 – это флешка (флешка как HDD, там есть MBR!), а 0x81 – ПЕРВЫЙ жесткий диск (с компьютерами у которых два жеских диска я еще не эксмериментировал)

Прощай, unetbootin, прощай, syslinux, прощай, grub

unetbootin bug

Мои эксперименты показали, что прога unetbootin в Ubuntu 15.10 x64 глючит,
то есть не работает (она же – последняя версия с unetbootin.github.io). При
загрузке с флешки выдается сообщение

SYSLINUX … Peter Anvin et al
Boot error

Такие же манипуляции в Ubuntu 14.04LTS создают работоспособную флешку

* * *

unetbootin используется мной при создании загрузочных флешек Пруликса (из
образов дискеты или CD ISO image)