大家都是如何学习Linux内核。

qqq123 2009-05-29 04:10:30
我是一个C#/Jave程序员,作为爱好从今年三初开始学习Linux内核。开始是直接读Linux内核代码,读了几天后,发现实在是无法读懂。后来只好看书,在看书的过程中按照Linux内核的概念写了一个简单的OS的例子(加上启动只有16000行左右)。现在快三个月了书也看的差不多了,我想开始再读Linux内核代码,不过Linux内核代码函数,参数,变量名字实在是太抽象了,对此现在我还心有余悸(我对无处不在的缩写,和没有namespace非常不习惯)。
不知道大家都是如何学习Linux内核的?有什么没有经验?还有觉得内核那些部分比较难,原因是什么?
...全文
14908 61 打赏 收藏 转发到动态 举报
写回复
用AI写文章
61 条回复
切换为时间正序
请发表友善的回复…
发表回复
frogoscar 2011-08-26
  • 打赏
  • 举报
回复
支持楼主,我也要努力看内核
yexingxia_2010 2011-08-26
  • 打赏
  • 举报
回复
可以下载我发的PDF 真的很好的
  • 打赏
  • 举报
回复
内核 哈哈哈
wjw_scence 2011-06-09
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 zengwujun 的回复:]
很多人提议从ldd看起,但linux的精髓并不在驱动。看linux源码,内存管理,进程管理和文件系统是必须过关的,不管你花多长时间,这部分过关,你会觉得自己的突发猛进,对于其他部分的理解帮助非常大;进程才是操作系统的精髓,内存管理为进程提供运行的空间,文件管理为进程提供存储的地方,外设驱动是为延升进程的能力。
[/Quote]


很赞同!!我也准备先看Kernel中的部分。。。。。。
fjzhuozl 2011-05-25
  • 打赏
  • 举报
回复
顶起,支持!!!
cug_fish_2009 2010-09-24
  • 打赏
  • 举报
回复
我也学习了于渊的《自己动手写操作系统》,边看书边写代码,
写了个简单的tty操作系统,但是到了下篇的时候,实在很难了。于是就放弃了。
其实就是当时放弃,因为工作还没找。
我现在在学习TCP/IP方面的,又要涉及到内核,感觉有来了。
marven 2010-08-23
  • 打赏
  • 举报
回复
这位仁兄说的很有道理[Quote=引用 7 楼 pottichu 的回复:]
引用 4 楼 qqq123 的回复:
>为什么要读内核……
为了兴趣;另外C#/Java开发久了我都不觉得自己是个程序员,还是C语言好呀,想写些什么就写什么,爽!!!


一句话形容你的心态, 老婆总是别人的好。 呵呵。
任何语言,工具,系统,模式,框架, 都只是工具。

若真是兴趣,你能坚持10年20年吗 ?

盲目的读内核代码是没有意义的,
先读lkd, 了解linux的……
[/Quote]
myeven 2010-07-07
  • 打赏
  • 举报
回复
不知道怎么入手,不过,我会坚持下去
周作才 2010-06-24
  • 打赏
  • 举报
回复
呵呵现在正在学习内核潜心学习,佩服楼主了
guan_f_s 2010-05-30
  • 打赏
  • 举报
回复
学习中!linux内核真的很难
kkcat2001 2010-04-13
  • 打赏
  • 举报
回复
哥正在看LDD3 ,不得其要; 想转去先看一下内核
lovesi3344 2010-02-10
  • 打赏
  • 举报
回复
ljyshadow 2009-11-24
  • 打赏
  • 举报
回复
都是牛人啊!
xiaoxin_ye 2009-06-12
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 fetag 的回复:]
在看书的过程中按照Linux内核的概念写了一个简单的OS的例子(加上启动只有16000行左右)。
============================================
别的不说,但看这一句,楼主已经比这个版块百分之九十八的人都厉害了,而且还有那么多年的工作经验,应该

知道怎么去进入一个全新的领域吧?何况这个对你来说也未必是全新的...

所以楼主还是按照自己的方式学下去吧,别来这里征求什么建议了,一群不如你的人,能给你什么有价值…
[/Quote]


我也想这样说 lz是牛人 加油 会找到属于自己的一片蓝天的
犇犇犇程序猿 2009-06-11
  • 打赏
  • 举报
回复
真牛逼,我只知道裁减内核,裁减文件系统,UNIX.LINUX下的应用,嵌入式开发,shell之类的。。我看过1小时内核,不知道有什么用。放弃了。。

楼主是牛人。
ychwn 2009-06-11
  • 打赏
  • 举报
回复
牛人,都是牛人。。。
datacodebugs 2009-06-08
  • 打赏
  • 举报
回复
兄弟,你写的那 16000 行 os 可以运行么?
fpcc 2009-06-08
  • 打赏
  • 举报
回复
先学会基础的C/C++然后学写驱动,然后再深入内核来看。看内核要把握住框架,不能直接就探进去,结果会更晕。
qqq123 2009-06-08
  • 打赏
  • 举报
回复
代码已更新:

OneOS

├─Applications
├─Bootload
├─Build
│ │ Build.bat
│ │ cmd.bat
│ │ CompileKernel.bat
│ │ CompileLibrary.bat
│ │ CompileMachine.bat
│ │ CompileTest.bat
│ │ harddisk2.5mb.img
│ │ Kernel.sys
│ │ OneOs.bxrc
│ │ OneOS.img
│ │ Run.bat
│ │
│ ├─Debug
│ └─UnitTest
│ cmd.bat
│ UnitTest.bat

├─Document
│ CodeStandard.c
│ CodeStandard.s
│ OneOS代码规范.doc
│ OneOS内核架构.doc
│ OneOS引导程序设计与实现.doc
│ OneOS简介.doc
│ OneOS系统总结构.doc
│ OneOS编译和调试.doc
│ 目录.doc

├─Drivers
├─Kernel
│ │ Debug.c
│ │ Debug.h
│ │ Interrupt.c
│ │ Interrupt.h
│ │ Kernel.c
│ │ Kernel.h
│ │ Main.c
│ │ Print.c
│ │ Print.h
│ │ Start.c
│ │ Version.h
│ │
│ ├─Architecture
│ │ └─I386
│ │ Interrupt.s
│ │ Kernel.s
│ │ Start.s
│ │
│ ├─FileSystem
│ ├─IO
│ │ Display.c
│ │ Display.h
│ │
│ ├─Memory
│ └─Task
├─Library
│ │ Atomic.h
│ │ List.h
│ │ String.c
│ │ String.h
│ │ Text.c
│ │ Text.h
│ │ Tree.h
│ │ Types.h
│ │
│ └─Architecture
│ └─I386
│ Atomic.s
│ String.s

├─Machine
│ │ IO.h
│ │ Page.h
│ │ Processor.h
│ │ Segment.h
│ │
│ ├─Architecture
│ │ └─I386
│ │ IA32.h
│ │ IO.s
│ │ Page.c
│ │ Processor.c
│ │ Processor.s
│ │ Segment.c
│ │
│ └─Peripheral
│ PICA.h

├─System
└─Test
│ OSTest.c
│ Test.h
│ UnitTest.c

├─Kernel
│ Export.h
│ Import.h
│ TestKernel.c

└─Library
Export.h
Import.h
TestAtomic.c
TestLibrary.c
TestString.c
TestText.c

有兴趣的朋友请到:
http://hi.baidu.com/yixin_huang

希望大家多多提宝贵意见。
threeleafzerg007 2009-06-07
  • 打赏
  • 举报
回复
收回我自己的说的话,你是个牛人,加油!
加载更多回复(40)
[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核感悟 Linux内核启动 从hello world说起 3 读核感悟 Linux内核启动 BIOS 5 读核感悟 Linux内核启动 setup辅助程序 6 读核感悟 Linux内核启动 内核解压缩 8 读核感悟 Linux内核启动 开启页面映射 9 读核感悟 Linux内核启动 链接脚本 11 读核感悟 伪装现场 系统调用参数 13 读核感悟 伪装现场 fork 系统调用 15 读核感悟 伪装现场 内核线程: 17 读核感悟 伪装现场 信号通信 19 读核感悟 kbuild系统 内核模块的编译 22 读核感悟 kbuild系统 编译到内核和编译成模块的区别 24 读核感悟 kbuild系统 make bzImage的过程 26 读核感悟 kbuild系统 make menuconfig 31 读核感悟 文件系统 用C来实现面向对象 32 读核感悟 设计模式 用C来实现虚函数表和多态 32 读核感悟 设计模式 用C来实现继承和模板 33 读核感悟 设计模式 文件系统和设备的继承和接口 34 读核感悟 设计模式 文件系统与抽象工厂 36 读核感悟 阅读源代码技巧 查找定义 37 读核感悟 阅读源代码技巧 变量命名规则 42 读核感悟 内存管理 内核中的页表映射总结 43 读核感悟 健壮的代码 exception table 内核中的刑事档案 44 读核感悟 定时器 巧妙的定时器算法 45 读核感悟 内存管理 page fault处理流程 45 读核感悟 文件读写 select实现原理 47 读核感悟 文件读写 poll的实现原理 49 1 功能介绍: 49 2 关键的结构体: 49 3 poll的实现 49 4 性能分析: 50 读核感悟 文件读写 epoll的实现原理 50 1 功能介绍 50 2 关键结构体: 51 3 epoll create的实现 53 4 epoll ctl的实现 53 5 epoll wait的实现 54 6 性能分析 54 读核感悟 同步问题 同步问题概述 55 1 同步问题的产生背景 55 2 内核态与用户态的区别 55 读核感悟 同步问题 内核态自旋锁的实现 56 1自旋锁的总述 56 2非抢占式的自旋锁 56 3 锁的释放 57 4 与用户态的自旋锁的比较 57 5 总结 58 读核感悟 内存管理 free命令详解 58 读核感悟 文件读写 2 6 9内核中的AIO 59 1 AIO概述 59 2 内核态AIO的使用 61 读核感悟 文件读写 内核态AIO相关结构体 61 1 内核态AIO操作相关信息 61 2 AIO上下文: 63 3 AIO ring 63 4 异步I O事件的返回信息 64 读核感悟 文件读写 内核态AIO创建和提交操作 65 1 AIO上下文的创建 io setup 65 2 AIO请求的提交:io submit实现机制 66 读核感悟 文件操作 AIO操作的执行 66 1 在提交时执行AIO 66 2 在工作队列中执行AIO 66 3 负责AIO执行的核心函数aio run iocb 67 4 AIO操作的完成 67 读核感悟 文件读写 内核态是否支持非direct I O方式的AIO 67 已上传7本: [14本经典Android开发教程] 1 Android开发从入门到精通 http: download csdn net detail cleopard 8355245 [14本经典Android开发教程] 2 Android开发手册 API函数详解 http: download csdn net detail cleopard 8374487 [14本经典Android开发教程] 3 Android SDK 中文开发文档 http: download csdn net detail cleopard 8380429 [14本经典Android开发教程] 4 Android应用程序开发36技 http: download csdn net detail cleopard 8380495 [14本经典Android开发教程] 5 linux Android基础知识总结 http: download csdn net detail cleopard 8380529 [14本经典Android开发教程] 6 Android驱动开发入门及手机案例开发分析教程 http: download csdn net detail cleopard 8388019 [14本经典Android开发教程] 7 Android编程入门教程 http: download csdn net detail cleopard 8388043 剩余8本稍后上传 @或直接从这里寻找@ http: download csdn net user cleopard album @更多@ http: cleopard download csdn net 福利 http: xuemeilaile com 17份软件测试文档 http: download csdn net album detail 1425 13份WPF经典开发教程 http: download csdn net album detail 1115 C#资料合辑二[C#桌面编程入门篇] http: download csdn net album detail 957 C#资料合辑一[C#入门篇] http: download csdn net album detail 669 [Csharp高级编程 第6版 ] 共8压缩卷 http: download csdn net album detail 667 10个[精品资源]Java学习资料合辑[一] http: download csdn net album detail 663 10个C#Socket编程代码示例 http: download csdn net album detail 631 6份GDI+程序设计资源整合[全零分] http: download csdn net album detail 625 2014年移动游戏行业数据分析 http: download csdn net detail cleopard 8340331 一文读懂2014年全球互联网广告新生态 http: download csdn net detail cleopard 8340303">[14本经典Android开发教程] 8 Linux内核阅读心得体会 读核感悟 2 读核感悟 Linux内核启动 内核的生成 2 读核 [更多]

4,436

社区成员

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

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