linux内核几行代码,为什么Linux内核需要15+百万行代码?[关闭]

编辑:原来unifdef有一些限制(-I被忽略和-include不支持,后者用于包括生成的配置头)此时使用cat不会有太大变化:

274692 total # (was 274686)

脚本和过程已更新。

除了驱动程序,arch等外,还有很多条件代码是否编译取决于所选择的配置,这些代码不一定在动态加载的模块中而是在内核中构建。

因此,下载了linux-4.1.6的源代码,选择了tinyconfig,它没有启用模块,老实说,我不知道它启用了什么或用户可以在运行时使用它做什么,无论如何,请配置内核:

# tinyconfig - Configure the tiniest possible kernel

make tinyconfig

建立内核

time make V=1 # (should be fast)

#1049168 ./vmlinux (I'm using x86-32 on other arch the size may be different)

内核构建过程会*.cmd使用命令行调用隐藏文件,这些隐藏文件也用于构建.o文件,处理这些文件并提取script.sh下面的目标和依赖项副本,并将其与find一起使用:

find -name "*.cmd" -exec sh script.sh "{}" \;

这个创建目标的每一个依赖副本.o命名.o.c

.c代码

find -name "*.o.c" | grep -v "/scripts/" | xargs wc -l | sort -n

...

8285 ./kernel/sched/fair.o.c

8381 ./kernel/sched/core.o.c

9083 ./kernel/events/core.o.c

274692 total

.h标头(已清理)

make headers_install INSTALL_HDR_PATH=/tmp/test-hdr

find /tmp/test-hdr/ -name "*.h" | xargs wc -l

...

1401 /tmp/test-hdr/include/linux/ethtool.h

2195 /tmp/test-hdr/include/linux/videodev2.h

4588 /tmp/test-hdr/include/linux/nl80211.h

112445 total

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值