2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 16:38 


25/01/10
33
Цитата:
И ещё хотел спросить, у нас некоторым в Вузе дают в качестве курсовой написать свой компилятор. Это шутка, или я неправильно что-то понял, или это вообще как?

Это не шутка. Каждый студент, который как-то связан с программирование должен познать создание компиляторов. Такая программа все лишь перевод написанного кода в другой код. В данном случае из языка высокого уровня в низкий (например, Ассемблер). А ассемблер уже в машинный код.
Есть хорошая книга "Альфред В. Ахо, Моника С. Лам, Рави Сети, Джеффри Д. Ульман. Компиляторы: принципы, технологии и инструментарий"
Благодаря компиляторам стало программировать легче и понятнее. И появляется возможность создавать белее сложные вещи.

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 17:24 


04/02/08
325
Буково
Цитата:
И ещё хотел спросить, у нас некоторым в Вузе дают в качестве курсовой написать свой компилятор. Это шутка, или я неправильно что-то понял, или это вообще как?

Совсем не шутка. Для начала можно взять тот же gcc и разобраться, что там и как работает. А потом уже можно вообще придумать свой собственный язык программирования и для него сделать компилятор.

А по поводу
Цитата:
написать простенькую программку, которая при изменении параметров в bios-заргрузке, выводить какой-нибудь рисунок

так посмотрите исходники grub, например, как это у них сделано. Примеров полно, и не надо изобретать велосипед :)

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 18:02 
Заслуженный участник


09/08/09
3438
С.Петербург
kuraga, если будете писать свой компилятор (как уже говорилось, это стандартная учебная задача), вот сюда загляните: http://www.antlr.org/

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 19:37 


08/11/09
156
Maslov в сообщении #303645 писал(а):
kuraga, если будете писать свой компилятор (как уже говорилось, это стандартная учебная задача), вот сюда загляните: http://www.antlr.org/

Спасибо! Ну а все же, есть микро-ОС на C? Linux 0.01 хорош, но искать для не нуна старые компайлеры...

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение29.03.2010, 00:04 


04/02/08
325
Буково
С чего вы взяли, что нужно будет искать старые компиляторы? Разберитесь для начала в коде. Возможно, конечно, что какие-то инструкции/сисвызовы в современных библиотеках уже не поддерживаются, но их просто можно будет изменить. Вы учтите, что 19 лет назад компьютерная архитектура была немного другой.

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение29.03.2010, 00:47 


08/11/09
156
Ed_Em в сообщении #303806 писал(а):
С чего вы взяли, что нужно будет искать старые компиляторы? Разберитесь для начала в коде. Возможно, конечно, что какие-то инструкции/сисвызовы в современных библиотеках уже не поддерживаются, но их просто можно будет изменить. Вы учтите, что 19 лет назад компьютерная архитектура была немного другой.


Я поэтому и спросил. Ведь MikeOS -нынеподдерживаемая, и она, возможна, лишена этих проблем. В коде уже немного разобрался...

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение29.03.2010, 01:36 
Заслуженный участник


09/08/09
3438
С.Петербург
kuraga в сообщении #303695 писал(а):
Ну а все же, есть микро-ОС на C?
Не знаю, не встречал (правда, особенно и не интересовался). Совсем без ассемблера, скорее всего, не получится: загрузочный сектор уж больно маленький, чтобы в него программу на С втиснуть.
Да Вы не бойтесь ассемблера: в жизни, скорее всего, не пригодится, но для общего образования весьма полезно.

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение29.03.2010, 18:44 


08/11/09
156
Ну без ассемблера никак, я просто ищу и то и то :lol:

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение30.03.2010, 17:57 
Заслуженный участник


26/07/09
1559
Алматы
2kuraga
Цитата:
А что-то типа MikeOS, но с использованием C, есть?

Я ещё раз повторю. Попробуйте поизучать minix (можно сказать, linux был создан именно под впечатлением от minix'а). Вам понравится. :) Это именно $\mu\mathrm{K}$-ОС на C, созданная специально для изучения/обучения. Ядро занимает всего пару тысяч строк кода (это при том, что половина этого кода суть подробные комментарии и всякие аккуратные директивки). Исходники основных драйверов тоже написаны в таком же стиле -- максимально "разжеванно".

Современная версия minix'а --- MINIX 3 (см. http://www.minix3.org/ и http://www.minix3.ru). Есть гуй и наиболее важный софт. Заметьте, что minix является posix-совместимой, т.е., хоть сама она и не похожа на типичную *nix систему, но почти любую правильно написанную программу, работающую в unix/linux'е можно под нее портировать.

Для ознакомления с теоретическими архитектурными вопросами проектирования микроядерных ОС рекомендую также взглянуть на старый-престарый проект Spring, так, для расширения кругозора.

P.S.: Я в свое время, уцепившись за идею написания своей оси (кодовое имя -- proto_axis; понятно, что так ничего и небыло доведено до ума :) ), изрядно потрепал себе нервы перезагружая компьютер по раз по 30 за ночь. :) Так что сразу обзаведитесь эмулятором для экспериментов (я с ними подружился только когда от интереса к ОСеписательству уже не осталось и следа).

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение30.03.2010, 19:13 


08/11/09
156
Circiter в сообщении #304571 писал(а):
2kuraga
Цитата:
А что-то типа MikeOS, но с использованием C, есть?

Я ещё раз повторю. Попробуйте поизучать minix (можно сказать, linux был создан именно под впечатлением от minix'а). Вам понравится. :) Это именно $\mu\mathrm{K}$-ОС на C, созданная специально для изучения/обучения. Ядро занимает всего пару тысяч строк кода (это при том, что половина этого кода суть подробные комментарии и всякие аккуратные директивки). Исходники основных драйверов тоже написаны в таком же стиле -- максимально "разжеванно".

Современная версия minix'а --- MINIX 3 (см. http://www.minix3.org/ и http://www.minix3.ru). Есть гуй и наиболее важный софт. Заметьте, что minix является posix-совместимой, т.е., хоть сама она и не похожа на типичную *nix систему, но почти любую правильно написанную программу, работающую в unix/linux'е можно под нее портировать.

Для ознакомления с теоретическими архитектурными вопросами проектирования микроядерных ОС рекомендую также взглянуть на старый-престарый проект Spring, так, для расширения кругозора.

P.S.: Я в свое время, уцепившись за идею написания своей оси (кодовое имя -- proto_axis; понятно, что так ничего и небыло доведено до ума :) ), изрядно потрепал себе нервы перезагружая компьютер по раз по 30 за ночь. :) Так что сразу обзаведитесь эмулятором для экспериментов (я с ними подружился только когда от интереса к ОСеписательству уже не осталось и следа).

Спасибо! Люблю QEMU. Правда, под виндой он глючит порой. А почему VirtualBox такой большой, это не только оболочка?

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 07:44 


04/02/08
325
Буково
VirtualBox большой и неповоротливый, потому что в основном работает за счет "софтовой" эмуляции. Если хотите использовать аппаратную эмуляцию, и ваш процессор ее поддерживает, взгляните в сторону XEN.

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 12:47 
Заслуженный участник


09/08/09
3438
С.Петербург
VirtualBox вполне себе нормально поддерживает "железную" виртуализацию (Intel VT и AMD SVM).
Ну а XEN -- это stand-alone гипервизор, т.е. он ставится на "чистую" машину (без какой-либо установленной ОС), поэтому, на мой взгляд, использовать его для развлечений с мини-ОС несколько сложновато.

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 13:17 


04/02/08
325
Буково
Вообще, несмотря на то, что VirtualBox заметно быстрее, чем qemu, все-таки лучше пользоваться последним, т.к. он позволяет эмулировать разные архитектуры. Например, можно написать что-нибудь для ARM или MIPS и отладить в qemu, ну а потом уже устанавливать на компьютер с нормальной архитектурой.

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 13:21 
Заслуженный участник


09/08/09
3438
С.Петербург
Ed_Em в сообщении #304889 писал(а):
несмотря на то, что VirtualBox заметно быстрее, чем qemu, все-таки лучше пользоваться последним,
Никто ж не мешает пользоваться обоими :-)

 Профиль  
                  
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 14:26 


04/02/08
325
Буково
Maslov в сообщении #304892 писал(а):
Ed_Em в сообщении #304889 писал(а):
несмотря на то, что VirtualBox заметно быстрее, чем qemu, все-таки лучше пользоваться последним,
Никто ж не мешает пользоваться обоими :-)

Не мешает. Но в qemu есть еще один плюс: образы его дисков можно подмонтировать через mount -o loop ..., а вот образы VirtualBox - нельзя. И общаться с родительской системой в нем можно только через эмуляцию сети.

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

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

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


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

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group