Загрузка с дискеты кода на Си (Системное программирование в GCC)
Модератор: Модераторы разделов
-
AlexeyAL
- Сообщения: 71
Загрузка с дискеты кода на Си
Помогите пожалуйста! В общем, суть проблемы в следующем: надо запустить загружаясь с дискетки прогу на Си. Загрузчик есть, исходник компилим с -ffreestanding -c. Но в таком случае мы не можем исползовать функции библиотек ОС(Linux). Т.е. даже printf не заработает. А что можно использовать, чтобы написать свои библиотеки? Где бы взять такой набор функций? Пока что ничего кроме inline assembler'а не нашел 
Когда я вырасту и стану крутым программистом, я напишу свое ядро и подарю его Ричарду Столлмену
-
elide
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: Загрузка с дискеты кода на Си
так вот как раз учебник по ассемблеру и нужно использовать.
а потом еще справочник по прерываниям BIOS.
и потом все ручками-ручками (:
мы таким занимались на СПО... очень мерзкое дело... сочувствую...
а потом еще справочник по прерываниям BIOS.
и потом все ручками-ручками (:
мы таким занимались на СПО... очень мерзкое дело... сочувствую...
слава роботам!
-
AlexeyAL
- Сообщения: 71
Re: Загрузка с дискеты кода на Си
Печально
Но все равно спасибо.
Когда я вырасту и стану крутым программистом, я напишу свое ядро и подарю его Ричарду Столлмену
-
glist
- Сообщения: 134
- ОС: Debian Linux
Re: Загрузка с дискеты кода на Си
помниться был сайтик посвящённый разработкам ОС дык вот, там было что то написано о том как это всё решить можно... в общем нужно написать свои функции для ввода/вывода. щас его правда нету, но где то у меня валялась интересующая вас информация.
Debian GNU/Linux, windowmaker, Centericq, Opera/Mozilla/links.
----------------------------------
Sending Kiddies to /dev/null
----------------------------------
Sending Kiddies to /dev/null
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Загрузка с дискеты кода на Си
МОжно попробовать собрать его статически. -static... хотя glibc статически могут не лечь. Для этого советуется пересобрать оных с флагом -PIC.
В каждом из нас спит гений... и с каждым днем все крепче...
-
oav
- Бывший модератор
- Сообщения: 296
Re: Загрузка с дискеты кода на Си
AlexeyAL писал(а): ↑13.11.2005 11:08Помогите пожалуйста! В общем, суть проблемы в следующем: надо запустить загружаясь с дискетки прогу на Си. Загрузчик есть, исходник компилим с -ffreestanding -c. Но в таком случае мы не можем исползовать функции библиотек ОС(Linux). Т.е. даже printf не заработает. А что можно использовать, чтобы написать свои библиотеки? Где бы взять такой набор функций? Пока что ничего кроме inline assembler'а не нашел
[напригая какие-то пыльные участки памяти]=)
если нужно printf сделать - то это просто.
const char* text_buf = 0xb00000 (ай ай не пинайте точно не помню)
это адрес начала текстового буфера. первый байт - символ, второй - аттрибуты (цвет и т.п.) 85x25 вроде размер экрана, соот. адрес символа (x,y) = 170*y+x*2 туда и пишешь.
если нужны фишки типа доступа к жесткому диску, то тут реальная проблема т.к. надо работать по портам i/o в случае если твоя программа в защищенном режиме (ОС пишемс?
блин не перевились еще кулибины в России матушке
не поможет, т.к. glibc работает с ядром, а ядра вроде нет как я понял
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Загрузка с дискеты кода на Си
Ну тады извините
В каждом из нас спит гений... и с каждым днем все крепче...
-
nercus
- Сообщения: 150
Re: Загрузка с дискеты кода на Си
Можно, кстати, глянуть на код grub'a или lilo.
Не помню, переключается ли груб в protected, но функциональность из него дернуть можно неплохо (сеть, фс, диск, вывод на экран).
Не помню, переключается ли груб в protected, но функциональность из него дернуть можно неплохо (сеть, фс, диск, вывод на экран).
2.6.14-gentoo-r5
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
kde-3.5.0 | openbox-3.2
Deep Purple | Rob Zombie | Led Zeppelin | ДДТ
-
oav
- Бывший модератор
- Сообщения: 296
Re: Загрузка с дискеты кода на Си
Ну если они уже в защищенном режиме, то всe GDT,LDT,IDT заполнены и как-то программа функционирует, она просто не умеет пока работать с перефирией - экран, клавиатура (вроде 60(1) порты??) и т.п.
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Загрузка с дискеты кода на Си
Мда? И кто его туда сунул? Ядро? Значит оно есть (прям по Декарту "мыслю, следовательно существую"), а значит можно и со статическими глибцами полинковаться...
В каждом из нас спит гений... и с каждым днем все крепче...
-
oav
- Бывший модератор
- Сообщения: 296
Re: Загрузка с дискеты кода на Си
ммм..нет, я предположил что это "сунул" автор программы. Вообщем-то это не бог весь какая задача если понимать что делаешь
-
AlexeyAL
- Сообщения: 71
Re: Загрузка с дискеты кода на Си
Ну загрузчик конечно можно в реальном режиме делать, но потом все равно придется переключаться в защищенный режим, а значит геморрой остается. глибц все-таки все равно свой писать придется.
Хотя почему геморрой? это у меня развлечения такие...
Хотя почему геморрой? это у меня развлечения такие...
Когда я вырасту и стану крутым программистом, я напишу свое ядро и подарю его Ричарду Столлмену
-
flook
- Сообщения: 585
- Статус: Просто flook
Re: Загрузка с дискеты кода на Си
Возьмите /src/linux/arch/i386/kernel/head.S и мучайтесь меньше.
В каждом из нас спит гений... и с каждым днем все крепче...
-
powerfox
- Сообщения: 458
Re: Загрузка с дискеты кода на Си
У меня возникла таже идея, только относительно Lilo(c графикой). Там даже есть поддержка jpg - можно сделать примитивные игры с дискеты.
А вообще всё ЭТО должно быть в книге Танненбаума "Операционные системы" - она помогла Торвальдсу написать Linux. Правда, она ОоОоОчЕнЬ большая и, наверняка, сложная.
Удачи.
-
XPhoenix
- Сообщения: 28
Re: Загрузка с дискеты кода на Си
www.codenet.ru - пишем многозадачную ОС....она правда не в защещенном режиме и на асме...Зато небольшая и забавная...Если только начинаешь - то самое оно...
А книжка Танебаума не самая большая...С хорошими исходниками...Только ОС у него в книге в нескольких местах сильно изуродована..специально наверное
А книжка Танебаума не самая большая...С хорошими исходниками...Только ОС у него в книге в нескольких местах сильно изуродована..специально наверное