ОС на Паскале. Миф или реальность?
Да и можно ли это сделать хотябы частично ( я просто не спец в асме )
Если не знаешь асма ОС не напишешь по-любому.
Для чего нужен асм: для создания основы операционки, то есть ее ядра. Почему асм? Асм предоставляет для этого как раз самые удобные средства. Для обеспечения стабильности, производительности и безопасности ядро должно быть именно на асме. Хотя для меня все еще остается загадкой то, что Линус Торвальдс умудрился написать Linux на С, пусть даже с ассемблеровскими вставками. Я бы, например, писал на асме от начала и до конца. А для создания прикладных программ уже бы использовал язык высшего уровня.
Вобщем для тебя у меня совет один: не морочь себе этим щас голову. Сначала подучи паскаль, асм, с. Подрости до 5-го курса, прослушай курс лекций по операционным системам и только тогда ты поймешь как написать ОС. Поверь, кроме ОС есть еще куча всего интересного
[ Это Сообщение было отредактировано Fopfop в 2001-12-07 2152 ]
On 2001-12-12 2043, Alex Key wrote
Да зачем тебе своя???? Издевайся на другими!!! Вставляй свои приколы... и будет она почти твоя!! Я недавно слышал, что одни кенты укоротили Windows 98 ножки до 5 MB!!! И все работало путем!!! Не благодарное это дело, делать свою ОС!
А мне попальцеватся перед корешами хотса!!!!!!!!
Сейчас для всех - это просто слова, которые вообще ничего не значат...
Напиши конкретно для каких процов(как выше было сказано, ос 100% зависит от железа), для каких целей, какого типа(multi-user/single user)
какую filesystem ты хочешь юзать...
От всего этого зависит то что ты услышишь, потому что в понимании многих стандарт ос- что-то вроде windows: графический интерфейс, хотя на самом деле это не имеет отношения к ос....
а на каком паскале ты хочешь делать свою ось? Borland Pascal 7.0?? я не думаю, что скорость твоей оси будет вполне приемлимой..
p.s. ос - программа, которая загружается при старте компа, а BP генерит exeшники для dos'a, которого, возможно не будет, если тебе нужна полноценная ось - то геморроя на несколько ЛЕТ точно! я не сомневаюсь, что ты ни чем не хуже Линуса Торвальдса, но советую тебе ещё раз все обдумать как следует, и написать более конкретно твои требования
бут сектор+ядро выводяшее Hallo world $)
http//www.programme.ru/index.phtml?arch/012001/012001_1_1.htm
Писать свою ос можеш на чем хочеш хоть на VB $)) если найдеш под него или напишеш сам нормальный компилятор.
Конкретно на Watcom C 11.0 . В принципе на С можно написать код, не использующий вызовы DOS.Проблема в другом. Компилер Вставляет в любую прогу (*.com//*.exe) стартовый код,использующий вызовы DOS (Определение версии,обьём доступной памяти, и.т.п.).
Кстати,пробовал подшить С-ишный *.obj к ядру ОС (*.asm) для Borlahd C, и Watcom C 16bit
ничего не вышло... (после некоторых изменений в опциях компилера прога всетаки скомпилилась, но искала свои переменные чёрт знает где),зато удалось подшить Watcom C 32.
правда он юзает int 31.
Так что если есть какието соображения по этому поводу пишите на мыло [EMAIL]htmme@yandex.ru[/EMAIL]
Muromec.
PS
Кстати Вульфенстейн 3D был написан на Borland C 3.1 под Protected mode с изменённым стартовым кодом.
Буду писать ОС на Паскале
Не потому что мне этого хочется, а потому что меня заставляют.
On 2001-12-18 1752, Anonymous wrote
Вот сдесь маленький пример ос
бут сектор+ядро выводяшее Hallo world $)
http//www.programme.ru/index.phtml?arch/012001/012001_1_1.htm
Писать свою ос можеш на чем хочеш хоть на VB $)) если найдеш под него или напишеш сам нормальный компилятор.
Именно так!!! Судя по качеству кода Windows, это Бейсик. Жалко, что не Кобол. Тогда бы работы по доводке Win2000 Мелкомягким хватило бы на ближайшую тысячу лет...
On 2001-12-07 2129, Fopfop wrote
Асм я знаю, но не настолько, чтобы на нём кодить. Однако асмовские вставки в Паскале реализовать смогу. Ну помогите мне Плиииз, а то раскритиковались тут!!!. "Хотя для меня все еще остается загадкой то, что Линус Торвальдс умудрился написать Linux на С, пусть даже с ассемблеровскими вставками. "- а значит и я смогу!!!
[ Это Сообщение было отредактировано Fopfop в 2001-12-07 2152 ]
Ги-ги, парнишка пишет на паскале и думает что он также крут как Линус Товальдс, откуда только такая самооценка! Да будет вам известно, что на сейчас 16-битные компилляторы используют только те программисты, которые собираются в будущем стать бомжами! Удачи вам! В принципе я рад, что такие тоже есть, а то какая бы конкуренция была! Про операционку на п-ле и ассемблерные вставки - классная шутка. Я даже представил себе как Билли вспотеет, узнав о таком потенциальном сопернике!
[quote]
Если признаться...то мал я еще, что бы в такие серьезные споры вмешиваться.....но все таки пару слов..хочу чиркнуть....
........насколько мне известно С/C++ языки УНИВЕРСАЛЬНЫЕ...(типа можно реализовать любые задачи)....Pascal же...был задуман для обучения программированию (это конечно не делает его плохим языком, но все таки ограничения какие-то есть)... поэтому я думаю сравнение не совсем корректное.......
[quote]
Если признаться...то мал я еще, что бы в такие серьезные споры вмешиваться.....но все таки пару слов..хочу чиркнуть....
........насколько мне известно С/C++ языки УНИВЕРСАЛЬНЫЕ...(типа можно реализовать любые задачи)....Pascal же...был задуман для обучения программированию (это конечно не делает его плохим языком, но все таки ограничения какие-то есть)... поэтому я думаю сравнение не совсем корректное.......
Сегодня на асме пишут только загрузочную часть + вставки для улучшения быстродействия, оптимизации и работы с железом. На С++ писать надо, ИМХО :)
А если попробовать навешать на Dos или Linux какой - нибудь свои навороты ? С досом париться правда придётся - его исходников - то нет , а Линукс открыт .
Совершенствование Linux сегодня выглядит более предпочтительным, чем модернизация DOS.
А по вопросу сколько парится? С обеими системами работы много, чтобы довести их до интуитивно понятных, например, и в других направлениях работы с ними много.
Преимущество DOS - маленький размер, отсутствие многих подсистем (если это можно назвать преимуществом) Т.е. можно писать свои сокеты, свои менеджеры графики, свои почтовые демоны, и всё, что вашей душе угодно. Если сможете поднять такой проект, то ваша работа станет стандартом de-facto, и миллиарды пользователей будут такую продукцию использовать.
Преимущество Linux - Open Source, many developers. Уже сформировано много стандартов в Linux, а этот факт упрощает разработку, но замедляет продвижения новых программ-конкурентов.
Хотя экспериментировать в программировании можно и с DOS and Linux and whatever you want to!
Сегодня Microsoft лидирует на рынке Desktop OS!
Но за кем-то из нас - будущее!
Не упустите свой шанс!
Мягко говоря рискнул!!!
Подошол к преподу с вопросом что читать с чего начинать (до сего момента я уже неплохо знал С и даже асм на уровне программ работы с винтом в защ. режиме) так вот, как ни странно первое что сказал мне препод: "Читай литературу о компиляторах" (!!!) "А зачем?" - спросил Я - "Я же не компилятор а ОС пишу!". "Нет для начала тебе нужен компилятор на котором Ты будеш писать свою ОС ... ". Вот и пишу до сего момента тот самый компилятор. Вообще то некоторая пародия на С++ получается, _почти_работает_. Что касается ОС то пока есть только загрузчик и некое не сформированное ядро. О оболочке и говорить не приходиться. Если до нового года закончу компилятор -- начну писать оболочку ОС.
А вообще что касаестя ОС на Паскале -- трудновато но можно, если "свой" Паскаль напишешь ... :)
А где можно взять исходники Unixa и по-подрбней русскую документацию?
UNIX сейчас большой! Поэтому тебе нужно выбрать одну часть системы и попытаться разобраться с выбранным субъектом.
Ты можешь спросить у AT&T, Novell & UCB, за сколько они готовы тебе продать исподники UNIX. И посмотреть на "открытые" системы.
Русской документации нет и не будет, пока ты сам не возмёшься и не переведёшь. Не рассчитывай на других в переводе документации, т.к. профессионалам это не нужно, а любители ленятся сделать доброе дело. Как правило оригинал понимать легче чем перевод, хотя бывают исключения. Если переведёшь что-либо, оставь ссылки, мне будет интересно посмотреть!
Я желаю тебе всего наилучшего!
То, что в BP это одно и то же, еще не значит, что это - правило. Как раз наоборот :-)
Так что, написав процедуры, не использующие сервиса DOS/BIOS (BIOS может отсутствовать или быть специфичной - нормальная ОС должна это проверить до запуска) для ЛЮБОГО компилятора ЯВУ, достаточно скомпоновать их так, как надо либо одним из существующих, либо собственным компоновщиком (который может использовать как базу имеющуюся ОС до того, как будет написана версия для своей). Да и если они в одном флаконе - напишите утилиту, обрезающую начальные процедуры и таблицы перемещения и системных вызовов. Делов то! :-)
Только вот без умения оперировать кодами своего процессора при написании ОС не обойтись!
Скажите, что если писать на Бейсике, то это будет надстройка над Досом.(Windows точно писали на Qbasic:)(вопрос только - как откомпилировали))
А вообще - творческих удач тебе т.к. не чеи помочь не могу:)
В принципе, можно написать ос на всем, чем хочешь!!!
Скажите, что если писать на Бейсике, то это будет надстройка над Досом.(Windows точно писали на Qbasic:)(вопрос только - как откомпилировали))
А вообще - творческих удач тебе т.к. не чеи помочь не могу:)
Хех... Windows рождалась на Паскале. Правда, тогда никто не думал, что это будет ОС. Её написали "в пику" GEM
Нет ничего не возможного!!! Главное импровизировать :))
А зачем нужно себя так ломать? Изучи С и Asm и пиши тихонько. Если это действительно кому-то надо. а на паскале писать ось - это же не по-русски. (при всем к нему уважении)
Забабахать рульную ось на асма, а на пасе скромную инсталлу из под доса :-))
Забабахать рульную ось на асма, а на пасе скромную инсталлу из под доса :-))
Ну зачем же над DOS так издеваться?
Тебе, что действутельно необходимо уставливать будущую систему из под DOS?
Не лучше ли, устанавливать систему методом простого копирования на первых порах, а потом написать свой Installer!
С уважением!
ОС на Паскале реальность (года этак с 93), правда не совсем на Паскале, а на его потомке - Оберон называется.
Разработал Оберон и одноимённую ОС Никлаус Вирт (слышали про такого?). Писал он её в двоём со своим коллегой не много не мало, а 3 года. Причём в её исходниках нет НИ ОДНОЙ строчки на АСМЕ или каком-нибудь другом языке програмирования, кроме Оберона.
Сама ОС, вместе с компилятором и текстовым редактором (встроенными в ядро) занимает около 200Кб (двести килобайт). Для справки МИНИМАЛЬНОЕ из возможных ядер Линукса занимает около 300Кб (при этом ни о редакторе, тем более о компиляторе в Линуксе речи не идёт.
Больше того, на Си, а уж тем более Си++ я писать никому не советую. Это не только моё мнение - это мнение ведущих умов в области ЯВУ, таких как Вирт, Страуструп (тот самый), Хёсенбпёк и др.
Спросите почему? Потому что Си - дидактически и структурно не состоятельный язык, а уж как объектный - вообще жуткий монстр.
Лучшим трудом по Си и Си++ является книга Б. Страуструпа (800 страниц), в которой он пишет, что выучить Си полностью - невозможно, можно лишь выучить его отдельную часть и работать в ней. Си ещё не умер лишь потому, что у него есть огромная армия приверженцев, которые имеют против структурных языков (таких как Паскаль, Модула, Ада, Оберон) предубеждение, однако Ява (по сути Паскаль с синтаксисом Си) должна в скором времени изменить положение дел в пользу Паскаля.
Между тем описание полное Оберона, написанное Виртом занимает 16 (шестнадцать) страниц. Кроме того, Вирт написал книжку (около 100 страниц) про то, как он написал этот язык и операционку.
Компилятор языка и операционка распространяются бесплатно (кстати, в исходных текстах) http://www.oberon.ethz.ch/download.html
Чтобы было понятнее - лексемы Паса я анализирую и в промежуточный файл вставляю макросы своего препроцессора. После чего прохожусь препроцессором - и он развёртывает эти макросы в ассемблерный исходник. Кто может помочь?