Linux学习路线

学习linux,首先得看你想用linux做那方面的工作。你可以做一个系统管理员,也可以做一个linux服务器环境开发人员,也可以做网络通信方面的,甚至底层的可以向驱动程序发展。
先大概讲一下这些方面都做些什么吧。
系统管理不必多说,你得精通linux的命令和脚本,擅长处理各种数据文件,linux的脚本语言很多,shell是一种。系统管理员最主要的工作所管理维护Linux系统的配置环境,所以这项工作必须熟悉“命令行和脚本”。
环境开发:主要是利用linux现有的系统调用接口SCI,开发基于linux环境的应用程序。什么是SCI,简单来说,就是Linux内核提供的函数库。例如linux的函数read提供读文件的功能。那么环境开发是个什么样的工作呢?就是利用linux已经提供好的SCI这样一个库函数调用接口,去写一些支持linux系统环境的程序,举个例子,C语言程序员熟知的stdio.h就是依靠SCI编写出来的,环境开发就是在linux提供的SCI上面开发一些函数库,提供比较基本的功能例如数据文件管理,数据库管理等。数据文件管理也可以通过命令行来做,但是命令行做的功能不如环境开发编程能实现的功能强大和灵活。
网络编程:这是linux最为核心的功能之一。linux网络编程提供了在TCP和IP层编程接口,在上面进行的编程涉及到网络层次中的传输层,网络层,链路层。链路层更接近网卡等硬件,网络层和传输层提供了在不同主机之间传送数据的接口。如果能把Linux网络编程学好,那么看懂nginx这类http服务器源码不会有太大障碍,因为这类开源项目都使用了linux提供的TCP/IP等编程函数库。
驱动开发:如果说,你想进一步往底层硬件发展,使用linux为各种硬件设备写驱动程序,那么驱动开发就是linux一个不错的方向。驱动开发位于内核水平,所以当你做驱动开发的时候,往往需要一定程度的了解linux内核结构。
这里,我们梳理一下:
任何人学习linux都从最上面的用户层,即使用linux系统功能开始学起,最后才一点点的往底层发展。所以基本的学习顺序是:
linux命令行脚本–>Linux环境开发/网络编程–>linux驱动开发–>linux内核

因此给LZ建议的读书方案是这样的:
(1)学会“使用linux”

无论你往上面哪个方向发展,一开始要做的应当是学会使用linux的命令行和shell脚本,这一步帮助你了解“怎么使用Linux”。 推荐书籍《鸟哥linux私房菜(上卷)》(鸟哥的下卷是关于linux服务器架站方面的内容,如果你想利用linux搭建一个自己的网络服务器,那么可以看完上卷后继续看下卷),《linux命令行与shell脚本》(这本书主要教你使用shell脚本处理各种linux系统任务)
(2)学会“开发linux用户程序”
这里所说的是在linux提供的SCI库基础上进行编程,写一些应用程序。下面介绍的是本人学过的几本,都是出自同一个作者
unix高级环境编程:主要是关于如何使用linux函数库编写本地用户程序
unix网络编程(steven):主要所关于使用linux函数库编写跨主机网络通信程序
学习上面书籍过程中可能涉及到linux的I/O操作,多进程,进程通信等详细内容。一般我们在《操作系统原理》上面学的只是抽象的一些I/O操作和多进程的原理,但是上面两本书会告诉你当使用Linux平台的情况下,如何使用操作系统提供的这些功能。
注:UNIX系统和linux系统的SCI在很大程度上是相同的,我推荐你学习《unix网络编程》这本书,你不一定非得用unix系统去写上面的程序,在linux上面也能运行这些程序,unix和linux提供了相似的SCI。

(3)底层硬件开发
我不是做这方面工作的,我觉得如果开发硬件,最起码得学过《数字电路》《单片机》《嵌入式系统》。如果说linux涉及到底层硬件开发的书籍,我只能介绍《linux设备驱动程序》这本书,不过本人不做这方面,所以仅供参考。
(4)研究linux内核代码
这估计是很多大牛所从事过的事情:linux是一款开源系统,你可以下linux源代码下来研究linux这样一款系统是如何写出来的。不过直接看源代码估计对大部分人来说很挑战他们的记忆力和阅读能力。所以我提议LZ如果想研究LINUX内核代码,可以先从linux的架构开始了解,推荐书籍有:
《深入Linux内核架构》《深入理解linux内核》

最后请记住:学习一个操作系统的第一步,就是先学会怎么使用这个系统,所以赶紧安装一个linux发行版,无论是ubuntu还是centOS,安装好linux系统后,就开始在上面捣鼓命令和脚本吧,然后你就能体会到linux是一款多么强大的系统。如果你还想对linux做更为深入的了解,在熟悉了linux的命令行使用后,可以向内核或者编程开发进发。这是一段很长的路,祝LZ可以坚持下去,成为一个LINUX技术大牛。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值