AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 20972
Accepted
Stuart Woodward
Stuart Woodward
Asked: 2009-06-06 19:36:31 +0800 CST2009-06-06 19:36:31 +0800 CST 2009-06-06 19:36:31 +0800 CST

真正深入了解 Linux 的最佳资源是什么

  • 772
锁定。这个问题及其答案被锁定,因为这个问题离题但具有历史意义。它目前不接受新的答案或交互。

多年来,我一直是 Linux 用户。最近,我每天都在使用它。我正在寻找媒体的建议;商业书籍、免费信息、在线视频等将帮助我更深入地了解操作系统。请提出您的建议。

untagged
  • 19 19 个回答
  • 12175 Views

19 个回答

  • Voted
  1. Karl Katzke
    2009-06-06T19:53:05+08:002009-06-06T19:53:05+08:00

    理解 Linux 的最好方法是彻底破坏它,然后再修复它。

    • 16
  2. Evan Anderson
    2009-06-06T19:53:28+08:002009-06-06T19:53:28+08:00

    我不确定,当你说“更深层次”时,如果你在谈论更多地进入命令行(如果你能想象的话,有些人永远不会离开他们的发行版附带的 GUI),或者真的坚韧不拔的低级东西,比如编写内核驱动程序。我将假设前者多于后者。

    我建议您为使用 Linux 和在 Linux 上运行的应用程序(运行 Web 服务器、向 Windows 主机提供文件、提供 DHCP、运行图形桌面等)做的事情设定合理的目标。我坚信只有在“做”时才能学习。一旦你有了一个目标,就去追求它。这意味着阅读手册页(很多很多的手册页)、“HOWTO”文档、邮件列表档案、随机博客文章,当然还有你正在安装或编译运行的各种程序附带的文档盒子。

    讲授了几年的 IT 课堂认证课程,我相信我可以在一定程度上权威地说,我所看到的进步最大的学生是那些在做自己设计的疯狂项目,并在座位上学习的学生他们的裤子。

    正如我之前所说,手册页、“HOWTO”文档(http://tldp.org/docs.html以及 'net 上的许多其他地方)和邮件列表档案都是您的朋友。至少在这个阶段,我会避开任何谈论内核内部的书籍。你不需要那种深入的知识就可以开始。

    与其他人交谈。Server Fault 看起来是一个获得好建议的好地方。在这里提出问题,不要认为这样做会显得愚蠢。如果您可以与熟悉 Linux 的人进行一些“面对面的交流”,那就去吧。(尽管我建议您尝试将意见与事实分开。Linux 社区中关于如何做事的不同意见的“圣战”与任何其他社区一样多——考虑到社区的性质,也许更多.)

    要真正“深入”了解 Linux 的 Unix 遗产,您可能会查阅一些较旧的 Unix 特定管理或参考手册。我会在早期避开这些(至少在您能够理解与某些 Unix 派生的操作系统相比,Linux 的“未采取的路径”的历史性质之前)。

    不知道你的整体技能水平是什么,我会对一本我或可能没有帮助的书大喊大叫。我强烈推荐“TCP/IP 插图”(http://www.amazon.com/Illustrated-Volumes-Addison-Wesley-Professional-Computing/dp/0201776316)。它根本不是特定于 Linux 的,但是您将做很多与 TCP/IP 打交道的事情,以至于知道它“冷”是一件轻而易举的事。

    我想,简而言之,我是说没有魔法书或书籍,没有“大师”学习的超级秘密视频,但如果你坚持它并且不害怕,你可以学到的东西绝对没有限制弄脏你的手。

    • 10
  3. David Pashley
    2009-06-06T21:04:48+08:002009-06-06T21:04:48+08:00

    只有多年使用单个组件的经验才能让您深入了解。话虽如此,如果您不是傻瓜并且有超过 24 小时的时间,那么绝大多数 Oreilly Press 的书籍都写得很好而且很完美。:)

    有一个名为Linux From Scratch的项目,它向您展示了如何从零开始构建 linux 发行版。你可能会觉得做一次很有教育意义。这将非常耗时,因为您需要从源代码编译所有内容,最后您会将其全部丢弃。

    我发现LWN.net的内核页面对于跟上内核在高层次上的工作方式非常宝贵。

    • 10
  4. l0c0b0x
    2009-06-06T19:59:47+08:002009-06-06T19:59:47+08:00

    除了每天使用它(我认为这是一件很棒的事情!),我建议您开始考虑可以在 linux 机器上为您的网络实现的服务。开始基于 Linux 服务进行设计,一旦准备好就进行研究和实施。在此过程中可能会出现错误,而这种经验将帮助您更深入地了解操作系统。

    • 7
  5. Best Answer
    nik
    2009-06-06T20:00:37+08:002009-06-06T20:00:37+08:00

    您可以在 Linux 文档项目的指南页面找到一些免费指南。这是我从那里挑选的一个简短列表,但您应该滚动页面以找到您需要的内容。

    • Linux 简介 - 动手指南;2008 年 6 月
    • Linux 在路上;2005 年 11 月
    • Linux 系统管理员指南;2005 年 7 月
    • 高级 Bash 脚本指南;2009 年 3 月(是的,这也有助于理解 linux)

    您应该为您感兴趣的主题寻找特定的HOWTO 。另一个按日期排序的 HOWTO 列表。

    Linux 评论初学者页面上有一些初学者。

    最后,这是一本可在线获得的小书——Linux Kernel in a Nutshell。它是 2007 年版的 PDF 格式。

    您应该仅将这些参考资料用作开始您自己搜索所需内容的参考。

    • 6
  6. Ben Williams
    2009-06-07T02:30:16+08:002009-06-07T02:30:16+08:00

    对于一般的 Unix 哲学和对命令行的出色介绍,请参阅 Brian Kernighan 和 Rob Pike 的经典著作The Unix Programming Environment。

    此外,IBM 的DeveloperWorks网站的 Linux 部分有 900 多篇文章。您可以浏览文章列表以查找感兴趣的主题。

    最后,一旦您准备好深入了解细节,请前往源头。在kernel.org上获取您正在使用的内核版本的源代码(您的发行版也将包含您可以安装的内核源代码包)并查看 Documentation 目录。你会发现很多关于内核内部和配置设置的参考资料。

    • 5
  7. jldugger
    2009-06-06T21:02:26+08:002009-06-06T21:02:26+08:00

    学校。要真正了解 Linux 系统,您需要广泛的计算机科学系统背景。编译器、计算机体系结构和操作系统。你需要一个向导,他可以告诉你什么是重要的,并纠正你有或形成的任何误解。

    一旦您了解了现代处理器的工作原理以及 C 编译器如何利用它们,您就可以深入研究Minix 3 之类的书籍:

    Minix3

    这是 Linux 内核的作者 Torvalds(松散地)基于他的工作的最新版本的书。您将了解操作系统的基本组件和算法,以及如何准确地实现它们:文本附带了几乎完整的 Minix 源代码打印,以供参考和指导。查看中断处理程序以全面了解系统如何工作以及控制流向何处。

    在你嘲笑学校教育和计算机科学之前,重要的是要注意操作系统被要求做的工作通常是 NP 完全的。因此,了解各种可用算法对于性能调整至关重要,因为不会有可证明的最优算法。

    除了内核之外,还有许多其他领域。因为 Linux 是开源的,所以这是一个学术金矿。像 Debian 和 Ubuntu 这样的系统可以使用它们的源代码,而且非常简单:

    apt-get source package-name

    许多上游也将他们的代码托管在版本控制中,因此您可以阅读程序源代码的最新版本,甚至查看它是如何在几年前构建的。

    • 4
  8. Alexander Gromnitsky
    2009-06-07T09:19:50+08:002009-06-07T09:19:50+08:00

    只需开始构建您自己的发行版。我已经为自己做了,你知道吗?4 个月后,我对 Linux 内部结构的了解超过了我周围使用 Linux 超过 10 年的人。

    • 3
  9. voyager
    2009-06-07T17:49:52+08:002009-06-07T17:49:52+08:00

    来源。_

    当然,如果您指的是kernel。

    如果你想学习内核和 API 之上的系统,我会从学习 old school 开始Unix。也许尝试一些FreeBSD / OpenBSD / NetBSD / DragonflyBSD。一点Minix也可以提供帮助。然后转到Slackware、Arch、Debian和Gentoo。它们都是不同的(并 带有 大量的文档 ),在这些差异中,你的好奇心会让你搜索为什么会这样,你会获得很多技术、商业、政治和历史知识。

    另一种方法是去挖掘/etc旧的 Unix 手册,当然还有谷歌。

    从头开始 Linux是learningGNU/Linux 的好方法。

    • 3
  10. Avery Payne
    2009-06-30T14:24:25+08:002009-06-30T14:24:25+08:00

    在任何 *nix 环境中学习都是一种整体方法。它涉及一系列顿悟和体验。这不是偶然的。它是其设计的故意副产品,因为原始环境是为计算机程序员设计的。这也是它最大的缺点,因为重点是技术方面而不是用户体验。这是“一栋坚固框架的房子,可以在没有维修的情况下使用 100 年,但它的壁板是随意的,油漆显然被忽视了”。

    将其与 Windows 进行对比,后者是这一理念的镜像——做一些能给用户带来有形体验的事情,但保护他们免受事物内部运作的影响。这是“一栋装饰精美、油漆精美的房子,但基础却经过多次变通改造”。

    要真正开始学习,我建议构建具有特定于您的硬件选项的自定义内核映像,并使用您想要的选项安装它们。您应该完全预料到某些地方会发生故障,并且您可能会或可能无法将事情恢复到“正常”状态。这是该学习过程的正常部分,您应该将其视为事情会中断(即不要将此作为主要安装,使用单独的驱动器或虚拟机或其他东西......)

    我已经回答了一个类似的问题,所以为了减少打字,我会在这里交叉链接。您还需要阅读此页面上的前几段,这将使您更好地了解自己的目的。

    • 3

相关问题

  • 如何面试系统管理员候选人?[关闭]

  • 必须为 IT 架构师提供软件 [关闭]

  • 您订阅了哪些博客或 RSS 站点以跟上当前的技术?

  • 一份好的系统管理员简历是什么样的?[关闭]

  • 谁拥有最好的在线准备 MCSE 学习材料?[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve