社区
Linux_Kernel
帖子详情
准备开是看LINUX源代码。请问是不是需要一些汇编的知识基础啊。
ksndyjs
2005-06-28 10:52:19
很多人告诉我看LINUX源代码得放一本Intel的芯片编程手册在旁边。是不是需要汇编的基础啊?
我汇编忘得差不多了。请问需要达到什么水平才能看LINUX源代码啊。(我对操作系统的原理还是挺熟悉的)
如果是的话,请推荐几本80x86处理器编程的书。
谢谢了!
...全文
175
6
打赏
收藏
准备开是看LINUX源代码。请问是不是需要一些汇编的知识基础啊。
很多人告诉我看LINUX源代码得放一本Intel的芯片编程手册在旁边。是不是需要汇编的基础啊? 我汇编忘得差不多了。请问需要达到什么水平才能看LINUX源代码啊。(我对操作系统的原理还是挺熟悉的) 如果是的话,请推荐几本80x86处理器编程的书。 谢谢了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ksndyjs
2005-07-01
打赏
举报
回复
请问啥叫AT&T
AT&T不是美国电话电报公司吗。和LINUX有关系吗
wfwater
2005-06-29
打赏
举报
回复
启动部分到是比较多的汇编代码。不过主要是AT&T的
ksndyjs
2005-06-29
打赏
举报
回复
自己顶
fwx325
2005-06-29
打赏
举报
回复
一般都不需要做汇编的.除非你做启动和驱动的某些细节函数.我写了很多驱动,基本上用不到汇编.
当然你如果想做shellcode和elf的工作,还是需要一些汇编的.
at&t的汇编不复杂.
viyar
2005-06-28
打赏
举报
回复
c语言强一点就可以开始了
积木
2005-06-28
打赏
举报
回复
确定你是不是真的需要看源代码
Linux
中的
汇编
语言
在阅读
Linux
源代码
时,你可能碰到一些
汇编
语言片段,有些
汇编
语言出现在以.S为扩展名的
汇编
文件中,在这种文件中,整个程序全部由
汇编
语言组成。有些
汇编
命令出现在以.c为扩展名的C文件中,在这种文件中,既有C语言,也有
汇编
语言,。不管这些
汇编
代码出现在哪里,它在一定程度上都成为阅读
源代码
的拦路虎。 尽管C语言已经成为编写操作系统的主要语言,但是,在操作系统与硬件打交道的过程中,在
需要
频繁调用的函数中以及某些特殊的场合中,C语言显得力不从心。因此,在了解一些硬件的
基础
上,必须对相关的
汇编
语言
知识
也所有了解。
Linux
内核
源代码
情景分析 (上下册 高清非扫描 )
本PDF电子书包含上下两册,共1576页,带目录,高清非扫描版本。 作者: 毛德操 胡希明 丛书名:
Linux
内核
源代码
情景分析 出版社:浙江大学出版社 目录 第1章 预备
知识
1.1
Linux
内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4
Linux
内核
源代码
中的C语言代码 1.5
Linux
内核
源代码
中的
汇编
语言代码 第2章 存储管理 2.1
Linux
内存管理的基本框架 2.2 地址映射的全过程 2.3 几个重要的数据结构和函数 2.4 越界访问 2.5 用户堆栈的扩展 2.6 物理页面的使用和周转 2.7 物理页面的分配 2.8 页面的定期换出 2.9 页面的换入 2.10 内核缓冲区的管理 2.11 外部设备存储空间的地址映射 2.12 系统调用brk() 2.13 系统调用mmap() 第3章 中断、异常和系统调用 3.1 X86 CPU对中断的硬件支持 3.2 中断向量表IDT的初始化 3.3 中断请求队列的初始化 3.4 中断的响应和服务 3.5 软中断与Bottom Half 3.6 页面异常的进入和返回 3.7 时钟中断 3.8 系统调用 3.9 系统调用号与跳转表 第4章 进程与进程调度 4.1 进程四要素 4.2 进程三部曲:创建、执行与消亡 4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件系统 5.1 概述 5.2 从路径名到目标节点 5.3 访问权限与文件安全性 5.4 文件系统的安装和拆卸 5.5 文件的打开与关闭 5.6 文件的写与读 5.7 其他文件操作 5.8 特殊文件系统/proc 第6章 传统的Unix进程间通信 6.1 概述 6.2 管道和系统调用pipe() 6.3 命名管道 6.4 信号 6.5 系统调用ptrace()和进程跟踪 6.6 报文传递 6.7 共享内存 6.8 信号量 第7章基于socket的进程间通信 7.1系统调用socket() 7.2函数sys—socket()——创建插口 7.3函数sys—bind()——指定插口地址 7.4函数sys—listen()——设定server插口 7.5函数sys—accept()——接受连接请求 7.6函数sys—connect()——请求连接 7.7报文的接收与发送 7.8插口的关闭 7.9其他 第8章设备驱动 8.1概述 8.2系统调用mknod() 8.3可安装模块 8.4PCI总线 8.5块设备的驱动 8.6字符设备驱动概述 8.7终端设备与汉字信息处理 8.8控制台的驱动 8.9通用串行外部总线USB 8.10系统调用select()以及异步输入/输出 8.11设备文件系统devfs 第9章多处理器SMP系统结构 9.1概述 9.2SMP结构中的互斥问题 9.3高速缓存与内存的一致性 9.4SMP结构中的中断机制 9.5SMP结构中的进程调度 9.6SMP系统的引导 第10章系统引导和初始化 10.1系统引导过程概述 10.2系统初始化(第一阶段) 10.3系统初始化(第二阶段) 10.4系统初始化(第三阶段) 10.5系统的关闭和重引导
linux
汇编
-AT&T的386
汇编
语言
在阅读
Linux
源代码
时,你可能碰到一些
汇编
语言片段,有些
汇编
语言出现在以.S 为扩展名的
汇编
文件中,在这种文件中,整个程序全部由
汇编
语言组成。有些
汇编
命令出 现在以.c为扩展名的C文件中,在这种文件中,既有C语言,也有
汇编
语言,我们把出 现在C代码中的
汇编
语言叫所“嵌入式”
汇编
。不管这些
汇编
代码出现在哪里,它在一定 程度上都成为阅读
源代码
的拦路虎。 尽管C语言已经成为编写操作系统的主要语言,但是,在操作系统与硬件打交道的过 程中,在
需要
频繁调用的函数中以及某些特殊的场合中,C语言显得力不从心,这时, 繁琐但又高效的
汇编
语言必须粉墨登场。因此,在了解一些硬件的
基础
上,必须对相关的
汇编
语言
知识
也所有了解。 读者可能有过在DOS操作系统下编写
汇编
程序的经历,也具备一定的
汇编
知识
。但是, 在
Linux
的
源代码
中,你可能看到了与Intel的
汇编
语言格式不一样的形式,这就是 AT&T的386
汇编
语言。
深入分析
Linux
内核源码.chm
第一章 走进
linux
1.1 GNU与
Linux
的成长 1.2
Linux
的开发模式和运作机制 1.3走进
Linux
内核 1.4 分析
Linux
内核的意义 1.5
Linux
内核结构 1.6
Linux
内核
源代码
1.7
Linux
内核
源代码
分析工具 第二章
Linux
运行的硬件
基础
2.1 i386的寄存器 2.2 内存地址 2.3 段机制和描述符 2.4 分页机制 2.5
Linux
中的分页机制 2.6
Linux
中的
汇编
语言 第三章中断机制 3.1 中断基本
知识
3.2中断描述符表的初始化 3.3异常处理 3.4 中断处理 3.5中断的后半部分处理机制 第四章 进程描述 4.1 进程和程序(Process and Program) 4.2
Linux
中的进程概述 4.3 task_struct结构描述 4.4 task_struct结构在内存中的存放 4.5 进程组织的方式 4.6 内核线程 4.7 进程的权能 4.8 内核同步 第五章进程调度 5.1
Linux
时间系统 5.2 时钟中断 5.3
Linux
的调度程序-Schedule( ) 5.4 进程切换 第六章
Linux
内存管理 6.1
Linux
的内存管理概述 6.2
Linux
内存管理的初始化 6.3 内存的分配和回收 6.4 地址映射机制 6.5 请页机制 6.6 交换机制 6.7 缓存和刷新机制 6.8 进程的创建和执行 第七章 进程间通信 7.1 管道 7.2 信号(signal) 7.3 System V 的IPC机制 第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.3 高速缓存 8.4 文件系统的注册、安装与拆卸 8.5 限额机制 8.6 具体文件系统举例 8.7 文件系统的系统调用 8 .8
Linux
2.4文件系统的移植问题 第九章 Ext2文件系统 9.1 基本概念 9.2 Ext2的磁盘布局和数据结构 9.3 文件的访问权限和安全 9.4 链接文件 9.5 分配策略 第十章 模块机制 10.1 概述 10.2 实现机制 10.3 模块的装入和卸载 10.4 内核版本 10.5 编写内核模块 第十一章 设备驱动程序 11.1 概述 11.2 设备驱动
基础
11.3 块设备驱动程序 11.4 字符设备驱动程序 第十二章 网络 12.1 概述 12.2 网络协议 12.3 套接字(socket) 12.4 套接字缓冲区(sk_buff) 12.5 网络设备接口 第十三章 启动系统 13.1 初始化流程 13.2 初始化的任务 13.3
Linux
的Boot Loarder 13.4 进入操作系统 13.5 main.c中的初始化 13.6 建立init进程 附录: 1
Linux
2.4内核API 2.1 驱动程序的基本函数 2.2 双向循环链表的操作 2.3 基本C库函数 2.4
Linux
内存管理中Slab缓冲区 2.5
Linux
中的VFS 2.6
Linux
的连网 2.7 网络设备支持 2.8 模块支持 2.9 硬件接口 2.10 块设备 2.11 USB 设备
如何查看
linux
内核
源代码
Linux
的内核
源代码
可以从很多途径得到。一般来讲,在安装的
linux
系统下,/usr/src/
linux
目录下的东西就是内核
源代码
。 对于
源代码
的阅读,要想比较顺利,事先最好对
源代码
的
知识
背景有一定的了解。对于
linux
内核
源代码
来讲,我认为,基本要求是:1、操作系统的基本
知识
;2、对C语言比较熟悉,最好要有
汇编
语言的
知识
和GNU C对标准C的扩展的
知识
的了解。另外在阅读之前,还应该知道Li...
Linux_Kernel
4,436
社区成员
17,460
社区内容
发帖
与我相关
我的任务
Linux_Kernel
Linux/Unix社区 内核源代码研究区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章