Команда IT специалистов выполнит подготовку инфраструктуры для вашего бизнеса.
Внедрение самых передовых решений и технологий.
Поддержка и сопровождение ваших сервисов.
Выполнение работ под "ключ", от покупки сервера, до настройки автоматизации процессов.
8(977)608-78-62 adm@nixm.ru

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

Ответить
Аватара пользователя
nezabudka
Местный говорун
Местный говорун
Сообщения: 618
Зарегистрирован: 18 апр 2015, 06:13
Откуда: Ростов на Дону

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

Сообщение nezabudka »

Заинтересовавшись строением и работой компьютера на самом низком уровне я наткнулась на
серию статей по написанию игрушечной оси на англоязычном ресурсе:
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
Olej

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

Сообщение Olej »

nezabudka писал(а): Для того что бы разбираться в системе и по настоящему понять как работает компьютер
я решила пройти по шагово все пути развития самописной системы по этим мануалам и
поделится со всеми заинтересовавшимися своими впечатлениями, а так же дополнить что то
от себя, а быть может что то изменить или заново переделать.
Это проходили, наверное, все, кто всерьёз интересовался вопросами программирования...
Но со временем это проходит, надоедает.
Боксы я надеюсь здесь применить в качестве дебагера программы в
реальном режиме работы процессора. Тема с боксами для меня новая но так же
очень интересно будет разобратся с этим всем вместе. Естественно оставляю
контольный запуск в qemu-kvm с образа дискеты и диска, а так же с реальной
дискеты если найду хоть одну...
Могу прислать целый ящик :D
Мне пообещали
подарить ради такого случая старенький ide на 40 Гигов.
Мог бы и таких прислать ... но вряд ли позволят :x
Аватара пользователя
NoVASpirit
Разговорчивый гость
Разговорчивый гость
Сообщения: 33
Зарегистрирован: 18 янв 2015, 02:32

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

Сообщение NoVASpirit »

А может лучше собрать систему с нуля уже из готовых пакетов? Зачем заморачиваться так глубоко?
------------------------------------
Меня всегда можно найти
Ярославская группа пользователей GNU/Linux:
yarlug@conference.jabber.ru
Olej

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

Сообщение Olej »

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

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

Сообщение NoVASpirit »

Нет... Я имею в виду собрать систему со своей пакетной базой. Никто ведь не вникает для чего нужен тот или иной пакет. Да даже Linux From Scratch сделан под чью то копирку и не раскрывает всех особенностей Linux. Это просто не интересно... А вот закопмилить и изучить вдоль и поперёк каждый пакет, написать к каждому пакету свои доки и перевести мануалы которые никто не любит переводить вот это будет интереснее :)
------------------------------------
Меня всегда можно найти
Ярославская группа пользователей GNU/Linux:
yarlug@conference.jabber.ru
Olej

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

Сообщение Olej »

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

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

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

Сообщение Olej »

Затея любопытая ... чтобы следить за ней со стороны :) ...
Только некоторые детали смущают:
nezabudka писал(а):Заинтересовавшись строением и работой компьютера на самом низком уровне я наткнулась на
серию статей по написанию игрушечной оси на англоязычном ресурсе:
http://www.independent-software.com/category/os/
Для того что бы разбираться в системе и по настоящему понять как работает компьютер
я решила пройти по шагово все пути развития самописной системы по этим мануалам и
поделится со всеми заинтересовавшимися своими впечатлениями, а так же дополнить что то
от себя, а быть может что то изменить или заново переделать.
1. Авторы этих заметок прошли только самое-самое начало: создали таблицы (GDT, LDT, IDT...) и переключились в защищённый режим процессора ... а к 2013 году им это наскучило, когда они поняли громоздкость предстоящего.

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

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