Operating System
+2
tux
Andrew
Участников: 6
FreeBasic :: Программирование :: Общее
Страница 1 из 2
Страница 1 из 2 • 1, 2
Operating System
Здраствуйте!
Скажите пожалуйста, возможно ли написать свою операционную систему на FreeBasic?
Пока этот язык я знаю плохо, но у меня есть опыт работы с другими языками. Я видел что у FreeBasic'a можно использовать ассемблерные вставки, и в досе можно запустить скомпилированную программу.
Больше конечно вероятности что можно, но всё-таки, как малознающий в этом языке, спрашиваю. Расскажите как можно больше об этом, если вас не затруднит.
Спасибо!
P.S. ОС на языке Паскаль написать можно (это я так, для общего развития)))
Скажите пожалуйста, возможно ли написать свою операционную систему на FreeBasic?
Пока этот язык я знаю плохо, но у меня есть опыт работы с другими языками. Я видел что у FreeBasic'a можно использовать ассемблерные вставки, и в досе можно запустить скомпилированную программу.
Больше конечно вероятности что можно, но всё-таки, как малознающий в этом языке, спрашиваю. Расскажите как можно больше об этом, если вас не затруднит.
Спасибо!
P.S. ОС на языке Паскаль написать можно (это я так, для общего развития)))
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
Теоретически ось мона написать на любом языке, поддерживающий напрямую ассемблеровский код, а тк весь исходный код FB в любом случае сперва транслируется в ассемблерный, то думаю тут не будет проблем. А на счет практической реализации, боюсь не подскажу, както не интересовался этим.
ЗЫ: если дадите интересующий код на паскале, могу показать как ето бут выглядеть в FB.
ЗЫ: если дадите интересующий код на паскале, могу показать как ето бут выглядеть в FB.
Re: Operating System
...можно на всех, поддерживающий ассемблер...
Почему на всех? PureBasic тоже поддерживает ассемблерные вставки, но написание ОС невозможно, потому как он компилирует в PE файлы (Portable Executable).
Спасибо за ответ !
Буду пробывать
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
Да, вы правы, но freebasic делает native code, т.е. реальный исполняемый код, а не интерпретируемый как с pe-code.
К томуже низкоуровневую часть, запуск реального режима, загрузку и всё такое, придёться компилить как под dos.
Ассемблерный код и многие другие возможности fb в теории должны позволить написать собственную операционку.
Помучаться придёться только с загрузчиком. Но традиционно, для всех осей это делаеться на ассемблере.
А дальше, вперёд, флаг в руки и с криком ура, пишем свою супер fb-os.
p.s.
когда будете, меня позавёте, я тоже хочу.
К томуже низкоуровневую часть, запуск реального режима, загрузку и всё такое, придёться компилить как под dos.
Ассемблерный код и многие другие возможности fb в теории должны позволить написать собственную операционку.
Помучаться придёться только с загрузчиком. Но традиционно, для всех осей это делаеться на ассемблере.
А дальше, вперёд, флаг в руки и с криком ура, пишем свою супер fb-os.
p.s.
когда будете, меня позавёте, я тоже хочу.
Re: Operating System
У меня появилось несколько вопросов, может быть даже не касающихся FreeBasic, но если кто ответит буду сильно благодарен, да и остальным интересующимся будет полезно узнать.
После долгих месяцев скитаний по интернету я нашел ответы на несколько своих вопросов, только жаль что вопросов еще прибавилось больше (:
Ну вобщем:
1) Загрузчик.
Загрузчик должен быть скомпилирован в файл с расширением .exe, .com, .sys? И есть ли у него вообще расширение?
Загрузчик должен быть совместим с MS-DOS? Т.е. если это исполняемый файл, то он должен ведь запускаться в какой-то ос. Если нету в чем запустить программу-загрузчик, то ничего не получится. Следовательно либо это исполняемый файл MS-DOS, либо исполняемый файл для BIOS. Зачем писать одно на другом? не понятно пока мне...
2) Ядро.
Тоже и с ядром. Оно должно работать в чем-то... Тоесть я совершенно запутался... попробую объяснить понятнее для всех. Ну вот к примеру ASM. Он компилирует в .exe - файл. Но .exe должен запустится ведь только в досе (ну за исключением Вин). или я не прав? А если ядро работает в досе, зачем тогда изобретать велосипед? Почему нельзя напрямую использовать ядро доса\загрузчик доса?
Насколько я понимаю ядро это как бы интерпритатор команд юзера в команды ядра, и следовательно управление периферией.
3) Сама оболочка. (GUI)
Является тоже программой, все что делает юзер(ну например создал папку), интерпретируется в команду ядра, и с помощью ядра на диске создается какаято метка (папка). Я правильно понимаю? Если нет - объясните пожалуйста как.
С первого взгляда может показаться что инфы в нете на эту тему дофига, но это не так. На многих сайтах есть объяснения которые повторяются слово в слово один за другим, сайт за сайтом. Т.е. практически копи-паст из одного в другое. Ни одного толкового объяснения не нашел.
Заранее спасибо.
После долгих месяцев скитаний по интернету я нашел ответы на несколько своих вопросов, только жаль что вопросов еще прибавилось больше (:
Ну вобщем:
1) Загрузчик.
Загрузчик должен быть скомпилирован в файл с расширением .exe, .com, .sys? И есть ли у него вообще расширение?
Загрузчик должен быть совместим с MS-DOS? Т.е. если это исполняемый файл, то он должен ведь запускаться в какой-то ос. Если нету в чем запустить программу-загрузчик, то ничего не получится. Следовательно либо это исполняемый файл MS-DOS, либо исполняемый файл для BIOS. Зачем писать одно на другом? не понятно пока мне...
2) Ядро.
Тоже и с ядром. Оно должно работать в чем-то... Тоесть я совершенно запутался... попробую объяснить понятнее для всех. Ну вот к примеру ASM. Он компилирует в .exe - файл. Но .exe должен запустится ведь только в досе (ну за исключением Вин). или я не прав? А если ядро работает в досе, зачем тогда изобретать велосипед? Почему нельзя напрямую использовать ядро доса\загрузчик доса?
Насколько я понимаю ядро это как бы интерпритатор команд юзера в команды ядра, и следовательно управление периферией.
3) Сама оболочка. (GUI)
Является тоже программой, все что делает юзер(ну например создал папку), интерпретируется в команду ядра, и с помощью ядра на диске создается какаято метка (папка). Я правильно понимаю? Если нет - объясните пожалуйста как.
С первого взгляда может показаться что инфы в нете на эту тему дофига, но это не так. На многих сайтах есть объяснения которые повторяются слово в слово один за другим, сайт за сайтом. Т.е. практически копи-паст из одного в другое. Ни одного толкового объяснения не нашел.
Заранее спасибо.
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
Хоть у мня в этом опыта немного, но попробую объяснить наскока знаю (если где неправ, поправьте меня).
1) Загрузчик как правило состоит из нескольких частей, и загрузка проходит в несколько этапов. Это все бинарные файлы, которые содержат практически прямые комманды процессору. Биос на винчестере ищет загрузочную область, в которой находится один из кусков загрузчика, который делает подготовительные операции, читает конфиги и в зависимости от них продолжает загружать остальное. Загрузчик является какбы минимальной осью, способной загрузить нечто более серьезное.
2) Основная задача ядра - в основном предоставлять высокоуровневый интерфейс пользователю (или программисту) к периферии.
Вообще если всерьез заинтересованы созданием своей оси, то я думаю для начала нужно взять готовый загрузчик (рекомендую Grub) и готовую файловую систему (лучше наверно fat32), и попробовать сделать что-то наподобе доса, для начала думаю будет достаточно))
Ну а в дальнейшем для графической оболочки, звука и пр мона будет написать и свои дрова под оборудование.
1) Загрузчик как правило состоит из нескольких частей, и загрузка проходит в несколько этапов. Это все бинарные файлы, которые содержат практически прямые комманды процессору. Биос на винчестере ищет загрузочную область, в которой находится один из кусков загрузчика, который делает подготовительные операции, читает конфиги и в зависимости от них продолжает загружать остальное. Загрузчик является какбы минимальной осью, способной загрузить нечто более серьезное.
2) Основная задача ядра - в основном предоставлять высокоуровневый интерфейс пользователю (или программисту) к периферии.
Несовсем, сам компилятор ассемблера делает только двоичный код, который практически напрямую может выпольняться в процессоре, однако ОС предназначены для того, чтобы контролировать работу программы, и поетому после компиляции происходит "линковка", те под виндой допустим к этому бинарнику лепится еще кусок кода, который грузится вперед основной программы и выполняет необходимые операции в ОС для запуска основной программы (регистрирует в системе). В процессе линковки какраз и получается уже готовый *.exe.Ну вот к примеру ASM. Он компилирует в .exe - файл.
А вы слышали про дядю Билла?)) Первые его операционные системы (помоему вплоть до Вин95) были какраз надстройками над досом. А дос досихпор используют в качестве основы в основном для различных промышленных осей, правда сейчас набирает популярность Линукс, который предоставляет возможности современной полноценной оси при минимальном размере и с открытым исходным кодом.А если ядро работает в досе, зачем тогда изобретать велосипед?
Вообще если всерьез заинтересованы созданием своей оси, то я думаю для начала нужно взять готовый загрузчик (рекомендую Grub) и готовую файловую систему (лучше наверно fat32), и попробовать сделать что-то наподобе доса, для начала думаю будет достаточно))
Ну а в дальнейшем для графической оболочки, звука и пр мона будет написать и свои дрова под оборудование.
Re: Operating System
Вот-вот. Ту-то и всплывают проблемы.
Чтобы писать полноценную ос, нужно писать не только ядро и набор функций, но драйвера и компиляторы.
Хотя можно пойти по пути передерания архитектуры и тогда драва для базовой оси будут пахать и у вас. Тоже и про компиляторы.
У процессора есть два режима, сам путаюсь в названиях и вас путать не буду. Защищённый и реальный.
Суть в том, что под dos это обычный режим.
А под windows или linux спецальный, в который нужно ещё хитрым образом переключаться.
Теперь о загрузчике.
Это dos программа, но она должна работать напрямую с функциями биоса и не использовать функции dos.
Всё работает в простом режиме процессора. А dos ещё добавляет свои функции.
Под функциями я имею в виду прерывания.
Вы пишете программу, на чистом ассемблере, которая работает напрямую с железом, без посредничества dos.
И записываеться она на диск спецальным образом. Начало загрузчика в первый сектор диска. Так что ни о расширениях, ни о файлах говорить нельзя, мы эту прогу сможем увидеть только с помощью спецальной утилиты.
В принципе можно поступать по другому. Как win9x. Тоесть из под dos грузиться ядро, переключаеться и всё чики поки.
Но вам надо тратить лишние секунды на dos? Да и установиться он только на fat.
Теперь о ядре. Само ядро не занимаеться графическим интерфейсом.
Ядро управляет драйверами, запуском и выполнением программ, вызовом функций (типа win api), так же именно на ядро ложиться задача безопастности и многозадачности.
Графический интерфейс это набор функций, которые помещены в отдельные библиотеки.
Нужно отделять ядро от прочих функций. Даже от функций чтения и записи в файл. Это работа драйверов. Если вы захотите изменить файловую систему, то вы просто добавляете
драйвера для неё.
Если вы понимаете C и assembler, можете посмотреть первые исходники linux v1.0
ftp://kernel.org
Он мне там попадался, но меня уплющило. Хотя всего чуть чуть кода.
Или можете посмотреть проект
http://reactos.org.
Это операционка, аля виндовс.
Чтобы писать полноценную ос, нужно писать не только ядро и набор функций, но драйвера и компиляторы.
Хотя можно пойти по пути передерания архитектуры и тогда драва для базовой оси будут пахать и у вас. Тоже и про компиляторы.
У процессора есть два режима, сам путаюсь в названиях и вас путать не буду. Защищённый и реальный.
Суть в том, что под dos это обычный режим.
А под windows или linux спецальный, в который нужно ещё хитрым образом переключаться.
Теперь о загрузчике.
Это dos программа, но она должна работать напрямую с функциями биоса и не использовать функции dos.
Всё работает в простом режиме процессора. А dos ещё добавляет свои функции.
Под функциями я имею в виду прерывания.
Вы пишете программу, на чистом ассемблере, которая работает напрямую с железом, без посредничества dos.
И записываеться она на диск спецальным образом. Начало загрузчика в первый сектор диска. Так что ни о расширениях, ни о файлах говорить нельзя, мы эту прогу сможем увидеть только с помощью спецальной утилиты.
В принципе можно поступать по другому. Как win9x. Тоесть из под dos грузиться ядро, переключаеться и всё чики поки.
Но вам надо тратить лишние секунды на dos? Да и установиться он только на fat.
Теперь о ядре. Само ядро не занимаеться графическим интерфейсом.
Ядро управляет драйверами, запуском и выполнением программ, вызовом функций (типа win api), так же именно на ядро ложиться задача безопастности и многозадачности.
Графический интерфейс это набор функций, которые помещены в отдельные библиотеки.
Нужно отделять ядро от прочих функций. Даже от функций чтения и записи в файл. Это работа драйверов. Если вы захотите изменить файловую систему, то вы просто добавляете
драйвера для неё.
Если вы понимаете C и assembler, можете посмотреть первые исходники linux v1.0
ftp://kernel.org
Он мне там попадался, но меня уплющило. Хотя всего чуть чуть кода.
Или можете посмотреть проект
http://reactos.org.
Это операционка, аля виндовс.
Re: Operating System
Не вполне согласен. Да, это своеобразный интерфейс, но не пользователя и не с периферией - а программ, работающих под управлением ядра (в том числе - и других частей самой оси), с драйверами периферийных устройств.tux пишет: 2) Основная задача ядра - в основном предоставлять высокоуровневый интерфейс пользователю (или программисту) к периферии.
Лишь в самых простых случаях (например, RT-11, ОСРВМ, CP/M и первые версии MS-DOS) функции драйверов выполнял BIOS и ядол оси обращалось к нему. Но это было возможно только потому, что тогда было мало периферии и новые модели появлялись нечасто.
Вся линейка Win 3.x и линейка Win9x кроме Миллениума. Линейка NT ДОСа как такового не имеет - есть только его эмулятор, работающий над ядром.А вы слышали про дядю Билла?)) Первые его операционные системы (помоему вплоть до Вин95) были какраз надстройками над досом.
GUI и консольный интерпретатор команд - это всегда отдельные программы, просто входящие в комплект оси (у Виндов это cmd.exe и win.exe, у Линуха - XServer и bash, например)
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Operating System
привет. вот вам почитайте про архитектуру dos, как и что загружается, таблица фат и т.д.:
http://frolov-lib.ru/bsp.html
если вы собрались писать свою ос, без ассемблера не обойтись. вот вам моя коллекция книг, статей, справочников по ассемблер:
http://webfile.ru/2317581
тут собраны только лучшие книги, статьи, включая wasm.ru.так как я сам тугодум до крутых формулировок, я пытался найти понятные книги. кстати, там есть и рассылка по созданию операционной системы, приводятся примеры, как просто загрузиться с дискеты и вывести на экран какую-нибудь строку.
http://frolov-lib.ru/bsp.html
если вы собрались писать свою ос, без ассемблера не обойтись. вот вам моя коллекция книг, статей, справочников по ассемблер:
http://webfile.ru/2317581
тут собраны только лучшие книги, статьи, включая wasm.ru.так как я сам тугодум до крутых формулировок, я пытался найти понятные книги. кстати, там есть и рассылка по созданию операционной системы, приводятся примеры, как просто загрузиться с дискеты и вывести на экран какую-нибудь строку.
electrik- Сообщения : 391
Дата регистрации : 2008-09-02
Возраст : 43
Откуда : галактика Млечный путь, система Солнечная, планета Земля, страна россия, город Санкт Петербург
Re: Operating System
Так много ответов не ожидал, спасибо!)
В принципе многое прояснилось, но один нюанс непонятен.
Если я буду использовать свое (может когда нибудь) ядро, то означает ли это что для исполняемых файлов мне надо будет переписывать всю систему работы .exe файла, или это можно сделать через БИОС?
P.S. Кошмар, эти все драйвера... Я как вспомню как мы в универе набирали драйвер для встроенного динамика на TurboShell, так мне аж плохо становится...
В принципе многое прояснилось, но один нюанс непонятен.
Если я буду использовать свое (может когда нибудь) ядро, то означает ли это что для исполняемых файлов мне надо будет переписывать всю систему работы .exe файла, или это можно сделать через БИОС?
P.S. Кошмар, эти все драйвера... Я как вспомню как мы в универе набирали драйвер для встроенного динамика на TurboShell, так мне аж плохо становится...
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
Да, конечно вам придёться архитектуру приложений делать.
Чистые процессорные команды com работают только в dos.
Но может тогда вы сразу и вкрутите объектную модель, чего насколько я знаю ещё нет в операционках.
А драва... Не пужайтесь, это не так сложно, как кажеться.
Чистые процессорные команды com работают только в dos.
Но может тогда вы сразу и вкрутите объектную модель, чего насколько я знаю ещё нет в операционках.
А драва... Не пужайтесь, это не так сложно, как кажеться.
Re: Operating System
Афигеть
Сейчас смотрю исходники,- тоже афигеть
Спасибо всем за ответы !!!
Сейчас смотрю исходники,- тоже афигеть
Спасибо всем за ответы !!!
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
А вообще, если не секрет, то зачем ето? Если понять, как все это устроену, то предлагаю попробовать собрать свой дистриб Линукса, скажем так Генту какуюнить, пару недель с красными глазами у компа посидеть. Ну а если всетаки будет желание все написать самостоятельно, то главное начать, будут проблемы, всегда можно будет спросить помощи на форуме
Re: Operating System
Для чего? Это хороший вопрос.
В зависимости от цели можно уже и подобрать оптимальные решения.
Например есть операционки для пользовательских приложений, windows linux и т.п. Обычные рабочии станции.
Есть операционки для виртуализации, например vmware server.
Есть операционки для узких задачь, например бортовой комп автомобиля или управление атомной станцией.
Я думаю, что для искусственного разума нужна будет своя операционка.
Если же правда, только ради интереса, то не стоит этим заниматься. Это куча потраченного времени и большое разочарование в конце.
Но если получиться, то... Вспомним Линуса Торвалдса! Он вообще хотел сначала написать терминал.
В зависимости от цели можно уже и подобрать оптимальные решения.
Например есть операционки для пользовательских приложений, windows linux и т.п. Обычные рабочии станции.
Есть операционки для виртуализации, например vmware server.
Есть операционки для узких задачь, например бортовой комп автомобиля или управление атомной станцией.
Я думаю, что для искусственного разума нужна будет своя операционка.
Если же правда, только ради интереса, то не стоит этим заниматься. Это куча потраченного времени и большое разочарование в конце.
Но если получиться, то... Вспомним Линуса Торвалдса! Он вообще хотел сначала написать терминал.
Re: Operating System
А зачем это
Для меня это представляет общий интерес.
Я раньше занимался созданием игр, разных программ - для себя. Выучил несколько языков, более-менее знаю как написать ту или иную программу, - неважно какую, графическую или математическую. Я пишу программы для университета в котором учусь (как раз то и они спасают меня от плохих оценок). И знаете как оно бывает, когда 100% знаешь как написать игру, и уже ее заканчиваешь, то писать ее уже не интересно, т.е. ничего уже нового в ней я для себя не открою. А ведь раньше я вообще не представлял как игры пишутся.
И мне, так сказать, уже не интересно писать игры, не интересны уже и программы писать... Я не хочу бросать программирование, и делаю пока то к чему душа лежит. Пока есть желание - надо делать, а когда его нету, - то ни к чему хорошему это не приводит... (лично для меня).
Можно и так сказать. Если честно то я не собираюсь использовать ее для каких-то личных целей. Да и вообще это только для себя. Времени свободного у меня куча. Да и вообще почему бы нет? (:Ради интереса
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
Значит обычная операционка, так сказать важен результат, а не подход. Не придёться резервировать места для всяких навороченных фичей и т.п.
Ну, чтож можно и линух поковырять и самому попробовать.
Я за второй вариант.
Мне тоже интересно искать пути решения, а когда они найдены, реализовывать бывает уже влом.
Писать свой загрузчик, думаю не стоит, если припрёт, потом допишешь.
Бери виртуальную машину, ставь дос и поехали.
В первую очередь надо разобраться с переключением режима процессора. А дальше с файловой системой. Ну и конечноже интерфейсом.
Ну, чтож можно и линух поковырять и самому попробовать.
Я за второй вариант.
Мне тоже интересно искать пути решения, а когда они найдены, реализовывать бывает уже влом.
Писать свой загрузчик, думаю не стоит, если припрёт, потом допишешь.
Бери виртуальную машину, ставь дос и поехали.
В первую очередь надо разобраться с переключением режима процессора. А дальше с файловой системой. Ну и конечноже интерфейсом.
Re: Operating System
Хорошо, ну вот допустим я начал писать ОС на ядре ДОСа. Когда захочу свое ядро написать (т.е. использовать это приложение без ДОСа), то это значит что мне надо будет сделать драйвера для клавы, мышки, и даже для графической карты??? (особый интерес представляет для меня именно последнее).
В FreeBasic это основано на ДОСе, или нет? Ну вот к примеру: я создал графический экран, вывел картинку. Это значит что используются средства ДОСа для вывода графики, или у FreeBasic-a есть собственные средства для вывода графики, а дос необходим только чтобы приложение запустилось? Т.е. как бы дос запустил приложение, отдал ему полный контроль, а приложение уже делает с машиной все что хочет, и выводит графику в том числе?
P.S. Многие говорят что надо драйвера писать для клавиатуры, но ведь клава в БИОСе без всяких драйверов работает.
В FreeBasic это основано на ДОСе, или нет? Ну вот к примеру: я создал графический экран, вывел картинку. Это значит что используются средства ДОСа для вывода графики, или у FreeBasic-a есть собственные средства для вывода графики, а дос необходим только чтобы приложение запустилось? Т.е. как бы дос запустил приложение, отдал ему полный контроль, а приложение уже делает с машиной все что хочет, и выводит графику в том числе?
P.S. Многие говорят что надо драйвера писать для клавиатуры, но ведь клава в БИОСе без всяких драйверов работает.
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
А эт смотря как ты собираешься обращаться к клавиатуре. Можно через прерывание БИОСА - тогда дрова не нужны. Но будут работать только стандартные 101 клавиша. А можно обращаясь напрямую к портам клавиатуры - тогда по хорошему лучше таки написать драйвер.Andrew пишет: Многие говорят что надо драйвера писать для клавиатуры, но ведь клава в БИОСе без всяких драйверов работает.
justar- Сообщения : 135
Дата регистрации : 2008-05-12
Возраст : 49
Откуда : Кишинёв, Республика Молдоа
Re: Operating System
У любой видеокарты (если неошибаюсь) есть графические режимы, которые запускаются абсолютно идентично, дрова пишутся для поддержки специфических режимов и разных технологий.
Почти так. Дело в том, что FB использует определенные функции ОСи. В винде это вроде функции gdi, а в досе для этого необходимо какуето библиотеку.Это значит что используются средства ДОСа для вывода графики
Ну если клава PS/2 то ниче писать ненадо. Опять же дрова для клавы пишутся для поддержки специфических возможностей, это либо поддержка мультимедийных клавиш, либо если она подключена через USB.Многие говорят что надо драйвера писать для клавиатуры
Re: Operating System
Т.е. будет работать стандартная библиотека Freebasic напрямую с видеокартой? Ато я тут увидел низкоуровневую библиотеку Allegro, думаю нужна она мне или нет...
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
нет, графические функции FB использует именно библиотеки операционной системы, но можно написать свои функции, которые будут работать напрямую
Re: Operating System
нет, графические функции FB использует именно библиотеки операционной системы, но можно написать свои функции, которые будут работать напрямую
Может мы говорим про разные компиляторы? У меня компилятор под дос, поэтому (как я только что узнал) используется VESA режим, который может работать напрямую. Может ты имеешь ввиду Windows компилятор который использует OpenGl или DirectX ?
Вот откопал из статьи про FreeBasic кое-что
Встроенная библиотека функций работы с графикой (gfx-библиотека)
Библиотека графических функций FreeBASIC полностью совместима с графическими функциями из QuickBasic (CIRCLE, DRAW, LINE, PAINT и т.д.), но предоставляет программисту гораздо больше возможностей и является более гибкой и быстрой (для ускорения работы используются инструкции mmx, если они поддерживаются процессором).
Функции графической библиотеки FreeBASIC могут напрямую обращаться к видео-памяти, оперировать любой глубиной цвета, любым разрешением экрана и поддерживают работу с любым количеством экранных страниц. Функции отрисовки могут работать как с активной страницей, так и со скрытыми (неактивными) страницами любого размера (GET/PUT ).
Источник - http://quadrathell.do.am/publ/6-1-0-46
А вот еще, чуть не забыл (оттуда же)
под Windows используется DirectX или GDI (если DirectX не установлен) под DOS используется прямой доступ к VGA/ModeX/VESA, под Linux -- raw Xlib.
Andrew- Сообщения : 45
Дата регистрации : 2008-09-23
Возраст : 35
Откуда : Киев
Re: Operating System
Я предлагал не на ядре доса, а запускаемую из под доса. Тут есть разница. Это как винды, например windows 95 или 98.
Тебе не нужно заморачиваться с загрузчиками, первичными проверками, подготовкой.
А вот дальше в силу вступает твоё ядро, которое переключает проц с 16 разрядного в 32 или 64 разрядные режимы, активирует второе ядро процессора или десятое, коли такие есть на машине и предусмотрены системой.
И вот тут-то все досовские функции, биосовские и пр накрываються.
Придёться работать уже самому. А поскольку библиотек под твою операционку нет, то нужно будет поковырять.
Видео карта, тут я даже не знаю, как сказать. Плохо в этом разбираюсь.
А клавиатура и мыша, тебе будет нужно точно писать своё.
Ведь возьмём например винду.
Могут быть запущены несколько программ, но нажатия клавиш передаються только в ту, окно которой активно.
Значит тебе нужно для клавы и мыши сделать селектор, т.е. передача в нужную программу.
А также надо сделать буфер, чтобы клавиши кэшировалис.
Но всё это написать не сложно. Для ps/2 там просто читаешь с порта.
Но например у меня usb клава. хе-хе. Тебе придёться сделать usb драйвер, чтобы понимать что я нажимаю.
С мышой также.
Тебе не нужно заморачиваться с загрузчиками, первичными проверками, подготовкой.
А вот дальше в силу вступает твоё ядро, которое переключает проц с 16 разрядного в 32 или 64 разрядные режимы, активирует второе ядро процессора или десятое, коли такие есть на машине и предусмотрены системой.
И вот тут-то все досовские функции, биосовские и пр накрываються.
Придёться работать уже самому. А поскольку библиотек под твою операционку нет, то нужно будет поковырять.
Видео карта, тут я даже не знаю, как сказать. Плохо в этом разбираюсь.
А клавиатура и мыша, тебе будет нужно точно писать своё.
Ведь возьмём например винду.
Могут быть запущены несколько программ, но нажатия клавиш передаються только в ту, окно которой активно.
Значит тебе нужно для клавы и мыши сделать селектор, т.е. передача в нужную программу.
А также надо сделать буфер, чтобы клавиши кэшировалис.
Но всё это написать не сложно. Для ps/2 там просто читаешь с порта.
Но например у меня usb клава. хе-хе. Тебе придёться сделать usb драйвер, чтобы понимать что я нажимаю.
С мышой также.
Страница 1 из 2 • 1, 2
FreeBasic :: Программирование :: Общее
Страница 1 из 2
Права доступа к этому форуму:
Вы не можете отвечать на сообщения
|
|