ОС на Паскале. Миф или реальность?
Кстати, о птичках! Да, Паскаль ничуть не хуже Си, НО!!! Си превосходно конвертится в Асм и затем транслируется... Паскаль... Все версии делают внутреннее преобразование в расчёте на target platform.
На самом деле Паскаль конвертится в Асм гораздо лучше Си (из-за чёткой структурированности языка, что кстати позволяет иметь более быстрый однопроходный компилятор с лучшей оптимизацией), а вот реализация с таргет платформ,...
...так это всё идёт от Явы (точнее наоборот), от П-кода, который когда-то в далёкие 80-е Вирт придумал, чтобы не писать компиляторы под разные системы (вот когда появилась кросплатформенность)...
Другой вопрос какой Паскаль использовать?
Borland и Turbo для DOC конечно нельзя.
А как начсчет free pascal
TMT pascal
Irie pascal
Virtual Pascal
BDP- paccal
DPAS - pascal
32bit pascal for OS/2 ?
кстати там у когота ссылка битая была, на то где ОС на паскале достать можно.
Если кто знает где это можно зделать, просьба указать такуб ссылку.
Я точно знаю, что NASM есть возможность выполнять функия паскаля, а как это делается я не знаю, но если есть такая возможность то и ядро ОС написать на па-ле возможною...
ВЫ откройте любую книгу по програмированию на с и поитайте внимательно шо там написано. А написано там что код на с более быстрый и более компактный.
Паскаль изначально делался для обучения. А с он ведь вроде был сделан специально для написания юникса.
П.С
А можно ли написать ось вабше без асемблеровских вставок , чисто на с?
:???:
Смотрю я, вы тут "святые" войны разжигаете, а между тем за вас уже давно всё решили.
ОС на Паскале реальность (года этак с 93), правда не совсем на Паскале, а на его потомке - Оберон называется.
Разработал Оберон и одноимённую ОС Никлаус Вирт (слышали про такого?). Писал он её в двоём со своим коллегой не много не мало, а 3 года. Причём в её исходниках нет НИ ОДНОЙ строчки на АСМЕ или каком-нибудь другом языке програмирования, кроме Оберона.
Сама ОС, вместе с компилятором и текстовым редактором (встроенными в ядро) занимает около 200Кб (двести килобайт). Для справки МИНИМАЛЬНОЕ из возможных ядер Линукса занимает около 300Кб (при этом ни о редакторе, тем более о компиляторе в Линуксе речи не идёт.
Больше того, на Си, а уж тем более Си++ я писать никому не советую. Это не только моё мнение - это мнение ведущих умов в области ЯВУ, таких как Вирт, Страуструп (тот самый), Хёсенбпёк и др.
Спросите почему? Потому что Си - дидактически и структурно не состоятельный язык, а уж как объектный - вообще жуткий монстр.
Лучшим трудом по Си и Си++ является книга Б. Страуструпа (800 страниц), в которой он пишет, что выучить Си полностью - невозможно, можно лишь выучить его отдельную часть и работать в ней. Си ещё не умер лишь потому, что у него есть огромная армия приверженцев, которые имеют против структурных языков (таких как Паскаль, Модула, Ада, Оберон) предубеждение, однако Ява (по сути Паскаль с синтаксисом Си) должна в скором времени изменить положение дел в пользу Паскаля.
Между тем описание полное Оберона, написанное Виртом занимает 16 (шестнадцать) страниц. Кроме того, Вирт написал книжку (около 100 страниц) про то, как он написал этот язык и операционку.
Компилятор языка и операционка распространяются бесплатно (кстати, в исходных текстах) http://www.oberon.ethz.ch/download.html
Ну удивили, удивили! Не понятно откуда такие нападки на С++??? Страуструп такого не говорил, что на С++ лучше не писать, как раз таки наоборот, он считает, что ограничение возможностей уже на уровне языка - это не дело.
Ява - это тот же паскаль? Мягко говоря это несколько неверно. Во-первых паскаль не объектно-ориентированый, и даже не объектный. Object Pascal - другое дело, но как следует из названия он именно объектный, и на него нет ни одного стандарта, т.е. каждый может создать свой диалект. В отличии от Явы, там заправляет только Сан. Микрософт попытался было сделать своё отклонение, и итоге перешёл на NET вместе с#.
Такая убеждённость, что Паскаль (я против него ничего не имею, просто пользуюсь более серьёзными вещами) пуп земли, и всё из него произошло меня просто умиляет :D
Написание оси на паскале - это типа как построить самолёт из старой изношенной автомобильной резины
:-(
Или же писать свой компилятор ПАСа. Но подумайте --стоит ли тратить ОГРОМНОЕ кол-во времени чтобы написать глючный компилятор хорошего языка, вместо того чтобы использовать проверенный временем ТАСМ...
То-то и оно...
Более того- написавши асмовый загрузчик, нам пийдётся писать ещё и эмулятор ДОСа или систему прерываний делать ТОЧНО так же как и в ДОСе.Надо же как-то запускать то, что накомпилит ПАС!
Или же писать свой компилятор ПАСа. Но подумайте --стоит ли тратить ОГРОМНОЕ кол-во времени чтобы написать глючный компилятор хорошего языка, вместо того чтобы использовать проверенный временем ТАСМ...
То-то и оно...
Не понимаю, зачем все это надо? Зачем писать уже существующую ОС? Ладно, понимал бы я вас, если бы она вас не устраивала по скорости или еще чему... но чем вам не нравятся сущ. ОС... в крайнем случае берете исходник Linux-а и переделывете что надо!...
Assembler
C
Паскаль
C++
Дельфи
Бэйсик
Код, который генерит С, а потом его дизасмблированный код читается. И он генерирут довольно быстрый код. А почему не стоит писать ось на чистом асме, спросите AT&T, а конкретней создателей языка C. А ещё прочитайте первые главы книги Морриса Баха "Операционная система UNIX"
А кто-нибудь копался в классах MFC? Это просто ужас какой-то!
И действительно, есть много другх интересных вещей, помимо начинания писания новой оси, которая дальше вывода Hello world не дойдёт. Лучше напишите модуль к Linux, или к чему-нибудь ещё, то, что действительно нужно будет.
Я понемногу изобретаю Все на Creatos.narod.ru
Советую посмотреть ОС BlueBottle.
Извините ссылки не помню.
(Там и исходники есть)
time to translating 00h:00m:07s:37ms
В трансляторе куча функций полностью на асме.
ASM надо любить и уважать - как никак язык процессора!
А я вот поизвращалься на Pascal с многозадачностью на 10тыс. строк и начал писать на asm настоящую ось а потом достало и взялся писать не компилятор а транслятор из С++ в ассемблер, так как цель не геморой на мозгах, а мощный инструмент. Мне осталось только классы сделать да и всё! Использую я Nasm - в паре с ним мой транслятор чё хочешь сделает! Кстати тест на 1млн. однообразных блоков кода: time to preprocessing 00h:00m:02s:11ms
time to translating 00h:00m:07s:37ms
В трансляторе куча функций полностью на асме.
ASM надо любить и уважать - как никак язык процессора!
Это точно!
Кстати чем хорош этот НАСМ,слышал о нём,а так я на ФАСМЕ всё делаю!
Да и даже если вложеш,Какой формат исполняемого файла ядра? EXE? Чтоб его без кернела пригрузить, какой длины кодк должен быть?Так что -=[Assembler4Ever]=-!!!
Всё зависит от компилятора,да и на чем ты будеш писать загрузчик,если не на АССеМе?Попробуй БИНАРНЫЙ даже C шный код вложить в 512 байт.
Да и даже если вложеш,Какой формат исполняемого файла ядра? EXE? Чтоб его без кернела пригрузить, какой длины кодк должен быть?Так что -=[Assembler4Ever]=-!!!
Ответ можно. Если хорошо поищещь по сайту, то найдешь исходники бут сектора на борланд паскале.