Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Вт июл 25, 2017 3:34 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 29 сообщений ]  На страницу Пред. 1 2
Автор Сообщение
СообщениеДобавлено: Пт ноя 22, 2013 9:41 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Fanatic писал(а):
1. io.sys - это не ядро. Ядро - это msdos.sys. По крайней мере - в ms dos.
msdos.sys - это, грубо говоря, реализация int 21h. io.sys - это, грубо говоря, слой абстрагирования от оборудования: оборачивает в единый интерфейс блочных и символьных устройств вещи типа COMx/LPTx - реализованные в самом io.sys - и внешние драйвера. И то, и другое - части ядра.

Fanatic писал(а):
Если загрузчик вынесен в отдельный от ядра файл, то с точки зрения формальной логики он не может являться частью ядра.

Если формально разрезать пополам файл kernel.mnt, получатся две части ядра. Если какой-то код инициализирует драйверы, он автоматически становится столь же важным, как половинка kernel.mnt.

Fanatic писал(а):
Под "рабочей средой" вы подразумеваете защищённый режим памяти?
Не только. Защищённый режим процессора, страничная организация памяти и функции для работы с ней, менеджер памяти, APIC, таймер, тикающий на заданной частоте, многозадачность и примитивы синхронизации для работы с ней. Применительно к Колибри - реализация всех функций, перечисленных в kernel/trunk/core/exports.inc - API ядра для драйверов.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Пт ноя 22, 2013 9:45 pm 
Не в сети
Just Flooding

Зарегистрирован: Пт ноя 08, 2013 2:49 pm
Сообщения: 19
CleverMouse писал(а):
Если формально разрезать пополам файл kernel.mnt, получатся две части ядра. Если какой-то код инициализирует драйверы, он автоматически становится столь же важным, как половинка kernel.mnt.


Если в программе есть что-то неважное от чего можно отказаться, это следует немедленно удалить.

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


Вернуться к началу
СообщениеДобавлено: Сб ноя 23, 2013 12:58 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Две монеты писал(а):
CleverMouse писал(а):
Если формально разрезать пополам файл kernel.mnt, получатся две части ядра. Если какой-то код инициализирует драйверы, он автоматически становится столь же важным, как половинка kernel.mnt.


Если в программе есть что-то неважное от чего можно отказаться, это следует немедленно удалить.

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

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


Вернуться к началу
СообщениеДобавлено: Сб ноя 23, 2013 3:37 am 
Не в сети
Just Flooding

Зарегистрирован: Пт ноя 08, 2013 2:49 pm
Сообщения: 19
Во-первых, не по теме.

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

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

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

Совет, который ты просил: если (за 9 лет) ни хрена не выходит - прочти наконец учебник. Прочти его на этот раз до конца.


Вернуться к началу
СообщениеДобавлено: Сб ноя 23, 2013 3:40 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Две копейки
Шел бы ты на... osdev.ru Таннебаумом детей пугать.
Критерием качества в Колибри всегда (ну по крайней мере до прошлого лета) была эффективность кода:
diamond писал(а):
Напоминаю, что Колибри позиционируется как маленькая и быстрая ось.



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


Вернуться к началу
СообщениеДобавлено: Сб ноя 23, 2013 4:58 pm 
Не в сети
Just Flooding

Зарегистрирован: Пт ноя 08, 2013 2:49 pm
Сообщения: 19
Возможность прошивки в ППЗУ - одно из преимуществ initrd. Перепрошить можно любой BIOS с ППЗУ.

Изначальная цель проекта coreboot состояла в создании возможности записать Линукс в BIOS. Для этого потребовалось переписать BIOS чтобы выполнить все выполняемые им процедуры. Цель достигнута. Новая цель проекта - создание универсального BIOS, обеспечивающего возможность загрузки любой ОС.


Вернуться к началу
СообщениеДобавлено: Пн ноя 25, 2013 3:10 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Две монеты
Вы узнали про архитектуру NT. Это похвально. Но теперь вы считаете, что всё, что не следует этой архитектуре, - быдлокод. Это уже печально.

Две монеты писал(а):
Во-вторых, я считаю неверным что ядром размером меньше 50 кб занимает 1,5 Мб.
К.О. просил передать, что ядро размером меньше 50 кб занимает меньше 50 кб. Я добавлю, что текущий размер ядра Колибри - около 90 Кб. Если вы про размер kolibri.img - я для тестов загружала систему с образом 720К, можно и меньше без всяких проблем. Но людям почему-то недостаточно ядра и драйверов, им ещё программы подавай.

Две монеты писал(а):
Совет, который ты просил: если (за 9 лет) ни хрена не выходит - прочти наконец учебник. Прочти его на этот раз до конца.
Это вы про себя? У нас вполне неплохо выходит.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Вт ноя 26, 2013 10:10 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Пн ноя 19, 2012 5:22 pm
Сообщения: 429
Хм... загрузчик уже не обсуждаем(я уж не говорю про "пишем")... :)

_________________
Чем больше сыра, тем больше в нём дыр. Чем больше дыр, тем меньше в нём собственно сыра. Значит, чем больше сыра, тем меньше сыра!


Вернуться к началу
 Заголовок сообщения: To CleverMouse
СообщениеДобавлено: Чт ноя 28, 2013 6:58 pm 
Не в сети

Зарегистрирован: Пт май 25, 2012 12:45 pm
Сообщения: 75
А ты сможешь скомпилировать exe-шники, которыми я пользовался для установки системы на нетбук, для MS DOS?

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

UPD: Ещё лучше было бы объединить их в один "inst.exe", которому можно было бы задать параметр "-setmbr" - и он прописывал бы mbr-ку.
Разместить некий Warning при запуске без параметра "-expert", заглавным и жирным шрифтом, о том что, дескать: "Если у вас несколько ОС - гуляйте лесом и пользуйтесь GRUB, этот установщик, мол, не для тех, кто хочет "поматросить и бросить", а для тех кто "всерьёз и надолго" и т.п.
А потом перед самой операцией прописывания mbr какой-нибудь "Are you sure?" и дефолтом "N"...


Вернуться к началу
СообщениеДобавлено: Чт ноя 28, 2013 7:19 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Fanatic писал(а):
А ты сможешь скомпилировать exe-шники, которыми я пользовался для установки системы на нетбук, для MS DOS?
Нет, они используют WinAPI.

Fanatic писал(а):
Ещё лучше было бы объединить их в один "inst.exe", которому можно было бы задать параметр "-setmbr" - и он прописывал бы mbr-ку.
Есть проблема: не на всех флешках есть MBR, на некоторых прямо с нулевого сектора начинается единственный раздел. Особенно часто так бывает на SD-картах. Попытка записи MBR в таком случае убьёт файловую систему.

_________________
Сделаем мир лучше!


Вернуться к началу
СообщениеДобавлено: Чт ноя 28, 2013 8:30 pm 
Не в сети

Зарегистрирован: Пт май 25, 2012 12:45 pm
Сообщения: 75
CleverMouse писал(а):
Нет, они используют WinAPI.
А написать на для MS DOS можешь?

CleverMouse писал(а):
Есть проблема: не на всех флешках есть MBR, на некоторых прямо с нулевого сектора начинается единственный раздел. Особенно часто так бывает на SD-картах. Попытка записи MBR в таком случае убьёт файловую систему.
Ох ты ж господи, в коем-то веке вопросы совместимости беспокоят приверженцев Linux-подхода :))))))))
Иронизирую.

В таком случае нужен ещё один большой warning заглавными жирными буквами, а для пущей уверенности - "are you sure?" c default-ным "N".


Вернуться к началу
СообщениеДобавлено: Чт ноя 28, 2013 8:51 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Fanatic писал(а):
А написать на для MS DOS можешь?
Мне это неинтересно. Версию для Windows писала не я.

Fanatic писал(а):
В таком случае нужен ещё один большой warning заглавными жирными буквами, а для пущей уверенности - "are you sure?" c default-ным "N".
Откуда пользователь узнает, нужно ему писать MBR или нет? Текущая инструкция с раздельными шагами "запускайте setmbr.exe, только если после inst.exe не загрузилось" тоже не идеал - во-первых, мало ли почему не загрузилось, во-вторых, если setmbr всё же нужен, получается лишний шаг с неработающей перезагрузкой - но хотя бы как-то решает вопрос.

_________________
Сделаем мир лучше!


Вернуться к началу
 Заголовок сообщения: Уточнения
СообщениеДобавлено: Чт ноя 28, 2013 9:10 pm 
Не в сети

Зарегистрирован: Пт май 25, 2012 12:45 pm
Сообщения: 75
Две монеты писал(а):
Поэтому и переход в Колибри от одной схемы к другой ничего не даст.
Даст. С самого начала делать как проще, даже не допуская мысли о том, что однажды это может сильно понадобиться? Мол - да так повелось уже, никто менять не будет...
Получается как в той истории: "Вышел старший брат во двор, наступил на грабли, получил по лбу - упал и лежит. Пошёл средний брат во двор, подошёл к граблям, наступил - получил по лбу, упал и лежит. Увидел младший брат это дело, пригорюнился - да делать нечего..."


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

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


Две монеты писал(а):
Установщик будет полезен, когда система станет востребованной среди сколько-нибудь большого числа людей. На текущий момент большинство использует её как LiveCD на эмуляторах.
У вас телега впереди лошади едет. Вам не приходило в голову, что система потому и непопулярна, что её хрен установишь? :)))))))))))))) Я неделю бился в конвульсиях, пытаясь установить Колибри на нетбук - и то, только потому что я "Фанатик"... А сколько ещё есть таких упоротых? Единицы. Вот и получаем "узкий круг ограниченных людей" :))


Вернуться к началу
СообщениеДобавлено: Чт ноя 28, 2013 9:21 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Чт сен 03, 2009 1:52 pm
Сообщения: 1596
Fanatic писал(а):
система потому и непопулярна, что её хрен установишь?
Её сложно установить единственной системой на отдельный жёсткий диск, это так, ибо разработчики этим не занимаются. Другие варианты установки просты вплоть до "запустите mtldr_install.exe, он сам всё сделает" в случае установки второй системой после загрузчика Windows.

_________________
Сделаем мир лучше!


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

Часовой пояс: UTC+03:00


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

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


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

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