大家好,今天小编关注到一个比较有意思的话题,就是关于linux内核学习 知乎的问题,于是小编就整理了4个相关介绍Linux内核学习 知乎的解答,让我们一起看看吧。
学习linux,要什么基础?要懂C语言吗,还是C和C加加?
1、一定的英文基础是必要的,需要了解C语言和C++。针对学习shell编程,及熟知各种Linux系统命令使用即可。如果有python或perl基础则更容易上手。
2、看书时要多做习题,一题一题的弄明白,要不书也白看。从一开始养成良好的编程习惯,怎么算好的你看书上的代码怎么写的。
3、关于数学,初中数学水平可以编程,小学甚至学前班也没什么不可以。另一方面数学博士编程的时候也不会嫌自己数学学的太多了。需要多少数学这跟你要做的东西很有关系,也影响到你学习的深入程度,工作中就影响你的代码质量。总的来说数学水平是越高越好,但并没有一个门槛,什么水平都可以学,就是质量差一些。
4、学习Linux内核开发。Linux的内核是由绝大部分的C语言和少部分汇编语言组成的。要学习Linux内核开发,必须要懂C语言,同时对操作系统原理需要有一定了解。
5、学习Linux平台上的软件开发。这部分包含很广,有各种各样的要,需要根据项目性质确定基础需求。
linux内核编程书籍有那些比较经典?
学习内核不是件容易事,前面有很多前续课程要读。
1.C语言,推荐Theprogrammginclanguage被称为圣经的书,不过没有版,不过C语言不太难,而且读内核也不需要你对C有多深了解。学习到指针和结构体就够你用了。
2.数据结构,不懂这个想学是不可能的,推荐《数据结构》C语言版本。
3.操作系统,任何一个的教科书都可以。一定要看,虽然是纯理论。但不看这个,想看懂内核,那是不可能的。
4.微机原理,内核和底层相关,不知道微机原理是不行的。我学的时候书上是以INTEL8086为蓝本,非常简单。后来看内核时候,补充了80386以后出现的保护模式,非常复杂。但还是先看下老版的微机原理,先从简单的下手。
5.linux系统管理,推荐《linux系统管理手册》,被linux的作者推荐的系统管理书籍。 6,终于到内核了,我看的是《Linux内核代码情景分析》虽然有点老。但结合新的源代码,在了解机制后,代码实现上差距不大。
只安装linux内核电脑会怎样?
有一下几点原因; Linux是个开放性系统,不需要收取代理费,而windows会收费。
Linux版本都很强大,内核比Windows强得多,也有很多不错的软件。关于linux的强大和优点,主要的有以下几个方面:1.几乎没有病毒
2.低成本
3.由于Linux 是开放源代码的操作系统,除了Kernel免费以外,它的许多系统程序以及应用程序也是自由软件,可以从网上免费获得。所以它的软件成本非常低廉。
4.成本低,eTrade公司的首席技术官John Levin说:“***用Linux操作系统环境比运行与维护UNIX操作系统成本降低几乎30倍”。
我想学习x86下的linux内核,该怎么起步?
1.不防从引导程序(bootloader)开始,可以选择u-boot,熟悉u-boot启动代码,比如初始化内存、启动的汇编代码是如何跳转至C程序的、bootloader引导Linux有哪些要求(基于CPU架构不同而不同,比如ARM引导Linux可参考《Booting ARM Linux》)、启动后是如何传递参数给Linux内核的、;
2.bootloader将内核映像载入物理内存后,[_a***_]的内核映像是如何自解压、head.S文件中对MMU操作、单/多核是如何跑起来的、start_kernel;***w.内核引导启动这个过程建议结合一些操作系统的理论知识一起熟悉,比如MMU页表的建立,若不熟悉对应CPU架构下的MMU,即使懂汇编但代码看起来可能比较吃力。
熟悉内核的引导过程,个人觉得将大学时学的操作系统理论知识与实践相结合起来了,好多上学时模糊的概念一下清晰了许多。
接下来再来说下内核编程:
1.make menuconfig等配置内核,构建及更新内核;
2.熟悉内核Makefile文件;
3.从Hello World开始学习模块编程,熟悉file_operations尝试编程简单的驱动;
4.掌握(熟悉使用、区别)内核提供竞争方面的API,spinlock/semaphore/rw_semaphore/completion/rw_lock/mutex,以及RCU等;
5.内核态下动态内存API,get_free_pages/kmalloc/vmalloc等(关于内存管理这块可暂时先了解接口的使用,后续有精力再去熟悉Linux内存管理,里面太多东西太复杂了,呵呵,我也是略知皮毛);
到此,以上就是小编对于linux内核学习 知乎的问题就介绍到这了,希望介绍关于linux内核学习 知乎的4点解答对大家有用。