2014 dxdy logo

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

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




На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 16:38 
Цитата:
И ещё хотел спросить, у нас некоторым в Вузе дают в качестве курсовой написать свой компилятор. Это шутка, или я неправильно что-то понял, или это вообще как?

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

 
 
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 17:24 
Цитата:
И ещё хотел спросить, у нас некоторым в Вузе дают в качестве курсовой написать свой компилятор. Это шутка, или я неправильно что-то понял, или это вообще как?

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

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

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

 
 
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 18:02 
kuraga, если будете писать свой компилятор (как уже говорилось, это стандартная учебная задача), вот сюда загляните: http://www.antlr.org/

 
 
 
 Re: Операционно-независимый C
Сообщение28.03.2010, 19:37 
Maslov в сообщении #303645 писал(а):
kuraga, если будете писать свой компилятор (как уже говорилось, это стандартная учебная задача), вот сюда загляните: http://www.antlr.org/

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

 
 
 
 Re: Операционно-независимый C
Сообщение29.03.2010, 00:04 
С чего вы взяли, что нужно будет искать старые компиляторы? Разберитесь для начала в коде. Возможно, конечно, что какие-то инструкции/сисвызовы в современных библиотеках уже не поддерживаются, но их просто можно будет изменить. Вы учтите, что 19 лет назад компьютерная архитектура была немного другой.

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


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

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

 
 
 
 Re: Операционно-независимый C
Сообщение29.03.2010, 18:44 
Ну без ассемблера никак, я просто ищу и то и то :lol:

 
 
 
 Re: Операционно-независимый C
Сообщение30.03.2010, 17:57 
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 
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 
VirtualBox большой и неповоротливый, потому что в основном работает за счет "софтовой" эмуляции. Если хотите использовать аппаратную эмуляцию, и ваш процессор ее поддерживает, взгляните в сторону XEN.

 
 
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 12:47 
VirtualBox вполне себе нормально поддерживает "железную" виртуализацию (Intel VT и AMD SVM).
Ну а XEN -- это stand-alone гипервизор, т.е. он ставится на "чистую" машину (без какой-либо установленной ОС), поэтому, на мой взгляд, использовать его для развлечений с мини-ОС несколько сложновато.

 
 
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 13:17 
Вообще, несмотря на то, что VirtualBox заметно быстрее, чем qemu, все-таки лучше пользоваться последним, т.к. он позволяет эмулировать разные архитектуры. Например, можно написать что-нибудь для ARM или MIPS и отладить в qemu, ну а потом уже устанавливать на компьютер с нормальной архитектурой.

 
 
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 13:21 
Ed_Em в сообщении #304889 писал(а):
несмотря на то, что VirtualBox заметно быстрее, чем qemu, все-таки лучше пользоваться последним,
Никто ж не мешает пользоваться обоими :-)

 
 
 
 Re: Операционно-независимый C
Сообщение31.03.2010, 14:26 
Maslov в сообщении #304892 писал(а):
Ed_Em в сообщении #304889 писал(а):
несмотря на то, что VirtualBox заметно быстрее, чем qemu, все-таки лучше пользоваться последним,
Никто ж не мешает пользоваться обоими :-)

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

 
 
 [ Сообщений: 52 ]  На страницу Пред.  1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group