精华内容
下载资源
问答
  • linux学习路线图.png

    2021-05-29 16:32:26
    linux学习路线图.linux学习路线图.linux学习路线图.linux学习路线图.
  • Linux 学习路线

    万次阅读 多人点赞 2019-11-04 11:27:09
    1.应用场景 ... 初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。 初级入门: Linux基础知识、基本命令(起源、组成、常用命令如cp、ls、fi...

    1.应用场景

    更加高效地学习并达到运用Linux.

    2.学习/操作

    linux运维学习需要分为四个阶段:初级入门、中级进阶、高级提升、资深方向细化。

    第一阶段:初级入门

    初级阶段需要把linux学习路线搞清楚,任何学习都是循序渐进的,所以学linux也是需要有一定的路线。

    初级入门:

    1. Linux基础知识、基本命令(起源、组成、常用命令如cp、ls、file、mkdir等常见操作命令)
    2. Linux用户及权限基础
    3. Linux系统进程管理进阶
    4. Linux高效文本、文件处理命令(vim、grep、sed、awk、find等命令)
    5. shell脚本入门(可边练习边学习)

    第二阶段:中级进阶

    中级进阶需要在充分了解linux原理和基础知识之后,对上层的应用和服务进行深入学习,其中说到服务肯定涉及到网络的相关知识,是需要花时间学习的。

    1. TCP/IP网络基础(差不多CCNA、NP的知识就够用)
    2. Linux企业常用服务(如dns、http、ftp、mail、nfs等)
    3. Linux企业级安全原理和防范技巧(系统性能/安全、安全威胁模型和保护方法
    4. 加密/解密原理及数据安全、系统服务访问控制及服务安全基础
    5. iptables安全策略构建
    6. shell脚本进阶(主要是结合一些应用,写一些案例)
    7. MySQL应用原理及管理入门(能管理和搭建一个个人博客站点)

    学到这里,掌握的基本技能,已经够用了,已经能做一些基础的运维工作和简单维护了。

    第三阶段:高级提升

    1. http服务代理缓存加速(其中主要学习varnish、nginx缓存系统,要对CDN的知识有所了解。)
    2. 企业级负载集群(其中主要学习nginx、haproxy、lvs要对主要知识熟练掌握,对负载均衡算法有清晰认识,)
    3. 企业级高可用集群 (其中需要对keepalived,heartbeat等进行深入讲解)
    4. 运维监控zabbix详解(主要是zabbix、cacti、nagios等监控系统,现在用的比较多的是zabbix)
    5. 运维自动化学习(需要学一些开源运维自动化工具的使用如ansible、puppet、cobbler等运维自动化工具)

    能掌握到这里,基本能处理搞定很多工作了,可以去面试高级运维工程师,差不多薪资能达到12-18K左右

    第四阶段:资深方向进阶

    1. 大数据方向(需要对hadoop、storm等常见开源大数据系统需要深入了解)
    2. 云计算方向(主要是openstack这套东西,当然像一些kvm等虚拟化技术,也是需要掌握的,现在docker也比较流行)
    3. 运维开发(主要是python运维开发)
    4. 自动化运维(在之前自动化基础上做深入)
    5. 运维架构师(主要需要广度,差不多5年左右以上经验,可以担当此职位)

    小编找到一个网站,上面有很多关于linux和python的课程资料,大部分都是免费的如果需要可以搜索

    ”门徒计划 - 学技术当然要跟大咖学!“

    拿走,不谢。

     

     

    书籍视频资源推荐:

    <<鸟哥的Linux私房菜>>

    <<一个64位操作系统的设计与实现>>

    <<从实模式到保护模式>

    https://github.com/chyyuu/os_kernel_lab  // 清华大学 操作系统 - 实验课

     

    汇编语言:

    <<汇编从零开始到C语言>> --- 网易云课堂

     

    更多资料推荐:

    https://blog.csdn.net/william_n/article/details/102892833  // 如何学习 Linux

    3.问题/补充

    1. 专栏教程

    https://time.geekbang.org/course/intro/100029601 // Linux实战技能100讲

    4.参考

    https://cloud.tencent.com/developer/article/1450836  //linux学习路线图

    https://time.geekbang.org/course/intro/100029601 // Linux实战技能100讲

    后续补充

    ...

    这里写图片描述

    展开全文
  • linux学习路线

    千次阅读 2018-07-03 11:00:04
    一、Linux 为何物Linux&nbsp;就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍下...

    一、Linux 为何物

    Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍下操作系统在整个计算机系统中的角色。

    我们的 Linux 也就是系统调用和内核那两层,当然直观的来看,我们使用的操作系统还包含一些在其上运行的应用程序,比如文本编辑器,浏览器,电子邮件。

    二、Linux 历史简介

    操作系统始于二十世纪 50 年代,当时的操作系统能运行批处理程序。批处理程序不需要用户的交互,它从文件或者穿孔卡片读取数据,然后输出到另外一个文件或者打印机。

    二十世纪六十年代初,交互式操作系统开始流行。它不仅仅可以交互,还能使多个用户从不同的终端同时操作主机。这样的操作系统被称作分时操作系统,它的出现对批处理操作系统是个极大的挑战。许多人尝试开发分时操作系统, 其中包括一些大学的研究项目和商业项目。当时有一个项目叫做” Multics “,它的技术在当时很创新。” Multics “项目的开发并不顺利。它花费了远超过预计的时间来完成,却没有在操作系统市场上占到多少份额。而参加该项目的一个开发团体-贝尔实验室退出了这个项目。他们在退出后开发了他们自己的一个操作系统—— UNIX。

    UNIX 最初免费发布并因此在大学里受到欢迎。后来,UNIX 实现了 TCP/IP 协议栈,成为了早期工作站的操作系统的一个流行选择。

    1990年,UNIX 在服务器市场尤其是大学校园成为主流操作系统,许多校园都有 UNIX 主机,当然还包括一些研究它的计算机系的学生。这些学生都渴望能在自己的电脑上运行 UNIX 。不幸的是,从那时候开始,UNIX 开始变得商业化,它的价格也变得非常昂贵。而唯一低廉的选择就是 MINIX ,这是一个功能有限的类似 UNIX 的操作系统,作者 Andrew Tanebaum 开发它的目的是用于教学。

    1991 年 10 月,Linus Torvalds(Linux 之父)在赫尔辛基大学接触 UNIX ,他希望能在自己的电脑上运行一个类似的操作系统。可是 UNIX 的商业版本非常昂贵,于是他从 MINIX 开始入手,计划开发一个比 MINIX 性能更好的操作系统。很快他就开始了自己的开发工作。他第一次发行的版本很快吸引了一些黑客。尽管最初的 Linux 并没有多少用处,但由于一些黑客的加入使它很快就具有了许多吸引人的特性,甚至一些对操作系统开发不感兴趣的人也开始关注它。

    Linux 本身只是操作系统的内核。内核是使其他程序能够运行的基础。它实现了多任务和硬件管理,用户或者系统管理员交互运行的所有程序实际上都运行在内核之上。其中有些程序是必需的,比如说,命令行解释器(shell),它用于用户交互和编写 shell 脚本(.bat文件)。 Linus没有自己去开发这些应用程序,而是使用已有的自由软件。这减少了搭建开发环境而所需花费的工作量。实际上,他经常改写内核,使得那些程序能更容易在 Linux 上运行。许多重要的软件,包括 C 编译器,都来自于自由软件基金 GNU 项目。GNU 项目开始于 1984 年,目的是为了开发一个完全类似于 UNIX 的免费操作系统。为了表扬 GNU 对 Linux 的贡献,许多人把 Linux 称为GNU/Linux(GNU 有自己的内核)。

    1992-1993 年,Linux 内核具备了挑战 UNIX 的所有本质特性,包括 TCP/IP 网络,图形界面系统(X window),Linux 同样也吸引了许多行业的关注。一些小的公司开发和发行Linux,有几十个 Linux 用户社区成立。1994 年,Linux 杂志也开始发行。

    Linux 内核 1.0 在 1994 年三月发布,内核的发布要经历许多开发周期,直至到达一个稳定的版本。

    下面列举一下 Linux 诞生大事件:

    • 1965 年,Bell 实验室、MIT、GE(通用电气公司)准备开发 Multics 系统,为了同时支持 300 个终端访问主机,但是 1969 年失败了;

     刚开始并没有鼠标、键盘,输入设备只有卡片机,因此如果要测试某个程序,则需要将读卡纸插入卡片机,如果有错误,还需要重新来过; Multics:Multiplexed Information and Computing Service

    •   1969 年,Ken Thompson(C语言之父)利用汇编语言开发了 FIle Server System(Unics,即 UNIX 的原型)

    因为汇编语言对于硬件的依赖性,因此只能针对特定硬件; 只是为了移植一款“太空旅游”的游戏;

    •  1973 年,Dennis Ritchie 和 Ken Thompson 发明了 C 语言,而后写出了 UNIX 的内核

    将 B 语言改成 C 语言,由此产生了 C 语言之父; 90% 的代码是 C 语言写的,10% 的代码用汇编写的,因此移植时只要修改那 10% 的代码即可;

    •  1977 年,Berkeley 大学的 Bill Joy 针对他的机器修改 UNIX 源码,称为BSD(Berkeley Software Distribution)

    Bill Joy 是 Sun 公司的创始人;

    •  1979 年,UNIX 发布 System V,用于个人计算机;
    •  1984 年,因为 UNIX 规定:“不能对学生提供源码”,Tanenbaum 老师自己编写兼容于 UNIX 的Minix,用于教学;
    •  1984 年,Stallman 开始 GNU(GNU’s Not Unix)项目,创办 FSF(Free Software Foundation)基金会;

    产品:GCC、Emacs、Bash Shell、GLIBC; 倡导“自由软件”; GNU 的软件缺乏一个开放的平台运行,只能在 UNIX 上运行; 自由软件指用户可以对软件做任何修改,甚至再发行,但是始终要挂着 GPL 的版权; 自由软件是可以卖的,但是不能只卖软件,而是卖服务、手册等;

    •  1985 年,为了避免 GNU 开发的自由软件被其他人用作专利软件,因此创建 GPL(General Public License)版权声明;
    •  1988 年,MIT 为了开发 GUI,成立了 XFree86 的组织;
    •  1991 年,芬兰赫尔辛基大学的研究生 Linus Torvalds 基于 gcc、bash 开发了针对 386 机器的 Linux 内核;
    •  1994 年,Torvalds 发布 Linux-v1.0;
    • 1996 年,Torvalds 发布 Linux-v2.0,确定了 Linux 的吉祥物:企鹅;

    UNIX进化史(UNIX大家族族谱1969-2013)

    三、Linux 重要人物

    1.Ken Thompson:C 语言之父和 UNIX 之父

    2.Dennis Ritchie:C 语言之父和 UNIX 之父

    3.Stallman:著名黑客,GNU 创始人,开发了 Emacs、gcc、bash shell

     

    4.Bill Joy:BSD 开发者

     

    5.Tanenbaum:Minix 开发者

    6.Linus Torvalds:Linux 之父,芬兰赫尔辛基大学

    四、Linux 与 Windows 到底有哪些不同

    1.免费与收费

    • 最新正版 Windows8.1 官方售价 ¥888;
    • Linux 免费或少许费用。

    2.软件与支持

    • Windows 平台:数量和质量的优势,不过大部分为收费软件;由微软官方提供重要支持和服务;
    • Linux 平台:大都为开源自由软件,用户可以修改定制和再发布,由于基本免费没有资金支持,部分软件质量和体验欠缺;有全球所有的 Linux 开发者和自由软件社区提供支持。

    3.安全性

    • Windows 平台:三天两头打补丁安装系统安全更新,还是会中病毒木马;
    • Linux 平台:要说 Linux 没有安全问题,那当然是不可能的,这一点仁者见仁智者见智,相对来说肯定比 Windows 平台要更加安全,使用 Linux 你也不用装某杀毒,某毒霸。

    4.使用习惯

    • Windows:普通用户基本都是纯图形界面下操作使用,依靠鼠标和键盘完成一切操作,用户上手容易入门简单;
    • Linux:兼具图形界面操作(需要使用带有桌面环境的发行版)和完全的命令行操作,可以只用键盘完成一切操作,新手入门较困难,需要一些学习和指导(这正是我们要做的事情),一旦熟练之后效率极高。

    5.可定制性

    • Windows:这些年之前算是全封闭的,系统可定制性很差;
    • Linux:你想怎么做就怎么做,Windows 能做到得它都能,Windows 做不到的,它也能。

    6.应用范畴

    或许你之前不知道 Linux ,要知道,你之前在 Windows 使用百度,谷歌,上淘宝,聊 QQ 时,支撑这些软件和服务的,是后台成千上万的 Linux 服务器主机,它们时时刻刻都在进行着忙碌的数据处理和运算,可以说世界上大部分软件和服务都是运行在 Linux 之上的。

    7.Windows 没有的

    • 稳定的系统
    • 安全性和漏洞的快速修补
    • 多用户
    • 用户和用户组的规划
    • 相对较少的系统资源占用
    • 可定制裁剪,移植到嵌入式平台(如安卓设备)
    • 可选择的多种图形用户界面(如 GNOME,KDE)

    8.Linux 没有的

    • 没有特定的支持厂商
    • 游戏娱乐支持度不足
    • 专业软件支持度不足

    五、如何学习 Linux

    1.学习心态

    • 明确目的:你是要用 Linux 来干什么,搭建服务器,做程序开发,还是日常办公,还是娱乐游戏;

    • 面对现实:Linux 大都在命令行下操作,能否接受不用或少用图形界面;

    • 是学习 Linux 操作系统本身还是某一个Linux发行版(Ubuntu,CentOS,Fedora,OpenSUSE,Debian,Mint 等等),如果你对发行版的概念或者它们之间的关系不明确的话可以参看Linux 发行版

    2.注重基础,从头开始

    大致的学习路径如下:


                </div>
                转载来源于  https://blog.csdn.net/qq_41848006/article/details/80807717
                版权归原作者所有
    
    展开全文
  • Linux学习路线

    万次阅读 2015-04-09 10:19:27
    自己的学习路线写一下最近个人的linux学习路线,学完后再好好参考其他人的:1.《Linux程序设计》- 靠它来入门,然后装一个linux系统,学习shell(bash)和linux C,把基础打牢; 2. 《深入理解Linux内核》和《Linux...

    自己的学习路线


    写一下最近个人的linux学习路线,学完后再好好参考其他人的:

    1.《Linux程序设计》- 靠它来入门,然后装一个linux系统,学习shell(bash)和linux C,把基础打牢;
    2. 《深入理解Linux内核》和《Linux内核设计与实现》:后者我已经粗粗看过一遍,值得细看,前者必须尽快看完;
    3. 《Linux设备驱动设计》:必买必看,实用性强;
    4.《Advanced Programing in Unix Envirement》:这本书貌似翻译不给力,我有高清英文电子版,慢慢看,不着急;

    剩下的根据需要具体学习吧,呵呵!

    别人的建议


    先学学编辑器,vim, emacs 什么的都行.

    然后学 make file 文件,只要知道一点就行,这样就可以准备编程序了.

    然后看看《C 程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看.

    如果想学习 UNIX/LINUX 的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷.这样基本上系统方面的就可以掌握了.

    然后再看 Douglus E. Comer 的《用 TCP/IP 进行网际互连》第一卷,学习一下网络的知识,

    再看《UNP》的第一卷,不仅学习网络编程,对系统编程的一些常用的技巧就很熟悉了,

    如果继续网络编程,建议《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议 telnet、ftp 等协议的编程.

    如果想写设备驱动程序,您的系统编程的接口比如文件、IPC 等要熟知了,再学习《LDD》

    对于几本经典教材的评价


      《The C Programing Language》K&R 经典的 C 语言程序设计教材,作者是 C 语言的发明者,教材内容深入浅出.虽然有点老,但是必备的一本手册,现在有时候我还常翻翻.篇幅比较小,但是每看一遍,就有一遍的收获.另外也可用谭浩强的《C 语言程序设计》代替.
      《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens 的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料.国内的翻译的《UNIX 环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易.
      **《Unix Network Programing》**W.Richard Stevens:第一卷讲 BSD Socket 网络编程接口和另外一种网络编程接口的,不过现在一般都用 BSD Socket,这本书只要看大约一半多就可以了.第二卷没有设计到网络的东西,主要讲进程间通讯和 Posix 线程.看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2 概括了.看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的.国内是清华翻译得《Unix 网络编程》,翻译者得功底也比较高,翻译地比较好.建议还是看中文版.
    《TCP/IP 详解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用.我没有怎么看过.,但是据说也很经典的,我没有时间看卷二,不便评价.
      **《用 TCP/IP 进行网际互连》**Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议.感觉
      上这一套要比 Stevens 的那一套要好,就连 Stevens 也不得不承认它的第一卷非常经典.事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌.第一卷中还有很多习题也设计得经典和实用,作者本身就是一位教师,并且卷一是国外研究生的教材.习题并没有答案,留给读者思考,问题得答案可以让你成为一个中级的 Hacker,这些问题的答案可以象 Douglus 索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典.如果您看过 Qterm 的源代码,就会知道 Qterm 的 telnet 实现部分大多数就是从这本书的源代码过来的.对于网络原理的书,我推荐它,而不是 Stevens 的《TCP/IP 祥解》.
      《Operating System - Design and Implement》这个是讲操作系统的书,用 Minix做的例子.作者母语不是英文,英文看起来比较晦涩.国内翻译的是《操作系统设计与实现》,我没看过中文版,翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了.读了这本书,对操作系统的底层怎么工作的就会有一个清晰的认识.
      **《Linux Device Driver》**2e,为数不多的关于Linux设备驱动程序的好书.不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北.国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截.要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解.

    最后的建议


    Linux学习的路线图:


    了解Linux 的基础知识;
    掌握50个以上的常用命令;
    掌握.tgz、.rpm等软件包的安装方法;
    学习添加外设,安装设备驱动程序;
    熟悉Linux文件系统和目录结构;
    掌握vi,gcc,gdb等常用工具;
    理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。

    随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:
    不知从何处开始学起。作为一个Linux系统管理员,我看了许多有关Linux的文档和书籍,并为学习Linux付出了许多艰苦的努力。
    当真正获得了一份正式的Linux系统管理工作后,我更加深刻地理解了Linux的灵魂:服务与多用户。
    Linux系统知识是非常广博的,但是只要掌握了重点知识,管理它并没有想象中的那么可怕。

    在下面我会将作为系统管理员的一些工作心得和总结出来的经验系统地介绍给大家。

    一、 学习的目的


    通过Linux的学习掌握UNIX的目的想必不用多说了,在这个网络人才身价倍增的年代,想靠技术吃饭又不想掌握网络和编程技术是不明智的。当一人第一次听说Linux并跃跃欲试的时候,总会提出几个?,它是什么(What)? 为什么要用它(W hy)? 怎样学习它(How)?做为开放源码运动的主要组成部分,Linux的应用越来越广泛,从我们平时的娱乐、学习,到商业、政府办公,再到大规模计算的应用。为了满足人们的需求,各种各样的、基于Linux的应用软件层出不穷。只要具备了LinuX的基本功,并具有了自学的能力之后,都可以通过长期的学习将专项内容予以掌握。

    二、 从命令开始从基础开始


    常常有些朋友一接触Linux 就是希望构架网站,根本没有想到要先了解一下Linux 的基础。这是相当困难的。虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
    l 安装和登录命令:login、 shutdown、 halt、 reboot 、mount、umount 、chsh
    l 文件处理命令:file、 mkdir、 grep、dd、 find、 mv 、ls 、diff、 cat、 ln
    l 系统管理相关命令: df、 top、 free、 quota 、at、 lp、 adduser、 groupadd kill、 crontab、 tar、 unzip、 gunzip 、last
    l 网络操作命令:ifconfig、 ip 、ping 、 netstat 、telnet、 ftp、 route、 rlogin rcp 、finger 、mail 、nslookup
    l 系统安全相关命令: passwd 、su、 umask 、chgrp、 chmod、chown、chattr、sudo、 pswho

    三、 选择一本好的Linux书籍


    无论在论坛还是读者反馈中,我们看到最多的问题往往是某个新手,在安装或使用linux的过程中遇到一个具体的问题就开始提问, 很多都是重复性的问题, 甚至有不少人连基本的问题描述都不是很清楚。这说明很多初学linux的人还没有掌握基本功。怎样才能快速提高掌握linux的基本功呢? 最有效的方法莫过于学习权威的linux工具书,工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于linux的书籍有很多不过精品的不多,笔者强烈建议阅读影印本的“o’reilly原版linux图书http://www.oreilly.com.cn/ ”,而且出版社还提供了一个非常好的路线图:http://www.oreilly.com.cn/guide/guide_linux.php 见图-1。
    这里写图片描述

    关于书籍

    常常有人问:我想学习内核,需要什么基础吗?Linus Torvalds本人是这样回答的:你必须使用过Linux。 这个……还是有点太泛了吧,我想下面几个基础可能还是需要的,尽管不一定必需:

    1, 关于操作系统理论的最初级的知识。不需要通读并理解《操作系统概念》《现代操作系统》等巨著,但总要知道分时(time-shared)和实时(real-time)的区别是什么,进程是个什么东西,CPU和系统总线、内存的关系(很粗略即可),等等。

    2, 关于C语言。不需要已经很精通C语言,只要能熟练编写C程序,能看懂链表、散列表等数据结构的C实现,用过gcc编译器,就可以了。当然,如果已经精通C语言显然是大占便宜的。

    3, 关于CPU的知识。这块儿可以在学习内核过程中补,但这样的话你就需要看讲解很详细的书,比方后面将会提到的《情景分析》。你是否熟悉Intel 80386 CPU?尝试着回答这几个问题来判断一下:1)说出80386的中断门和陷阱门的区别;2)说出保护模式与实模式的区别;3)多处理器机器上,普通的读-改-写回一块内存这样的动作,为什么需要特殊的手段来保护。等等。讲解基于其它CPU的Linux内核的书,目前好象只有一本《IA64Linux内核:设计与实现》──也还是Intel的,其它都是讲解基于IA32的。

    以上算是知识方面吧,如果还要再补充一条,我想就是:动手编译过内核。

    好了,我们接下来走。好多人装上Linux之后,第一件事找到内核源码所在的路径,打开一个C程序文件,开始哗哗哗翻页,看看大名鼎鼎的Linux内核代码到底长啥模样──然后关闭。这是可理解的,但却不是学习的方法。刚开始,必须从读书入手。至少要对内核有一个Overview之后,才有可能带着问题去试图阅读源代码本身。 [/color:8c0c3b6f46]下面就讲一下我读过的几本书:

    1, 《Linux内核设计与实现》,英文名Linux Kernel Development(所以有人叫它LKD),机械工业出版社,¥35, 美国Robert Love著,陈莉君译者。 评说:

    此书是当今首屈一指的入门最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。这本书讲解浅显易懂,全书没有列举一条汇编语句,但是给出了整个Linux操作系统2.6内核的概观,使你能通过阅读迅速获得一个overview。而且对内核中较为混乱的部分(如下半部),它的讲解是最透彻的。对没怎么深入内核的人来说,这是强烈推荐的一本书。

    翻译:翻译水平、负责任程度都不错,但是印刷存在一些错误。买了此书的朋友可以参考我在Linux高级应用版的《Linux内核设计与实现中文版勘误》:

    http://bbs.chinaunix.net/forum/viewtopic.php?t=541234

    另外,此书2005年有了第二版,目前尚无中译本面世。我就是对照着2nd-en勘误1st-cn的。

    2, 《Linux内核源代码情景分析》上、下。毛德操、胡希明著,浙江大学出版社,上册¥80,下册¥70. 评说:

    本书是基于2.4.0内核的,比较早,也没听说会出第二版。上册讲解内存管理、中断、异常与系统调用、进程控制、文件系统与传统Unix IPC;下册讲解socket、设备驱动、SMP和引导。关于这套书的评价褒贬不一,我个人认为其深度是同类著作中最优秀的。本书基于Intel IA32体系,由于厚度大,很多体系上的知识都捎带讲解了,所以如果你想深入了解内核的工作机制而又不非常熟悉Intel CPU的体系构造,本书是最合适的。缺点是:版本较老,没有TCP/IP协议栈部分(它讲的socket只是Unix域协议的),图表太少,不适合初学者入门。还有就是对学生朋友来说,可能书价偏高,这样的话可以考虑先买上册,因为上册是核心部分,下册一大部分都在讲具体PCI/ISA/USB设备的驱动。

    翻译:没什么翻译,作者是国人,而且行文流畅。本人书桌上诸多计算机经典图书当中,这套是唯一又经典又无阅读障碍的。

    www.linuxforum.net内核版好多朋友已经把这书读到六七遍了,我很惭愧,上册差不多读熟了,下册就SMP部分还看过──但这就花费了整整1年的时间,还有好多弄不懂的。这里顺便说明另外一个研究内核常见的误区:目标太庞大。要知道Linux内核(最新的2.6.13)bzip2压缩之后37M,解压缩之后244M,根本不是哪个人能够吃透的。即使是内核的核心开发团队中,恐怕也只Linus Torvalds、Alan Cox、David Miller、Ingo Molnar寥寥数人会有比较全面的了解,其它人都是做自己专门的部分。 我自己来说,目前已经决定放弃内存管理的全部(slab层、LRU、rbtree等)、文件系统部分、外设驱动部分,暂时也没打算弄IA32以外的其它体系的部分。

    3, 《深入理解Linux内核》第二版。中国电力出版社。也是陈莉君译。此书是Linux内核黑客在推荐图书时的首选。 评说:

    此书C版的converse兄送了我一本第一版,因此就没买第二版,比较后悔。因此只就第一版说一说,第一版基于2.2,第二版2.4 。我见O’Reilly官方主页上说第三版的英文版将于2005年11月出版,也不知咱们何时才能见到。此书图表很多,形象地给出了关键数据结构的定义,与《情景分析》相比,本书内容紧凑,不会一个问题讲解动辄上百页,有提纲挈领的功用,但是深度上要逊于《情景分析》。

    4, 其它的几本书。市面上能见到的其它的Linux内核的图书,象《Linux设备驱动程序》、《Linux内核源代码完全注释》以及新出的《Linux内核分析及编程》等。

    《Linux设备驱动程序》第二版是基于2.4的,中文翻译不错,中国电力出版。这书强调动手实践,但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧,不太适合那些For fun and profit的人。此书有第三版英文版,东南大学出版社影印,讲解2.6的,行文流畅,讲解的面也比第二版更广泛,我读过其中关于同步与互斥、内存分配的部分,感觉很不错。

    《Linux内核源代码完全注释》(机械工业出版社)是同济大学的博士生赵炯的著作,讲解0.1Linux内核,我没买也没看,有看过的朋友说一说。

    《Linux内核分析及编程》(电子工业出版社)是刚刚出版的,国人写的,讲解2.6.11 。很多人说好,但有人说不够系统,我没买,不敢评说。

    还有一本清华出的《Linux内核编程指南(第三版)》,原书应该是好书,但是翻译、排版十分糟烂,脱字跳行,根本没法看,我买了一本又扔掉了。

    5, 其它资源。 TLDP(The Linux Documentation Project)有大量文档,其中不少是关于内核的,有些是在国外出版过的,象《Linux Kernel Interls》《The Linux Kernel》《Linux Kernel Module Programming Guide》等,作者都是亲身参加开发的人,著作较为可信。

    Http://www.linuxforum.net

    中国Linux论坛的内核版。该版是研究内核的中文Linux社区中水平最高的,有很多专家级别的牛人,强烈推荐去学习一下(但建议不要问太过分简单的问题,人家脾气再好也会烦的^_^),它的置顶贴简直是一个包罗万象的FAQ,精华区也有很多资料。只可惜太过曲高和寡,人气不是很旺。

    6, 一本不是讲解Linux的书:《现代体系结构上的Unix系统:内核程序员的SMP和Caching技术》,人民邮电出版社2003版,定价¥39. 本书虽然不是讲解Linux,但是对所有Unix内核都是适用的,适合对SMP和CPU的Cache这些组成原理知识不是很熟的朋友,而且是很多国外牛人推荐的书。中文版翻译非常负责。

    还有个很重要的问题:怎样浏览内核源代码。有的朋友喜欢在Windows上工作,用Source Insight;有的在Linux,用Source Navigator;还有专门浏览源代码的软件,象lxr(Linux Cross Reference);还有用ctags/ectags/cscope等,这些都是很优秀的软件。我个人用Vim ctags浏览(参考了www.linuxforum.net内核版wheelz大侠的文档,)。

    此外,前边已经提到的一个重要的问题是:你研究内核的目的是什么, 开发? 乐趣?如果是开发,而且是国内做开发,把kernel API熟悉一下就差不太多了(你也知道国内的水平有多差),比方说copy_from_user()、kmalloc()函数等,kernel API在Internet上找得到,编译内核时也可以用DocBook生成(具体请参考内核源代码包下的README文件);如果是研究,那就差别很大了,需要下很大的苦功:会用kmalloc()绝不说明你懂得Linux内核的虚存管理子系统,正如同会讲汉语不说明你懂中国文化一样。

    说完了,发现前面讲的太罗嗦了,简化一下:

    1, 动手编译内核

    2, 精读《Linux内核设计与实现》

    3, 上www.linuxforum.net内核版看置顶贴与精华区

    此外就凭自己兴趣选择吧。

    下面是一篇没写完的《Linux内核模块编程入门》,不补写了,将就着看吧。

    Linux内核模块编程入门

    看到昨天有好几个问linux内核编程问题的帖子,不少是卡在了入门问题上,就整理一下入门的初步流程。针对2.6内核的Linux系统,需要你的机器上已经安装了kernel-devel这个包,也就是编译模块所必须的东西:内核的头文件和一些Makefile。

    一,Hello World程序:

    [code:1:fbc83fc10a]/*file: hello.c*/
    
    #ifndef __KERNEL__
    
    #define __KERNEL__
    
    #endif
    
    #ifndef MODULE
    
    #define MODULE
    
    #endif
    
    #include
    
    #include
    
    #include
    
    static int hello_init(void)
    
    {
    
    printk(KERN_ALERT "Hello, The fucking crazy world/n");
    
    return 0;
    
    }
    
    static void hello_exit(void)
    
    {
    
    printk(KERN_ALERT "Bye, The fucking crazy world!/n");
    
    }
    
    module_init(hello_init);
    
    module_exit(hello_exit);
    
    MODULE_LICENSE("GPL");
    
    MODULE_AUTHOR("albcamus ");[/code:1:fbc83fc10a]

    2.6内核的kbuild子系统跟2.4相比有本质的改变。我们下面尝试两种方式编译这个程序:

    1, 你可以在本目录下这样写一个Makefile

    [code:1:fbc83fc10a]obj-m := hell.o
    
    clean:
    
    rm -rf *.o .*.cmd *.ko *.mod.c .tmp_versions[/code:1:fbc83fc10a]

    然后用这样的命令行编译:

    make -C /lib/modules/`uname -r`/build M=`pwd` modules

    这时ls一下,就能看到生成了很多文件,其中hello.ko就是我们需要的内核模块。

    2, 专业点儿,Makefile这样写:

    [code:1:fbc83fc10a]obj-m := hello.o
    
    KERNELBUILD := /lib/modules/`uname -r`/build
    
    default:
    
    make -C $(KERNELBUILD) M=$(shell pwd) modules
    
    clean:
    
    rm -rf *.o .*.cmd *.ko *.mod.c .tmp_versions[/code:1:fbc83fc10a]

    然后只要make一下就可以了。

    插入模块用insmod命令:

    insmod ./hello.ko

    这时候大家可能会问:为什么我的屏幕上没有见到输出?这个是console的日志记录级别和你printk消息时指定的级别(本例中指定为KERN_ALERT,为次高,仅次于KERN_EMERG)决定的。无论如何,你可以tail 或者cat看看系统日志的最后几行,系统日志一般为/var/log/messages,或者直接用dmesg命令,肯定能看到输出了。

    二,头文件问题。

    C程序员都知道,要使用某个外部的函数,应当#include某个头文件,这个头文件包含了那个函数的原型(prototype)。内核的头文件在include/下,其中include/asm是个符号链接,指向你所用内核的具体的体系结构目录,比方说我的系统是i386的,那么include/asm就指向include/asm-i386 。

    内核编程中我们不能链接libc库,不能使用libc库中的函数,所以很有些麻烦。一些重要的函数,象strcpy/strcmp/snprintf等,kernel也为我们实现并导出(export)了,而我们需要#include相关的头文件,在include/linux和include/asm中,你需要自己寻找你所要使用的函数在哪个头文件中声明,并将其#include进来。

    四 、养成在命令行下工作


    一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。

    五、用Unix思维思考Linux


    由于Linux是参照Unix的思想来设计的,理解和掌握它就必须以Unix的思维来进行,而不能以Windows思维。不可否认,windows在市场上的成功很大一部分在于技术思想的独到之处。可是这个创新是在面对个人用户的前提下进行的,而面对着企业级的服务应用,它还是有些力不从心。多年来在计算机操作系统领域一直是二者独大:unix在服务器领域,Windows在个人用户领域。由此可见,用户需求决定了所采用的操作系统。不管什么原因,如果要学习Linux,那么首先要将思维从Windows的“这个小河” 中拖出来,放入Unix的海洋。

    六 、学习shell


    对于Shell(中文名称壳),习惯Windows的读者肯定是非常陌生的,因为Windows只有一个“Shell”(如果可以说是Shell的话),那就是Windows自己。用一句话容易理解的解释就是,shell是用户输入命令与系统解释命令之间的中介。最直观的说法,一种Shell有一套自己的命令。举一个容易理解的例子,Linux的标准Shel是Bash Shel;Solaris的shell是B shell;Linux的Shell是以命令行的方式表现出来的。读者可能会不理解,Windows从命令行“进化”到了图形界面,那么Linux现在还使用命令行岂不是一种倒退?

    当初我刚刚接触Linux时就曾有过这种想法。可是后来发现,如果使用图形界面,那么分配给应用软件的资源就少了,在价格昂贵的服务器上,能够以较低的硬件配置实现同样的功能是非常重要的。
    下面举例说明,一台服务器有1GB内存,假设其中512MB用于处理图形界面,若要安装一个需要784MB内存的数据库软件,惟一的办法就是扩大内存。但是如果使用命令行,系统可能只需要64MB内存,其它的内存就可以供数据库软件使用了。使用命令行,不仅是内存,而且CPU及硬盘等资源的占用都要节省很多。所以,作为服务器使用命令行是优点而不是缺点。既然Shell有这么多优点,就必须要学习它。

    七、勤于实践


    要增加自己Linux 的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个 Linux 发行版本,然后进入精彩的Linux世界。相信对于你自己的 Linux 能力必然大有斩获。此外,人脑不像计算机的硬盘一样,除非硬盘坏掉了或者是资料被你抹掉了,否则储存的资料将永远而且立刻的记忆在硬盘中。在人类记忆的曲线中,你必须要不断的重复练习才会将一件事情记得比较熟。

    同样的,学习 Linux 也一样,如果你无法经常学习的话,学了后面的,前面的忘了。你对Linux命令熟悉后你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。当然你不需搭建所有服务,可以慢慢来。需要说明的是这个Linux网络对于初学者有两三台计算机即可。自己多动手,不要非要等着别人帮你解决问题。

    八、学会使用文档


    和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。

    当查找文档时, 一定要看文档是在何种版本、何种环境及何种状态下出现的何种结果。对于文档的有效性, 一时还无法在操作前就知道结论如何, 那么对某个专题或问题,阅读相关的多篇文章将会节省大量的时间, 还可以保证尽量“干净”的环境,有效避免因为不同操作所造成的更多问题。操作时要仔细核对各个步骤及输出的结果,尽量保持与文档一致。

    九、在Linux论坛获取帮助


    如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得 不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。

    你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。另外把这个问题放在其他Linux社区请求帮助也是一种选择。如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。

    十、学习专业英文


    如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的,最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。
    通过man、info等命令,可以从在线帮助中快速地获得所需要的命令和操作方法。不要害怕海量的系统帮助,仔细阅读几个man或info文档就会发现,这些帮助几乎都按照固定格式写成一命令名称、参数、参数说明、使用例子、参考等。当英语成为一种习惯, 就会自觉地查找或订阅互联网上感兴趣的英文材料。这样,在不知不觉中就已经和世界同步。

    十一、在社区共享你的经验


    随着Linux应用的扩展,出现了不少Linux社区。其中有一些非常优秀的社区:水木清华、其中有一些非常优秀的社区:www.linuxforum.net(国内最高水平GNU站点)、http://www.chinaunix.net/ (中国最大的Unix技术社区),随着知识的不断积累,就可以把自己动手解决一些前人没有遇到的问题写出文档在网络上共享给其他读者。这个时候, 也就成为了一名“高手”。Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。

    最后是一个笔者的Linux学习的路线图(roadmap):


    l 了解Linux 的基础知识,这些包含了用户管理、群组的概念、权限的观念等;
    l 掌握至少50个以上的常用命令;
    l 掌握.tgz、.rpm等软件包的常用安装方法
    l 学习添加外设,安装设备驱动程序(比如网卡)
    l 熟悉Linux文件系统 和目录结构。
    l 掌握vi,gcc,gdb等常用编辑器,编译器,调试器 。
    l 理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
    l 网络的基础包括: 掌握路由概念、OSI七层网络模型、TCP/IP模型及相关服务对应的层次对于Linux学习非常重要的。然后学习Linux环境下的组网。

    Linux内核书籍


    LKD《Linux内核设计与实现》


    本书重在原理。适合入门的最佳图书。作者是为2.6内核加入了抢占的人,对调度部分非常精通,而调度是整个系统的核心,因此本书是很权威的。
    

    ULK《深入理解Linux内核》


    此书比上一本多了些细节。是Linux内核黑客在推荐图书时的首选。写的比较简单易懂,适合刚刚接触LINUX内核的。

    此书图表很多,形象地给出了关键数据结构的定义,与《Linux内核源代码情景分析》相比,本书内容紧凑,不会一个问题讲解动辄上百页,有提纲挈领的功用,但是深度上要逊于《Linux内核源代码情景分析》。

    LDD3《LINUX设备驱动程序(第3版)》


    这书强调动手实践!但它是讲解“设备驱动”的,不是最核心的东西,而且有些东西没硬件的话无法实践,可能更适合驱动开发的程序员吧

    其中关于同步与互斥、内存分配的部分,感觉很不错。

    《Linux内核源代码情景分析》


    好,很经典,是浙大教授毛德操写的,可惜成书于2001年之后一直没有更新。分上下册。
    很多是基于2.4内核讲解的需要注意。如果学习的话也建议学习2.6,2.6跟2.4比发生了很多显著改善,应该学习的。
    全书内容博大精深,不是非常好懂,对细节问题描述比较清晰。但是感觉对内核的整体感觉不够强。另外缺少网络部分的分析。觉得不是很适合初学者。

    《Linux内核源代码分析》


    点评:面对中高级,这本书很好,对了解操作系统是一本不可多得的好书。
    

    《LINUXKERNEL技术手册》


    参考手册,很薄,值得一看。
    

    《深入Linux内核架构》


    这本书针对的是比较新的内核版本2.6.24;内容比较全面,深入浅出。
    如果没有对Linux内核的初步结构的认识,那么会看得比较吃力。建议可以一边去翻在国内已经闻名已经久的四本Linux内核著作(《Linux内核原代码情景分析》、《Linux内核设计与实现》、《深入理解Linux内核》、《Linux设备驱动程序》),再一边看这本书,把这本书当作一个补充或者当作一个内核框架图谱说明书来阅读,收效会更好。
    

    《Linux内核完全注释》


    主要描述和注释了Linux0.11内核全部源代码。对于初学Linux内核操作系统的人来讲,该书能够引领读者快速入门,并且能全面了解一个简单操作系统的工作机理。对于进一步学习现在的Linux内核具有非常大的指导作用。对于学习嵌入式应用的技术人员来讲,通过《完全注释》一书的学习也能迅速融入嵌入式应用领域。
    

    《Orange S:一个操作系统的实现》


    从只有二十行的引导扇区代码出发,一步一步地向读者呈现一个操作系统框架的完成过程。
    

    《30天自制操作系统》


    小日本写的,不过确实写的内容很好,讲怎么自己一步步写操作系统,从汇编到C都有涉及。
    

    《深入理解Linux虚拟内存管理》


    简称LVMM,是一本介绍Linux虚拟内存管理机制的书。如果你希望深入的研究Linux的内存管理子系统,仔细的研读这本书无疑是最好的选择。
    

    《深入理解LINUX网络内幕》


    一本讲解网络子系统实现的书,通过这本书,我们可以了解到Linux内核是如何实现复杂的网络功能的。
    
    以上5本书籍被作者堪称是久经考验的神作(概括为“2+1+2”,第一个2是指2本全面讲解内核的书,中间的1指1本讲解驱动开发的书,后面的2则指2本有关内核具体子系统的书,希望这5本书籍能同样对你有用。
    
    展开全文
  • 下面说说自己的一些见解和大家讨论下Linux学习路线,Linux操作系统学习路线其实真的学习起来并不难。 但是Linux运维真的这么好学么,这一点,我可以很负责任的告诉你,是真的好学,因为我就是零基础学习运维。 li...

    大家都知道,在现在这个信息化飞速发展的时代,IT技术火速发展,信息的重要性,可想而知。现在,在北京当一个高级运维工程师,年薪百万已经不是梦想。当然我也想,谁不想挣大钱,开好车,住好房。下面说说自己的一些见解和大家讨论下Linux学习路线,Linux操作系统学习路线其实真的学习起来并不难。

    但是Linux运维真的这么好学么,这一点,我可以很负责任的告诉你,是真的好学,因为我就是零基础学习运维。

    linux其实就是一个操作系统,和我们平时常用的windows一样,windows系统我们不也是一点点学习使用的么。那么,windows你能学会,linux你也一定能学会。

    linux不像python,掉头发的,我们不干。

    linux不像大数据,需要计算机的底子,linux零基础也能学。

    linux不像java,我们不是开发,我们是运维。

    Linux是一种自由和开放源代码的类UNIX操作系统,该操作系统的内核由林纳斯托瓦兹在1991年首次发布。Linux是自由软件和开放源代码软件发展中最著名的例子。只要遵循GNU通用公共许可证,任何个人和机构都可以自由地使用Linux的所有底层源代码,也可以自由地修改和再发布。随着Linux操作系统飞速发展,各种集成在Linux上的开源软件和实用工具也得到了应用和普及,因此,Linux也成为了开源软件的代名词。

    初学者入门首选——Centos系列

    CentOS现在拥有庞大的网络用户群体,网络Linux资源基本80%都是基于CentOS发行版的,如果在学习过程中遇到任何问题,在网络中可以较容易地搜索到解决方案。

    CentOS应用范围广,具有典型性和代表性,现在基本所有的互联网公司后台服务器都采用CentOS作为操作系统,可以说学会了CentOS,不但能迅速融入企业的工作环境,还能触类旁通,其他类似的Linux发行版也能很快掌握。同时,现在周围学习Linux的用户一般也都是以CentOS为主的,这样交流方便,学习中出现问题,更容易得到解决。最主要的是CentOS的安装和使用也是最简单的,因此基本上不会在“装系统”上浪费过多时间。

    在学习linux操作系统的时候,我们一定要养成良好的学习习惯

    首先,我们一定要习惯命令行方式,Linux是由命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平,命令行方式的操作永远是不会变的。

    理论结合实践,有很多初学者都会遇到这样一个问题,自己对系统的每个命令都很熟悉,但是在系统出现故障的时候,就无从下手了,甚至不知道在什么时候用什么命令去检查系统,这是很多Linux新手最无奈的事情了。说到底,就是学习的理论知识没有很好地与系统实际操作相结合。

    学会独立思考问题,独立解决问题。遇到问题,首先想到的应该是如何自己去解决这个问题,解决方式有很多,比如看书查资料、网络搜索引擎搜索和浏览技术论坛等,通过这几种方式,90%的问题都能得到解决,独立思考并解决问题,不但锻炼了自己独立解决问题的能力,在技术上也能得到快速提高。如果通过以上方式实在解决不了的话,可以向人询问,得到答案后,你要思考为何这么做,然后做笔记记录解决过程。最忌讳的方式是只要遇到问题,就去问人,虽然这样可能会很快解决问题,但是长久下去遇到问题就会依赖别人,技术上也不会进步。

    学习专业英语,如果想深入学习Linux,一定要尝试去看英文文档。因为,技术性的东西写的最好的,最全面的文档都是英语写的,最先发布的高新技术也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看Readme文档,再看Install文档,然后看FAQ文档,最后才动手安装,这样遇到问题就知道原因了。

    但是,英语虽说重要,有些人会说学不会,不想学英语,但是我要告诉大家,其实我也不喜欢英语,但是学着学着你会发现,每天遇到的都是那些单词,根本不需要你特意的去背,不知不觉中就学会了,想学不会都难。

    展开全文
  • Linux简介及Linux学习路线

    千次阅读 2018-03-30 21:20:52
    Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有个基本概念了,这里简单介绍下操作系统在整个计算机系统中...
  • 这个学习路线是遵照大多数人的认知规律来的, 第一阶段 1.1 C语言入门 入门选一本简单的、薄一点、不要出错的书就可以了,例如谭浩强老爷子的书,选太厚的容易打击你的信心和学习兴趣,谭老爷子的书虽然被很多人...
  • linux学习路线.pdf

    2021-11-03 15:21:08
    linux学习路线.pdf
  • Linux学习路线参考

    2016-09-22 11:40:07
    这是偶然看到的linux学习路线,存下来以备用。 很多同学接触Linux不多,对Linux平台的开发更是一无所知。而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机IT行业从业人员,掌握Linux是一种很重要的...
  • 详细规划了Linux学习路线,及学习方法,该学什么,及怎么学
  • 转——嵌入式Linux学习路线

    千次阅读 多人点赞 2018-07-18 00:19:50
    嵌入式 linux 学习路线 本文把操作系统默认为 linux,讲讲怎么学习嵌入式 linux 系统。简单地说,嵌入式 linux 系统里含有bootloader、内核、驱动程序、根文件系统、应用程序这5大块。而应用程序,我们又可以分为...
  • linux学习路线参考.pdf

    2021-11-04 15:50:18
    linux学习路线参考.pdf
  • ARM+LINUX学习路线.pdf

    2021-11-14 23:54:45
    ARM+LINUX学习路线.pdf
  • 怒肝 Linux 学习路线,这回不难

    千次阅读 多人点赞 2021-10-11 19:45:38
    Linux 学习路线 by 鱼皮。 原创不易,请勿抄袭,违者必究! 大家好,我是鱼皮,又花 1 周肝出了 Linux 学习资料全家桶,包括学习路线、命令手册、视频、书籍、文档、实战教程、社区、工具、大厂面试题等,完整分享...
  • ARM+LINUX学习路线知识.pdf
  • Linux学习路线

    千次阅读 多人点赞 2018-02-07 22:39:00
    Linux学习进阶路线图 摘自:http://blog.csdn.net/zdwzzu2006/article/details/4334791Linux 基础Linux 基础Linux安装专题教程Linux中文环境Linux—从菜鸟到高手 鸟哥的Linux私房菜 基础学习篇(第二版)Ubuntu ...
  • 原文首发于跟韦东山学嵌入式Linux 韦东山嵌入式 学嵌入式Linux,就看韦东山视频。 我是1999年上的大学,物理专业。在大一时,我们班里普遍弥漫着对未来的不安,不知道学习了物理后出去能做什么。你当下的...
  • Linux学习路线及网络编程经典书籍(转载)

    万次阅读 多人点赞 2018-08-27 16:31:07
    linux学习资源整理:https://zhuanlan.zhihu.com/p/22654634 Linux初学者(学习资料):https://zhuanlan.zhihu.com/p/21723250 知乎 - 你是如何学习 Linux 编程的?:https://www.zhihu.com/question/20730157 ...
  • 史上最全嵌入式Linux学习路线
  • Linux 学习路线

    2018-05-24 17:32:43
    作者:红猴子链接:...Linux 学习路线这是我画的一幅图,大家可以按此路线循序渐进地学习。&amp;amp;lt;img src=&amp;quot;https://pic4.zhimg.com/50/v2-fd...
  • Linux学习路线及网络编程经典书籍

    万次阅读 多人点赞 2017-05-09 15:05:30
    linux学习资源整理:https://zhuanlan.zhihu.com/p/22654634 Linux初学者(学习资料):https://zhuanlan.zhihu.com/p/21723250 知乎 - 你是如何学习 Linux 编程的?:https://www.zhihu.com/question/20730157 如果让...
  • Linux学习路线指南.doc

    2015-06-11 17:34:25
    Linux学习路线指南。 牛人分享的学习经验。
  • 最新的Linux视频基础课程: http://pan.baidu.com/s/1c13ddvE Linux的高级视频课程: http://pan.baidu.com/s/1o7CkiXs   更多视频请进群交流:421475630
  • 嵌入式linux学习路线参考(LINUX学习者必看经典)

    万次阅读 多人点赞 2016-11-17 10:11:44
    整理了嵌入式linux学习路线供参考,希望对您有所参考价值! 一、linux入门 目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系统也只是一个简单的操作...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,162
精华内容 13,664
关键字:

linux学习路线

linux 订阅
友情链接: oqysgy.rar