终于发现了适合自己的学习模式,现在在学操作系统,学的嗖嗖的

2016-10-01 13:45:19 +08:00
 petelin
并不是什么捷径,而是之前学不懂的东西现在可以学懂了,而且感觉比书上,公开课上讲的更明白。

整个故事是这样的,我想学操作系统了,然后看书,失败,妈的,这东西在讲鸡毛啊,是完全不懂,看不下去,


然后看公开课,失败,恩,有感觉了,讲的不错,为啥一加电跑到 fff0 哪里了?我是说为什么那么算, cs 左移 4 位?实模式在搞毛啊? gdt 又是毛?看不下去了,夹生饭不是我风格

然后看汇编,这个是转折点,王爽的汇编原理,看得真爽啊,很多人说这个简单,要的就是简单,我看这个最大收获不是学会了汇编,而是学会了中断,学会了机器的组成,尤其是在 dos 下用的那些工具,很真实, turbo c 也很简单,编译连接过程也懂了,指针也明白了。
他最后的几个关于 C 的实验收获更大,他教如何去思考,比如为什么 c 入口函数是 main ,怎么改为其他函数名字,这个都是在他知道下我自己找出来的,当然是在简单的环境下

然后再回过头来看操作系统,我直接找了一个最简单的书,看不懂就扔,看不懂就扔,最后找到了国外一个超级简单的内核,然后自己看着文档写 bootloader....不懂的就看他的实现,想很多东西,比如我能不能不给 u 盘文件格式,而直接把操作系统写进去,工具是什么,为什么内核生成为 elf 格式的?可不可以直接是二进制指令的,像 bootloader 一样?这些问题我都能自己想出来答案了,这真是一个质变。


如今,看那些书感觉很轻松了,我 bb 这么多,一个是高兴,一个是分享

1. 看不懂的书就扔了,别管他有多大的知名度

2. 书可以挑着章节读,别从前往后一个一个看了,我以前的习惯是错误的。

3. 学习是个循环的过程,只有知道 A 才能更好的理解 B ,一些资料看不懂没关系,突然那天就明白了,不懂是他没说清楚,不是你的错,你得找你能看清楚的接着看。比如那本简单书里说的 ebp 可以找到所有的调用过程,我就不理解,今天看难一点的公开课,他讲的就懂了。

4. 学习接受的过程一定是从简单到难的,具体实现可能自顶而上,或者自下而上。

要是能匿名就好了。。。只是分享一下,可能很浅薄,或者只跟我自己有关。大家随便看看,国庆快乐,打把无线火力去
9614 次点击
所在节点    分享发现
35 条回复
prondtoo
2016-10-01 22:06:35 +08:00
有个找书的方法不错,京东搜关键字看销量,大概也就那基本经典的,然后记下 ISBN 码,去图书馆搜去...haha
tscat
2016-10-01 22:10:38 +08:00
看视频可以快速让人从恐慌区过度到舒适区
Felldeadbird
2016-10-01 23:45:54 +08:00
后来某天突然懂了,其实已经消耗了很多时间去寻找答案。
不过,书的内容其实真的可以选择看。
chiu
2016-10-02 08:10:26 +08:00
感谢分享
feather12315
2016-10-02 08:58:34 +08:00
一看就是计算机组成原理没学,不仅仅是没学好
bk201
2016-10-02 09:10:44 +08:00
看不懂的去搜索下难道没有解释?
petelin
2016-10-02 10:58:32 +08:00
@bk201 请搜索 “我能不能不给 u 盘文件格式,而直接把操作系统写进去,工具是什么,为什么内核生成为 elf 格式的?可不可以直接是二进制指令的,像 bootloader 一样?”
或者,人生有什么意义,我想说每个人差的地方都不一样,即使别人回答了,也解决不了你的困惑,一篇文章能讲明白了,那些大书要有何用?
我并不是否认搜索的价值。分情况,分技术和知识。
GreatMartial
2016-10-02 11:41:47 +08:00
我也觉得看不懂的就别管它了,跳过去看后面的
cbais7890
2016-10-02 12:01:38 +08:00
学习学习的方法是学习中很重要的一环
感觉这句话说出来很绕...但确实是这个理
xieyudi1990
2016-10-03 04:56:53 +08:00
不错,继续下去。当年也差不多和 lz 一样的想法,不过我大学期间一般都是直接看美国的原版 /影印版教材。

其实那些老师,老师的老师,教材的作者,很可能自己就那样(教材还不算那些请那些很可能学了四年找不到工作考研的研究生代笔的那种)。在那要么吹牛,要么念课本。有多少是参与过现代 cpu 开发的。如果不是那几家 top 的学校。。。自己都没搞过还要教别人。二流教材加三流老师,结果就是这样。

我毕业时也和那些老师谈过。他们上课感觉更像是完成政治任务。一方面大趋势是, cs 都往互联网靠,不是那么几家学校出来的,现实点一辈子接触这些知识的机会很渺茫,大家来这读学位大部分是为了找工作,没鸟用的东西大家也不想学;另一方面培养计划又是上面订的,再差的大学也是大学啊,所以又必须开这门课。结果就是老师装着讲一讲,学生装着听一听,期末放放水,也就过去了。 lz 和我这种杠真的,不多。

另外体系结构我推荐这本:
https://www.amazon.com/Computer-Organization-Design-Fifth-Architecture/dp/0124077269

我现在的工作(第一份)就是天天弄这个。不过我这个更底层,一边直接从 _start 往上写测试程序,一边在仿真器 /模拟器里对着 rtl 看 cpu 里的信号。你能通过编程看到的,只是做 cpu 的暴露给你的接口而已。

我现在能一口气答出来这些问题。
gdt ldt 什么的都在 intel 那三卷 pdf 里。
elf 头格式, mbr/fat 格式什么的网上到处都是。
要 binary 直接 objcopy 就好了,得到 plan binary dd 就好了。 man objcopy 。
如果想找例子, Linux 内核, osdev ,还有各种学校的 os final project 都可参考。
petelin
2016-10-03 09:35:34 +08:00
@xieyudi1990 膜拜真大神,谢谢指导。看您给出的答案是真的折腾过啊,嘿嘿😜
bravecarrot
2016-10-03 15:54:59 +08:00
1. 道破天机
2. 确实,有很多之前怎么看也不懂的内容,现在一看就懂
3. 看网上人家说看某某书就学会了 xx ,不可轻信,也不要气馁,毕竟各人姿势水平不一样
wizardforcel
2016-10-03 20:37:20 +08:00
不是你的错,大部分讲 os 的教材都是盲人摸象。
likeunix
2016-10-08 15:04:53 +08:00
NB 楼主,我最近也在学操作系统,你的"最后找到了国外一个超级简单的内核"给我看看好吧~~
petelin
2016-10-11 12:48:58 +08:00
@likeunix 上面回复有

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/310149

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX