Загрузчик, динамически собирающий kolibri.img

Kernel boot-loaders discussion
  • CleverMouse wrote:Если формально разрезать пополам файл kernel.mnt, получатся две части ядра. Если какой-то код инициализирует драйверы, он автоматически становится столь же важным, как половинка kernel.mnt.
    Если в программе есть что-то неважное от чего можно отказаться, это следует немедленно удалить.

    Загрузчик остаётся загрузчиком, даже если находится в одном общем файле с ядром. И он должен быть выгружен (= занимаемая им память должна быть освобождена) после завершения инициализации.
  • Две монеты wrote:
    CleverMouse wrote:Если формально разрезать пополам файл kernel.mnt, получатся две части ядра. Если какой-то код инициализирует драйверы, он автоматически становится столь же важным, как половинка kernel.mnt.
    Если в программе есть что-то неважное от чего можно отказаться, это следует немедленно удалить.

    Загрузчик остаётся загрузчиком, даже если находится в одном общем файле с ядром. И он должен быть выгружен (= занимаемая им память должна быть освобождена) после завершения инициализации.
    прежде чем давать людям советы космической мудрости,
    загляни в код ядра.
    отметь все подлежащие удалению блоки загрузки/инициализации,
    напиши код, удаляющий их и безопасно перемещающий остальные куски ядра на освободившееся место,
    подсчитай профит -
    и прослезись.
  • Во-первых, не по теме.

    Во-вторых, я считаю неверным что ядром размером меньше 50 кб занимает 1,5 Мб.

    В-третьих, это был ответ на фразу "он автоматически становится столь же важным" - не становится. Если он не важен, значит он не нужен. Код инициализации после завершения инициализации не нужен.

    Мне каждому объяснять прописные истины, или всё-таки дойдёт прочитать Таненбаума, Windows/Linux Internals или хотя бы SDK по прикладному программирования для Win32/Linux прежде, чем пытаться строить архитектуру ядра слабо представляя что такое ядро, кому и зачем оно нужно. Тогда и не будет ситуации, когда функция Windows просит буфер размером 64 байта, а Колибри - 1 кб, тогда не придётся объяснять что такое асинхронность и зачем она нужна, что такое IRP, как работает отложенная обработка аппаратных прерываний, что такое стек драйверов, что такое initrd и какие у него преимущества и недостатки, и т.д.

    Совет, который ты просил: если (за 9 лет) ни хрена не выходит - прочти наконец учебник. Прочти его на этот раз до конца.
  • Две копейки
    Шел бы ты на... osdev.ru Таннебаумом детей пугать.
    Критерием качества в Колибри всегда (ну по крайней мере до прошлого лета) была эффективность кода:
    diamond wrote:Напоминаю, что Колибри позиционируется как маленькая и быстрая ось.

    btw, я насчет другого интересного решения хотел поговорить:
    в QNX есть утилитка FastBoot, копирующая весь образ памяти и состояние регистров всех контроллеров в единый ROM-файл (разумеется, работает она только на избранных чипсектах).
    После перепрошивки (вместо чипа BIOS втыкают ROM-образ QNX) PC за 2-3секунды грузит готовую рабочую среду.
  • Возможность прошивки в ППЗУ - одно из преимуществ initrd. Перепрошить можно любой BIOS с ППЗУ.

    Изначальная цель проекта coreboot состояла в создании возможности записать Линукс в BIOS. Для этого потребовалось переписать BIOS чтобы выполнить все выполняемые им процедуры. Цель достигнута. Новая цель проекта - создание универсального BIOS, обеспечивающего возможность загрузки любой ОС.
  • Две монеты
    Вы узнали про архитектуру NT. Это похвально. Но теперь вы считаете, что всё, что не следует этой архитектуре, - быдлокод. Это уже печально.
    Две монеты wrote:Во-вторых, я считаю неверным что ядром размером меньше 50 кб занимает 1,5 Мб.
    К.О. просил передать, что ядро размером меньше 50 кб занимает меньше 50 кб. Я добавлю, что текущий размер ядра Колибри - около 90 Кб. Если вы про размер kolibri.img - я для тестов загружала систему с образом 720К, можно и меньше без всяких проблем. Но людям почему-то недостаточно ядра и драйверов, им ещё программы подавай.
    Две монеты wrote:Совет, который ты просил: если (за 9 лет) ни хрена не выходит - прочти наконец учебник. Прочти его на этот раз до конца.
    Это вы про себя? У нас вполне неплохо выходит.
    Сделаем мир лучше!
  • Хм... загрузчик уже не обсуждаем(я уж не говорю про "пишем")... :)
    Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!
  • А ты сможешь скомпилировать exe-шники, которыми я пользовался для установки системы на нетбук, для MS DOS?

    setmbr.exe и inst.exe, которым можно было бы в параметрах скармливать диск, задавать, к примеру, параметр "-d" для какого-нить дебаггинга и -expert чтобы не выдавал warning-ов - и они справлялись бы со своей задачей из коммандной строки.

    UPD: Ещё лучше было бы объединить их в один "inst.exe", которому можно было бы задать параметр "-setmbr" - и он прописывал бы mbr-ку.
    Разместить некий Warning при запуске без параметра "-expert", заглавным и жирным шрифтом, о том что, дескать: "Если у вас несколько ОС - гуляйте лесом и пользуйтесь GRUB, этот установщик, мол, не для тех, кто хочет "поматросить и бросить", а для тех кто "всерьёз и надолго" и т.п.
    А потом перед самой операцией прописывания mbr какой-нибудь "Are you sure?" и дефолтом "N"...
  • Fanatic wrote:А ты сможешь скомпилировать exe-шники, которыми я пользовался для установки системы на нетбук, для MS DOS?
    Нет, они используют WinAPI.
    Fanatic wrote:Ещё лучше было бы объединить их в один "inst.exe", которому можно было бы задать параметр "-setmbr" - и он прописывал бы mbr-ку.
    Есть проблема: не на всех флешках есть MBR, на некоторых прямо с нулевого сектора начинается единственный раздел. Особенно часто так бывает на SD-картах. Попытка записи MBR в таком случае убьёт файловую систему.
    Сделаем мир лучше!
  • CleverMouse wrote:Нет, они используют WinAPI.
    А написать на для MS DOS можешь?
    CleverMouse wrote:Есть проблема: не на всех флешках есть MBR, на некоторых прямо с нулевого сектора начинается единственный раздел. Особенно часто так бывает на SD-картах. Попытка записи MBR в таком случае убьёт файловую систему.
    Ох ты ж господи, в коем-то веке вопросы совместимости беспокоят приверженцев Linux-подхода :))))))))
    Иронизирую.

    В таком случае нужен ещё один большой warning заглавными жирными буквами, а для пущей уверенности - "are you sure?" c default-ным "N".
  • Fanatic wrote:А написать на для MS DOS можешь?
    Мне это неинтересно. Версию для Windows писала не я.
    Fanatic wrote:В таком случае нужен ещё один большой warning заглавными жирными буквами, а для пущей уверенности - "are you sure?" c default-ным "N".
    Откуда пользователь узнает, нужно ему писать MBR или нет? Текущая инструкция с раздельными шагами "запускайте setmbr.exe, только если после inst.exe не загрузилось" тоже не идеал - во-первых, мало ли почему не загрузилось, во-вторых, если setmbr всё же нужен, получается лишний шаг с неработающей перезагрузкой - но хотя бы как-то решает вопрос.
    Сделаем мир лучше!
  • Две монеты wrote:Поэтому и переход в Колибри от одной схемы к другой ничего не даст.
    Даст. С самого начала делать как проще, даже не допуская мысли о том, что однажды это может сильно понадобиться? Мол - да так повелось уже, никто менять не будет...
    Получается как в той истории: "Вышел старший брат во двор, наступил на грабли, получил по лбу - упал и лежит. Пошёл средний брат во двор, подошёл к граблям, наступил - получил по лбу, упал и лежит. Увидел младший брат это дело, пригорюнился - да делать нечего..."

    Две монеты wrote:Производительность по большей части определяется алгоритмами, а не их реализацией. Сравни: нужно вскопать 10 га, у меня трактор, у тебя - палка-копалка. Палка-копалка "проста как доска"... :) Тесты показывают, что выигрыш в производительности от перехода на ассемблер редко превышает 5-10%; разница в размере скомпилированного файла более ощутима, но по сравнению с ёмкостью жёстких дисков не критична.
    Экий Вы хитрец: взяли - и подменили предмет обсуждения на свой, смешав всё в кучу :))
    Давайте-ка по полочкам.
    Я утверждаю вполне очевидный факт, что ассемблер - язык программирования низкого уровня, на нём программируют pic-контроллеры, микросхемы разнообразного оборудования и прочую полупроводниковую технику. Написание кода, описывающего заданную логику, усложнено крайне низким уровнем абстракции, но выполнение упрощено ввиду максимального исключения опосредованности при обращении к оборудованию.
    Язык высокого уровня, такой как PHP, к примеру - намного упрощает написание кода, описывающего заданную логику, но выполнение такого кода усложнено многократной опосредованностью.

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

    Две монеты wrote:Установщик будет полезен, когда система станет востребованной среди сколько-нибудь большого числа людей. На текущий момент большинство использует её как LiveCD на эмуляторах.
    У вас телега впереди лошади едет. Вам не приходило в голову, что система потому и непопулярна, что её хрен установишь? :)))))))))))))) Я неделю бился в конвульсиях, пытаясь установить Колибри на нетбук - и то, только потому что я "Фанатик"... А сколько ещё есть таких упоротых? Единицы. Вот и получаем "узкий круг ограниченных людей" :))
  • Fanatic wrote:система потому и непопулярна, что её хрен установишь?
    Её сложно установить единственной системой на отдельный жёсткий диск, это так, ибо разработчики этим не занимаются. Другие варианты установки просты вплоть до "запустите mtldr_install.exe, он сам всё сделает" в случае установки второй системой после загрузчика Windows.
    Сделаем мир лучше!
  • Who is online

    Users browsing this forum: No registered users and 1 guest