Я знаю, что для 32-битных Intel Linuces он возвращает i[3-6]86
. Для 64-битной Intel это говорит x86_64
. А как насчет других, экзотических архитектур? (PowerPC, Alpha, SPARC ...) Есть ли где-нибудь авторитетный список?
Бонусные баллы, если есть информация и о других Unix, отличных от Linux.
i386 i686 x86_64 ia64 alpha amd64 arm armeb armel hppa m32r m68k mips mipsel powerpc ppc64 s390 s390x sh3 sh3eb sh4 sh4eb sparc
Нашел Вот, справа. Список неполный, я думаю, но близко к этому :) Поиск в Google "списка архитектур" помогает!
Я бы не назвал PowerPC, Alpha или SPARC «экзотикой».
Значения, возвращаемые uname, довольно произвольны, они образуют открытый набор. Вы можете найти списки некоторых возможных значений (в проекте autoconf он есть), но нет реального списка, в котором перечислялось бы все.
Может, кто-нибудь знает где-нибудь полный список ...
Что касается того, как ядро реализует системный вызов uname, заполнение надлежащей информации для структуры uname распространяется по каждому из каталогов архива в ядре. Таким образом, заполнение имени процессора и типа машины для процессора x86 выполняется в дереве исходных текстов ядра arch / x86, а заполнение этой информации для powerpc выполняется где-то в дереве arch / powerpc.
Я полагаю, что исходный код ядра имеет ответ на ваш вопрос, просто может быть, что его поиск может занять много времени.