Тёмный

Malloc | C | live 

Winderton
Подписаться 302 тыс.
Просмотров 65 тыс.
50% 1

Видео на тему написание аллокатора памяти.
Мое вдохновение - понимание как работают и устроены другие вещи. Malloc(или алокатор памяти) - это один из самых фундаментальных проектов, который я разбирал в свое время, и решил показать вам как примерно можно его написать.
В видео не используется реальный heap, и соответствующие системные вызовы для его контроля. Мы сделаем эмуляцию памяти, чтобы основное время потратить на разбор принципа работы самого популярного аллокатора памяти.
src - github.com/Win...
Менторинг - / winderton
___________________
Оборудование:
Камера - Sony a7ii
Объектив - SIgma F1.4 DG
Микрофон - AudioTechnica at2035
Звуковая карта - Scarlett Solo
Петличка - Rode smartlav+
Клавиатура - HyperX Alloy
Вторая клавиатура - apple magic keyboard(black edition)
Монитор DELL 25'
Монитор Asus mg248q
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Социальные сети:
Telega и чатик - t.me/wndtn
boosty(менторинг) - boosty.to/wndtn
instagram - / winderton
github проекта(код с канала) - github.com/win...
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Музыка:
₪ jetson - catch me outsideㅤㅤ
a-l-e-x-i-love-you
alicks-my-favorite-songs-amv
aufl-cresce-this-that-prod-by-cresce-cknd
bearfoot-broken
bzkt-i-just-wanna-die
C Y G N - Color Shade
cresce-whats-the-point
eevee - lost found [2QQ3] Rare
eugene-cam-freeze
hanz-breathe
hanz-conflicted
Karma Rhythm - sea shells (with goosetaf)
kloudbug - MMs FOR BREAKFAST w Inteus
nujabes-aruarian-dance-swadmix
PUAR - In The Rough [ phonk vaportrap ]
SOUDIERE - NUMB
bvllvh_fool_around
late_june_in_places
yaeji_passionfruit_zodivk_flip
zodivk_crew_
Bitwise - / pervognsen
Oberon - www.projectober...

Опубликовано:

 

29 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 277   
@ПавелМорозов-п1и
@ПавелМорозов-п1и 4 года назад
А что на счет написания компилятора ?)
@МаксГончарук-г6м
@МаксГончарук-г6м 4 года назад
давайте в тоП!
@lightlessq
@lightlessq 4 года назад
не все поймут
@sampletext8799
@sampletext8799 4 года назад
Мне кажется, глупая затея, получится серия тяжелых для восприятия видеоуроков, (вероятно, что на малоизвестном среди начинающих языке), которые никто не будет смотреть На лайв лучше подойдет простенький интерпретатор или ассемблер для примитивной виртуальной машины, но это тоже вряд ли уместится в такой формат
@annamartin6653
@annamartin6653 4 года назад
только на Си плииз
@d1merz
@d1merz 4 года назад
Сначала сериализацию лучше
@НикитаЗападнов
@НикитаЗападнов 4 года назад
Полностью согласен с мыслью, что чтобы понять, как что-то работает, имеет смысл реализовать это по-своему. Программный USART, SPI, I2C на микроконтроллере. Упоролся до разработки собственной файловой системы в образе 32 КБайт по мотивам FAT. Теперь претендую на сверхразум, пойду лайкать другие комменты
@gorgeousfunt
@gorgeousfunt 4 года назад
О круто лаба с первого курса любого вт факультета
@girsystay115
@girsystay115 4 года назад
Я человек простой сначала лайк, а потому смотрю видос, жаль Роман их так редко выпускает
@SuperGoyda
@SuperGoyda 8 месяцев назад
Чел, ты - крут!
@kingtime9728
@kingtime9728 4 года назад
Спасибо. Очень интересно. Продолжай
@n0madin
@n0madin 4 года назад
Ждём-с, спасибо за контент, ты лучший
@Вячеслав-ф2ю6и
@Вячеслав-ф2ю6и 4 года назад
Я тут на днях сделал свой первый стрим и решил его не выкладывать, потому что много запинался при написании кода, но тут посмотрел на виндертона и решил, что все ок!
@darkmatter9520
@darkmatter9520 4 года назад
Стоит ли использовать linux для прогинга на C/C++?
@archie400
@archie400 4 года назад
Почему бы и нет
@horror_pixel_projekt557
@horror_pixel_projekt557 4 года назад
Ядро линукс на си написано... Насколько я знаю... Определнно можно попробовать (сам не делал). Win чё то говорил на стримах про его системные вызовы...
@diasakishev8897
@diasakishev8897 4 года назад
Это экспириенс. Но не думаю что на начальном уровне ты вообщн прочухаешь разницу. Взаимодействие с операционской это знать... На твое усмотрение.
@peacefulquasar
@peacefulquasar 4 года назад
Как тебе удобно
@kep261
@kep261 4 года назад
Без разницы. Clion и gcc скачал и кайфуешь
@okayamall
@okayamall 4 года назад
Я надеюсь я не один который не понимает что он говорит но все равно смотрит его
@molocow
@molocow 4 года назад
Спасибо за видео!
@ЕгорДуняшин
@ЕгорДуняшин 4 года назад
коммент, чтобы видео пошло дальше и вышло видео про серриализацию
@КарлОтто
@КарлОтто 4 года назад
Заебись
@aleksandrsadchikov3704
@aleksandrsadchikov3704 4 года назад
ох побольше бы таких видосов
@romanvoyt
@romanvoyt 4 года назад
like
@АлександрМакедонский-щ2э
Как сделать такие же цвета…
@rukagamius
@rukagamius 4 года назад
расскажи как ты хранишь пароли. Меня недавно взломали и украли пароли из браузера. Подскажи что делать или как хранить пароли каким програмам можно доверять. Заранее спасибо.
@danilabdullin6693
@danilabdullin6693 4 года назад
ты можешь записывать их в блокнот
@saladinurtaev2284
@saladinurtaev2284 4 года назад
давай ещё что нибудь для новичков, пожалуйста.
@timureshmetov1241
@timureshmetov1241 4 года назад
Туц
@antonrogachevskyi4870
@antonrogachevskyi4870 Год назад
3 года прошло, уже поздно для комментов, наверное. Но лови
@poisoncandy
@poisoncandy Год назад
Кто-нибудь знает как называется его тема в вскоде?
@rss7755
@rss7755 3 года назад
комент
@ИльяСуслов-к3л
@ИльяСуслов-к3л 4 года назад
Надеюсь ты не удалишь (нет времени пока посмотреть).
@Vlad-ib6iv
@Vlad-ib6iv 4 года назад
Winderton, а где ссылки на тех замечательных людей, о которых ты упоминал в начале?
@ЕвгенийВасильев-щ7в
В самом низу описания к видео
@Liferenko
@Liferenko 4 года назад
15:06 - пояснение поинтеров (указателей) 18:03 - разметка своей памяти 28:23 - важное уточнение для тех, кто дожил до 28 минут, но ему кажется что он единственный здесь, кто ни черта не понимает (спойлер: всё ок, keep going) 40:41 - как обновляется инфа о состоянии памяти после того, как мы внесли данные 45:45 - освобождение памяти 49:06 - как выглядит обращение к тому, что находится в самом первом байте (ЖЕСТЬ МЯСО, уберите детей от экранов, 18+) 51:00 - логирование всего того, что происходит 57:43 - первый запуск (заглохли) 59:22 - успешный запуск
@mantus3427
@mantus3427 4 года назад
Вот за это респект !
@asterokl
@asterokl 4 года назад
Спасибо
@PashokRibakov
@PashokRibakov 4 года назад
Дай бог здоровья!
@eqweqrsfyt3w47yr8
@eqweqrsfyt3w47yr8 4 года назад
00:00 - 10:00 - не закрывает ебало L:D
@vladotlogov9603
@vladotlogov9603 4 года назад
"Это последний ролик когда вы меня смотрите, смотреть больше не надо. Вот смотрите" ору
@koma_3077
@koma_3077 4 года назад
Win: понятно? Я: нет. Win: Ok. Cool.
@olehmelnik3969
@olehmelnik3969 4 года назад
Хороший формат. Пропаганда осознанного подхода и написания велосипедов в учебных целях, это хорошо и полезно.
@reypack7145
@reypack7145 4 года назад
Пожалуйста не удаляй потом это видео, будем його ющать в учебних целях
@bloodredtape
@bloodredtape 4 года назад
13:08 неточность: после перемещения массива бар в функцию он больше не лежит в сегменте data, теперь он будет лежать на стеке и создаватся только при вызове функции
@МаксимНиколаев-ж1ь
Пожалуйста по больше таких стримов или побольше computer science
@vadymdmitrievich843
@vadymdmitrievich843 4 года назад
Где ссылки на парней, о которых ты говорил вначале?
@MultiAlwx
@MultiAlwx 4 года назад
Привет, почему всё ещё не в США?
@hurricane183
@hurricane183 4 года назад
Вообще не программирую на С, но это чертовски интересно
@aset4576
@aset4576 4 года назад
Них*я не понял, но очень интересно. Спасибо за видос!!
@МаксКурский-р2в
@МаксКурский-р2в 4 года назад
А можно когда нибудь видос по созданию сервера на с++ чтоб там были учтены тонкие моменты в стиле Winderton'а
@StahLHerZRocK
@StahLHerZRocK 2 года назад
free - удаление памяти? удаление поинтера?! WTF? Тут можно увольнять?) А дальше еще интереснее :) Аллокатор, который создает "фрагментацию" после одного запроса и освобождения - это конечно сильно, т.е. это нужно специально сделать) Фрагментация в хипе это совсем другое и реализовать дефрагментацию на си ох как не просто.
@FloundKeeper
@FloundKeeper 4 года назад
Каеф
@macewite
@macewite 4 года назад
в первом ассерте ошибка забыл учесть HEADER
@markbraun3181
@markbraun3181 4 года назад
Ну как обычно... Четко, нужно больше такого контента!
@dgimbialo
@dgimbialo 4 года назад
30:10 - статик переменная По сути, глобальная статическая переменная и локальная статическая переменная является одкаковимы. Они находятся в одной и той же области памяти и даже размещены в памяти одна за другой относительно порядка инициализации. Глобальная статическая переменная создается и инициализируется перед вызовом "main()", а локальная статическая переменная при первом обращении к ней. Локальная статическая переменная имеет свою область видимости (действия), которая определяется фигурными скобками "{}". Если создать указатель на локальную статическую переменную, то к ней можно обращаться как к обычной глобальной статической переменной в пределах файла.
@dgimbialo
@dgimbialo 4 года назад
static int global_var = 222; int* ptr_local_var = nullptr; void test() { static int local_var = 111; ptr_local_var = &local_var; } int main() { test(); std::cout
@dgimbialo
@dgimbialo 4 года назад
--global-- address: 0138C034 value : 222 --local -- address : 0138C038 value : 111 --global-- address : 0138C034 value : 222 --local -- address : 0138C038 value : 999
@michaelskorokhodov7877
@michaelskorokhodov7877 4 года назад
1) Не "глобальная статическая переменная", а статическая переменная с внешним связыванием; 2) Не "локальная статическая переменная", а статическая переменная без связывания.
@krutetskiy
@krutetskiy 4 года назад
Ты просил лайк в инсте. Держи
@VideoZ9000
@VideoZ9000 4 года назад
Виндэртон красавчик! Продолжай! по домашнему)
@entertainment9841
@entertainment9841 4 года назад
Поставлю лайк, но чтобы годные вмдосы выходили, иначе уберу!
@safocl9768
@safocl9768 4 года назад
на счет молока -- очень сильно утягчает речевую способность -- "связывает" голосовые связки... не рекомендую при долгих напряжениях голосового аппарата
@fallenangel1395
@fallenangel1395 4 года назад
Как это, бл*ть, может быть, если ничего при глотании не попадает на связки?!
@БогданМайстер-ж5у
@БогданМайстер-ж5у 4 года назад
Отличные видео, ты, кстати меня смотивировал оторваться от компьютерных игр и углубиться в изучение программирования. С нетерпением жду видео о сериализации с нуля
@sampletext8799
@sampletext8799 4 года назад
A почему тут w_malloc не выделяет память в размере 40 байт, если есть сущность размером 64 байта? pastebin.com/dmpWhVyc upd: Если первая сущность в LIST обладает самым маленьким размером, то последующие не проходят по условию LIST[i].size < best->size Нужно сменить условие на: if (LIST[i].size >= size && (LIST[i].size < best->size || best->size < size))
@vladosed
@vladosed 4 года назад
Просил лайк и в инсте, и тут, вот, тебе лайк и коммент:)
@БулатСадыков-д3ь
@БулатСадыков-д3ь 4 года назад
1:03:10 "тут должно быть блять...тут память должна быть" XD
@tony-pivony
@tony-pivony 4 года назад
окей? кул
@quenbyako
@quenbyako 4 года назад
ну надо посавить лайк раз чел просит, лол чувак, клево объясняешь, но быстрей чем на 0.75х скорости смотреть просто невозможно. и это при том, что мне видео на 1.25х скорости медленные. помедленней ей богу
@ev1lc697
@ev1lc697 4 года назад
Вы рофлите чи шо? Видео и так час идёт. Один из немногих ютуберов, которого не нужно на 1.25 ставить.
@seregka4ex
@seregka4ex 4 года назад
так долго ждать твои потуги бро)))интересно как ты жуеш материал но кажется ты наоборот усложнил!1
@dimasius
@dimasius 4 года назад
Ребята, да как же быть с этой фигурной скобкой в методе? Почему некоторые оставляют ее в конце метода, а кто-то оставляет на новой строке, я не понимаю зачем нужна доп строчка для такой рутины ааааа
@grazz_er
@grazz_er 4 года назад
Есть разные стили кода (зависит от языка, фреймворка и др.). Чаще используют перенос строки. Это улучшает читабельность. Новая строчка, не новая строчка, не имеет значения, все равно компилятор преобразует всё в одну строчку.
@ИльяТретьяков-б1т
@ИльяТретьяков-б1т 4 года назад
Спасибо, что наталкиваешь задаваться вопросами по типу "как устроено?", "как оно работает?".
@egorignatov8734
@egorignatov8734 4 года назад
@windnrton 13:00 Насколько я понимаю в файле программы на диске строка храниться в read-only сегменте, но процесс в оперативке хранит bar на стеке.
@ЕгорЧепрасов-н2ц
@ЕгорЧепрасов-н2ц 4 года назад
Нормально я так перед сном зашел посмотреть
@Даня-р3п2б
@Даня-р3п2б 4 года назад
Где математика?!)
@mouse8764
@mouse8764 4 года назад
где трансляции с америки в сентябре)
@goodman1043
@goodman1043 4 года назад
А про компилятор можешь так же рассказать ?:) Спс за алокаторы)
@ramzes9686
@ramzes9686 4 года назад
Сейчас решаю задачу, нахождения палиндрома для каждых систем исчесления. Знает кто-то быстрый алгоритм. Ибо обработка числа long long int у меня должна проходить меньше чем за 1 секунду. Заранее спасибо:)
@diasakishev8897
@diasakishev8897 4 года назад
Купи проц побыстрее.
@p4m3remostone71
@p4m3remostone71 4 года назад
@@diasakishev8897 крутой совет, сразу видно не программист
@РайанКупер-э4о
@РайанКупер-э4о 4 года назад
@@diasakishev8897, это олимпиадная задачка, тут нужно минимизировать количество операций, чтобы на проверяющем серваке она зашла за секунду.
@prana6854
@prana6854 4 года назад
Ну что решил?)
@leogscdlr2894
@leogscdlr2894 2 года назад
Побитовое сравнение. Должно быть самое быстрое.
@malinrout
@malinrout 4 года назад
норм. еще давай ))))
@54546546ish
@54546546ish 4 года назад
Зарядка для мозга подъехала)
@GAVVVR
@GAVVVR 4 года назад
Ура, контента на целый час! Спасибо
@nimikh2
@nimikh2 4 года назад
А разве ты не фрагментируешь еще сильнее память таким алгоритмом? Шо делать с кусками памяти где остался один байт?
@diasakishev8897
@diasakishev8897 4 года назад
Это домашка. Coalising то что он в конце говорил.
@diasakishev8897
@diasakishev8897 4 года назад
Coalescing
@sampletext8799
@sampletext8799 4 года назад
@@diasakishev8897 Надо же просто ссылку на pastebin кинуть? Просто вроде как ютуб не пропускает ссылки, я хз
@sampletext8799
@sampletext8799 4 года назад
Не могу просто найти место где он это говорил
@666kurtt
@666kurtt 4 года назад
Сегодня я не пошёл на пару. Сегодня я смотрел твой видосик
@maxon17
@maxon17 4 года назад
Время проведено с пользой, это намного лучше бессмысленных лекций.
@ДаниилЖигульский-х9й
Годный видос , не мог всё оторваться , много полезной инфы
@adasdadsadas604
@adasdadsadas604 4 года назад
Пишу так как просит
@nastyaranejeb8932
@nastyaranejeb8932 4 года назад
Finally!
@strawberrymiles
@strawberrymiles 4 года назад
о еп, залетел красиво
@АртёмТанчев
@АртёмТанчев 4 года назад
+контент = +коммент
@КамильАйдашев-в4с
@КамильАйдашев-в4с 4 года назад
Такое чувство как будто он торопится,а не он и в правду торопиться
@fnShun
@fnShun 4 года назад
Ах жульё, завтра же обещал))
@СемёнУсачёв-л3е
@СемёнУсачёв-л3е 4 года назад
👍
@mishalavrov5377
@mishalavrov5377 4 года назад
лайк и коммент не глядя!
@Liferenko
@Liferenko 4 года назад
Ромарио жииив! Фух :) Мы тебя потеряли, duuude
@fazamaza801
@fazamaza801 4 года назад
Ставь лайк, если сверхразум и пролайкал чужие комменты.
@igorseledtsov7345
@igorseledtsov7345 10 месяцев назад
сколько ошибок... 1 не обязательно в heap 2 аллоцируется не память а адресное пространство.. итд итп
@VitalikAwesome
@VitalikAwesome 4 года назад
Мне 17
@ThePirateHistory
@ThePirateHistory 4 года назад
16:26 , не понял, то есть чтобы создать переменую с одним символом это будет char a, а если больше то уже болльше ***, либо это просто показывает где находится этот символ, то есть я ваще дурак.
@aqacore
@aqacore 4 года назад
Yo, старина, ставлю палец вверх как ты хотел
@NameLess-h2s
@NameLess-h2s 4 года назад
Компилятор вроде как автоматически делает [] в *, разве нет?
@excore1322
@excore1322 4 года назад
м, ну скомпиль тогда вот это: int a = 5; int b = [](&a);
@MsKarlason
@MsKarlason 4 года назад
@@excore1322 b = (&a)[0]
@vadimdamour7704
@vadimdamour7704 4 года назад
народ кто нибудь работал с VirtualStringTree в с++ ? разработчики ищут мастеров волонтеров которые смогут решить много багов в компоненте
@ЕвгенийКоролев-ь6о
Я пока хз, что это, но я обязательно посмотрю!
@ramzes9686
@ramzes9686 4 года назад
Такой вопрос, насколько далеко может зайти абстракция? В плане языков. Просто с каждым новым языком мы отдаляемся от железа. А нужно ли это все?
@dmitriy_pavlovskiy
@dmitriy_pavlovskiy 4 года назад
По факту в этом и суть. Больше возможностей на уровнях выше , чем 0й(Цифровой логический уровень). в помощь. Достаточно введения, там хоть и жесткая подача, страниц на 70т, но эффективно написано всё в крадце(исторические моменты и суть вообще прокачки в сфере кода и кодинга).
@bestmusic9854
@bestmusic9854 Год назад
Можно больше проектов на С++, а именно хотелось бы видеть как ты пишешь свою ОС
@НиколайРештак
@НиколайРештак 4 года назад
Good ;-)
@dix_flatline
@dix_flatline 4 года назад
Йоу, рома жив а значит и с ним качественный контент самое время учиться
@kodzimk
@kodzimk 2 месяца назад
брат есть гайд по написание кастомных языков?
@vlad.minkov
@vlad.minkov 4 года назад
Я снова дышу!
@fiffy3869
@fiffy3869 4 года назад
Госпаде, win < 3
@vladotlogov9603
@vladotlogov9603 4 года назад
У тебя ща нет молока, зато есть malloc
@whoami1014
@whoami1014 4 года назад
Когда вроде все понял но реализовать не можешь(((
@Alex-he2gn
@Alex-he2gn 4 года назад
скиньгытхаб
@АлександрС-щ1ю
@АлександрС-щ1ю 4 года назад
Много воды и глупых ошибок. Лайк поставил, жду сериализации
@erik_james
@erik_james 2 года назад
Превьюха в миниатюре похоже на то, будто какая-то девушка без нижнего белья и в черной майке стоит наклонившись боком к камере, и смотрит в нее...................
@wndtn
@wndtn 2 года назад
Хахаха
@Noxiver
@Noxiver 4 года назад
Не понял момент про ссылки и указатели (
@tozik8124
@tozik8124 4 года назад
Собирался перед сном посмотреть видос минут на 15....
@TheOSnv
@TheOSnv 4 года назад
spasibo, Roma
@sysInt64
@sysInt64 4 года назад
Вообще очень годно, люблю стримы Кейси, но у него полезную информацию приходится очень долго выискивать, потому-что она очень сильно размазана, про то же управление памяти. Прикольно было бы увидеть похожий формат, но под конкретные темы, к примеру как раз те же кастомные аллокаторы памяти и как на практике можно было бы ими пользоваться. Кстати, купил бы себе графический планшет (если еще нету) и также как Кейси иногда бы рассказывал на схемах рисуюя их в какомнить пейнте или еще где.
@artbeam1
@artbeam1 4 года назад
+++++!
Далее
We finally APPROVED @ZachChoi
00:31
Просмотров 9 млн
Being Competent With Coding Is More Fun
11:13
Просмотров 82 тыс.