Дык я и говорю – накодить сразу виндовс нереально, лучше начать с того чтобы написать маленькую RTOS для микроконтроллеров, либо же взять готовую (FreeRTOS) и разобраться в ней (от этого будет к тому же реальная польза).
ИМХО, Если пишешь программы для микроконтроллеров, то из-за отсутствия сложной периферии, ОС и прочих компонентов, отдаляющих программиста от "железа", понять принципы работы процессора проще. А потом можно и на PC перейти (хотя после этого будет хотеться блевать от его корявости )
Ну не обязательно x86, но у практически всех современных процессоров есть 2 режима: безопасный и расширенный
А у остальных современных процессоров сразу расширеный
> ИМХО, идеальный выбор – RISC-микроконтроллеры
Ну если есть эмулятор то пожалуйста! А можно просто не усложнять себе жизнь и учиться ассемблеру на простых программках типа "Hello world!"
А зачем обязательно x86? Для начала изучения низкоуровневого программирования лучше взять что-либо менее запутанное. ИМХО, идеальный выбор – RISC-микроконтроллеры.
Дмитрий hda Хохряков
Это не муть, но и не совсем точное объяснение.
У всех x86 процессоров есть режимы, точнее их 2: безопасный и расширеный. В безопасном даже самый новый 2-х ядерный проц будет работать с теми же командами (mov, add, call, jmp…) что и древний 8086 (был такой процессор когда-то). Вот именно с этими командами и работают как биос так и загрузчики.
А вот Расширенный режим в него уже впиханы команды MMX, двуядерных режимов, и т.д….
А BIOS он только хранит в себе уже готовые программы которые запускаются по какому либо прерыванию
_________________
Anton Ivanov
Начни читать какую нибудь старую книгу по ассемблеру – после них обычно сразу приходит понимание как там это всё устроено
Anton Ivanov
виртуальную машину попробуй использовать для начала
"пока что всё идёт хорошо. но мне интересно как например дать команду системе без ОС или как работает файловая система?"
команды даются процессору, есть специальные коды, которые понимает тот или иной процессор, эти коды записываются в регистры, при помощи команд БИОСа
Олег Андреев, не каждому суждено стать очередным Торвальдсом, глупо этого не понимать. Сколько у нас "тысячепервых новичков", а сколько известных ядер осей? Если бы автор темы сделал что-нибудь, хотя бы отдалено напоминающее ядро линукса, я бы посыпал себя пеплом. Но ты же знаешь, что этого не будет, потому что уровень знаний того же Торвальдса, когда он начинал работу над ядром, был значительно выше, чем у автора темы.
Любопытно читать ответы типа "очередной тысячепервый новичок, мечтающий написать свою ось. Не трать время."
Напомню, что точно такие же советы давали Линусу Торвальдсу, когда он переписывал ядро миникса. А он игнорировал дураков и сделал ядро линукс, ныне ставшее очень распространенным.
хм… а мне фри дос нравится.. всяко не хуже мсдоса.. к нему тоже описания не было нормального а глююююююююююююкооооф) надо документацию на фридосе подправить)
1. Незнаю разработкой каких игр ты занимаешься, если даже азов не знаешь как раньше без оси рработали. ну да лан
2. по поводу лучше не писать новую ось а улучшить старую, ну тут знаешь есть наглядный пример, вот возьмем с++ не спорю язык программирования хороший, но еслиб страуструб тогда не выебнулся и не началя переделовать си а начал писать свой чистый новый язык программирования, все было бы куда более интересно умнее и правильнее!
а по поводу того что чел вон хотит ось написать, ты хоть раз ядро какоето пробовал собирать? атона чем писать как писать. как дос написали если небыло ОСи..
Алексей Терещенко, возможно у меня не хватает знаний по программированию, но я занимаюсь разработкой компьютерных игр.
пока что всё идёт хорошо. но мне интересно как например дать команду системе без ОС или как работает файловая система?
Когда за написание ОС берется профессионал с целью "написать ОС" – это одно. А когда новичок, вчера увидевший книгу по ассемблеру, – это совсем другое. Ибо дальше следует еще 1001 вопрос про основные азы: типа "а чем компилить", "а как текст на экран вывести через BIOS" и т.д.
Далее начинается тупая трата времени тех, кто попробует на это отвечать.
Видимо, имеется в виду, что сейчас, когда самых разных ОСей уже существует великое множество, гораздо целесообразнее улучшать существующие, чем писать еще одну.
если есть желание покопаться в основах операционных систем, то берите Таненбаума с его миниксом. это по меньшей мере адекватная (и при этом простая) операционная система.
Загрузочная область целиком на асме, до версии 2.xx (непомню) всё остальное (дрова, ядро, команды- они там отдельными файлами) писалось на бейсике. Начиная с версии 3.0 начали писать на Си, но даже в Win98 ещё оставались некоторые модули написаные на Бейсике. Например драйвер для FAT12 (файловая система для дискет) до сих пор остаётся написаной на Бейсике.
Anton Ivanov, так и первые компиляторы писались либо в машинных кодах, либо компилировались вручную… А операционных систем, как таковых, в самом начале не было.
Вначале был процессор (на самом деле, это было не начало, но мы условно возьмем этот момент за начало), и ПЗУ, из которого процессор выполнял команды. К ПЗУ программист подключал выключатели. Одной группой выключателей он набирал адрес, другой – данные, и нажимал кнопку для прошивки. Таким образом он туда зашивал программу в машинных кодах, которую он предварительно ассемблировал (естественно, вручную, на бумажке). Вот примерно так можно что-то сделать "не из чего".
Я с Вами согласен что это тупая трата времени, но мне всётаки интересно
как она была написана, с помощью чего?
С самого начала не было же никакой операционной системы?
Как её начинали писать? С помощью чего? Нельзя же было тогда взять и загрузиться не из чего? Возможно есть какойто редактор или ..не знаю..
Я не собираюсь песать полностью ось, нопросто хотел бы знать основу)
Очередной "тысячепервый" новичок, мечтающий написать свою "ось".
Не трать время. Это бесполезное глупое непродуманное решение. Когда ты это поймешь сам, тебе будет жаль потраченного времени. Лучше повышай свой уровень написанием каких-нибудь простых, интересных, но при этом полезных программ.
FreeDos написан на си и асме (она и в самом деле "фри", так что исходники доступны)
Кстати, залез на их сайте в справку. Она у них на движке вики. Русская версия раздела "Помощь" состоит из 2 предложений, цитирую:
"Совет один – уебище это на корню убивать. Мало того, что недоработанное и глюкавое, так еще с путаным и неполным описанием."
13 августа 2008 в 0:05
есть и такая книга
П. И. Рудаков, К. Г. Финогенов
——
ЯЗЫК
АССЕМБЛЕРА:
УРОКИ
ПРОГРАММИРОВАНИЯ
ДИАЛОГ-МИФИ, 2001. – 640 с.
вот она в электронном виде кстати))
13 августа 2008 в 0:03
Я Дмитрию Зинину
12 августа 2008 в 22:05
Дык я и говорю – накодить сразу виндовс нереально, лучше начать с того чтобы написать маленькую RTOS для микроконтроллеров, либо же взять готовую (FreeRTOS) и разобраться в ней (от этого будет к тому же реальная польза).
12 августа 2008 в 22:04
Дмитрий hda Хохряков
Ну пацану же хотелось узнать на чём виндовс написали, и как подобное накодить, а windows на микроконтроллерах я не встречал ;D
Anton Ivanov
Тут два Дмитрия это к кому?
> вотбы такую книгу сейчас=)
12 августа 2008 в 22:03
Дмитрий, вотбы такую книгу сейчас=)
12 августа 2008 в 19:04
ИМХО, Если пишешь программы для микроконтроллеров, то из-за отсутствия сложной периферии, ОС и прочих компонентов, отдаляющих программиста от "железа", понять принципы работы процессора проще. А потом можно и на PC перейти (хотя после этого будет хотеться блевать от его корявости )
12 августа 2008 в 19:01
Ну не обязательно x86, но у практически всех современных процессоров есть 2 режима: безопасный и расширенный
А у остальных современных процессоров сразу расширеный
> ИМХО, идеальный выбор – RISC-микроконтроллеры
Ну если есть эмулятор то пожалуйста! А можно просто не усложнять себе жизнь и учиться ассемблеру на простых программках типа "Hello world!"
12 августа 2008 в 9:02
#45
Дмитрий Волков 12 авг 2008 в 9:24
А зачем обязательно x86? Для начала изучения низкоуровневого программирования лучше взять что-либо менее запутанное. ИМХО, идеальный выбор – RISC-микроконтроллеры.
12 августа 2008 в 7:02
Дмитрий hda Хохряков
Это не муть, но и не совсем точное объяснение.
У всех x86 процессоров есть режимы, точнее их 2: безопасный и расширеный. В безопасном даже самый новый 2-х ядерный проц будет работать с теми же командами (mov, add, call, jmp…) что и древний 8086 (был такой процессор когда-то). Вот именно с этими командами и работают как биос так и загрузчики.
А вот Расширенный режим в него уже впиханы команды MMX, двуядерных режимов, и т.д….
А BIOS он только хранит в себе уже готовые программы которые запускаются по какому либо прерыванию
_________________
Anton Ivanov
Начни читать какую нибудь старую книгу по ассемблеру – после них обычно сразу приходит понимание как там это всё устроено
12 августа 2008 в 0:02
>команды даются процессору, есть специальные коды, которые понимает тот или иной процессор, эти коды записываются в регистры, при помощи команд БИОСа
Че за муть?
11 августа 2008 в 22:03
#40 Откуда ты знаешь про уровень подготовки автора? По постам? А мож он прикалывается и у него в загашнике уже есть ядро?
11 августа 2008 в 11:04
"есть специальные коды"
- точнее они называются прерывания
"ЗЫ: если с АСМом не дружишь лучше не читай " в точку
вот ещё адресок – там есть те кто уже ос написал и те кто ещё пишут:
//www.sysbin.com
11 августа 2008 в 8:01
Anton Ivanov
виртуальную машину попробуй использовать для начала
"пока что всё идёт хорошо. но мне интересно как например дать команду системе без ОС или как работает файловая система?"
команды даются процессору, есть специальные коды, которые понимает тот или иной процессор, эти коды записываются в регистры, при помощи команд БИОСа
Вообще вот ссылка, если еще интересно
//www.codenet.ru/cat/Platforms/OS/
ЗЫ: если с АСМом не дружишь лучше не читай
9 августа 2008 в 18:04
Олег Андреев, не каждому суждено стать очередным Торвальдсом, глупо этого не понимать. Сколько у нас "тысячепервых новичков", а сколько известных ядер осей? Если бы автор темы сделал что-нибудь, хотя бы отдалено напоминающее ядро линукса, я бы посыпал себя пеплом. Но ты же знаешь, что этого не будет, потому что уровень знаний того же Торвальдса, когда он начинал работу над ядром, был значительно выше, чем у автора темы.
9 августа 2008 в 17:05
ну тогда еще разок)
9 августа 2008 в 17:01
Дмитрий, файл не корректно передался…
9 августа 2008 в 15:02
Любопытно читать ответы типа "очередной тысячепервый новичок, мечтающий написать свою ось. Не трать время."
Напомню, что точно такие же советы давали Линусу Торвальдсу, когда он переписывал ядро миникса. А он игнорировал дураков и сделал ядро линукс, ныне ставшее очень распространенным.
9 августа 2008 в 14:03
напиши впечатления какнибудь
9 августа 2008 в 14:01
спасибо!
9 августа 2008 в 9:05
я же отправил…
9 августа 2008 в 3:00
Дмитрий, хотябы понюхать можно?
8 августа 2008 в 22:04
там всего пара фоток))) только понюхать, как говориться)
8 августа 2008 в 22:02
Дмитрий, скинь мне пожалуйста на мыло! doom3idd@gmail.com
8 августа 2008 в 17:05
хочешь я лучше пофотаю ее чуть чуть, и тебе скину…
8 августа 2008 в 16:03
12 это копейки… свежак можно сказать!
тогда скажите, чего там на 700 страниц понаписать то можно?
8 августа 2008 в 15:01
оно печатное, досталось мне еще лет так 12 назад…
8 августа 2008 в 13:01
а про глюки согласны?)))
к фри бы хорошую документацию и отличная штука.. мне нравится)))) Будет время – займусь мож.
с глюками лично не сталкивался – но я не могу быть объективен так как использую фри исключительно для игр в дум 2 )
ЗЫ: А можно в пдф почитать это самое руководство на 700 страниц? уж очень интересно)))))))
8 августа 2008 в 11:05
небыло нормального описания? )))
у меня есть Microsoft MS-DOS Версия 4 Руководство и справочник пользователя
больше чем 700 страниц
8 августа 2008 в 11:04
хм… а мне фри дос нравится.. всяко не хуже мсдоса.. к нему тоже описания не было нормального а глююююююююююююкооооф) надо документацию на фридосе подправить)
8 августа 2008 в 3:00
раньше на перфокартах пробивали прогеры операционную систему.
во вторых полностью согласен с тобой.
7 августа 2008 в 9:02
1. Незнаю разработкой каких игр ты занимаешься, если даже азов не знаешь как раньше без оси рработали. ну да лан
2. по поводу лучше не писать новую ось а улучшить старую, ну тут знаешь есть наглядный пример, вот возьмем с++ не спорю язык программирования хороший, но еслиб страуструб тогда не выебнулся и не началя переделовать си а начал писать свой чистый новый язык программирования, все было бы куда более интересно умнее и правильнее!
а по поводу того что чел вон хотит ось написать, ты хоть раз ядро какоето пробовал собирать? атона чем писать как писать. как дос написали если небыло ОСи..
28 июля 2008 в 22:00
читай Таненбаума, там всё есть
28 июля 2008 в 22:00
Можно хоть на ТурбоПаскале. Очень желательно вместе с АСМом. Вы же не хотите второго маздая?
28 июля 2008 в 8:02
Если интересно, как дать команду системе без ОС – изучай программирование микроконтроллеров, там это наиболее наглядно.
28 июля 2008 в 7:01
Алексей Терещенко, возможно у меня не хватает знаний по программированию, но я занимаюсь разработкой компьютерных игр.
пока что всё идёт хорошо. но мне интересно как например дать команду системе без ОС или как работает файловая система?
28 июля 2008 в 0:05
Когда за написание ОС берется профессионал с целью "написать ОС" – это одно. А когда новичок, вчера увидевший книгу по ассемблеру, – это совсем другое. Ибо дальше следует еще 1001 вопрос про основные азы: типа "а чем компилить", "а как текст на экран вывести через BIOS" и т.д.
Далее начинается тупая трата времени тех, кто попробует на это отвечать.
27 июля 2008 в 23:03
Видимо, имеется в виду, что сейчас, когда самых разных ОСей уже существует великое множество, гораздо целесообразнее улучшать существующие, чем писать еще одну.
27 июля 2008 в 23:01
"написание ОС-тупая трата времени" – скажите это Линусу Торвальдсу и его друзья порубят вас в лапшу на букве "т".
ЗЫ: И правильно сделают!
24 июля 2008 в 0:00
если есть желание покопаться в основах операционных систем, то берите Таненбаума с его миниксом. это по меньшей мере адекватная (и при этом простая) операционная система.
23 июля 2008 в 17:05
Загрузочная область целиком на асме, до версии 2.xx (непомню) всё остальное (дрова, ядро, команды- они там отдельными файлами) писалось на бейсике. Начиная с версии 3.0 начали писать на Си, но даже в Win98 ещё оставались некоторые модули написаные на Бейсике. Например драйвер для FAT12 (файловая система для дискет) до сих пор остаётся написаной на Бейсике.
23 июля 2008 в 15:00
Anton Ivanov, так и первые компиляторы писались либо в машинных кодах, либо компилировались вручную… А операционных систем, как таковых, в самом начале не было.
23 июля 2008 в 13:04
МС-ДОС на васике писан =) по слухам, там есть ещО и ассемблерные вставки
23 июля 2008 в 12:00
Цикл статей lowlevel.ru про написание и устройство ОСи:
Оглавление: //web.archive.org/web/20031203013803/www.lowlev...
Номер 1: //web.archive.org/web/20040227145718/www.lowlev...
Не просто код с коментами, а подробное описание того, Как Оно Работает (:
23 июля 2008 в 8:02
Вначале был процессор (на самом деле, это было не начало, но мы условно возьмем этот момент за начало), и ПЗУ, из которого процессор выполнял команды. К ПЗУ программист подключал выключатели. Одной группой выключателей он набирал адрес, другой – данные, и нажимал кнопку для прошивки. Таким образом он туда зашивал программу в машинных кодах, которую он предварительно ассемблировал (естественно, вручную, на бумажке). Вот примерно так можно что-то сделать "не из чего".
23 июля 2008 в 5:05
Anton Ivanov
//www.computery.ru/upgrade/ numbers/2004/170/history_170.htm
23 июля 2008 в 5:02
Я с Вами согласен что это тупая трата времени, но мне всётаки интересно
как она была написана, с помощью чего?
С самого начала не было же никакой операционной системы?
Как её начинали писать? С помощью чего? Нельзя же было тогда взять и загрузиться не из чего? Возможно есть какойто редактор или ..не знаю..
Я не собираюсь песать полностью ось, нопросто хотел бы знать основу)
23 июля 2008 в 5:02
и си не было, не было ничего.. как неиз чего можно чтото сделать? меня интересует каким образом всё это происходило)
23 июля 2008 в 4:00
написание ОС-тупая трата времени. Пишите то, что никто НИКОГДА не писал….в этом весь смысл.
хотя можете и написать ОС….для интереса
23 июля 2008 в 1:01
Очередной "тысячепервый" новичок, мечтающий написать свою "ось".
Не трать время. Это бесполезное глупое непродуманное решение. Когда ты это поймешь сам, тебе будет жаль потраченного времени. Лучше повышай свой уровень написанием каких-нибудь простых, интересных, но при этом полезных программ.
23 июля 2008 в 0:01
FreeDos написан на си и асме (она и в самом деле "фри", так что исходники доступны)
Кстати, залез на их сайте в справку. Она у них на движке вики. Русская версия раздела "Помощь" состоит из 2 предложений, цитирую:
"Совет один – уебище это на корню убивать. Мало того, что недоработанное и глюкавое, так еще с путаным и неполным описанием."
22 июля 2008 в 23:04
C и asm, или asm и C ((=
22 июля 2008 в 23:04
да и если погуглить, то можно найти пример написания простейшей ОС
я как то натыкался, жаль ссылки не осталось, а так дал бы ))