Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Флейм > ОС на дельфи


Автор: GELEAF 28.10.2006, 12:51
трудно ли сделать ос на дельфи.Раскажите кто знает

Автор: Snowy 28.10.2006, 13:05
Delphi предназначена для создания приложений для Win32.
OC на ней написать нельзя вообще.

Автор: Dude03 28.10.2006, 14:29
Цитата(Snowy @  28.10.2006,  13:05 Найти цитируемый пост)
Delphi предназначена для создания приложений для Win32.
OC на ней написать нельзя вообще. 

Я думаю тут ты несильно прав. ОС можно написать на Дельфи(читать : Паскале). Примеры есть : sysbin.com - там что-то было.

Но лучше выбрать что-нить более приближенное к железу - си, си++, ассемблер или что-то другое(форт и так далее). Кстати, если ты не знаешь ассемблера, то можно тебе даже не стараться smile. Даже не потому, что ты не сможешь работать с железом, а потому, что ты не понимаешь вообще как все в компе работает smile .   Во завернул.

Автор: Snowy 28.10.2006, 15:35
Цитата(Dude03 @  28.10.2006,  15:29 Найти цитируемый пост)
 на Дельфи(читать : Паскале)
На паскале можно.
На дельфи - нельзя.
Компилятор под это не заточен smile

Автор: Yanis 28.10.2006, 20:17
Цитата(Dude03 @  28.10.2006,  15:29 Найти цитируемый пост)
Кстати, если ты не знаешь ассемблера, то можно тебе даже не стараться . Даже не потому, что ты не сможешь работать с железом, а потому, что ты не понимаешь вообще как все в компе работает  .

Уже сам вопрос, говорит о том, что автор не много понимает что и как работает в компьютере.

Автор: Dude03 28.10.2006, 23:18
Цитата(Yanis @  28.10.2006,  20:17 Найти цитируемый пост)
Уже сам вопрос, говорит о том, что автор не много понимает что и как работает в компьютере. 

1) Сорри, забыл подставить сначала словечко "IMHO" smile 
2) Разве я сказал неправду??? Тогда укажи мне то место, где я неправ smile 

Автор: bems 29.10.2006, 01:07
Стартовый код делфы использует ВинАпи. Как запустится твой образ без реализации Апи Винды?

Автор: MAKCim 29.10.2006, 10:35
Цитата

Я думаю тут ты несильно прав. ОС можно написать на Дельфи(читать : Паскале)

На любом языке высокого уровня написать полностью ОС нельзя, потому как есть участки кода, которые прямо на этих языках не выразишь: обработка прерываний и исключений, переключение контекста (переключение виртквльного адресного пространства, сохранение регистров), переходы между сегментами с разными уровнями привилегий, ... Это все сильно зависит от аппаратной платформы и потому пишется на ассемблере конкретного процессора

Добавлено @ 10:44 
Цитата

Но лучше выбрать что-нить более приближенное к железу - си, си++

в таком контексте pascal так же приближен к железу, как и С - т. е никак
все зависит от качества компилятора и его способности генерировать качественный код
В этом отношении, думаю, C-компилятор выигрывает

Автор: Romikgy 29.10.2006, 10:54
Цитата(MAKCim @  29.10.2006,  09:35 Найти цитируемый пост)
в таком контексте pascal так же приближен к железу, как и С

такие слова из уст MAKCim кое что да значать smile  

Автор: MAKCim 29.10.2006, 11:06
Цитата

такие слова из уст MAKCim кое что да значать

чтобы потом не было недразумений
я не имел в виду что "Pascal круче С"  smile 
хотел сказать лишь что язык к железу не имеет никакого отношения

Автор: Dude03 29.10.2006, 12:01
Цитата(bems @  29.10.2006,  01:07 Найти цитируемый пост)
Стартовый код делфы использует ВинАпи. Как запустится твой образ без реализации Апи Винды?

Хех, ясен пень что нужен "чистый бинарник"=) без всяких стартовых кодов и PE-заголовков, с адресами, которые отсчитываются от конкретного смещения и тд и тп.
И кстати: в своем первом посте в скобках я написал "Читать: Паскале" наверное не просто так smile 
Цитата(MAKCim @  29.10.2006,  11:06 Найти цитируемый пост)
чтобы потом не было недразумений
я не имел в виду что "Pascal круче С"  smile 
хотел сказать лишь что язык к железу не имеет никакого отношения 

Я имел в виду, что в си указатели вездесущи, а в паскале разве тоже так? 

Автор: Exception 29.10.2006, 12:33
Так ведь помнится, мы же уже писали ось? На жаве и Flash, если не ошибаюсь, дело было - и там ещё в аквариуме рыбки плавали!

Автор: Snowy 29.10.2006, 12:41
Exception, точно. Вот: http://forum.vingrad.ru/index.php?showtopic=61085&unread=1&view=all
Правда до релиза так и не довели smile

Ну нельзя на дельфи ОС написать.
Чего тут дальше обсуждать?!

Автор: MAKCim 29.10.2006, 13:00
Цитата

Я имел в виду, что в си указатели вездесущи, а в паскале разве тоже так?  

В С они интуитивно понятнее
кроме того любое число может быть указателем (я к тому что указатели как синтаксическая конструкция только для удобства + несколько фич типа индексации)

ps. надо тему закрывать

Автор: Snowy 29.10.2006, 13:14
Цитата(MAKCim @  29.10.2006,  14:00 Найти цитируемый пост)
В С они интуитивно понятнее
кроме того любое число может быть указателем
Не вижу отичий от паскаля.
Возможности те же smile

ЗЫ. Перечитал топик про http://forum.vingrad.ru/index.php?showtopic=61085&unread=1&view=all.
Снова хорошо поржал. Спасибо smile

Цитата(MAKCim @  29.10.2006,  14:00 Найти цитируемый пост)
ps. надо тему закрывать
однозначно.

Автор: Sun 29.10.2006, 15:50
Наверно всё таки можно. Так как на Delphi без проблем создать бинарный файл, останется только подготовить правильный массив бинарных данных, который будет в себя включать загрузчик с диска и низкоуровневые функции работы с файлами и портами ввода-вывода. Также надо в эту прослоечку включить поддержку WinAPI  и вперёд!  smile (драйвера популярных дивайсов тоже не помешают в нашем массивчике smile )

Автор: vlgr 30.10.2006, 09:44
http://homix.pytalhost.de/HomixOS/index.php
http://homix.pytalhost.de/Tutorials/OSCoding/DelphiOS.php

Дерзайте

Автор: Snowy 30.10.2006, 09:55
vlgr, угу.
Всего лишь нужно написать на асме загрузчик PE файлов и эмуляцию API вызовов smile
Само ядро-то всё равно на асме.

Автор: vlgr 30.10.2006, 10:47
Цитата(Snowy @ 30.10.2006,  09:55)
, угу.
Всего лишь нужно написать на асме загрузчик PE файлов 

Да. 
Цитата

и эмуляцию API вызовов smile

Зачем?
Цитата

Само ядро-то всё равно на асме.

На Delphi с asm вставками.

Автор: Snowy 30.10.2006, 10:52
Ядро не может быть на дельфи, т.к. бинарник - PE-файл
Часть ядра может быть. Но основной загрузчик на асме.
Кто-то должен обеспечит работоспособность PE-файлов. Иначе он просто не запустится.
А одного эмулятора PE мало для запуска дельфи программы, если только не порезать system.pas

Автор: vlgr 30.10.2006, 11:02
Цитата(Snowy @ 30.10.2006,  10:52)
Ядро не может быть на дельфи, т.к. бинарник - PE-файл
Часть ядра может быть. 

Что мы считаем ядром?
Цитата

Но основной загрузчик на асме.

Согласен.
Один из вариантов (grub + 126 строк на fasm) 
Цитата

Кто-то должен обеспечит работоспособность PE-файлов. Иначе он просто не запустится.
А одного эмулятора PE мало для запуска дельфи программы, если только не порезать system.pas

У Homix`а вместо system заглушка

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)