Wizard Code: A View on Low-Level Programming
vendu.twodots.nl
vendu.twodots.nl
the malloc in the book can be considered obsolete - i'm coming up with something hopefully better, even though my rewrite is seriously under construction at the moment.
for some memory management stuff, feel free to consult
https://github.com/vendu/OS-Zero/tree/master/kern/mem
cya,vendu
From a scan of the TOC it looks like a great introduction to C programming from a machine point of view. Although, as DJB has pointed out, there can be a big gap between "what all sane compilers do on this architecture" vs "what the C standard actually guarantees".
Edit: thinking about this, it's a bit Intel-centric. The people more likely to be writing low-level code these days would be targeting ARM or even AVR/PIC.
Yes, from the copyright notice it looks like it was originally started in 2008. Though HAKMEM was already ancient in 2008, too.
> From a scan of the TOC it looks like a great introduction to C programming from a machine point of view.
Maybe, but from the actual contents it's hard to tell what it's trying to do. The C part starts out with a section on C types, with the first sentence being "This section doesn’t attempt to be a primer on C types; instead, I cover aspects I consider to be of importance for low-level programming."
So it's not a primer on C, fair enough. But then it goes on to explain the const and extern keywords, and how to declare structs. It's hard to tell what audience this is aimed at. People who already know enough C not to need an actual primer on C, but who do still need an explanation of const and a very partial explanation of structs?
Other parts, like the malloc implementation at the end, look better, though.
as it was called nicely, you should consider this book a set of musings and notes. one of the driving ideas behind the c part was to introduce the readers to things new in c99. :P
that malloc, whereas kinda okay, has already been rewritten and the new version is under construction. it sports thread-local magazine caches and all kinds of hacks i've found interesting to mess around with. :)
cheers,
vendu
as i told you guys above, i didn't have sse2+ around at the time i wrote those chapters.
thanks a million for the note on x87 stack corruption, i didn't know about that bug. ;)
hack on,
vendu
back when i wrote this book, i didn't have sse beyond sse1 on my desktop box, so i used mmx. the point was to demonstrate some basic use of simd.
cheers & thanks,
vendu =)