大家好,今天小编关注到一个比较有意思的话题,就是关于如何开始学习linux内核教程的问题,于是小编就整理了5个相关介绍如何开始学习Linux内核教程的解答,让我们一起看看吧。
程序员学LINUX内核,首先要了解初始化如何解析?
先看《鸟哥的Linux私房菜》《Linux就该这样学》
这些看完了你也知道你该看什么了
如何更深入地学习Linux?
第一步 你可以尝试编译自己的linux系统。有一个发行版叫做 LFS,linux from scratch. 就是一个一步一步从源码最终编译成自己的linux的项目。编译过程中你可以按照你的喜好自己任意修改。
LFS官方网站上的手册有教程,可以学到很多linux知识,不过是全英文的。
第二 书店里有各种linux内核的教程,可以买来一读。
第三 没有任何比学习linux源码更好的方法了。 上kernel.org 或者用git clone linux内核源码,慢慢啃去吧。
学嵌入式linux要先学什么?
嵌入式发展如此的快,可以说是现在最热的IT技术之一了,很多人加入嵌入式的行业,但是对于刚进入嵌入式或者刚接触嵌入式的人来说,学习嵌入式还是有一定的难度的,我跟前就有很多这样的人,下定决心想要去学嵌入式,但是不知道从何学起,今天我这只老鸟就分享一些嵌入式学习方法,快快搬小板凳来听。
对于嵌入式新手来说,知道一点嵌入式,知道嵌入式大概是做什么的,不是很懂,所以要熟悉掌握嵌入式的概念。我们可以看到网上或者书上很多解释:嵌入式系统是针对某个应用,软硬件可裁减的,对体积,功耗,成本等等有严格要求的一个计算机系统。看起来是很复杂的,其实我们来总结一下就是两点:
第一,嵌入式系统是一个计算机系统
第二,嵌入式系统是针对某个应用的,也就是通常所说的“专用的”。
其实再说的通俗易懂点就是针对某个应用的计算机系统!这样的话就很好理解了。
那么重点来了,那就是要学什么,对于嵌入式来说,不要觉得他学很多东西,你就会没有目的的学这学那的,这样只会让自己更加迷茫,不知道要学哪个了,你要知道,嵌入式也就是软件,硬件,编程这些方面的,最基础的也就是C语言了,那刚开始接触,你就需要先从C语言入手。
1、C语言,关于C语言要知道基本的语法,什么是结构体,什么是共同体,有的东西也不用一定要记忆,因为在实际中很少用到;
2、嵌入式最核心的操作系统,所以操作系统原理也应该是要有所了解的,比如时间片、任务调动等等;
3、Linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),现在很多的人对鼠标早是情有独钟了,很少用到命令,在学习嵌入式Linux可要改改这个习惯了,Linux用命令操作具有效率高、功能强大的特点,这个是图形界面无法取代的,其实平时的图形界面操作都要转化为命令传输给硬件的。
未来想从事Linux后台开发,需要学习linux内核吗?
先说结论,Linux后台开发了解Linux内核原理对于工作是有帮助的,比如了解文件系统的以及硬盘存储机制,那就更容易理解为什硬盘的写入速度相对内存慢,明白为什么会出现明明已经[_a***_]API写入数据还是出现了宕机数据丢失的问题。
结论说完了,我们在讨论下怎么去学习Linux后台开发技术。
(1)Linux系统命令:Linux系统的命令非常多,是不是所有都要学呢?大家可以先掌握常用的命令,比如ls、pwd、cd、grep、find等常用的命令是必须掌握的;
(2)Linux系统编程:多线程、多进程、锁、消息队列、管道等等知识;
(3)Linux网络编程:udp编程、tcp编程,select、poll、epoll等的使用;
(1)Linux后台开发必备命令:比如怎么用lsof查看端口号,top怎么分析进程和内存、tail怎么读取日志,mpstat怎么分析CPU占有率等等;
(2)Linux系统编程:多线程和多进程的区别在哪里,他们有什么适用场景;redis为什么用单线程模式,为什么又从redis 6.0开始支持多线程;nginx为什么又选用了多进程模式等等;
(3)Linux网络编程:udp和tcp的适用场景是怎么样的;select、poll、epoll三者有什么区别,阻塞和非阻塞IO哪种更适合高并发场景;
(1)客户端和服务器端协议定制、服务器与服务器端的协议定制;
可以从哪些方面学习Linux?
Linux的学习方向大致分为3个,可以做运维工程师,可以做嵌入式开发工程师,再就是在linux下开发项目。
运维工程师主要就是指linux服务器维护,像服务器规划、调优、系统监控、日志分析、数据备份等,这种通常就需要有开发的经验了,会开发才知道服务器上需要跑什么软件、需要监控哪些运行指标、哪些数据需要备份。
嵌入式开发就是开发linux上一些驱动之类的,C语言、数据结构算法、linux基础、内核之类的都是要学的。
在linux下开发项目就比较简单了,把linux当成其他语言的开发环境而已,主要是学语言,如java,python,大数据等等。
linux系统的学习,分为几大块。首先你需要了解的是linux的历史,它发展到现在经过了几代系统,每代系统各有什么特点。第二就要从系统本身入手,选择你要学习的系统版本,然后开始学习系统的安装,系统内部的文件***管理器,这其中又包含linux的文件权限和目录两大功能。接下来就是进阶了,linux的重点,也就是linux的shell编程,比如搭建一个环境,linux的父子进程是怎么运行的,与windows的进程有什么区别。因为linux图形界面用的较少,所以你必须掌握命令行语句。同时linux的一大优势,linux用于服务器的搭建,学会如何用linux架设服务器也是非常重要的。最后是我的一点私人建议:linux可以像QQ一样建立单对单通信,使用socket编程,这也是非常重要的。还有linux的tftp服务,建立与windows系统的文件传输,这个将会让你体会到linux的优势。
要想回答学习Linux后主要从事哪些方面工作的问题,主要还是要看目前linux的应用领域。就目前的现状来看,linux主要的应用领域还是在服务器和嵌入式方面。目前我所了解的国内学习Linux的主要从事如下几个方面的工作:
一个是嵌入式开发;
一个是后台开发;
另一个是网站服务器运维;
而单纯的从事linux内核开发的,目前国内相对比较少一些,在基础软件设施研发方面目前咱们国家还处在相对薄弱的阶段。
至于学习linux可以从哪些方面入手,这个问题可以找本市面上比较主流的书籍,翻开目录,就能看到linux主要学习哪些方面的知识了。这里以《鸟哥的linux私房菜为例》,我们看目录就可以看出linux的学习主要包括如下几个方面:
1.学习计算机基础知识;
2.学习linux系统的安装;
3.学习文件和目录管理相关的命令;
到此,以上就是小编对于如何开始学习linux内核教程的问题就介绍到这了,希望介绍关于如何开始学习linux内核教程的5点解答对大家有用。