Julia auto-loaded modules

If I launch a clean Julia session, I get:

julia> keys(Base.loaded_modules)
KeySet for a Dict{Base.PkgId, Module} with 12 entries. Keys:
  Base.PkgId(Base.UUID("4536629a-c528-5b80-bd46-f80d51c5b363"), "OpenBLAS_jll")
  Base.PkgId(Base.UUID("8f399da3-3557-5675-b5ff-fb832c97cbdb"), "Libdl")
  Base.PkgId(Base.UUID("ea8e919c-243c-51af-8825-aaa63cd721ce"), "SHA")
  Base.PkgId(Base.UUID("7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee"), "FileWatching")
  Base.PkgId(Base.UUID("56f22d72-fd6d-98f1-02f0-08ddc0907c33"), "Artifacts")
  Base.PkgId(Base.UUID("8e850b90-86db-534c-a0d3-1478176c7d93"), "libblastrampoline_jll")
  Base.PkgId(nothing, "Main")
  Base.PkgId(nothing, "Core")
  Base.PkgId(Base.UUID("37e2e46d-f89d-539d-b4ee-838fcccc9c8e"), "LinearAlgebra")
  Base.PkgId(nothing, "Base")
  Base.PkgId(Base.UUID("9a3f8284-a2c9-5f02-9a11-845980a1fd5c"), "Random")
  Base.PkgId(Base.UUID("6462fe0b-24de-5631-8697-dd941f90decc"), "Sockets")

Why and how are so many packages automatically loaded, even though they are not shown in Pkg.status()?

Can I suppress the loading of any of these packages?

These are compiled into the julia sysimage.

As bluesmoon says, they are compiled in the sysimage.

So can they be removed? What would that imply? There is certainly an incentive to remove these packages: LinearAlgebra and OpenBLAS in particular are not small. This is something that has been discussed for years. I think @vchuravy is one of the devs that has looked the most into it.

As I understand it, the problem can be demonstrated by rand(2, 2) * rand(2, 2). This functionality is in Base, so removing it would be breaking. But rand requires the SIMDd Xoshiro of Random, and the multiplication calls into BLAS.

We could have a non-optimized implementation in Base, and then switch to BLAS once LinearAlgebra is loaded. But then LinearAlgebra would have to pirate Base. Then we could lazily load BLAS on the first multiply - but that would cause a bunch of latency if BLAS was not in the system image.