code: func (k *KernelValidator) Validate(spec SysSpec) (error, error) {
  	helper := KernelValidatorHelperImpl{}
  	release, err := helper.GetKernelReleaseVersion()
  	if err != nil {
  		return nil, errors.Wrap(err, "failed to get kernel release")
  	}
  	k.kernelRelease = release
  	var errs []error
  	errs = append(errs, k.validateKernelVersion(spec.KernelSpec))
  	// only validate kernel config when necessary (currently no kernel config for windows)
  	if len(spec.KernelSpec.Required) > 0 || len(spec.KernelSpec.Forbidden) > 0 || len(spec.KernelSpec.Optional) > 0 {
  		errs = append(errs, k.validateKernelConfig(spec.KernelSpec))
  	}
  	return nil, errorsutil.NewAggregate(errs)
  }
docs: // Validate is part of the system.Validator interface.