Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт сен 21, 2017 5:06 pm

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




Начать новую тему  Ответить на тему  [ 124 сообщения ]  На страницу Пред. 15 6 7 8 9 След.
Автор Сообщение
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Пн авг 20, 2012 10:49 am 
Пенял в смысле что во как можно просто и быстро и он может и вообще все мы тут херней занимаемся. Только он один умный и красивый с транспарантом стоит. (ака Новодворская)


Вернуться к началу
   
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Ср авг 22, 2012 4:08 pm 
Не в сети

Зарегистрирован: Ср сен 15, 2010 7:22 pm
Сообщения: 101
У меня такой вопрос: "почему именно SASOS?" (как я понимаю, имеется в виду операционная система с единым адресным пространством, вроде DOS)

P.S.

На мой взгляд, это является самым главным основанием сомневаться в продолжении "традиций Kolibri OS" !


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Ср авг 22, 2012 8:20 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
FireWall
отдельное адресное пространство для каждого приложения - это второстепенная фича,
Колибри вполне могла бы входить (2-ой головой) и в SAS x64-режим, оставаясь при этом самой собой на 1-й голове.
там же есть RIP-адресация, во времена DOSа мы и мечтать о таком не могли.

Оффтопик: двухголовая Колибри :shock: должна внушать мощные галлюциассоциации с известным геральдическим монстром


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Ср авг 22, 2012 11:10 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
FireWall
SAS не единое адресное пространство в стиле DOS, а единое пространство адресов. То есть система с неперекрывающимися адресными пространствами и глобальными адресами. Сами адресные пространства изолированы друг от друга таблицами страниц.
Мне SAS представлялась идеальным вариантом в сочетании микроядро+PE формат исполняемых файлов. Для монолитного ядра преимущества SAS не столь очевидны, но всё равно интересно попробовать.


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Вс сен 02, 2012 6:57 pm 
Не в сети

Зарегистрирован: Ср сен 15, 2010 7:22 pm
Сообщения: 101
(1) Насколько я понимаю, Kolibri PE сейчас довольно сильно отстаёт от основной версии. Однако уже имеется загрузчик PE-формата, правда 32-х битный. Это так?

(2) Вы собираетесь отталкиваться от текущей версии Kolibri PE или сначала привести её в соответствие с основной версией?


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Вс сен 02, 2012 9:47 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
FireWall
1)Работа остановилась три года назад. Загрузчик РЕ используется в транке для загрузки драйверов. Более продвинутая версия есть в исходниках newlib.
2)Я хочу полностью поменять проект и делать новое ядро для амд64.


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Сб сен 08, 2012 11:07 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Сделал переход в long mode. Если всё пройдёт успешно на экране появится небольшое сообщение.


Вложения:
Комментарий к файлу: Просто скопируйте ядро в kolibri.img
kernel.7z [5 КБ]
95 скачиваний
Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Вс сен 09, 2012 3:03 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
На одноголовом AMD Sempron 140 отработала зачётно.
1-я строчка это CPUID, я так тоже умею
а вот дальше было интересно взглянуть на код.

скриншот (по понятным причинам :) ) выслать не могу.

Кстати, а как выводить текст в Long Mode ?


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Вс сен 09, 2012 12:09 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Обычный printf :) А текст выводится ручками, в видеопамять.
Спойлер: Показать
Не уверен, что для АМД флаги cpuid совпадают

int printf(const char* format, ...);

static void cpuid(u32_t op, u32_t *eax, u32_t *ebx,
u32_t *ecx, u32_t *edx)
{
asm volatile("cpuid"
: "=a" (*eax),
"=b" (*ebx),
"=c" (*ecx),
"=d" (*edx)
: "a" (op), "c" (0)
: "memory");
}

void init64(void)
{
static char x86_model_id[64];
u32_t *v;

u32_t ops=0;

u32_t _eax, _ebx, _ecx, _edx;

v = (u32_t *)x86_model_id;

cpuid(0x1, &_eax, &_ebx, &_ecx, &_edx);
if( _ecx & 1)
ops|= 8;
if( _ecx & (1<<17))
ops|= 1;
if( _ecx & (1<<5))
ops|= 0x10;
if( _ecx & (1<<28))
ops|= 0x200;

cpuid(0x80000001, &_eax, &_ebx, &_ecx, &_edx);

if( _edx & (1<<26))
ops |= 2;
if( _edx & (1<<29))
ops |= 4;

cpuid(0x80000002, &v[0], &v[1], &v[2], &v[3]);
cpuid(0x80000003, &v[4], &v[5], &v[6], &v[7]);
cpuid(0x80000004, &v[8], &v[9], &v[10], &v[11]);

printf("Long mode enabled\n");
printf("%s\n",v);

printf("%s%s%s%s%s%s",
(ops & 1)?"PCID supported\n":"",
(ops & 2) ? "1Gb pages supported\n":"",
(ops & 8) ? "SSE3 supported\n":"",
(ops & 0x10) ? "VMX supported\n":"",
(ops & 0x200) ? "AVX supported\n":"",
(ops & 4) ? "long mode supportd\n":"");

printf("System halted");
asm volatile ("hlt");
};
Появились сомнения, писать ли код в Колибри РЕ или стартануть новую ветку, KPE64. Пока буду выкладывать исходники на фтп. Ещё планирую написать несколько постов с подробным описанием процесса инициализации ядра, что к чему, почему и как.


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Пн сен 10, 2012 11:51 am 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
Ну, если ручками, да еще и в видеопамять, тогда уж лучше фреймбуфер Колибри использовать, НЕ ?

а оттуда и скриншоты можно снимать, и логи записывать, и GUI-мессиджи передавать без велосипедов.

(это я типа еще раз намекнул что) уже существующий сервис 32-битного ядра мог бы очень упростить отладку и тестирование.


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Пн сен 10, 2012 12:48 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Цитата:
Ну, если ручками, да еще и в видеопамять, тогда уж лучше фреймбуфер Колибри использовать, НЕ ?
Не-а. Я же в текстовом режиме гружусь.
Цитата:
...уже существующий сервис 32-битного ядра мог бы очень упростить отладку и тестирование.
В теории да. А на практике двум пернатым в одной берлоге тяжело ужиться. Тем более что сейчас я инициализацию ядра делаю, а для этого лучше монопольный доступ.


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Пн сен 10, 2012 3:30 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Вт авг 25, 2009 4:45 pm
Сообщения: 788
Я могу и отдельный svn поднять, или git, для KPE64


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Пн сен 10, 2012 8:05 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4175
Правильно определил проц i3 330m, long mode enabled.

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Вт сен 11, 2012 1:20 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3928
Цитата:
The Pentium 4, Intel Xeon, and P6 family processors provide special support for the physical memory range from 0
to 4 MBytes, which is potentially mapped by both the fixed and variable MTRRs. This support is invoked when a
Pentium 4, Intel Xeon, or P6 family processor detects a large page overlapping the first 1 MByte of this memory
range with a memory type that conflicts with the fixed MTRRs. Here, the processor maps the memory range as
multiple 4-KByte pages within the TLB. This operation insures correct behavior at the cost of performance. To avoid
this performance penalty, operating-system software should reserve the large page option for regions of memory
at addresses greater than or equal to 4 MBytes.
Атрибуты кеширования страницы сохраняются в TLB чтобы не проверять mtrr каждый раз. Первый мегабайт содержит память с разными атрибутами. И для него процессор разбивает большую страницу на маленькие, что приводит к потере производительности.
Нет ли смысла зарезервировать первые 4 или 2 Мб для PAE и переместить ядро выше ?


Вернуться к началу
 Заголовок сообщения: Re: Колибри PE
СообщениеДобавлено: Вт сен 11, 2012 1:44 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пт авг 14, 2009 1:46 am
Сообщения: 1291
да, на АМД тоже первый мегабайт - сплошной паркет из Fixed MTRR.
надо попробовать сдвинуть физ.адрес ядра выше 4М и сравнить производительность.


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 124 сообщения ]  На страницу Пред. 15 6 7 8 9 След.

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


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

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


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

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