Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 30 Nov 2021 05:19:35 +0100
From:      =?utf-8?q?mayuresh=40kathe.in?= <mayuresh@kathe.in>
To:        "FreeBSD Questions" <freebsd-questions@freebsd.org>
Subject:   [newbie alert] How does FreeBSD support =?utf-8?q?hardware=3F?=
Message-ID:  <5e22-61a5a680-501-7ea77800@46311397>

next in thread | raw e-mail | index | archive | help
I am confused about how FreeBSD supports every new generation of proces=
sors, e.g. from Intel.
I guess, FreeBSD uses GNU "gas" to which Intel actively contributes cod=
e to keep that assembler updated for every iteration (model) of Intel's=
 processors.
So when the kernel and userland are built, Clang/LLVM uses "gas" to gen=
erate binaries to support newer instructions as provided by the process=
or.
But, what is the magic within FreeBSD that makes the whole system be aw=
are of changed instructions such that all the code (which need not nece=
ssarily be updated throughout with every new processor iteration) gets =
optimized well?
How would FreeBSD applications know of changes like AVX2 and SIMD and u=
tilize them without the core developers specifically modifying some sec=
tions of the kernel and "libc" to tap into the enhanced instructions?
And do the core developers undertake such a task with introduction of n=
ew models of processors (I guess once every 18 months)?

Thank you.

~Mayuresh




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5e22-61a5a680-501-7ea77800>