Modern CPUs are quite complicated beasts. They have peripherals, memory controllers, memory management units and a whole lot more that needs to be set up so that a stdout, stdin and more is defined and usable. This hardware dependent setup is done during the boot process. For most embedded systems this is done by the bootloader, which hands the system off to a properly configured kernel. I'd like to explore how this works in detail.
The modern Web
I have recently started to learn about how to build web pages in a modern javascript
everywhere kind environment. This is what I have found.
Vivado, an overview
Vivado is the IDE that is used for the "programming" of Xilinx FPGAs. Xilinx/AMD together with Altera/Intel are the two dominant vendors for FPGAs. Programming the device in this context means generating the configuration of the FPGA so that it implements some logic specified by the designer.
Vivado is a 70GB install and quite a piece of software. I'll try to give an orientation on how to use Vivado and give a high level conceptual and architectural overview of the system. Theand the work flows that are designed into the tools (and seem to have been widely adopted in the FPGA industry). There are many different ways for using Vivado but as I am a command line kind of person, I will of course look at how to script things as much as possible.
Making (and owning) things
The constructed Environment
As someone born and raised in Germany, having spent nearly all of my time in industrialized countries. I have been immersed in an environment shaped nearly entirely by human hands and minds. Nearly everything that I touch in a normal day was either shaped by or put there deliberately by humans. In our late-capitalist/neoliberal society so many things are done in pursuit of eventually selling the result of that action on "the Market" and making a "profit" without ever defining why that needs to be done beyond making sure that as many people as possible have reliable access to the necessities of human existance. Being surrounded by so much stuff I have come to think that making things must be an easy. This turns out to be quite wrong, making the previous observation so much more puzzling.
Basics of computer programming Part 2: Programming Languages
The next part of computer programming, this time I shift the focus to programming languages, the main, but far from the only tool of the trade.