LINUX.ORG.RU

О том, как написать OS

 , , ,


5

10

Блуждая просторами интернета я набрел на один занимательный канал который собственно так и называется, как топик (ну... аналогично). Материал изложен довольно просто и практично. Мне даже захотелось попробовать сделать это на практике.

Короче, вот плейлист*: https://www.youtube.com/playlist?list=PLHh55M_Kq4OApWScZyPl5HhgsTJS9MZ6M
GitHub с сорцами: https://github.com/AlgorithMan-de/wyoos

Дерзайте, кому интересно...

* требуется знание английского языка и некоторых языков программирования и инструментов; а также желание доучиться самому.

Есть же русскоязычные туториалы: https://subscribe.ru/archive/comp.soft.myosdev/201207/16191615.html
А вообще не понимаю зачем это нужно, читаешь об устройстве ОС, и начинаешь реализовывать, попутно изучая детали нужные для реализации.

И скучно это, стандартную ОС делать, лучше по каким нибудь прикольным идеям, типо lisp/forth машину в основу, сделать сверхкомпактную, etc.

linuhs_user ()
Последнее исправление: linuhs_user (всего исправлений: 2)

Никогда не понимал людей, которые учатся программированию по видеоурокам. Я понимаю там учиться вышиванию... или сборке-разборке ноутбука... Но программирование подразумевает долгое тупление над одним и тем же участком гайда и многократное его перечитывание. А ещё неплоха возможность умеренной копипасты. Видео тут никак не подходит.

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Никогда не понимал людей, которые учатся программированию по видеоурокам.

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

system-root ★★★ ()
Ответ на: комментарий от linuhs_user

стандартную ОС делать, лучше по каким нибудь прикольным идеям, типо lisp/forth машину в основу

эти «прикольные» идеи протухли еще в прошлом тысячелетии, сейчас прикольно квантовые машины и Haskell.

anonymous ()
Ответ на: комментарий от system-root

Ну вообще-то с нормальным преподом можно интерактивно взаимодействовать не только на практиках, но и на лекциях. Попросить еще раз объяснить непонятный участок это не моветон.

Aswed ★★★★★ ()
Ответ на: комментарий от Aswed

офтоп конечно, но

Попросить еще раз объяснить непонятный

такое можно и с записью сделать.
не знаю, может у вас специфическое возрастное восприятие, что, вот надо читать, иначе не работает или долго.
но ведь хорошо, кода ты можешь выбирать под своё восприятие — читать, смотреть, слушать подкасты, etc. (что там изобретут в будущем)

system-root ★★★ ()
Ответ на: комментарий от system-root

такое можно и с записью сделать

Я имею ввиду попросить объяснить по другому.

может у вас специфическое возрастное восприятие

Сколько мне по-твоему?)

Я нормально отношусь к видеоурокам. Особенно они ценны при занятии музыкой, где формат книг крайне неудобен. Но вот в программировании, имхо, наоборот.

Aswed ★★★★★ ()

Write your own Operating System in 1 hour

Я как-то по глупости посмотрел: «Изучаем Java за 1 час» и никакой пользы не принесло, конечно основы синтаксиса я понял и даже в ООП немног вкурил, но осмысленного ПО написать не смогу, надо брать задачник и штудировать, вот думаю с этим уроком та-же фигня, расскажут как написать загрузчик выводящий Hello World и скажут, что вы сделали свою ОС.

log4tmp ★★★★ ()
Ответ на: комментарий от log4tmp

расскажут как написать загрузчик выводящий Hello World и скажут, что вы сделали свою ОС.

Так и есть. Но это только первая часть. Производит эффект.

Но как для меня — вполне годно. Есть работающий *простой* пример, можно сделать себе домашнее задание и разобраться почему (и как) оно работает. Что я, в принципе, и сделал.

KennyMinigun ★★★★★ ()
Ответ на: комментарий от KennyMinigun

Поищи про MenuetOS инфу, раньше был хороший гайд(даже на русском) для студентов где на ее основе объясняли как написать ОС, ну и классика - Minix, хотя там уже достаточно много наворотили

log4tmp ★★★★ ()
Ответ на: комментарий от KivApple

Никогда не понимал людей, которые учатся программированию по видеоурокам.

Попытаюсь тогда разьяснить свою точку зрения (ниже).

программирование подразумевает долгое тупление над одним и тем же участком гайда и многократное его перечитывание

В общем случае не могу возразить. Действительно сам процесс так и выглядит. Однако в случае обучения аргумент не релевантен (хоть и является фактом): просто учишь материал в своем темпе соединяя нейроны в своем мозгу.

Другой фактор касательно обучения — оно должно быть интересным. Я уже академически отучился на магистра «Компьютерых Систем и Сетей» и имею некую базовую линию для оценивания качества обучения. И думаю, что лучше написать HelloWorld и заохотить гипотетического студента к дальнейшему самостоятельному изучению. Нежели выложить академически полный материал, который, в силу обьема оного, по просту сложно организовать в голове для эффективного доступа (и, как следствие трудно, применить к практике, если человек — практик).

Как заохотить — это уже дело субьективное. И наверняка требует личного подхода. Бывает что у людей по-разному мозги уложены. (заметка: стоит воздержаться от выводов в стиле «он тупой потому что думает не так как я»). Но с истинным интересом человек будет лучше вникать в материал. А выдавание материала простыми частями даже с упрощениями (как в видео) стимулирует к самостоятельному поиску недостающих знаний и попутно закрепления материала.

Видео тут никак не подходит.

А мне вполне подходит: интерес не пропадает и есть интонация речи (которой чаще всего можно обозначить приоритет вещей).

А ещё неплоха возможность умеренной копипасты.

Неплоха, но вводит риск копипастой пропустить важный (хотя бы для запоминания) момент. Плюс заставляет думать как сделать аналогичный код с минимальными усилиями (но без копипасты), т.е. в результате в выходит лучше, чем у учителя (что есть идеально, ИМХО).

Вот как-то так. Я пытался изложить свои мысли как можно более докладно. Надеюсь, что понятно.

KennyMinigun ★★★★★ ()
Ответ на: комментарий от log4tmp

Поищи про MenuetOS инфу, раньше был хороший гайд

Спасибо за наводку, может позже посмотрю. Особенно касательно режима 64-bit

Но еще раз подчекну «ОС за 1 час» — это только первое видео из серии. Так что буду еще смотреть гайд из шапки.

KennyMinigun ★★★★★ ()
Последнее исправление: KennyMinigun (всего исправлений: 1)
Ответ на: комментарий от system-root

Суть вопросов в том, чтобы получить в ответ то, что на лекции не было сказано, а не то что ты проспал. Например, услышать более подробное объяснение отдельных моментов

KivApple ★★★★★ ()

это очень ответственное мероприятие, и подходить к нему надо со всей серьёзностью

сначала надо убедиться, что режим перешёл на латиницу. надо потыкать клавиши - если будут ЙЦУК, значит это йцук, и надо искать способ поставить режим на место - это может быть Caps Lock, Ctrl+Shift или другие комбинации

когда вожделенная латиница возобладала, предстоит самое важное

спокойно, без суеты, как будто так и надо, зажимаем клавишу Shift

ищем на клавиатуре эти комбинации, и жмём их. вот так. O S. OS.

всё просто. творите, выдумывайте, пробуйте, и у вас получится!

buratino ★★★★ ()

требуется знание нормального языка

Ну вот, а начало поста было вполне адекватным. Ы-ы :З

По теме - на wiki.osdev.org рассыпано множество бриллиантов. Я бы сказал, под ногами валяются.

hobbit ★★★★★ ()
Ответ на: комментарий от hobbit

требуется знание нормального языка

меня тоже забайтили навести на ссылку

ято думал уже «нормальный язык программирования» изобрели, вотжеш

anonymous ()
Ответ на: комментарий от log4tmp

«Изучаем Java за 1 час»

Из серии «Изучаем С++ за 22 дня»

никакой пользы не принесло, конечно основы синтаксиса я понял и даже в ООП немног вкурил, но осмысленного ПО написать не смогу,

Современное ПО одиночками не пишется, а хэллоу ворлды в одиночку и я могу наклепать.

RedEyedMan4 ★★★★★ ()
Ответ на: комментарий от utf8nowhere

Я думал ты напишешь про умные указатели, RAII и т.д.

В ответе о преверке кодов возврата? RAII - это очевидно.

можно вернуть sum type.

std::optional?

std::variant (или самодельный аналог)

Его тоже надо проверять.

Конечно. Но его проверку гораздо труднее пропустить.

tailgunner ★★★★★ ()