Audience:The book will try to cover the topic of Linux IA-32 assembly programming as much as possible, starting with assembly pros and cons, and ending with an implementation of libc in assembly language. The book will cover the process of development Linux applications in assembly language, general portability issues, tips and tricks.
The Book will include a lot of code examples, several appendices, and Q&A chapter. In general, the book will be nicely technical, and will carry research spirit through all its pages. The book will lead the reader from simple explanatory chapters to hard-core assembly code examples.
This book is absolutely outstanding and unique. I do not know any other books covering this topic. Linux assembly programming is a brand new branch of Linux application development. The book is based on unique research.
The topic of Linux assembly programming is gaining more and more interest, especially in educational and embedded systems fields.
Mostly the book is targeted on assembly professionals, who do not know Linux, and on Linux professionals who do not know assembly. NOTE: this is not "a tutorial on PC assembly", it is assumed that reader already knows assembly language, at least basics of it.
Benefits:
- education field (anyone who teaches assembly, more and more teachers would like to use NASM and Linux in their courses instead of MASM and DOS)
- software engineers and system programmers
- embedded system & application developers
- and just Linux and assembly hackers
The book will be a great tutorial on Linux assembly, so it can be easily used in existing assembly training courses, as well as in Linux application development courses.
Requirements:The person will:
- learn when to use assembly, and when not (in general)
- learn the process of writing Linux applications in assembly
- learn system calls details and will be able to use them
- be able to port an existing DOS assembly codebase to Linux
- be able to build the smallest possible Linux distribution
- get plenty of source code examples
Supplementary material:General assembly language knowledge is required to understand some parts of the book (there will be no explanation of what is "mov", "jmp", register, protected mode, etc).
At least, person must be familiar with any programming language and development.
Linux knowledge is preferred but not required. Nasm experience is preferred but not required.
Status:I would like to provide a supplementary CD with the book, with all source code examples, and all tools described in the book, may be even with some Linux distribution (i.e. Stampede), so reader can start from scratch (almost all software provided is GPL'ed). Some of the material will be posted on the web (system call list), because it will be updating frequently (certainly with free access)
The book is not complete yet. There's a lot of material, but it needs to be organized in a form of a book. However there are several chapters that are almost complete. Estimated page count - ~300 p. The book will include several figures/tables (max 10), possibly some diagrams (2-3), and possibly a drawing/photo for each chapter (max 10).
It is possible that there will be few co-authors, or just people who will contribute some chapters.