V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
ericgui
V2EX  ›  Linux

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

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

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

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

    我个人只装过一次 arch ,花了几个小时,再也不想折腾了。
    Panic
        19
    Panic  
       Nov 4, 2016
    LFS 感觉主要认识各种恶心的 Makefile , automake 一类的,学学也不错
    mN71eOOprFyMsnPx
        20
    mN71eOOprFyMsnPx  
       Nov 4, 2016
    还是别乱点技能树。有这个时间干点其它的吧!
    不懂 C 和 Makefile 之类,对 Linux 不熟悉,基本就是挨刀的,是 LFS 玩你。
    linux40
        21
    linux40  
       Nov 4, 2016 via Android
    我同意一楼和楼上。。。
    haiyang416
        22
    haiyang416  
       Nov 4, 2016 via Android
    LFS 以前用了几十小时才编译完成,还是有教程,能看懂教程的情况下,感觉是比较费时的,特别是反复编译工具链。
    建议先熟悉一下 C 和编译流程之后再进行吧,话说完成了 LFS 的好处没有你想象的那么大,毕竟参考教程的情况下,大部分只是在执行,缺少思考。
    misaka19000
        23
    misaka19000  
       Nov 4, 2016 via Android
    Linux 是个大坑,唉,想学操作系统可以看看网易云课堂李志军老师的课程,有配套实验,还是蛮好的。想有挑战性去跟 MIT 6.828 吧,那里面的实验很不错。
    再说一句,操作系统是大坑。。。
    figofuture
        24
    figofuture  
       Nov 4, 2016
    认真看看 cookbook 就好了
    tinyproxy
        25
    tinyproxy  
       Nov 4, 2016 via iPhone
    @shijingshijing 难道除了 Java 跟 web 其他公司的业务是从头编译系统?或者需要从头编译系统这技能点?没几个公司玩的起系统开发好吧
    ryanzyy
        26
    ryanzyy  
       Nov 4, 2016
    继续 "学 Java Web 和 Python Web 开发" 先把 Linux 用熟吧
    Zach41
        27
    Zach41  
       Nov 4, 2016 via iPhone
    鸟哥的两本书, unp 和 apue ,还有 linux 系统编程手册两本书(和 unp , apue 很多内容重了),如果能耐心看完这些书,对 linux 的理解肯定是够了
    palfortime
        28
    palfortime  
       Nov 4, 2016
    当年大三的时候边上编译原理,边搞 LFS ,挺有感觉的,对 linux 的运行有了更深入了解。
    jackisnotspirate
        29
    jackisnotspirate  
       Nov 4, 2016
    只想说,搞那玩意太浪费时间,没用
    xi_lin
        30
    xi_lin  
       Nov 4, 2016 via iPhone
    @palfortime 编译原理不是都在学文法么,和 LFS 关系不大吧?
    matthewgao
        31
    matthewgao  
       Nov 4, 2016
    LFS 只要照着他的说明一步一步来就好,你不需要太多其他的知识,能处理写基本的编译问题和读懂 shell 就够了,主要是要有耐心。。。老慢了
    shijingshijing
        32
    shijingshijing  
       Nov 4, 2016
    @tinyproxy 我的意思是,现在外面招聘广告里面,要人要的最多的职位,是 web 前端和 java 开发吧。别理解错了。。。
    palfortime
        33
    palfortime  
       Nov 4, 2016
    @xi_lin 自举
    onionisi
        34
    onionisi  
       Nov 4, 2016
    做 LFS 本身就是一个学习的过程,主要处理好编译过程,特别是几次工具链的编译
    rlexs
        35
    rlexs  
       Nov 4, 2016 via Android
    按照教程做就行了,没什么难度的,唯一麻烦的就是编译时间太长了, i7 都得搞一天。
    introom
        36
    introom  
       Nov 4, 2016 via Android
    你搞 lfs 干嘛?搞完你还是不知道,除了和别人说,我有的是时间去耗,硬生生编译完了 lfs. 好好研究一下 ld, objdump 这些工具都比 lfs 实用。
    loading
        37
    loading  
       Nov 4, 2016 via Android
    跟着手册做一次,期间自己感悟吧。
    kelvansun
        38
    kelvansun  
       Nov 4, 2016
    搞搞 LFS 对提高对 Linux 的认识是有帮助的,但实用性不高。属于纯折腾
    proofreading
        39
    proofreading  
       Nov 4, 2016
    建立个微信群吧, 一起学习.
    tobylee
        40
    tobylee  
       Nov 4, 2016
    我的看法是,每个用 Linux 的都有必要搞搞 LFS ,做一遍 LFS 的目标不是让你学会搞 LFS ,在过程中只要你搞清楚每一步在做什么,那么对于 Linux 使用来说,基本上相当于全面的提升了功力。不管是 ArchLinux 还是 Gentoo 都是首先有了一个基本系统,而 LFS 教你做一个最基本的 Linux 系统,也许你按文档完成一遍得到的系统什么都做不了,但是对于了解 Linux 的帮助是不可小视的。不要担心你的系统啥用都没有,后面还 BLFS......




    反正我是在做完两遍 LFS 和 BLFS 后,就踏实的呆在 ArchLinux 阵营,到现在。
    findex
        41
    findex  
       Mar 13, 2017
    @tobylee LFS 是多么美妙的一件事。大家都是自学的。很多学计算机出身的只是皮毛而已,若不经风。当然你需要下更多的功夫。为什么要担心呢?其次,曾主做过 BFS BSD From Scratch 吗?
    iamdsy
        42
    iamdsy  
       Nov 3, 2017
    玩 lfs 是好多年前了,从最开始的 redhat 到 slackware,再到 ubuntu,中间折腾了一次 lfs 和 blfs,对 linux 的理解的确是有比较大的提高,但是,找工作其实没什么太大用处。

    真正要对找 linux 工作有帮助,还是得学编程序,建议从 Unix/Linux 编程实践教程开始学,入门比较容易。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2547 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 161ms · UTC 02:44 · PVG 10:44 · LAX 19:44 · JFK 22:44
    ♥ Do have faith in what you're doing.