> man operating_systems
Переход на страницу  1 [2] 3 4 5 6 7 8 9
Модераторы: Roman I Khimov, Wanderer, Dron
Автор Добавил
Dron
Пятница 22.04.2005 10:15


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Вообще-то я сказал платформозависимы... то есть их по любому придется переписывать (как и говорил...)

Обязательно надо указывать -static... хотя если через ld - там все явно...

Ты бы текст ошибки явно бы привел - глядишь и придумали бы че нибудь... как это хеадеров не хватает? линкеру???

Вот поэтому я и пишу на асме... как напишешь, так и будет!

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

Андрей Валяев
Наверх
Сайт
nnivanov
Суббота 23.04.2005 12:58

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
Так или иначе придется перегружать new/delete. Почитай Д. Элджера "С++" - у него эти мудрости очень хорошо описаны.

А объектно-ориентированное ядро - это интересно!

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Tommy
Суббота 23.04.2005 15:20
ID пользователя #277
Зарегистрирован: Воскресенье 17.04.2005 23:05
Местонахождение: Нефтеюганск
Сообщений: 8
Dron, ну ты псих писать все на асме убиться можно - меня максимум хватило на ос реального режима (писал правда в классе 10-ом).

Вот еще, кстати мое ядро системы которую я сейчас писал на C, поэтому через некоторое время встал вопрос отладки - и вот что вычитал, что gdb имеет возможность отладки на компе соединенным как-нибудь с ним загляните сюда если не лень сюда http://www.3os.ru/forum_viewtopic.php?8.1052

На насчет ошибки:
Я может не совсем в gcc и ld разбираюсь так как с С было всё проще.
Вот что выдаёт мне ld:

test1.o(.text+0x17): In function `main':
: undefined reference to `operator new(unsigned int)'
test1.o(.gnu.linkonce.r._ZTI5yyy_c+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info'
test1.o(.gnu.linkonce.r._ZTV5xxx_c+0x8): undefined reference to `__cxa_pure_virtual'
test1.o(.gnu.linkonce.r._ZTI5xxx_c+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info'
test1.o(.eh_frame+0x11): undefined reference to `__gxx_personality_v0'

А вот простая программа какую я хочу скомпилировать и подсунуть загрузчику

class xxx_c
{
public:
xxx_c()
{}
virtual int meth() = 0;
private:
int a;
};

class yyy_c : public xxx_c
{
public:
yyy_c() : xxx_c()
{}
int meth()
{
asm("mov BYTE PTR [0xB8000], 0x44");
return 0;
}
private:
int b;
};

int main()
{
xxx_c * xxx;
xxx = new yyy_c;

while(1);
return 0;
}


А компаную вот так:

ld -e main -Map test.map -Ttext 0x10000 --oformat elf32-i386 --output test test1.o

<span class='smallblacktext'>[ Редактирование суббота 23.04.2005 15:28 ]</span>
Наверх
nnivanov
Понедельник 25.04.2005 03:43

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
2Tommy: я бы тоже на асме ядро писал, если бы здоровья было больше Ты представляешь, как будет летать такое ядро!

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Dron
Понедельник 25.04.2005 10:31


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Я ж не собираюсь все писать на асме... это действительно утопия... а ядро - вполне реально, и уже почти вполне написано.

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

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

Андрей Валяев
Наверх
Сайт
ddc
Понедельник 25.04.2005 14:18
Free Software Zealot


ID пользователя #202
Зарегистрирован: Воскресенье 06.02.2005 09:32
Местонахождение: Москва
Сообщений: 189
Ну и на фига вам эти полёты? Что, медленно сейчас работают программы на C? Всё равно слабое место будет не в исполняемом коде, а в дизайне системы и аппаратных вопросах. Так что ОС на ассемблере - это просто выпендрёж. И типичный пример - MenuetOS.

Но это всё, конечно, моё сугубо личное мнение...
Наверх
Dron
Понедельник 25.04.2005 16:39


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Писать хардварный уровень на бейсике - это тоже изврат!

Мне удобнее писать ядро на асме. и никакой это не выпендреж... здесь скорее с++ выпендреж!

Менует ос - это может быть неплохая идея доведенная до абсурда! всегда надо знать меру.

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

Андрей Валяев
Наверх
Сайт
nnivanov
Понедельник 25.04.2005 17:52

ID пользователя #253
Зарегистрирован: Вторник 29.03.2005 01:18
Местонахождение: Russia, Velikiy Novgorod
Сообщений: 123
Когда системный вызов находится в цикле, скорость чувствуешь на своей шкуре.

- Зачем мотоциклу реактивный двигатель?
- Да потому что нам так нравится!
Discovery Channel
Наверх
Сайт
Tommy
Вторник 26.04.2005 06:51
ID пользователя #277
Зарегистрирован: Воскресенье 17.04.2005 23:05
Местонахождение: Нефтеюганск
Сообщений: 8
Говорите вы все больно много, выпенжреж да выпендреж, с++ выпендреж, вы же понимаете что С уже устарел, а асм: вот положим ты решил что-то изменить - боже мой - да ты же пока в процедуре разберешься сколько времени уйдет - это не выпендреж а просто какое-то непонимание, а вот С по сравнению асмом - гораздо лучше - больше по возможностям ядро можно написать в более короткие сроки, не говоря уж о том что такое же по возможностям, причем работать оно будет (всего) на 20% быстрее - и что - провести профилировку, переписать на асме некоторые функциии, еще немного оптимизации получить 10% отставание ядра на С, и что - ради этих 10 процентов увеличивать время разработки (+ непереносимость, тяжелую подверженность изменениям ) - по-моему недостатки на лицо. А вот на счет того что С++ - выпендреж я сильно сомневаюсь.

Вообще мне кажеться что на этих форумах люди меньше всего отвечаю на вопросы, а базарять только - за все время написания ОС, я ниразу не оставлял вопросы на форумах, и вот возник вопрос - и что - оставил на форуме 3os - Там над каким-то парнем угарают (у него не вопрос, а глупость какая-то), на мой вопрос никто ответь не удосужился, здесь тоже самое...
Наверх
Dron
Вторник 26.04.2005 10:56


ID пользователя #13
Зарегистрирован: Понедельник 05.07.2004 11:16
Местонахождение: Москва
Сообщений: 651
Ну насчет сложности кода - это как написать...
Мне кажется что мой код не на много сложнее си.
(желающие полюбопытствовать - велкам на http://cvs.sourceforge.net/viewcvs.py/dronix/MDF/System-Core/Kernel-IA32/)

насчет непонятности кода - это ты менуетовцам скажи... и фасмовцам... которые писать принципиально помоему не умеют!

А в микроядерных системах - ядро - это самое узкое место. его просто необходимо оптимизировать. (чтобы потом не пришлось рвать на себе волосы.)

А про твой вопрос - тебе помоему достаточно широко ответили... кое что придется переписать, но всеравно все будет не так просто... потому что если ты будешь использовать стандартное - у тебя возникнут конфликты имен. (проще уж все переписывать что используется, и заодно не злоупотреблять стандартами)

Я пробовал писать на С++... но понимаешь в чем проблема... я сижу и думаю как мне проинициализировать статические классы, вместо того, чтобы думать о том, как мне распределять память... то есть выдуманные проблемы приходится решать. а в асме нет.

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

Андрей Валяев
Наверх
Сайт
Переход на страницу  1 [2] 3 4 5 6 7 8 9  

Перейти:     Наверх

Транслировать сообщения этой темы: rss 0.92 Транслировать сообщения этой темы: rss 2.0 Транслировать сообщения этой темы: RDF
Powered by e107 Forum System

© OSRC.info, 2004-2010.
Авторские права на любые материалы, авторы которых явно указаны, принадлежат их авторам. По вопросам публикации таких материалов обращайтесь к авторам.
Авторские права на любые другие материалы принадлежат OSRC.info.
Сайт является помещением библиотеки. Копирование, сохранение на жестком диске или иной способ сохранения произведений осуществляются пользователями на свой риск.
При использовании материалов сайта ссылка на OSRC.info обязательна.