Пишем операционную систему

Пишем операционную систему

Сообщение nezabudka » 17 сен 2016, 12:18

Заинтересовавшись строением и работой компьютера на самом низком уровне я наткнулась на
серию статей по написанию игрушечной оси на англоязычном ресурсе:
http://www.independent-software.com/category/os/
Для того что бы разбираться в системе и по настоящему понять как работает компьютер
я решила пройти по шагово все пути развития самописной системы по этим мануалам и
поделится со всеми заинтересовавшимися своими впечатлениями, а так же дополнить что то
от себя, а быть может что то изменить или заново переделать.

Иногда под свой интерес я как и многие подвожу оправдательную базу. Заинтересовавшись
чем-то, что бы предупредить вопросы коллег и выстроить за благовременно оправдательную
линию защиты мы обычно показываем что конкретно приобретаем занимаясь именно этим. Вот и
сейчас начиная серию статей, что бы оградится от вопросов для чего мне нужно заниматся
именно тем чем мне заниматся интересно я сразу закрою подобные вопросы но совершенно по иному.
Я этим занимаюсь просто потому что мне интересно в этом разбираться. Это единственный
стимул к моим действиям который я не хочу смешивать ни с выгодой ни с перспективой ни с
упущенными возможностями в профессиональном росте из за ошибочно выбранной линии своего
наивного чувства интереса. Тем кому мои статьи покажутся бесполезными или скучными,
просто проходят мимо в поисках своего розового слона или создают его так же как я
самостоятельно.

Сразу сообщу что это не перевод на русский язык высше обозначенного мануала,
а скорее результат добываемого мной опыта построения системы по уже приведенной логической
схеме плюс ко всему множество дополнительных статей со всего инета переработанного и
просеянного через фильтр моего серого вещества. Я просто хочу в этом разобратся и
буду это делать на страницах нашего форума и хочу поделится этим опытом со
всеми кто так же как и я посчитает его интересным. Буду рада дополнениям,
критике по теме и всем желающим присоединится к этой движухе. В следующем
посте я как можно подробней разберу работу биоса и немного коснусь реального
режима работы процессора. Этого нет в принятом мной руководстве для действий,
но понимание этого просто необходимо для дальнейшего разбора полетов в построении
системы. Следующая тема это знания агрегированные из различных источников и некоторые еще
являются для меня самой не совсем понятными вещами, так что я так же надеюсь с вашей
помощью прояснить для себя все темные моменты в моем образовании. Специально для
этого стартапа я выбрала надавно собраный из металлолома старенький компьютер с
процессором intel pentium 4 и 500 Mб оперативной памяти. На него я сегодня утановлю
debian stable i386 и в этой операционке будет проходить вся дальнейшая работа.
Некоторые действия я собираюсь дублировать на своем домашнем компе с федорой
23 и в нетбуке с intel atom debian testing, который беру с собой на работу.
Но проверятся все действия будут в обязательном порядке на заявленном оборудовании
с 32 битной системой debian stable и запущенной в ней виртуальной машине qemu-kvm и
bochs. Боксы я надеюсь здесь применить в качестве дебагера программы в
реальном режиме работы процессора. Тема с боксами для меня новая но так же
очень интересно будет разобратся с этим всем вместе. Естественно оставляю
контольный запуск в qemu-kvm с образа дискеты и диска, а так же с реальной
дискеты если найду хоть одну и с реального раздела диска. Мне пообещали
подарить ради такого случая старенький ide на 40 Гигов. Код в статье,
удивительно, но факт, написан на gnu ассемблере под названием gas - продукте
компании AT&T но код употребляется в нотации intel. Некоторые примеры я подозреваю
будут мной использованы в разных ассемблерах, сейчас я уже вполне сносно могу
ориентироваться в синтаксисе и nasm и fasm и что самое главное все эти ассемблеры
доступны в линукс из стандартных репозиториев. Так что мудрить с программным
обеспечением не придется и по возможности я буду переписывать код в gas c
синтаксисом как AT&T так и intel. Так же есть хорошая подборка статей на русском:
http://subscribe.ru/catalog/comp.soft.myosdev?pos=3
Код в которой написан на fasm а в ниже приведенной на nasm.
http://subscribe.ru/catalog/comp.soft.prog.asmos?pos=2
к темам которых я планирую обращатся. С кодом написанным на fasm в винде
проблемм возникнуть не должно. Как говорит мой не большой опыт этот ассемблер
самый переносимый и в моей практике еще не было случая что бы код написанный в fasm
на винде не собрался на линуксе. Я сейчас говорю о коде который запускается
самостоятельно без какой либо операционной системы, просто мы его собираем
там где нам удобней. Насм тоже довольно доброжелателен и близок по функционалу к Фасм.
На этом все. Буду рада любым предложениям в моем начинании.
Последний раз редактировалось nezabudka 17 сен 2016, 13:27, всего редактировалось 1 раз.
"I invented the term Object-Oriented and I can tell you I did not have C++ in mind." - Alan Kay
Аватар пользователя
nezabudka
Местный говорун
Местный говорун
 
Автор темы
Сообщений: 614
Фото: 180
Стаж: 3 года 6 месяцев 26 дней
Откуда: Ростов на Дону
Благодарил (а): 286 раз.
Поблагодарили: 147 раз.

Пишем операционную систему

Спонсор

Спонсор
 

Re: Пишем операционную систему

Сообщение Olej » 17 сен 2016, 13:01

nezabudka писал(а):

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

Это проходили, наверное, все, кто всерьёз интересовался вопросами программирования...
Но со временем это проходит, надоедает.
Цитата:
Боксы я надеюсь здесь применить в качестве дебагера программы в
реальном режиме работы процессора. Тема с боксами для меня новая но так же
очень интересно будет разобратся с этим всем вместе. Естественно оставляю
контольный запуск в qemu-kvm с образа дискеты и диска, а так же с реальной
дискеты если найду хоть одну...

Могу прислать целый ящик :D
Цитата:
Мне пообещали
подарить ради такого случая старенький ide на 40 Гигов.

Мог бы и таких прислать ... но вряд ли позволят :x
Olej
 
Стаж: 48 лет 10 месяцев 13 дней

Re: Пишем операционную систему

Сообщение NoVASpirit » 17 сен 2016, 14:42

А может лучше собрать систему с нуля уже из готовых пакетов? Зачем заморачиваться так глубоко?
------------------------------------
Меня всегда можно найти
Ярославская группа пользователей GNU/Linux:
yarlug@conference.jabber.ru
Аватар пользователя
NoVASpirit
Разговорчивый гость
Разговорчивый гость
 
Сообщений: 33
Стаж: 3 года 9 месяцев 27 дней
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: Пишем операционную систему

Сообщение Olej » 17 сен 2016, 16:11

NoVASpirit писал(а):

А может лучше собрать систему с нуля уже из готовых пакетов?

Речь здесь идёт, как предполагаю, о системе Linux?
Linux From Scratch?
Вот это?
Цитата:
Когда красноглазику становится совсем нечем заняться долгими зимними вечерами, а сессия уже позади (или так далеко впереди, что о ней думать ещё рано), оный начинает предаваться сладостному единению с системой — увы, но если линуксоид опытен и со стажем, то скоро система начинает работать аки швейцарские часы и становится скучно. И тогда гентушник (или слакварщик — дебианщики/редхатовцы этим страдают куда реже, а неиспорченое сознание убунтовцев просто не вместит подобное) решает, что собирать систему через команду emerge и прописывание юзов — слишком просто, и для обретения полного посвящения и становления истинным джедаем красной стороны силы находит себе новое развлечение под названием LFS. Которое после сборки и отладки становится или очередной убунтой с измененными иконками, или выбрасывается за ненадобностью, т.к. обновление софта и решение вопросов безопасности это гемор даже для искушенных линуксоидов-одиночек.


Вот это уж совершенно бездарное убиение своего времени! :evil:
И книга сама Изображение, как показало время, оказывается вредной и бессмысленной провокацией.
Olej
 
Стаж: 48 лет 10 месяцев 13 дней

Re: Пишем операционную систему

Сообщение NoVASpirit » 17 сен 2016, 18:26

Нет... Я имею в виду собрать систему со своей пакетной базой. Никто ведь не вникает для чего нужен тот или иной пакет. Да даже Linux From Scratch сделан под чью то копирку и не раскрывает всех особенностей Linux. Это просто не интересно... А вот закопмилить и изучить вдоль и поперёк каждый пакет, написать к каждому пакету свои доки и перевести мануалы которые никто не любит переводить вот это будет интереснее :)
------------------------------------
Меня всегда можно найти
Ярославская группа пользователей GNU/Linux:
yarlug@conference.jabber.ru
Аватар пользователя
NoVASpirit
Разговорчивый гость
Разговорчивый гость
 
Сообщений: 33
Стаж: 3 года 9 месяцев 27 дней
Благодарил (а): 0 раз.
Поблагодарили: 3 раз.

Re: Пишем операционную систему

Сообщение Olej » 17 сен 2016, 18:42

Здесь полная путаница понятий:
NoVASpirit писал(а):

Я имею в виду собрать систему со своей пакетной базой.

Пакетная система, пакетная база, пакеты - это всё терминология из области распространения, тиражирования программного обеспечения.
Это не имеет касательства ни к программному обеспечению, ни к программному коду ... ни даже к операционной системе - тот же Linux может прекрасно существовать без какой-то пакетной системы вообще.
Это рыночная технология, направленная, как и всякая рыночная технология на единственную цель: впарить потребителю как можно больше.
NoVASpirit писал(а):

Никто ведь не вникает для чего нужен тот или иной пакет.
... А вот закопмилить и изучить вдоль и поперёк каждый пакет, написать к каждому пакету свои доки и перевести мануалы которые никто не любит переводить вот это будет интереснее :)

А вот здесь даже сам термин "пакет" неуместен, потому что каждое программное изделие - это проект, это программный код, который сам по себе является продуктом и представляет ценность ... и уж никак не связан с каким-то там "пакетом".

Но затея ТС вообще о совершенно другом: о написании прототипа ядра операционной системы.
А все "пакеты", как и великое множество свободных программных проектов, не имеют никакого отношения к самой операционной системе, к ядру системы.
Olej
 
Стаж: 48 лет 10 месяцев 13 дней

Re: Пишем операционную систему

Сообщение Olej » 17 сен 2016, 18:58

Затея любопытая ... чтобы следить за ней со стороны :) ...
Только некоторые детали смущают:
nezabudka писал(а):

Заинтересовавшись строением и работой компьютера на самом низком уровне я наткнулась на
серию статей по написанию игрушечной оси на англоязычном ресурсе:
http://www.independent-software.com/category/os/
Для того что бы разбираться в системе и по настоящему понять как работает компьютер
я решила пройти по шагово все пути развития самописной системы по этим мануалам и
поделится со всеми заинтересовавшимися своими впечатлениями, а так же дополнить что то
от себя, а быть может что то изменить или заново переделать.

1. Авторы этих заметок прошли только самое-самое начало: создали таблицы (GDT, LDT, IDT...) и переключились в защищённый режим процессора ... а к 2013 году им это наскучило, когда они поняли громоздкость предстоящего.

2. Этот путь (крайне тяжёлым, трудоёмким способом) приведёт только к пониманию в тонкостях работы процессора, железа ... да и то только одного типа процессора из многих - Intel x86.
(ничего другого нового вы там не узнаете ... да и ничего интересного там нет)
Но для этого понимания есть гораздо более лёгкий путь - книги.
Вот например:
Изображение
Цитата:
Зубков С. В.
Assembler для DOS, Windows и Unix Одиннадцатое издание

(кстати, книгу можно во множестве найти в Интернет для свободного скачивания)
Там всё описано в примерах кода ... и переключение в защищённый режим, и таблицы и т.д.
Olej
 
Стаж: 48 лет 10 месяцев 13 дней


Вернуться в Другие языки

Кто сейчас на форуме

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

cron