Size: a a a

pro.osdev - os development

2021 August 04

BD

Berkus Decker in pro.osdev - os development
+- это inb  0x42,al?
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Советую начать без страниц, осдева и вот этого всего, а с написания своего примитивного маллока на базе связного списка блоков. Предусмотреть освобождение, нарезку блоков и адекватный формат заголовка придумать. Память можно выделить в статическом массиве.

Затем можно вместо тупого выделения памяти завести несколько наборов блоков. Посмотрите вот тут как раньше был реализован маллок, там и описание есть.

Затем можно (считайте, мы под *nix сидим) перейти от большого статического массива байтов к страницам и выделять куски памяти с помощью mmap. Так поймёте, в чем разница между страницами и блоками, получаемыми от malloc.

Чтобы протестировать свой аллокатор как следует, научитесь пользоваться дингамическими библиотеками. Подсуньте свою библиотеку с переопределённым сишным malloc/calloc/realloc/free  каким-нибудь приложениям, да хоть тому же башу, и попробуйте ими попользоваться. Заодно и про загрузку файлов многое узнаете интересное.
источник

BD

Berkus Decker in pro.osdev - os development
вместо mmap можно реализовать свой, который просто добавляет еще массивов с заданным размером страницы  )
источник

BD

Berkus Decker in pro.osdev - os development
да и Page directory можно самому реализовать
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Я на своём курсе примерно этим путём гоняю нормальных студентов. Далее уже можно в осдев.
источник

BD

Berkus Decker in pro.osdev - os development
и всё в юзерспейсе, с  дебагером и ништяками
источник

0

0Nera in pro.osdev - os development
Хорошо
источник

IJ

Igor 🐱 Jirkov in pro.osdev - os development
Думаю, можно добавить как промежуточный шаг. Но mmap для этой задачи просто полезно потыкать. Плюс коллеге нужно больше опыта изучения ОС даже как чёрного ящика, мне кажется.
источник

BD

Berkus Decker in pro.osdev - os development
я не спорю, я просто говорю что тут еще бесконечное количество возможностей
источник

BV

Boris Vinogradov in pro.osdev - os development
да, не нужно сразу брать и делать всё подряд, лучше наметить себе план
источник

BV

Boris Vinogradov in pro.osdev - os development
и разобраться в том что сделали другие до этого
источник

BD

Berkus Decker in pro.osdev - os development
вообще сделать полную ось которая запускается как приложение в другой оси это забавное развлечение и полезное
источник

BV

Boris Vinogradov in pro.osdev - os development
а главное практически полезное
источник

BV

Boris Vinogradov in pro.osdev - os development
оно очень котируется у работодателей
источник

BD

Berkus Decker in pro.osdev - os development
можно в амазон сразу загреметь д
источник

0

0Nera in pro.osdev - os development
Мне до этого далеко)
источник

BV

Boris Vinogradov in pro.osdev - os development
если никуда не идти то никуда и не придти)
источник

0

0Nera in pro.osdev - os development
Тише едешь, дальше будешь)
источник

BV

Boris Vinogradov in pro.osdev - os development
если успеешь дойти
источник

BV

Boris Vinogradov in pro.osdev - os development
поэтому важно ставить перед собой задачи как краткие так и долгие, причём реальные
источник