  Coded caching systems have been widely studied to reduce the data
transmission during the peak traffic time. In practice, two important
parameters of a coded caching system should be considered, i.e., the rate which
is the maximum amount of the data transmission during the peak traffic time,
and the subpacketization level, the number of divided packets of each file when
we implement a coded caching scheme. We prefer to design a scheme with rate and
packet number as small as possible since they reflect the transmission
efficiency and complexity of the caching scheme, respectively.
  In this paper, we first characterize a coded caching scheme from the
viewpoint of linear algebra and show that designing a linear coded caching
scheme is equivalent to constructing three classes of matrices satisfying some
rank conditions. Then based on the invariant linear subspaces and combinatorial
design theory, several classes of new coded caching schemes over $\mathbb{F}_2$
are obtained by constructing these three classes of matrices. It turns out that
the rate of our new rate is the same as the scheme construct by Yan et al.
(IEEE Trans. Inf. Theory 63, 5821-5833, 2017), but the packet number is
significantly reduced. A concatenating construction then is used for flexible
number of users. Finally by means of these matrices, we show that the minimum
storage regenerating codes can also be used to construct coded caching schemes.
