OS
Table of Contents
Topics
CPU, OS and Applications
Early single tasking OSes
In very early DOS and other early single tasking based systems all code was run in the inner ring(kernel), (…)
This code was in fact largely OS agnostic
, as long as you had a loader capable of loading the program into memory (pretty simple for early binary formats) and the code did not rely on any drivers
Modern multi tasking OSes
Each OS decided on a different implementation for these protections (…) These OS specific interactions are usually called "system calls" and encompass how a user space program interacts with the hardware through the OS completely
The Program Loader
In addition to system calls, each OS provides a different method to load a program from the secondary storage medium and into memory, in order to be loadable by a specific OS the program must contain a special header which describes to the OS how it may be loaded and run.
Compatibility across OS and CPU types
What do i386 and amd64 stand for?
The Intel
80386
, also known as thei386
, or just386
, was a 32-bit microprocessor introduced by Intel in 1985… This is termedx86
,IA-32
, or thei386-architecture
, depending on context.
x86-64
is an extension of the x86 instruction set. It supports vastly larger virtual and physical address spaces than are possible on x86, thereby allowing programmers to conveniently work with much larger data sets.. After launching the architecture under the"x86-64
" name, AMD renamed itAMD64
…x86-64
is still used by many in the industry as a vendor-neutral term, while others, notably Sun Microsystems (now Oracle Corporation) and Microsoft, usex64
.
Even if you have an intel CPU, you should use AMD64 to install 64-bit on your computer (it uses the same instruction sets).