Написание OS на VB

Разговоры на любые темы: вы можете обсудить здесь какой-либо сайт, найти единомышленников или просто пообщаться...
DLLpiton
Начинающий
Начинающий
 
Сообщения: 7
Зарегистрирован: 03.05.2009 (Вс) 19:48

Написание OS на VB

Сообщение DLLpiton » 03.05.2009 (Вс) 20:04

Уже 3 года занимаюсь написанием софта под windows, пишу для себя на C#,VB 6, VB.NET,ASM плохо.
Вот недавно задумал начать написание своей OS, так сказать, для своего развития и пользы другим. :D
На С, думаю, не осилю такое дело и решил писать на VB. Но в интернете по этому делу очень мало информации, максиум, что можно сделать, так это первичный загрузчик на ASM. Ну а дальше неизвестность...
Что-же представляет собой ядро OS? Вот в Windows Xp - ntoskrnl.exe, в WIN 3.1 - win.com. Получается .сом файл может исполняться без OS? Выходит систему надо писать на Visual Basic for MS-DOS?
Вот выходит куча таких вопросов. Буду очень благодарен за ответы.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Написание OS на VB

Сообщение Хакер » 03.05.2009 (Вс) 20:11

Вот недавно задумал начать написание своей OS, ... На С, думаю, не осилю такое дело и решил писать на VB.

Минус сто тысяч очков к показателю «Профессионализм».
Тема переезжает из раздела «Для профессионалов».
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Написание OS на VB

Сообщение ANDLL » 03.05.2009 (Вс) 20:38

Что-же представляет собой ядро OS?
Программы
Вот в Windows Xp - ntoskrnl.exe
ntoskrnl - это микроядро, а не ядро
Получается .сом файл может исполняться без OS?
Файлы не выполняются, выполняются только программы в памяти
Выходит систему надо писать на Visual Basic for MS-DOS?
Смотря что ты хочешь
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Написание OS на VB

Сообщение Nord777 » 03.05.2009 (Вс) 21:08

Вот недавно задумал начать написание своей OS,
Фантазер однако :mrgreen:
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 03.05.2009 (Вс) 22:20

DLLpiton писал(а):систему надо писать на Visual Basic for MS-DOS?


Был где-то пример загрузчика с дискеты написанного на PowerBASIC for DOS, несколько десятков строчек.
Перезагружаешь комп с дискеты, он с него и запускается твоя оболочка написанная на PB.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Написание OS на VB

Сообщение iGrok » 03.05.2009 (Вс) 22:39

DLLpiton писал(а):Вот недавно задумал начать написание своей OS, так сказать, для своего развития и пользы другим. :D

Если хочешь "для развития и пользы другим" - лучше поучаствуй в существующих открытых проектах разработки мини-ос.
Колибри, Менуэт... Вот только знание VB тебе там ничем не поможет...
label:
cli
jmp label

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Написание OS на VB

Сообщение Andrey Fedorov » 04.05.2009 (Пн) 8:51

Nord777 писал(а):
Вот недавно задумал начать написание своей OS,
Фантазер однако :mrgreen:


Ну как-же - все настоящие программеры знают что Windows это сплошной глюк.

Оттого написание ими своей OS процесс вполне закономерный...

:D
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

dormouse
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 140
Зарегистрирован: 10.01.2007 (Ср) 21:58
Откуда: Волжский

Re: Написание OS на VB

Сообщение dormouse » 04.05.2009 (Пн) 10:33

вот это стёб.. :)
Visual Basic, от слова "визуальный". Т.е. имеет визуальный интерфейс, отрисованный в операционной среде Windows. Имеет для этого библиотеку msvbvm61.dll (или аналогичные), которая занимается интерпретаций VB-функций и методов в Win-API-функции, которые отрабатываются, соответсвенно, тоже только в OS Windows. ОС - это программная оболочка, которая предназначена для интерпретации кода других программ в язык машинных кодов процессора. Если "ОС" будет написана на VB, то она будет просто визуальной оболочкой той ОС, на которой будет работоспособен msvbvm61.dll. Как это было с Windows 1-3, 9x, где настоящей ОС был MS-DOS, а все эти виндовс - визуальными оболочками.
jangle писал(а):Был где-то пример загрузчика с дискеты написанного на PowerBASIC for DOS
- тот самый пример визуальной оболочки над ОС - той же самой MS-DOS.
VB, наверное, один из самых платформенно-зависимых языков из всех. Он крайне максимально привязан к существующей ОС и писать в нём другую ОС просто невозможно. Как невозможно, используя ресурсы планеты Земля, построить ещё одну такую же планету на... поверхности Земли :)
VBA, MSA97

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 10:46

тот самый пример визуальной оболочки над ОС - той же самой MS-DOS.


Тот пример на PB не оболочка над MS-DOS, для его запуска не нужна операционная система, как я сказал он стартует из бут-сектора и запускает твою программу на PB. Работают все функции встроенные в PB, за исключение доступа к файловой системе, это и понятно, потому, что MS-DOS отсуствует, и работу с диском тебе надо организовывать самому.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Написание OS на VB

Сообщение Хакер » 04.05.2009 (Пн) 11:07

dormouse писал(а):для интерпретации кода других программ в язык машинных кодов процессора.

Полная чушь. Программы изначально состоят из «машинных кодов процессора», для их выполнения ничего не нужно интерпретировать.

Исключения составляют лже-программы созданные с помощью .NET. Но там интерпретацией занимается не ОС. Так что чушь.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Написание OS на VB

Сообщение trash » 04.05.2009 (Пн) 11:27

Хакер писал(а):лже-программы
Если быть точным, труъ-программы, лже-скомпилированные :)

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 11:49

Хакер писал(а):Полная чушь. Программы изначально состоят из «машинных кодов процессора», для их выполнения ничего не нужно интерпретировать.


В случае MS-DOS это справедливо, но не в Windows, где любая программа состоит наполовину из вызова WinAPI функций.

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Написание OS на VB

Сообщение trash » 04.05.2009 (Пн) 12:01

А вызов это что (в случае native-кода)? Один из машинных кодов. А WINAPI? Таки опять набор «машинных кодов процессора», упакованных в библиотеку, который подгружается в адресное пространство запросившей его программы. И, ага, все равно ничего не нужно интерпретировать.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 12:07

trash писал(а):А вызов это что (в случае native-кода)? Один из машинных кодов. А WINAPI? Таки опять набор «машинных кодов процессора», упакованных в библиотеку, который подгружается в адресное пространство запросившей его программы. И, ага, все равно ничего не нужно интерпретировать.


Чтобы вызвать DLL должна быть загружено ядро операционный системы. Поэтому под Windows, невозможно написать программу, которая будет работать на "голом железе", без ОС. Опираясь только на вызовы BIOS. Под MS-DOS это сделать довольно просто. Таких примеров раньше было достаточно и на Паскале и на Бейсике

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Написание OS на VB

Сообщение trash » 04.05.2009 (Пн) 12:10

«Машинные коды процессора» от этого не перестают быть таковыми. Какая разница, что по пути к процессору они пройдут через несколько уровней оси?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Написание OS на VB

Сообщение ANDLL » 04.05.2009 (Пн) 12:26

джунгле, а чем же вызовы BIOS лучше вызовов windows?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 12:29

trash писал(а):«Машинные коды процессора» от этого не перестают быть таковыми. Какая разница, что по пути к процессору они пройдут через несколько уровней оси?


Разницы в машинных кодах никакой, но это не Windows программа все равно не будет работать без OS

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 12:31

ANDLL писал(а):а чем же вызовы BIOS лучше вызовов windows?


что значит лучше?

trash
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 113
Зарегистрирован: 28.01.2009 (Ср) 12:09

Re: Написание OS на VB

Сообщение trash » 04.05.2009 (Пн) 12:36

jangle писал(а):
Хакер писал(а):Полная чушь. Программы изначально состоят из «машинных кодов процессора», для их выполнения ничего не нужно интерпретировать.


В случае MS-DOS это справедливо, но не в Windows, где любая программа состоит наполовину из вызова WinAPI функций.

Разницы в машинных кодах никакой
Что и требовалось доказать.

но это не Windows программа все равно не будет работать без OS
Grammar nazi негодуэ. Перепиши эту фразу более по-русски, а то не понятно.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Написание OS на VB

Сообщение ANDLL » 04.05.2009 (Пн) 12:42

jangle писал(а):
ANDLL писал(а):а чем же вызовы BIOS лучше вызовов windows?
что значит лучше?
Ладно, переиначим.
В чем содержательная часть вот этой фразы:
Поэтому под Windows, невозможно написать программу, которая будет работать на "голом железе", без ОС. Опираясь только на вызовы BIOS.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 12:57

Приложения под MS-DOS для вызова стандартной перефирии использовали прерывания BIOS, типа INT <n> с соответствующим номером n. Программа передает параметры модулям BIOS через регистры процессора, результат работы модуля возвращается также в регистрах. Никакие драйвера (как в Windows) не нужны, все крайне примитивно. Поэтому, на 16-битном бейсике под MS-DOS можно было написать программу, которая будет запускаться из бут-сектора, без операционной системы.
В Windows такой трюк в принципе невозможен.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Написание OS на VB

Сообщение ANDLL » 04.05.2009 (Пн) 13:14

Приложения под MS-DOS для вызова стандартной перефирии использовали прерывания BIOS, типа INT <n> с соответствующим номером n.
С n соответсвующему чему? Тебе известно что у всех сервисов BIOS одно единственной прерывание?

Во вторых, программы обращаются к system service в windows по той же схеме - кидают в регистры входны параметры и вызывают прерывание системного сервиса(или используют ускоренный sysenter).
В Windows такой трюк в принципе невозможен.
Еще раз. То что из windows нельзя вызвать сервис BIOS понятно.
А из msdos нельзя вызвать сервис windows, а в заварочном чайнике нельзя сварить суп. Это очевидно, но к чему было упоминать это в данной теме?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 13:30

ANDLL писал(а):С n соответсвующему чему? Тебе известно что у всех сервисов BIOS одно единственной прерывание?


Кто тебе сказал такую ерунду? У видеоконтроллера, клавиатуры, COM и LPT портов, IDE контроллера, у всех них одно единственное прерывание?

Еще раз. То что из windows нельзя вызвать сервис BIOS понятно.
А из msdos нельзя вызвать сервис windows, а в заварочном чайнике нельзя сварить суп. Это очевидно, но к чему было упоминать это в данной теме?


Человек хочет написать, что типа операционки, вот ему и даем советы, на чем писать :D

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Написание OS на VB

Сообщение Хакер » 04.05.2009 (Пн) 13:32

jangle писал(а):
ANDLL писал(а):С n соответсвующему чему? Тебе известно что у всех сервисов BIOS одно единственной прерывание?

Кто тебе сказал такую ерунду? У видеоконтроллера, клавиатуры, COM и LPT портов, IDE контроллера, у всех них одно единственное прерывание?

:lol:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 13:35

Кстати вот мой древний пост, по этой теме DUR-DOS, Или своя операционка на Бейсике за 5 минут...

Вполне можно пускать пыль в глаза друзьям, изображая из себя нового Линуса Торвальдса

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Написание OS на VB

Сообщение ANDLL » 04.05.2009 (Пн) 14:43

jangle писал(а):
ANDLL писал(а):С n соответсвующему чему? Тебе известно что у всех сервисов BIOS одно единственной прерывание?


Кто тебе сказал такую ерунду? У видеоконтроллера, клавиатуры, COM и LPT портов, IDE контроллера, у всех них одно единственное прерывание?
А при чем тут биос?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 15:01

Это все прерывания BIOS`а

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Re: Написание OS на VB

Сообщение ANDLL » 04.05.2009 (Пн) 15:10

Ты у нас что, совсем ничего не понимаешь?
BIOS - программа которая при запуске компьютера копируется из микросхемы на материнке в оперативную память.
Прерывание BIOS - просто способ быстрого вызова функций. Они инициируется процессором и обрабатываются процессором.
Прерывания клавиатур и прочего - это аппаратные прерывания, они идут от контроллера прерываний к центральному процессору(хотя конечно и процессор может их генерировать).
Это разного поля ягоды, служат совсем для разных целей, хоть и обрабатываются одним механизмом.
Как же BIOS связан с аппаратными прерываниями устройств?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Написание OS на VB

Сообщение arvitaly » 04.05.2009 (Пн) 15:32

jangle писал(а):
Ответы уже все даны, просто надо понимать, что собственно тебе ответили. Однако для человека, у которого нулевые знания в программировании и теории алгоритмов, это сложно, точнее просто невозможно. Поэтому ты и пишешь такие фразы:

BIOS - программа которая при запуске компьютера копируется из микросхемы на материнке в оперативную память.
Прерывание BIOS - просто способ быстрого вызова функций. Они инициируется процессором и обрабатываются процессором.
Прерывания клавиатур и прочего - это аппаратные прерывания, они идут от контроллера прерываний к центральному процессору(хотя конечно и процессор может их генерировать).
Это разного поля ягоды, служат совсем для разных целей, хоть и обрабатываются одним механизмом.
Как же BIOS связан с аппаратными прерываниями устройств?

jangle
Википедик
Википедик
Аватара пользователя
 
Сообщения: 3013
Зарегистрирован: 03.06.2005 (Пт) 12:02
Откуда: Нидерланды

Re: Написание OS на VB

Сообщение jangle » 04.05.2009 (Пн) 15:34

ANDLL писал(а):Ты у нас что, совсем ничего не понимаешь?


Забавно, но хотел сказать тебе тоже самое. :mrgreen:

BIOS - программа которая при запуске компьютера копируется из микросхемы на материнке в оперативную память.
Прерывание BIOS - просто способ быстрого вызова функций. Они инициируется процессором и обрабатываются процессором.
Прерывания клавиатур и прочего - это аппаратные прерывания, они идут от контроллера прерываний к центральному процессору(хотя конечно и процессор может их генерировать).
Это разного поля ягоды, служат совсем для разных целей, хоть и обрабатываются одним механизмом.
Как же BIOS связан с аппаратными прерываниями устройств?


Да BIOS - действительно программа, единственное что правильно в твоем тексте. Но это не способ "быстрого вызова функций", а скорее наоборот прерывания BIOS более медленные чем, прерывания DОS.
Прерывания BIOS - это промежуточный программный слой между аппаратурой и разработчком, своего рода драйвер. Например при программировании видеоадаптера, тебе нужно думать об особенностях конкретной модели чипа, и даже к какой шине он подключен: PCI, ISA, EGA. Ты просто вызываешь стандартное прерывание Int 10h: и начинаешь работу с видеосервисом.
Так же и с остальной аппаратурой, все необходимые функции для работы с портами, клавой и т.д. находятся в ПЗУ этой микросхемы.

Матчасть по прерывания BIOS тут: http://www.codenet.ru/progr/dos/

След.

Вернуться в Народный треп

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 67

    TopList