野生程序员想自学 Linux From Scratch,需要哪些知识背景?

2016-11-03 20:51:57 +08:00
 ericgui
本人半路出家,原专业是生物,除了英语好,一无长处。
本来学 Java Web 和 Python Web 开发, 后来在学 Linux 的时候,对 Linux 产生了无比的热情
所以准备深入学习一下。
没学过 C 语言(正准备看),没学过算法,没学过编译原理。
但想自己用源码从头编译一次,所以准备学 LFS 。
请教各位,学 LFS ,目前我就只是会写 shell 脚本的水平,能看得懂吗?
我实话说,我硬着头皮看了一次,没看明白。
需要补充哪些知识?谢谢
6013 次点击
所在节点    Linux
42 条回复
tinyproxy
2016-11-03 21:00:39 +08:00
有这时间,你去补语法,数据结构,网络协议,编译原理不好?瞎点技能树不好
ericgui
2016-11-03 21:11:25 +08:00
@tinyproxy 我的意思就是先学哪些基础知识,才能看得懂 LFS ?我知道打基础的重要性,但不知道哪些东西是“基础”。 C 语言?数据结构?算法?编译原理?
BBrother
2016-11-03 21:15:09 +08:00
可怜的我还是查了 Linux From Scratch 才知道是什么的。
tinyproxy
2016-11-03 21:23:19 +08:00
@ericgui 你可以按我说的顺序,也可以随意,但入门搞 LFS ,那我只能说你还没弄完骂的最多的就是自己那破电脑什么编译速度
ericgui
2016-11-03 21:28:34 +08:00
@tinyproxy 时这样的,我最近找工作很不顺。半路出家,又没工作经验,由于对 Linux 有热情,所以学了 shell scripting 。说真的,现在有点不知所措了。不像搞 web 开发,自己搞个小网站,也算是有项目经验了,我现在充其量 Linux 用得比较熟练,但也没啥项目经验,这个就很难说服 HR 。所以不是我非要搞 LFS 不可,只是我希望找个 Linux 相关的工作,学以致用,仅此而已。如果您认为 LFS 不合适,那水平拓展 Linux 技能,应该怎么做呢?大侠如果能指点一二,感激不尽!
ibigbug
2016-11-03 21:39:39 +08:00
光会用 Linux 没用,跟你会在 Windows 里面看优酷视频,磁盘清理,注册表修复一样。你会装 LFS 在别人看来跟你会装 Windows 也没啥区别。装一次 gentoo 已经很折腾了,但是这对于我现在的工作没有任何直接帮助。

不过 Linux 相关的存储、网络、运维、分布式、集群、安全,随便哪个领域你搞一点,找个工作太轻松。
falcon05
2016-11-03 21:41:42 +08:00
想就业就考个 Linux 管理员的证书呗,比如 redhat 那个
liuxingou
2016-11-03 21:44:47 +08:00
我的一位姓金的朋友曾经翻译过 LFS 的一些文档,后来他好像做运维去了,如果这不是你的目的,推荐谨慎考虑时间消耗。
jerryshao1984
2016-11-03 21:45:25 +08:00
鸟哥的 linux 私房菜作为入门蛮好的作为入门 linux 蛮好的。但是如果你要真正了解操作系统的话还是要系统的学习, CSAPP 作为入门是极好的,但是最好是有 C 的基础。当你从事系统编程的时候需要对 posix 有更深的了解的话 UNIX 环境高级编程也是必须的。

上层的语言、框架如过眼云烟,但是底层的知识变化没有那么快,底层学得越好对于上层的各种东西掌握起来就越容易。不管你是做 java 还是 python ,最后最难解决和最有含金量的通常就是这些基础的东西。
tinyproxy
2016-11-03 21:46:13 +08:00
@ericgui 楼上给了几个职业方向,你想做哪个去招聘网站搜一圈职业要求,他们要求啥你补啥,没有几个公司上班工作就是编译系统的
ericgui
2016-11-03 22:36:11 +08:00
@ibigbug 目前在看 Networking 方面的书,似懂非懂,半懂不懂。用的是思科 CCNA 的教材。如果顺便考个 CCNA ,应该会有很多帮助的吧?
shijingshijing
2016-11-03 22:38:30 +08:00
@tinyproxy 你看到的最多的职位就是 java 和 web 的吧,哈哈
gefranks
2016-11-03 22:48:29 +08:00
其实我也想玩玩 LFS,长草很久了
特殊技在特定的时刻会闪光的
从最难的地方入门也不见得是什么坏事
ibigbug
2016-11-03 23:55:42 +08:00
@ericgui 我自己是搞 web 的,对网络了解的不全面。身边的人对网络比较熟悉的搞 ovs 、 vxlan 、 vlan 、大二层网络架构的,而且最近容器化比较火,可以了解一下。
johnnie502
2016-11-04 00:15:42 +08:00
这贴应该发在 mitbbs 的生物转行
hyyou2010
2016-11-04 00:22:30 +08:00
Linux 有很多方面,每个方面都可以很深入,很花时间,我个人觉得没必要那么执着于某个方向,还是根据工作需要来学习比较好。
通常而言,你应该先学操作系统原理和 c 语言,然后再说 linux 的各个方面。
ytpfxnj
2016-11-04 08:43:24 +08:00
先把鸟哥的书看过再说吧!两年前我也想学 LFS,想用 arch 和 gentoo ,后来还是乖乖地用了主流的 ubuntu , debian 。我曾经想找运维的工作,现在做的跟 linux 也没太大关系,不过 linux 还在用
ytpfxnj
2016-11-04 08:50:24 +08:00
有本书名为《 Linux 就是这个范儿》提到了 LFS ,不过如果 linux 经验不多,没用过 arch 和 gentoo 还是先别搞 LFS 了,从源码编译也没啥难的呀,主要就是解决各种依赖关系, ubuntu 随便下载个软件源码包, build 一下就编译了!想要深入学习 linux ,先去研究运行在 linux 上的各种软件吧, LAMP 什么的,学学 python ,这也是我现在做的事儿。

我个人只装过一次 arch ,花了几个小时,再也不想折腾了。
Panic
2016-11-04 08:58:27 +08:00
LFS 感觉主要认识各种恶心的 Makefile , automake 一类的,学学也不错
FifiLyu
2016-11-04 09:10:25 +08:00
还是别乱点技能树。有这个时间干点其它的吧!
不懂 C 和 Makefile 之类,对 Linux 不熟悉,基本就是挨刀的,是 LFS 玩你。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/317855

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX