home.social

#go_assembler — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #go_assembler, aggregated by home.social.

fetched live
  1. Деконструкция Go: Runtime или программа, которая запускает вашу программу. Часть 3.1

    В предыдущих частях мы разобрались с тем, во что превращается Go-код, как процессор работает с памятью и каким образом реализуются примитивные атомарные операции. Но всё это порождает закономерный вопрос. Если CPU умеет выполнять только машинные инструкции, а операционная система знает лишь о процессах и системных потоках, то кто вообще знает о существовании горутин? Кто увеличивает их стеки? Кто решает, какую из них сейчас выполнять? Кто собирает мусор? Ответ на всё это один - Go runtime. Но runtime - это не какая-то магическая программа, которая находится между нашим приложением и операционной системой. Это часть самого приложения. Давайте разбираться!

    habr.com/ru/articles/1063194/

    #go #assembler #runtime #язык_программирования #go_runtime #go_assembler

  2. Деконструкция GO: Низкоуровневые концепции. Atomics. Часть 2.1

    Я самую малость обленился и как-то давно не делал новых разборов, поэтому следующим нашим этапом деконструкции будут низкоуровневые операции . Иногда здесь будет в отрыве от аллокаторов/планировщиков и прочего, но опять же, статьи для тех, кто знает и хочет разобраться поглубже, как тут всё устроено. Поэтому, в этой части начнем с самого простого – пакета atomic. Концепции вокруг атомарных операций на уровне CPU я рассматривал здесь , поэтому советую почитать. Там мы даже пишем свой атомарный AND. !Важно! Мы будем разбирать на примере src/internal/runtime/atomics , то есть внутреннего пакета, а не того, который представлен нам как пользователям(потому что в исходниках я не нашел реализации). Но по большей части операции одни и те же.

    habr.com/ru/articles/1033780/

    #go #atomic #go_assembler #assembler #lowlevel #internals