Linux kernel source tree 在 Github 的镜像地址
https://github.com/torvalds/linux
以 Release v4.3 为例
作为 Linux 的初学者不知道这样会有那些问题?
1
haroldwu 2015-12-19 12:23:22 +08:00
你還需要 shell XD
|
2
crayygy 2015-12-19 12:26:00 +08:00
初学者比较好的还是选择一个发行版, Ubuntu 、 Fedora 、 CentOS 都行,个人比较建议 Ubuntu ,对初学者比较友好一些,外观上看也还行(个人看法),安装工具也挺方便。熟悉了之后再慢慢的接触其他发行版, CentOS 啊什么的
|
3
squid157 2015-12-19 12:27:46 +08:00 via iPhone
Linux from Scratch
你可以先阅读一番 别上手 再回来考虑这个问题 |
4
gimp 2015-12-19 12:29:42 +08:00 2
http://www.linuxfromscratch.org/lfs/ 等待楼主安装 LFS 成功的喜报
|
5
gimp 2015-12-19 12:30:31 +08:00
“等待楼主成功安装 LFS 的喜报” ...最近怎么总是语法错误的说
|
7
shippo7 2015-12-19 12:40:00 +08:00 4
不存在安装“原版 Linux ”这个概念,只能编译和安装“ Linux 内核”。只有 Linux 内核你无法控制它,就像只给你一个汽车引擎,你无法驾驶它一样。 Linux 内核+发行版才是一个完整的操作系统。
|
8
lhbc 2015-12-19 12:42:55 +08:00 via Android
初学者一上来就要搞自己的发行版,呵呵
|
9
windfarer 2015-12-19 12:43:27 +08:00 via Android
Linux from Scratch +1
|
10
Pastsong OP @lhbc 事实上我用 Ubuntu 也有两年时间了,我只是换一种方式问一下发行版对于 Linux kernel 的意义
|
11
shyling 2015-12-19 13:03:01 +08:00 via iPad
lfs 大法
|
12
linhua 2015-12-19 13:05:19 +08:00
先从简单的元发行版 Gentoo 开始吧
Archlinux 下可以自己写 PKGBUILD 文件,编译安装 linux 内核。具体可参考 Arch 的 wiki |
13
regist 2015-12-19 13:23:38 +08:00 1
貌似跟 lfs 扯不上关系吧,为什么楼上那么多人都扯 lfs 。。。
要在发行版下编译自己的内核,要清楚发行版对内核的要求,譬如 systemd 还是 openrc 的等等。 至于驱动,注意主板,硬盘,网卡等基本就 ok 了,周边的可以等系统亮起来后再去完善。 玩过 gentoo 的,基本都有自己一份特有的 kernel .config 吧。 |
14
Comphuse 2015-12-19 15:03:44 +08:00
|
15
Arthur2e5 2015-12-19 15:23:13 +08:00 1
make oldconfig 可以重用当前 config 。然后生成 initramfs 和配置 grub 看发行版的做法。有时候你还想自己配一堆驱动。
> 我只是换一种方式问一下发行版对于 Linux kernel 的意义 ……意义? Linux kernel 只是 GNU 系统生态环境的一个可替换的核心而已。啊,拿错剧本了。没有发行版提供的 userspace , kernel 没什么用处啊。发行版还降低了各种配置差异造成的坑爹事,还有免去了你编译的痛苦。 ---- @regist 按照原 po 那个标题,强调不属于发行版,又要默认获得一个能用的系统的话,那只能自己配用户程序走上 LFS 之路了。 |
17
wizardoz 2015-12-19 15:31:06 +08:00 1
牵涉的东西有点多,除了 bootloader 、内核,还有文件系统需要了解。
如果楼主真的想完成这么艰巨的任务,建议去买一块嵌入式开发板,支持 linux 的。厂家都会提供 bootloader 、内核和文件系统。一般 bootloader 不会提供代码。 把别人提供的东西玩熟了以后,自己也就找到感觉了。之所以建议从嵌入式开始,是因为嵌入式的硬件相对简单,文件系统也是比较小。比起 X86 平台的那些发行版不是一个数量级。 |
18
402124773 2015-12-19 15:36:37 +08:00
|
19
jasontse 2015-12-19 15:39:20 +08:00 via iPad 1
Linux 不存在原版之类的,它就是一内核,没有各个发行版包含的那一堆外围的东西你根本用不了。
|
20
webjin 2015-12-19 15:48:53 +08:00 via Android
提倡学 lfs.你会理解很多东西
|
21
Pastsong OP |
22
DingSoung 2015-12-19 16:32:08 +08:00
一下子到 4.x 了啊, 记得当初折腾时候还是 3.2.7, 大部分嵌入式设备还是 2.6.x
|
23
GNiux 2015-12-19 17:58:37 +08:00 via iPhone
...
其实真的不存在“原版啦”…… 如果不想追随任何一个发行版,可以试试 Linux from Scratch. :) |
24
itoon 2015-12-19 18:09:18 +08:00
我看到 Bastion The Kid 了!
|
26
ryd994 2015-12-19 18:54:03 +08:00 via Android
lfs 大法好,楼主前途无量
|
27
aa45942 2015-12-19 19:03:02 +08:00 1
|
28
xylophone21 2015-12-19 20:49:12 +08:00
http://www.bennee.com/~alex/blog/2014/05/09/running-linux-in-qemus-aarch64-system-emulation-mode/
这个例子是编 64 位内核的,换成 32 的会简单一些。 |
29
ziqin 2015-12-19 20:51:54 +08:00
印象中 GitHub 上的是仓库的镜像。
可能这个才是 https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ |
31
xylophone21 2015-12-19 20:59:35 +08:00
https://github.com/xylophone21/android-binder-standalone/blob/master/tools/aarch64_qemu/make_a_test_environment.md
这个是我之前调试其它模块时做的测试环境,使用 qemu 模拟器成功跑了自己编译的内核。 |
32
Pastsong OP @xylophone21 感谢,正在看 QEMU 的文档
|
33
inevermore 2015-12-19 21:33:30 +08:00
Linux 只是内核,不是操作系统。
内核启动一段时间后,出现的第一个用户态进程是 init ,这部分代码负责启动 shell 等,但他压根不是内核源码的一部分,是发行版自己去提供的。 说白了,内核就是 资源管理 + 系统调用服务的合集 那些用户交互的部分与他无关 |
34
wdhwg001 2015-12-19 22:01:57 +08:00
我感觉你在开玩笑,就像你要在只有 hal.dll 、 ntoskrnl.exe 、 win32k.sys 、 Ntdll.dll 、 Kernel32.dll 、 Csrss.exe 等玩意的情况下跑一个 windows 一样…
尽管 linux 是宏内核,包含的东西比上面那些多不少,但想要只靠内核跑系统未免还是有点虐了… |
35
vonnyfly 2015-12-19 22:14:23 +08:00
可以看我这个,开发测试 Linux 内核。
https://github.com/vonnyfly/linux-kernel-tester |
36
msg7086 2015-12-19 22:33:46 +08:00
Linux 不是发行版,是内核……
除了内核以外其他的组件都不是 Linux 的一部分…… 你这些东西全部装完以后就是一个 vmlinuz 文件而已…… |
39
extreme 2015-12-19 22:48:03 +08:00
为什么没人提起 CoreUtils 。
Linux 内核+Coreutils ,一个最基本的 Linux 发行版本出来了。 |
40
FreeTxT 2015-12-20 16:43:44 +08:00 via iPad
LFS 欢迎您的加入
|
41
Mithrandir 2015-12-21 00:38:35 +08:00
LFS 的确符合你的要求,不过对于新人还是不建议一上来就搞这个,太折腾了
|