Linux kernel được viết chủ yếu bằng ngôn ngữ lập trình C và 1 ít bằng ngôn ngữ lập trình Aseembly để can thiệp trực tiếp vào CPU, các ngôn ngữ lập trình khác chỉ có vai trò phụ như trang điểm phấn son, má hồng cho người đẹp mà thôi.
Ngôn ngữ lập trình Perl được viết trong nhiều công cụ của Linux kernel nên biên dịch Linux kernel vẫn cần Perl để diễn cho tròn vai.
Biên dịch nhân Linux hổng có ngôn ngữ lập trình Perl sẽ bị lỗi dưới
CC drivers/acpi/acpica/psutils.o
CC fs/nsfs.o
CC fs/fs_types.o
CC net/ethtool/bitset.o
GEN lib/oid_registry_data.c
/bin/sh: line 1: perl: command not found
make[3]: *** [lib/Makefile:350: lib/oid_registry_data.c] Error 127
make[2]: *** [scripts/Makefile.build:480: lib] Error 2
make[2]: *** Waiting for unfinished jobs....
CC drivers/acpi/acpica/pswalk.o
CC net/ethtool/strset.o
AR drivers/dma/built-in.a
CC net/ethtool/linkinfo.o
AR drivers/soc/apple/built-in.a
CC drivers/gpu/drm/i915/i915_gpu_error.o
CC drivers/gpu/drm/i915/i915_vgpu.o
AR drivers/gpu/drm/i915/built-in.a
AR drivers/gpu/drm/built-in.a
AR drivers/gpu/built-in.a
AR drivers/built-in.a
make[1]: *** [/root/linux-6.6.7/Makefile:1913: .] Error 2
make: *** [Makefile:234: __sub-make] Error 2
Compile linux kernel báo lỗi trong Makefile nên ta sẽ vào Makefile của Linux kernel để xem dòng này viết gì
$(Q)$(MAKE) $(build)=$@ need-builtin=1 need-modorder=1 $(single-goals)
# Preset locale variables to speed up the build process. Limit locale
# tweaks to this spot to avoid wrong language settings when running
# make menuconfig etc.
# Error messages still appears in the original language
PHONY += $(build-dir)
$(build-dir): prepare
$(Q)$(MAKE) $(build)=$@ need-builtin=1 need-modorder=1 $(single-goals)
clean-dirs := $(addprefix _clean_, $(clean-dirs))
PHONY += $(clean-dirs) clean
$(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
Kết luận
Công nghệ lõi Linux đang xài có những công cụ được viết bằng các ngôn ngữ lập trình từ ngày xửa ngày xưa.