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

mosquitoh 2015-10-15 12:09:27
我向往Linux开法和内核发展
逻辑思维自学能力英语阅读能力都具备
但是学历很低(another story)
虽然考高中数学是100分,但数学水平也到此为止
不知道要不要数学和算法基础?
算法倒是很感兴趣,但涉及到数学就有点畏难了
谢谢!~~~
...全文
883 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
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开发的公司没有一把都是大公司甚至知名公司,这一块比较难,也是核心,无相关开发经验估计很难近,相关不一定是内核开发经验,如驱动开发经验也可。驱动很多也会涉及到内核。 学历,一些知名公司,可以用工作经验换学历。
很大的鼓励,谢谢!
FightForProgrammer 2015-10-21
  • 打赏
  • 举报
回复
其实一般使用的话对数学要求一般。但是到了核心部分就重要了。不过只要你想,一切都能学
moquan1100 2015-10-21
  • 打赏
  • 举报
回复
没有必要学习算法,kernel算法都有接口,会用即可。 做kernel开发的公司没有一把都是大公司甚至知名公司,这一块比较难,也是核心,无相关开发经验估计很难近,相关不一定是内核开发经验,如驱动开发经验也可。驱动很多也会涉及到内核。 学历,一些知名公司,可以用工作经验换学历。

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧