- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
漫谈Linux,龙芯及其软件开发 陈华才 2010.03 目录 Linux及相关概念 Linux开发者初步教程 Linux及相关概念 Linux及相关概念(续) X86是使用最广泛的CPU,Linux是使用最广泛的操作系统 FreeBSD是Unix的一种,可以跑在X86 PC上 龙芯(Godson,Loongson)是MIPS的一种 Linux及相关概念(续) Q:Windows和Linux啥关系? A:决定于在什么平台上:如果同在X86上,Windows和Linux好比是中国人和美国人的关系(近)。但X86上的Windows和龙芯上的Linux则如同地球人和火星人的关系(远)在Linux/X86上,可以用Wine来运行Windows程序,但Linux/Loongson上则不行 Q:Linux/X86与Linux/Loongson啥关系? A:一样的皮肤(表象),不一样的基因(本质)从应用层面和源代码的高级语言层面看来,几乎完全一样。从编译后的二进制代码看来,完全不同。 Linux与龙芯 龙芯CPU系列 龙芯一号:32位嵌入式MIPS CPU 龙芯二号:64位通用MIPS CPU,有2A、2B、2C、2D、2E和2F等型号(从2E开始进入实用阶段) 龙芯三号:64位多核MIPS CPU,目前只有3A Linux最初只支持X86,后来扩展到其他平台 Linux-2.6.23:开始支持龙芯2E Linux-2.6.33:开始支持龙芯2F Linux开发者初步教程 Q:Linux有没有VC?有没有Java?有没有……? A:Linux支持C,C++,Java,Pascal,ADA……几乎地球上的每一种编程语言。但,Linux不支持VC,因为VC不是语言,是IDE(集成开发环境) Q:Linux有没有IDE? A:有。Qt Creator,KDevelop,Glade…… Linux开发者初步教程(续) 如果不用IDE…… 编辑器+编译器+调试器 编辑器:Vim,Emacs,KEdit,GEdit…… Vim插件,如cscope,ctags可用于函数定位 如果不用插件,文件内用/命令搜索,目录内用grep命令搜索,find用于文件名搜索…… 编译器:gcc,jdk…… gcc = GNU C Compiler ? GNU Compiler Collector 调试器:gdb,ddd…… Linux可以在纯文本环境下开发任意程序,包括GUI程序! Linux开发者初步教程(续) 关于跨平台 源代码跨平台 vs. 目标代码跨平台 前者是一次编写,处处编译(Qt/C++) 后者是一次编译,处处运行(Java) 跨操作系统 vs. 跨硬件平台 Wine,Cygwin等API模拟器即可实现跨操作系统(硬件平台相同) Java,Python脚本语言才可以跨硬件平台 如何参与Linux软件开发? Linux User当久了,想成为一个Linux Developer 1,作为用户,给开发者提需求 2,作为测试员,给开发者反映Bug 3,包装开发,如制作RPM、DEB等软件包 4,直接参与代码编写 如何阅读代码? 参与代码编写第一步,阅读已有的代码 一个动辄上万行代码的工程,如何读懂,从哪里读起? 1,如果有文档/书籍,参照阅读 2,如果没有文档(自由软件大都文档不全) 找准入口点 理清主脉络 顾名思义看功能 如何阅读代码?(续) 找准入口点 高级语言(C语言) 应用程序:从main()开始 内核模块:从XXX_init()开始搜索关键语句module_init(XXX_init); 内核本身:Linux内核从__start_kernel()开始Xen内核从__start_xen()开始 汇编语言 可能从start/_start等类似词汇的标号处开始,大多会用.global/.globl伪指令标识 如何阅读代码?(续) 理清主脉络 去粗取精,眼不见为净,去掉没用的,留下有用的。 1,代码 vs. 注释 去掉//… /*…*/ #if 0 … #endif 2,程序流程 vs. 变量声明 去掉变量声明,简单赋值 3,功能语句 vs. 调试语句 去掉printf(), printk(), debug()… 4,正常流程 vs. 异常流程 去掉返回值检查,try-catch中的catch子句…… 5,常见路径 vs. 罕见路径 Switch,if-else结构等只保留最常见的一种情况 如何阅读代码?(续) 举例:Gxemul 一个运行在X86上的龙芯模拟器 入口点是main()函数 最终处理 去掉参数处理,内存分配/释放操作 … 顾名思义看功能 几点看法 学习Linux ≠ 仇视Windows 存在的就是合理的,Wi
您可能关注的文档
- 江苏省学生体质健康“点校”报道稿撰写要求与照片处理技巧课程.ppt
- 厦门达邦电子材料有限公司课程.ppt
- 江苏省扬中高级中学 杨香涛课程.ppt
- 江苏省医学领军人才申请汇报课程.ppt
- 江苏省宜兴一中 徐慧明课程.ppt
- 厦门大学 《计算机应用基础》 课程.ppt
- 江苏省中小学教师网上知识竞赛课程.ppt
- 厦门大学 《计算机应用基础》2009年10月课程.ppt
- 江苏省中小学教育卡课程.ppt
- 厦门大学分析化学研究性学习论文课程.ppt
- 金融产品2024年投资策略报告:积极适应市场风格,行为金融+机器学习新发现.pdf
- 交运物流2024年度投资策略:转型十字路,峰回路又转(2023120317).pdf
- 建材行业2024年投资策略报告:板块持续磨底,重点关注需求侧复苏.pdf
- 宏观2024年投资策略报告:复苏之路.pdf
- 光储氢2024年投资策略报告:复苏在春季,需求的非线性增长曙光初现.pdf
- 公用环保2024年投资策略报告:电改持续推进,火电盈利稳定性有望进一步提升.pdf
- 房地产2024年投资策略报告:聚焦三大工程,静待需求修复.pdf
- 保险2024年投资策略报告:资产负债匹配穿越利率周期.pdf
- 政策研究2024年宏观政策与经济形势展望:共识与分歧.pdf
- 有色金属行业2024年投资策略报告:新旧需求共振&工业原料受限,构筑有色大海星辰.pdf
最近下载
- 结题报告高中物理小课题.PPT
- NB∕T 32037-2017 光伏发电建设项目文件归档与档案整理规范.pdf VIP
- 2024《高考志愿填报咨询服务意愿的影响因素实证研究》16000字.docx
- 无线网络优化模考试题(附答案).docx
- 中图版高中地理必修第二册课后习题 第四章 国土开发与保护 第一节 京津冀协同发展的地理背景 (2).doc VIP
- 工厂消防安全设备检查记录表.docx VIP
- 海绵城市监理实施细则.doc VIP
- 人教版小学二年级数学下册期中试卷.doc VIP
- 巴黎奥运樊振东乒乓球故事介绍【优质公开课】精品PPT课件模板.pptx
- 丽声北极星分级绘本第一级上 A Day with Monster Toon课件 .pptx VIP
文档评论(0)