大家好,今天小编关注到一个比较有意思的话题,就是关于linux内核学习方案交流的问题,于是小编就整理了4个相关介绍Linux内核学习方案交流的解答,让我们一起看看吧。
- 关于linux内核原理的入门书籍有哪些值得推荐的?
- 学习linux内核,请推荐几本书及顺序,谢谢?
- Linux内核是如何创建线程的,它与windows有哪些不同?
- 未来想从事Linux后台开发,需要学习linux内核吗?
关于linux内核原理的入门书籍有哪些值得推荐的?
没必要看linux,除非你做linux开发,学习的话操作系统那本经典的用minix做范本的书才是精华,不过单看会觉得有点枯燥。辅助找本自己从头写一个操作系统之类的书,动动手会比较容易理解。基础打好后,再看linux内核的书,什么都可以,都不会感觉太难。操作系统基础在大学里面一般都会学,那么多年没什么太大变化,那个才是精华,一个学期是不够的,多看几遍,每年都能上升到一个新高度。
谢小编邀。
@云瑄软件回答的已经很全面了,他推荐的几本书都是内核入门经典中的经典。
我再推荐几本接触过好书:
《linux设备驱动程序》 Jonathan Corbet著,讲内核设备驱动开发,对内核抽象层次,设备原理讲的很细,还介绍了不少内核开发调试的技巧。
《linux内核设计的艺术》中科院新设计团队著,这本书褒贬不一,但是书中对于一些内核的算法数据结构讲的很详细,对内核bootloader也讲了很多,对我帮助不少。
另外强烈推荐先过一遍《深入理解计算机系统》,这本书深入浅出,可以说是基本功中的基本功了。
最后的最后,如果想自己开发内核,推荐一个网站:osdev.org,这个网站几乎可以找到所有内核开发的资料。
共勉。
学习linux内核,请推荐几本书及顺序,谢谢?
linux内核最经典的书是《深入理解Linux内核》,这本书内核编程看;如果你是搞UNIX/Linux环境下的应用程序编程,那么就看《UNIX环境高级编程》;如果做Linux下设备驱动程序开发,就看《Linux设备驱动》(第三版)。这几本都是老外写的,都是很经典的书。
Linux内核是如何创建线程的,它与windows有哪些不同?
首先关于内核心进程创建,涉及到底层的东西,个人认为没必要太深入,了解他是怎么实现的就可了,如果确实要深入理解,那就得去看源码了。
1.Linux 进程创建:Linux继承了UNIX的进程创建方式,用的是fork API函数,什么是fork呢,就是先clone然后在分支,父子进程各干各的。
2.Windows
进程创建:Windows没有fork,但是有CreateProcess这个API函数,用来创建一个新的进程和它的主线程,这个新进程运行指定的可执行文件。未来想从事Linux后台开发,需要学习linux内核吗?
先说结论,Linux后台开发了解Linux内核原理对于工作是有帮助的,比如了解文件系统的以及硬盘存储机制,那就更容易理解为什硬盘的写入速度相对内存慢,明白为什么会出现明明已经调用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内核学习方案交流的4点解答对大家有用。