#os development
Explore tagged Tumblr posts
techav · 28 days ago
Text
On Celebrating Errors
Tumblr media
Isn't it beautiful? The lovely formatted tables of register and stack contents, the trace of function addresses and parameters, the error message ... it's the most beautiful kernel panic I have ever seen.
Why on earth would I be so excited to see a computer crash? What could possibly be beautiful about a kernel panic?
This kernel panic is well-earned. I fought hard to get it.
This kernel panic came from a current NetBSD kernel, freshly compiled and running on Wrap030, my 68030 homebrew computer. It is the result of hours upon hours of work reading through existing code, scattered documentation and notes, writing and rewriting, and endless compiling.
And it's just the start.
As I've said before, a goal of this project has always been to build something capable of running some kind of Unix-like operating system. Now that I finally have all the necessary pieces of hardware, plus a good bootloader in ROM, it's time to give it a shot. I'm not that great with this type of programming, but I have been getting better. I might just be able to brute force my way through hacking together something functional.
It is hard.
There is some documentation available. The man(9) pages are useful, and NetBSD has a great guide to setting up the build environment for cross-compiling the kernel. There are some published papers on what some people went through to port NetBSD to this system or that. But there's nothing that really explains what all these source code files are, and which parts really need to be modified to run on a different system.
I had a few false starts, but ultimately found an existing 68k architecture, cesfic, which was a bare minimum configuration that could serve well as a foundation for my purposes. I copied the cesfic source directory, changed all instances of the name to wrap030, made sure it still compiled, then set about removing everything that I didn't need. It still compiled, so now it's was time to add in what I did need.
... how ... do I ... ?
This is where things get overwhelming very quickly. There is documentation on the core functions required for a new driver, there's documentation on the autoconf system that attaches drivers to devices in the tree, and there's plenty of drivers already to reference. But where to start?
I started by trying to add the com driver for the 16550 UARTs I'm using. It doesn't compile because I'm missing dependencies. The missing functions are missing because of a breaking change to bus.h at some point; the com driver expects the new format but the cesfic port still uses the old. So I needed to pull in the missing functions from another m68k arch. Which then required more missing functions and headers to be pulled in. Eventually it compiled without error again, but that doesn't mean it will actually run. I still needed to add support for my new programmable timer, customize the startup process, update hardware addresses, make sure it was targeting 68030 instead of 68040 ...
So many parts and pieces that need to be updated. Each one requiring searching for the original function or variable declaration to confirm expected types or implementation, then searching for existing usages to figure out what it needs ... which then requires searching for more functions and variable types.
But I got something that at least appeared to have all the right parts and compiled without error. It was time to throw it on a disk, load it up, and see what happened.
Nothing happened, of course. It crashed immediately.
I have no debugging workflow I can rely on here, and at this stage there isn't even a kernel console yet. All I could do was add little print macros to the locore startup code and see where it failed. Guess, test, and revise.
I spent a week debugging the MMU initialization. If the MMU isn't properly configured, everything comes to an abrupt halt. Ultimately, I replaced the cesfic machine-specific initialization code and pmap bootstrapping code with functions from yet another m68k arch. And spent another day debugging before realizing I had missed a section that had comments suggesting it wasn't for the 68030 CPU, but turned out to be critical for operation of kernel memory allocation.
Until this point, I was able to rely on the low-level exception handling built into my bootloader if my code caused a CPU exception. But with the MMU working, that code was no longer mapped.
So then came another few hours learning how to create a minimal early console driver. An early console is used by the kernel prior to the real console getting initialized. In this case, I'm using the MC6850 on my mainboard for the early console, since that's what my bootloader uses. And finally the kernel was able to speak for itself.
It printed its own panic.
The first thing the kernel does is initialize the console. Which requires that com driver and all the machine-specific code I had to write. The kernel is failing at its step #1.
But at least it can tell me that now. And given all the work necessary to get to this point, that kernel panic data printing to the terminal is absolutely beautiful.
68 notes · View notes
shadowblade8192 · 6 months ago
Text
Tumblr media
likes charge reblogs cast
1K notes · View notes
numbpilled-themes · 3 months ago
Text
Tumblr media Tumblr media
Old Web/Windown 98 Style HIGHLY CUSTOMIZABLE Neocities/Nekoweb Template
Tumblr media
LIVE PREVIEW DOWNLOAD FOR FREE
Tumblr media
FOLLOW ME ON KO-FI!
477 notes · View notes
computer-nerd-girl · 11 months ago
Text
Tumblr media
471 notes · View notes
vitalitypopkat · 3 months ago
Text
Tumblr media
Sonic wants Shadow to show of his ✨ award winning smile✨
Live studio reaction
Tumblr media
93 notes · View notes
initialsaint · 3 months ago
Text
I'm nearly done reading Onyx Storm and am I literally the only person who likes Dain and Violet together.
I read FW, and thought it was great to see a female MC not get shoved into a love "triangle" (corner), and ended up really liking her chemistry with Xaden. I was also mad as hell at Dain and loved that Violet rightfully stood up to him. Then I read IF and had to force myself to finish it because the first half dragged so much and the romantic side of things was genuinely painful to read, and not in the high-stakes tension way, in the this is just unenjoyable way. And I found myself more interested in Dain's development- because he arguably had more than Violet's actual love interest.
I know Xaden has had progress, but watching Dain go from Violet's childhood friend who seemed like he was always going to be on the wrong side of history, who wouldn't break a rule even it got Violet killed, to the wingleader who killed for her the moment he saw things for what they truly were, who had to grapple with knowing his own father was complicit in leaving people dying on Navarre's doorstep, who has spent the rest of the series helping Violet- and Xaden- and trying to be worthy of her trust and friendship again-
is infinitely more interesting than seeing Xaden go from secretive, to slightly less secretive.
150 pages away from the end of OS, I almost wish the love triangle had happened.
25 notes · View notes
stromuprisahat · 11 months ago
Text
Tumblr media
Siege and Storm- Chapter 22 (Leigh Bardugo)
Alina, the only person capable of destroying nichevo'ya without tools:
"So, I used the Cut, then another. And another and another. I've also Cut them. I've used all the strength I gathered to Cut the nichevo'ya. Another trick of mine is called... the Cut! But some people* call it Searing Arcs or Scythes..."
*Let's be honest, that would be only Alina.
Tumblr media
... but then again, at least the results correspond with the quality of her education. Not even the Cut's that old hag's doing.
Even Bella Swan was able to make a protective dome...
32 notes · View notes
pafurijaz · 9 months ago
Text
Tumblr media
Father of modern computing. Dennis Ritchie was born Today in the 1941 was father of C and Co-Developer of Unix.
26 notes · View notes
mishtiikrishna · 7 days ago
Text
let's fucking go-
Tumblr media
7 notes · View notes
flowering-darkness · 1 month ago
Text
"haha I'll make my other FFXIV self-insert linked to the dragons just so that I can make the whole thing a bit DQIX reference", I said playfully
A slow-but-sudden rising of familial feelings now that I've, on a somewhat level, begun to associate myself (through said self-insert) with the dragons and know of characters connected to them in canon:
7 notes · View notes
techav · 14 days ago
Text
On Major Milestones
I left off previously with init immediately crashing when trying to run NetBSD on Wrap030, my 68030 homebrew computer. I was completely lost and didn't know where to start looking. The error code it gave, 11, didn't tell me much.
Until now, most error codes I've gotten have been defined in kernel errno.h, which has 11 defined as:
EDEADLK 11 /* Resource deadlock avoided */
That … also isn't helpful. I'm still not entirely sure what that means, but since this is process 1 we're dealing with, I didn't think it was relevant.
Finally, I was able to find someone who had encountered the same error six years ago. Helpful soul [Martin] explained the exact cause of the error, how to fix it, and why the kernel errno didn't line up:
Tumblr media
I'm running a NetBSD live disk on a laptop as a test host, so I mounted my disk on it and spent some time with mknod adding the essential device nodes, referencing the "majors" file for my arch. Sure enough, on next boot it skipped right past the point it had been panicking. It worked for a bit then finally printed on the console:
Enter pathname o
Enter pathname of what? The machine appeared frozen. Nothing further printed, and it responded to no input.
I was afraid this would happen. That string is 16 characters. The 16C55x UART chips I'm using have a 16-byte buffer. The system is hung up waiting for the UART to interrupt to indicate it has finished transmitting everything in its buffer.
There's just one problem — I don't have any serial interrupts wired.
I have a confession to make. Until a few weeks ago when I got my timer working, I hadn't really worked with hardware interrupts before. So between a limited understanding of how to use them effectively and limited board space, I had omitted the interrupt signals from my 8-port serial card. This was now a Problem, and I was going to have to find a solution.
I had a few options:
Force the com driver to 8250 mode so it doesn't try to use the buffers
Use my timer interrupt to check status bits on the UARTs and fake the interrupts
Deadbug an interrupt handler onto my serial card
Respin the serial card
Option 4 would've been expensive and risked passing my deadline. I wasn't sure option 1 would even help. And option 3 would have been difficult and error-prone. I decided option 2 would be the way to go so I set about researching how to accomplish it
I spent a few hours digging through the com driver. In the process I found softintr(9), a native NetBSD software interrupt process that looked like just the thing I needed. Digging in a little deeper, I realized that the com driver was already using softintr. And then I realized all it needed to do polled mode serial ports instead of interrupt-driven was to set a single variable, sc_poll_ticks, before initializing the driver. It's such a simple thing, but it's not really documented anywhere I could find, so the only way to know it was even an option was to spend hours studying the code.
With that in place, I recompiled my kernel and tried again.
Tumblr media
It was asking for a shell. This is promising. I accepted the default shell, /bin/sh, and waited a moment. It printed a single #.
I had a shell prompt.
Tumblr media
I typed in the first thing that came to mind, echo "hellorld" (thanks, [Usagi]). It responded:
hellorld
and printed another # prompt.
I had a working shell.
Tumblr media
This is a major milestone. I have a modern operating system kernel loaded and running on my homebrew computer, and I have a functional root shell. I can navigate disk directories and run commands and programs.
But only as root, and only on this one console. I have seven other serial ports I want terminals on, and I certainly don't want them all running as root.
What it's running here is single-user mode. It is just the kernel and a few core services, somewhat analogous to Safe Mode in Windows. It's a fall-back for setting up or repairing a system. It's not quite the full operating system just yet.
Getting the rest of the operating system up and running is going to be a significant task, on par with getting just the kernel running. Setting up a working Unix system from scratch is not easy. It requires a lot of detailed knowledge of the various programs and libraries and config files scattered across the disk. For a sense of scale, the AT&T Unix System V manual was over 1100 pages, plus an 800 page programmer's guide and a handful of other manuals … and that was 40 years ago. That's a lot of specialized knowledge that I don't really have.
But still, this is something I've wanted to do for years and after countless hours of work, I finally have a glimpse of what it can look like. I have a lot to learn and a lot of work to do yet, but I'm certain I can figure it out.
I'm still hoping I can get this running multi-user on all those terminals in time for VCF Southwest in June. The show is just a few weeks away and I have a lot of work to do.
19 notes · View notes
numbpilled-themes · 6 months ago
Text
Tumblr media Tumblr media
- = DEITY.SYS = -
A VERY SPECIAL TERMINAL-BASED HTML NEOCITIES THEME, BROUGHT TO YOU BY NUMBPILLED ON KO-FI
FEATURES:
TERMINAL-BASED NAVIGATON, ENTER COMMANDS (ABOUT, LINKS, ART, ETC) TO BRING UP THE DIFFERENT PAGES/WINDOWS
BAD ASS LOADING SCREEN
IMBUED WITH HOLY RADIANCE
AURA OF 1000 ANGELS
LIVE PREVIEW HERE
DOWNLOAD HERE
52 notes · View notes
arktoib · 11 months ago
Text
Tumblr media Tumblr media Tumblr media Tumblr media Tumblr media
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀close  your  eyes,  have  no  fear
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀the  monster's  gone,  he's  on  the  run
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀and  your  daddy's  here
Tumblr media
♡⠀⠀⠀penélope cruz as athena, imortal, biological mother.
♡⠀⠀⠀viggo mortensen as otto baptista, 62 years old, foster father.
♡⠀⠀⠀jennifer connelly  as aesther baptista, 59 years old, foster mother.
♡⠀⠀⠀adria arjona  as antonia baptista, 28 years old (demigod).
Tumblr media
apesar de atena nunca ter visto o casal baptista por mais do que algumas poucas vezes, sabia que eles cuidariam e fariam o que fosse necessário para que aquela crainça fosse cuidada como meceria de fato. não houve nenhum tipo de interação entre os três, mas talvez por serem professores universitários, ela viu a oportunidade de uma criação como sua filha merecia.
otto era um pai carinhoso e dedicado, sempre pronto para qualquer necessidade da filha. a criou bem, na medida que fora possível e sempre foi o lado mais lágico da relação deles, ensinando à antônia tudo que ele sabia - talvez tenha sido dessa interação que a paixão por história tenha surgido, antes mesmo de seu lado imortal se fazer presente.
já aesther foi a mãe que talvez todo o semideus devesse ter - compreensiva, acolhedora e acima de tudo, defendia sua filha com unhas e dentes, sem nem ao menos pensar. ela largou mão de tudo quando antonia precisou estudar em casa e nunca a viu como uma criança problema, muito pelo contrário. antonia era seu bebê milagre, de uma forma não convencional. quando ela fugiu de casa, aesther chorou por meses, achando que ela estava morta.
25 notes · View notes
spanishyumejoshi · 4 months ago
Text
Tumblr media
Jssk 2D dale, I have to draw him using this picture
19 notes · View notes
hulyataskiran · 6 months ago
Text
Tumblr media
ㅤㅤ﹙ 🥀 ﹚ ✶ ׅ ࣪ ૮ ℂ𝕆ℝ𝔼 𝕄𝔼𝕄𝕆ℝ𝕀𝔼𝕊 : o ρɾɩຕᥱɩɾo ɾɩtᥙᥲꙆ.
𝒜𝓁𝑔𝓊𝓃𝓈 𝒶𝓃𝑜𝓈 𝒶𝓃𝓉𝑒𝓈...
O decoro para com tradições sempre foi algo não muito bem avaliado aos olhos de Hülya, tendo em vista que, embora fosse a segunda mais velha dos cinco, não queria carregar tanta expectativa e graça para si. Ora, com grande magia, há grandes responsabilidades; simplesmente não queria estar pronta para lidar com isso tão cedo, e o fato de "hospedar" um ser divino não lhe era agradável, tampouco condecoroso em meio aos montes. Ela, por ser ela, tão juvenil e apática às guerras, desavenças e diferenças de classe, não queria se por em um local onde lhe permitisse ser inserida naquele meio. Era ultrajante!
Entretanto, o que faria a doninha se tivesse de escolher o caminho da coruja ou dos insetos? Talvez fosse melhor ter e não perecer sem nada nas mãos, do que não ter e, quem sabe, perecer antes disso. Insetos, então. Foi assim, assimilando o que lhe seria menos pior, que Hülya traçou seu caminho na magia.
Ainda assim, pensava se seria ao menos escolhida, se era realmente digna. Sempre foi abaixo da média e era bastante pressionada para atingir o mínimo de perfeição, no entanto, dedicava-se tanto quanto um rato para manter-se limpo. Todas as preocupações de repente vieram à tona, mas tentou conter tamanha ansiedade que sentia, uma crescente, ao pisar nos salões de Hexwood.
Era majestoso cada detalhe. A inerte primavera parecia ter muito mais cor na academia, muito mais vida. Contudo, a que ponto a magia a levaria quando finalmente abraçasse seu destino? Estava subindo degraus no instante em que se viu diante da pira sagrada. Apesar de não escutar muito bem ninguém, completamente hipnotizada, Hülya se permitiu ser guiada até perto e instruída a inalar a plenos pulmões a fumaça.
No momento seguinte, as narinas queimaram em um tipo de alívio inesperado. Uma mera e mísera dor, tão fina, quase imperceptível, no segundo em que ela respirou pendendo a cabeça para trás. Foi aí que pode sentir-se esvaindo para outro plano. Fechou os olhos para melhor compreensão e, em seguida, não ouviu mais nada. Completo silêncio. Por curiosidade abriu as írises para fitar o que lhe esperava e para seu próprio espanto, era um vão fumacento e enegrecido. O horizonte não tinha começo e tampouco fim, por isso girou nos próprios calcanhares na intenção de se encontrar, e fez isso algumas vezes até escutar uma voz bem próxima de si.
O susto lhe fez parar por um instante até recobrar a consciência de que havia sido escolhida. Seu rosto virou de lado para tentar enxergar de canto de olho o que era, mas apenas conseguiu perceber uma névoa que contrastava com o fundo, pouco mais escura. Por fim, Hülya inclinou todo o corpo para a direção da aparição, tendo plena forma da silhueta agora. A única coisa que destoava de todo o resto, como se fosse de igual para igual, eram os olhos dourados brilhantes, puros. Aquilo pareceu aquietar seu coração pelos próximos segundos, que apesar de breves, pareceram mais duradouros que o normal.
"Vejo tantos corpos ao seu redor... É uma pena, mas fará um bom trabalho quando atingir seu ápice." Um medo subiu sua espinha, fazendo com que a Taskiran contraísse seus músculos instantaneamente, e, de súbito, tentar dar um passo para trás. Ela simplesmente não entendia o que estava acontecendo, tampouco entendia o porquê daquela fala. Então, aquela névoa flutuante de olhos dourado-brilhantes ergueu o que parecia ser uma mão até o queixo de Hülya, erguendo seu rosto. "Espero estar certa sobre você no fim das contas. Será perfeita para carregar o legado de Néftis." Teve a confirmação de quem se tratava e tudo dentro de si pareceu relaxar após isso. Era um propósito que estava sendo traçada para si, portanto, precisava ser condizente com a ordem superior. Parecia intragável que devesse fazer isso, como um receptáculo, sem sequer saber o que lhe acometeria tudo isso. Sua mãe dizia, desde sempre, que era uma graça a ser alcançada, uma bênção; tal qual ela também fora abençoada outrora.
Para a jovem, ainda havia muito para se entender, mas em seu peito habitava uma vontade inconstestável de querer mais, buscar por mais. Como? Não sabia ainda, mas as palavras seguintes, proferidas em sussurro no momento em que aquela névoa foi se dissipando para dentro do corpo da garota, penetraram sua alma. "Viva por aqueles que já morreram."
E assim, após recobrar consciência, um respiro total para liberar fagulhas do que lhe havia acontecido. Sua primeira reação foi a de sentir tamanha conformidade dentro de si que uma vontade imensa de chorar foi nascendo a partir de sua garganta, queimando até borbulhar, de modo que ela precisou segurar o próprio coração no peito - parecia que queria pular dali. Os olhos marejaram e ela, então, chorou com um sorriso nos lábios.
RESUMO: Hülya nunca foi disposta a receber a magia em si, aprendia porcamente e era pressionada pelos pais para se inteirar mais com suas responsabilidades. Tinha medo, muitos receios e não queria estar em meio a uma guerra, embora já estivesse. Quando aos 18 anos teve o primeiro contato com Néftis, enxergou o nevoeiro que enfrentaria futuramente e a deusa sabia disso. Néftis viu nela o potencial de se assimilar aos atos da própria divindade, eventualmente, fora o fato de que poderia fazer um bem maior, embora fosse vista com maus olhos - permeando a ideia de que a deusa era muitas vezes mal interpretada com suas responsabilidades; muitos viam algo ruim, o oposto de Ísis, enquanto que ela apenas garantia a passagem dos mortos para o outro lado, sem sofrer no purgatório, pois era essa a função de Néftis. As palavras confusas dela deram à Hülya um direcionamento e ela compreendeu imediatamente a conexão que tinham; foi como se ela tivesse um flash de memória do que poderia realizar ao permitir que aquela deusa lhe tomasse como receptáculo. A partir daí foi isso que fez com que a curiosidade a inundasse, pois, nos anos seguintes, aproximou-se mais dos ensinamentos e da magia, apesar de ser o tipo de feiticeira que busca pelo incomum, pelo proibido, com pura ânsia de conhecimento, apenas - nada maligno, embora fosse repreendida.
14 notes · View notes
eirikhrafnkel · 5 months ago
Text
Tumblr media
𝑡𝑎𝑠𝑘 𝐼𝐼 · core memories ⸻ CLAIMED BY THE CHIEF OF THE ÆSIR
Tumblr media
Todo o seu futuro dependia de uma escolha que não era sua.
A honra de hospedar Odin tinha agraciado a linhagem Hrafnkel por séculos antes de seu nascimento, mas Eirik não tomava aquele legado como seu por direito. Aquele era o único privilégio que não lhe seria dado de mão beijada, e que teria que fazer por merecer. Ser Valdr e guardar o véu da magia tinha apenas uma condição: carregar consigo o poder do Allfather. Qualquer outra opção seria o fim da vida que tinha idealizado para si, e de todas as chances de ser outra coisa que não uma gigantesca decepção para Thorbjorn.
Dispensou a ajuda dos criados naquela manhã, querendo o conforto da sensação de fazer algo por si para variar. Seus trajes tinham sido dispostos na câmara adjacente ao quarto, as vestes perfeitamente alinhadas adornadas com detalhes dourados–a cor de sua família, e sua única opção em qualquer ocasião importante. A única migalha de individualidade que lhe restava eram as abotoaduras de safira, que combinavam com o azul-marinho de sua calça e contrastavam com o branco da camisa. Se tudo desse certo, aquele seria seu último dia usando as pedras preciosas; uma vez escolhido por Odin, a tradição ditava que o pai lhe presenteasse com o par de corvos em ouro que passavam de geração em geração entre os chefes da família.
Ao se olhar no espelho, encontrou no reflexo do herdeiro perfeito–e quase não se reconheceu.
Aquele seria seu primeiro dia na Academia. As malas o aguardavam na entrecâmara de seus aposentos, e sequer precisariam ser desfeitas caso fosse rejeitado–possibilidade que queria desesperadamente evitar cogitar. Suas palmas já estavam suadas o suficiente sem que a ansiedade tomasse conta por completo, e Eirik tratou de acalmar a própria respiração antes de deixar a segurança do quarto, pois sabia que o pai o inspecionaria em busca de sinais de fraqueza. Não o deixaria encontrar nenhum.
Tumblr media
A fumaça do sacro cardo era espessa como uma cortina, e grudou em seus pulmões como faria uma semente ao criar raízes. O oscilar da chama da pira foi a última coisa que viu antes de sentir o descolar de sua alma do corpo, e então sua consciência se viu em um outro lugar.
Estava diante de imponentes portões de ouro. Ao estender ambas as mãos para empurrá-los e lutar com o peso do metal, revelou um salão capaz de acomodar milhares de guerreiros, com mesas repletas de comida e canecos de cerveja o ladeando até onde os olhos alcançavam. O pé direito alto o fez sentir insignificante comparado ao espaço que parecia capaz de o engolir, e os sons de celebração ameaçaram abafar até seus pensamentos. As paredes eram adornadas por lanças e escudos, e o teto com incontáveis vitrais que deixavam passar a luz solar. No centro, havia um carvalho ancião, seus galhos se estendendo em todas as direções como se prestes a abraçar o mundo. No extremo oposto, havia uma figura sentada em um trono, o rosto encoberto por um capuz. Um par de lobos descansava junto ao estrado como sentinelas, olhos e orelhas alertas à sua chegada.
Ao seu redor notou rostos familiares e de quem já tinha se despedido, os guerreiros caídos em combate e escoltados pelas valquírias até o banquete. Estava em Valhalla, no coração do Superno, e não podia entrar sem ser convidado. Sabia o que aquilo significava, e sabia também que não era uma vitória–ainda não.
❛  Vá até a árvore, criança.  ❜
A voz chegou até ele como se carregada pelo vento, não mais que um sussurro em meio à cacofonia de sons que enchiam o salão de vida. Aquela era a permissão de que precisava, mas por um segundo suas pernas pareceram congeladas no mesmo lugar, como se seu corpo resistisse ao peso da responsabilidade que estava prestes a assumir.
❛  Vá até a árvore, e o meu poder será seu.  ❜
Tão logo deu o primeiro dos passos para adentrar o espaço sagrado, todo e qualquer burburinho foi substituído por um silêncio solene, e sentiu centenas de pares de olhos o acompanhando conforme caminhava na direção do carvalho no centro do salão. Não era Yggdrasil, mas talvez a representasse, ou talvez fosse um dos muitos ramos que tocavam Asgard. O único som no espaço foi o de seus sapatos contra o chão polido até alcançar o tronco, que lhe pareceu mais largo que a vida quando visto de perto. Ao seu alcance havia uma formação de runas douradas entrelaçadas e pintadas com magia.
❛  Toque-as e saberá o que fazer.  ❜
Fez exatamente como foi orientado, os dedos tremendo ao erguê-los mas, ao buscar pelo contato, a casca da árvore se converteu na água do Poço de Mímir, e a magia passou a se espalhar a partir do centro, como se reagindo ao toque. Como se um portal fosse aberto, um corvo atravessou o anel dourado e se empoleirou em seu ombro. Não lhe passou despercebido que nenhum sacrifício foi pedido–teria que pagar o preço depois.
Cada um dos guerreiros presentes no banquete se colocou de pé e, batendo com as espadas contra os escudos em um mesmo ritmo, um cântico em uníssono se formou.
❛  Valr Óðins, leið oss til sigurs!  ❜
Tumblr media
Tão logo voltou ao seu corpo, um único nome lhe veio à cabeça. Freyja.
Ao buscar pelo rosto familiar da irmã, não se surpreendeu ao perceber que tinham despertado no exato mesmo momento. O azul de seus olhos parecia capaz de afogar, e reconheceu nela o mesmo poder que agora corria em suas veias.
Tal como na antiga cantiga de ninar, eram os dois corvos da profecia, e nem mesmo Odin podia cortar o laço que atava seus destinos.
↳ para @aldanrae personagens citados: @fromodins
Tumblr media
10 notes · View notes