请问学LINUX开发和内核要不要数学和算法基础?

mosquitoh 2015-10-15 12:09:27
我向往Linux开法和内核发展
逻辑思维自学能力英语阅读能力都具备
但是学历很低(another story)
虽然考高中数学是100分,但数学水平也到此为止
不知道要不要数学和算法基础?
算法倒是很感兴趣,但涉及到数学就有点畏难了
谢谢!~~~
...全文
744 点赞 收藏 16
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
cl55 2015-12-03
引用 15 楼 mosquitoh 的回复:
[quote=引用 13 楼 cl55 的回复:] 体系结构最重要! 起码要了解一种,比如x86. 否刚会完全找不到头绪,看不懂arch目录下的代码,而那又是最核心的一部分。interrupt 处理,addressing, 内存管理都是基于arch的。 编译原理也要有所了解。不然根本看不懂crash dump, 那个经常要手工反编译,而且是优化后的代码。 代码中汇编和c互相调用时不懂c calling convention也看不懂。 算法反尔都是封装好的,局部的。有的细节不想去了解可以不看,不影响整体理解。不过设计思想和一些基础算法和数据结构是要懂的。 数学基础就不用在意了,内核里的算法有点离散数学知识就行, 没有也不见得看不懂。
请问体系结构是什么意思?是要理解操作系统原理之类的吗?[/quote] 计算机有一门课叫计算机体系结构, 你可以看看一些经点的计算机体系结构的书, 但最后64-ia-32-architectures-software-developer-manual 中system programming 那一卷是最重要的(x86的话)。
回复
mosquitoh 2015-11-29
引用 13 楼 cl55 的回复:
体系结构最重要! 起码要了解一种,比如x86. 否刚会完全找不到头绪,看不懂arch目录下的代码,而那又是最核心的一部分。interrupt 处理,addressing, 内存管理都是基于arch的。 编译原理也要有所了解。不然根本看不懂crash dump, 那个经常要手工反编译,而且是优化后的代码。 代码中汇编和c互相调用时不懂c calling convention也看不懂。 算法反尔都是封装好的,局部的。有的细节不想去了解可以不看,不影响整体理解。不过设计思想和一些基础算法和数据结构是要懂的。 数学基础就不用在意了,内核里的算法有点离散数学知识就行, 没有也不见得看不懂。
请问体系结构是什么意思?是要理解操作系统原理之类的吗?
回复
nswcfd 2015-11-19
点评的很到位!
引用 13 楼 cl55 的回复:
体系结构最重要! 起码要了解一种,比如x86. 否刚会完全找不到头绪,看不懂arch目录下的代码,而那又是最核心的一部分。interrupt 处理,addressing, 内存管理都是基于arch的。 编译原理也要有所了解。不然根本看不懂crash dump, 那个经常要手工反编译,而且是优化后的代码。 代码中汇编和c互相调用时不懂c calling convention也看不懂。 算法反尔都是封装好的,局部的。有的细节不想去了解可以不看,不影响整体理解。不过设计思想和一些基础算法和数据结构是要懂的。 数学基础就不用在意了,内核里的算法有点离散数学知识就行, 没有也不见得看不懂。
回复
cl55 2015-11-13
体系结构最重要! 起码要了解一种,比如x86. 否刚会完全找不到头绪,看不懂arch目录下的代码,而那又是最核心的一部分。interrupt 处理,addressing, 内存管理都是基于arch的。 编译原理也要有所了解。不然根本看不懂crash dump, 那个经常要手工反编译,而且是优化后的代码。 代码中汇编和c互相调用时不懂c calling convention也看不懂。 算法反尔都是封装好的,局部的。有的细节不想去了解可以不看,不影响整体理解。不过设计思想和一些基础算法和数据结构是要懂的。 数学基础就不用在意了,内核里的算法有点离散数学知识就行, 没有也不见得看不懂。
回复
mosquitoh 2015-10-30
引用 9 楼 happybeginner 的回复:
找本计算机专业的操作系统和数据结构看看就差不多了
嗯嗯,好的
回复
mosquitoh 2015-10-30
引用 10 楼 nswcfd 的回复:
初学者可以认为基本不需要。 复杂的结构内核已经封装好了API,难懂的算法偶尔会遇到一两个,不必过于担心。
好的,谢谢!
回复
nswcfd 2015-10-30
初学者可以认为基本不需要。 复杂的结构内核已经封装好了API,难懂的算法偶尔会遇到一两个,不必过于担心。
回复
happybeginner 2015-10-30
找本计算机专业的操作系统和数据结构看看就差不多了
回复
一根烂笔头 2015-10-28
不需要高深的数学,懂二进制和简单的离散数学知识(比如常见的位运算)足够!
回复
mosquitoh 2015-10-28
引用 5 楼 Z_R_Z_798205 的回复:
如果你想深入了解内核还是需要学习算法的,如果总是拿来就用不知其中的原理,这就失去学习内核的意义了. 学习内核至少要会譬如链表操作,哈希散列式,红黑树的,优先查找树,堆栈树等. 至于数学的话至少要会求求质数,算算十六进制的值等.
求质数,CPrimerPlus不是有一个题目吗,给出任意一个数,求其质数,也不怎么难。 数据结构、算法我都准备学。 谢谢你!
回复
mosquitoh 2015-10-28
引用 6 楼 my_live_123 的回复:
不需要高深的数学,懂二进制和简单的离散数学知识(比如常见的位运算)足够!
哦,谢谢!
回复
Buddy.Zhang 2015-10-27
如果你想深入了解内核还是需要学习算法的,如果总是拿来就用不知其中的原理,这就失去学习内核的意义了. 学习内核至少要会譬如链表操作,哈希散列式,红黑树的,优先查找树,堆栈树等. 至于数学的话至少要会求求质数,算算十六进制的值等.
回复
mosquitoh 2015-10-25
引用 2 楼 FightForProgrammer 的回复:
其实一般使用的话对数学要求一般。但是到了核心部分就重要了。不过只要你想,一切都能学
谢谢!
回复
mosquitoh 2015-10-25
引用 1 楼 moquan1100 的回复:
没有必要学习算法,kernel算法都有接口,会用即可。 做kernel开发的公司没有一把都是大公司甚至知名公司,这一块比较难,也是核心,无相关开发经验估计很难近,相关不一定是内核开发经验,如驱动开发经验也可。驱动很多也会涉及到内核。 学历,一些知名公司,可以用工作经验换学历。
很大的鼓励,谢谢!
回复
其实一般使用的话对数学要求一般。但是到了核心部分就重要了。不过只要你想,一切都能学
回复
moquan1100 2015-10-21
没有必要学习算法,kernel算法都有接口,会用即可。 做kernel开发的公司没有一把都是大公司甚至知名公司,这一块比较难,也是核心,无相关开发经验估计很难近,相关不一定是内核开发经验,如驱动开发经验也可。驱动很多也会涉及到内核。 学历,一些知名公司,可以用工作经验换学历。
回复
相关推荐
发帖
Linux_Kernel
创建于2007-08-27

4156

社区成员

Linux/Unix社区 内核源代码研究区
申请成为版主
帖子事件
创建了帖子
2015-10-15 12:09
社区公告
暂无公告