Разработка
В действительности компьютеры понимают только один язык - машинный код - бинарный поток единиц и нулей.
Система команд (машинный язык) - совокупность машинных команд процессора.
Программы обычно существуют в двух формах. Первая форма представляет собой исходный код - понятный человеку текст, состоящий из серий инструкций, написанных на языке программирования, например, на Си. Чтобы стать исполняемым, исходный код должен быть преобразован во вторую форму: двоичные (бинарные) инструкции на языке машины, понятные для компьютера.
В отличие от сценария, являющегося текстовым файлом с командами, напрямую обрабатываемыми программой, такой как оболочка или интерпретатор команд.
Два значения понятия "программы" обычно считаются синонимами, так как в процессе компиляции и сборки исходный код преобразуется в семантически эквивалентный двоичный машинный код.
Linux, стандарты и нормативная база
В первую очередь разработчики Linux (то есть ядра, библиотеки glibc и инструментария) стремятся соответствовать различным стандартам UNIX, особенно POSIX и Single UNIX Specification.
Из-за наличия нескольких распространителей Linux, а также из-за того, что реализаторы ядра не контролируют содержимое дистрибутивов, "стандартной" коммерческой версии Linux не существует. Ядро отдельного дистрибутива Linuxобычно базируется на некоторой версии ядра Linux из основной ветки разработки с набором необходимых изменений.
Кроме знания языков программирования необходимо иметь под рукой необходимый инструментарий для изучения, написания и отладки самих программ. В минимальный набор для написания программы входит ЛЮБОЙ текстовый редактор, компилятор и компонвщик (он же линковщик). Таким набором может быть например редактор VIM, компилятор GCC и компоновщик LD. Если у вас ничего этого нет, то можно установить всё из репозитария (# apt-get install vim gcc binutils) или скачать с сайтов разработчиков.
Архитектура x64 процессоров Интел
Описание архитектуры
Создание программ для архитектуры Intel (PDF (english))
Системная шина
How do computers work? CPU, ROM, RAM, address bus, data bus, control bus, address decoding.## Процесс
Устройство памяти
IDE и редакторы
Ассемблеры
nasm - Netwide Assembler (сайт)
gas
Языки
Платформы
Компиляторы
GCC - GNU Compiler Collection
LLVM - Low Level Virtual Machine
Компоновщики
ld (входит в пакет binutils)
Руководство новичка по эксплуатации компоновщика (Хабр)
Отладчик
gdb (сайт, PDF (english))
Дополнительно
Памятка
Передаём АРГУМЕНТЫ,
foo(arg1, arg2);
а принимаем ПАРАМЕТРЫ
int foo(int par1, int par2) {
return par1 + par2;
}
Вызывающий код передаёт аргументы. Метод использует параметры.
Комментарии
Пока комментариев нет.