问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

如何自学linux内核?

发布网友 发布时间:2022-04-23 03:52

我来回答

3个回答

热心网友 时间:2023-08-06 00:08

1 学习一些操作系统的理论知识,一些概念。比如:进程,内存管理,文件系统等等。关于这一方面的书籍太多了,自己找一本就行了

2 学习x86汇编,虽然linux用的是AT&T汇编,但二者只是格式不同而已。而且学习x86汇编有助于了解x86系统结构。书籍推荐王爽的《汇编语言》 ,我学的时候用的不是这个,后面看到这本书,才觉得自己做了“苦功了”。学完大部分汇编指令时,找些汇编程序读读,熟悉这些指令的用法。不需要有写汇编程序的能力,能读就行了,当然会写更好

3 赵炯的《Linux内核0.11完全注释》。这个linux内核版本低,作者也讲得很详细。不过关于x86体系的那一部分,作者讲得很繁琐,这一部分一定要大体看懂,那后面章节的内容就没有多大的问题了。我先把书通看了一遍,用了1个月的时间。后来,再返回来一个一个研究,用了2个月。
之所以看这本书,是让自己对内核有个实质的感受,不仅仅只是理论上的东西。

4 毛德操的《linux内核情景分析》。linux内核版本2.4.0,这本书很厚,上下两册。我通读一遍,用了2个月时间。后来,再返回来一个一个研究,现在已用了2个月,正在研究中。。。。就我个人觉得,linux内核最难的是内存管理,这2个月我就只大体搞清内存页面的周转,但搞清了这个,就会对内核的整体结构有个大致的了解,因为你已经清楚了用户进程和内核的其它部分是怎样使用内存页面的。

5 学习linux内核最需要的是坚持和思考。这是一个很长的过程,也许你会发现学了linux内核,并不会给你带来什么,我现在就是这样觉得的,感觉自己什么都不会做,真希望有人能我一些建议!不过学习学习也是有好处的,比如看了赵炯的《Linux内核0.11完全注释》后,你再去看UCOS-II,会感觉那太容易了!也许学习linux内核会对将来的工作有所帮助吧!

热心网友 时间:2023-08-06 00:09

学嵌入式Linux要先学以下几点:
1.C语言。要有C语言的基础,当然越熟练越好,不熟也没关系,具备基本技能就可以:比如写一个数组排序、输入数字求和什么的。C语言的学习就是多些多练。
2.Linux基础
Linux操作系统的概念、安装方法,详细了解Linux下的目录结构、基本命令、编辑器VI ,编译器GCC,调试器GDB和 Make 项目管理工具, Shell、 Makefile脚本编写等知识,嵌入式开发环境的搭建。
3.Linux系统编程
重点学习标准I/O库,Linux多任务编程中的多进程和多线程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等),同步与互斥对共享资源访问控制等重要知识,主要提升对Linux应用开发的理解和代码调试的能力。
4.Linux网络编程
计算机网络在嵌入式Linux系统应用开发过程中使用非常广泛,通过Linux网络发展、TCP/IP协议、socket编程、TCP网络编程、UDP网络编程、Web编程开发等方面入手,全面了解Linux网络应用程序开发。重点学习网络编程相关API,熟练掌握TCP协议服务器的编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播、多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
5.数据结构与算法
数据结构及算法在嵌入式底层驱动、通信协议、及各种引擎开发中会得到大量应用,对其掌握的好坏直接影响程序的效率、简洁及健壮性。此阶段的学习要重点理解数据结构与算法的基础内容,包括顺序表、链表、队列、栈、树、图、哈希表、各种查找排序算法等应用及其C语言实现过程。
6.Cortex A8 、Linux 平台开发
通过基于ARM Cortex-A8处理s5pv210了解芯片手册的基本阅读技巧,掌握s5pv210系统资源、时钟控制器、电源管理、异常中断控制器、nand flash控制器等模块,为底层平台搭建做好准备。Linux平台包括内核裁减、内核移植、交叉编译、GNU工具使用、内核调试、Bootloader介绍、制作与原理分析、根文件系统制作以及向内核中添加自己的模块,并在s5pv210实验平台上运行自己制作的Linux系统,集成部署Linux系统整个流程。同时了解Android操作系统开发流程。Android系统是基于Linux平台的开源操作系统,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件,目前它的应用不再局限于移动终端,还包括数据电视、机顶盒、PDA等消费类电子产品。
7.驱动开发
驱动程序设计是嵌入式Linux开发工作中重要的一部分,也是比较困难的一部分。本阶段的学习要熟悉Linux的内核机制、驱动程序与用户级应用程序的接口,掌握系统对设备的并发操作。熟悉所开发硬件的工作原理,具备ARM硬件接口的基础知识,熟悉ARM Cortex-A8处理器s5pv210各资源、掌握Linux设备驱动原理框架,熟悉工程中常见Linux高级字符设备、块设备、网络设备、USB设备等驱动开发,在工作中能独立胜任底层驱动开发。

热心网友 时间:2023-08-06 00:09

linux学习路线
第一阶段零基础入门

第二阶段Linux系统管理&shell编程

第三阶段百万级访问量集群实战

第四阶段千万级访问量核心集群实战

第五阶段一切核心技术的底层支持:云计算集群

第六阶段大数据运维

第七阶段Python自动化和毕业指导
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
请问用洗厕液洗手后有什么危害?当时没有别的清洗剂,只是用清水冲了冲... ...宽40 后来长增加100米 宽增加20,比原来增加多少平方米 ...变成了一个正方形,现在操场的面积比原来增加 ...操场扩建长增加10米或宽增加20米面积都比原来增加400平方米操场原来... ...把长增加10米,戓把宽增加20米,面积都比原来增加400平方米,操场原... ...长增加40米,宽增加20米,这个操场的面积增加了多少平方厘米? ...米宽40米后来长增加10米宽增加20米现在操场的面积是多少平方米比_百 ... ...长增加40米,宽增加20米。则操场的面积增加了多少平方米? ...扩建后长增加了二十米,操场的面积增加多少平方米? 一种拧小灯泡的工具是橡胶质地的一种套管他的学名叫什么 请问学习linux网络编程要具备哪些知识? linux系统网络编程主要是学什么??要用到哪些概念和函数??最好是举例说明,要详细些? 我想学linux网络编程,有三个问题不太明白想请教各位:1.linux网络编程都有哪些应用场景。2它 linux网络工程师都需要掌握哪些技能? 想开始学习linux网络编程,有什么练手的项目 共享打印机老实出现提示安装驱动,求大神解决 连接局域网内共享打印机提示windows无法连接到打印机,无法找到打印机驱 ... XP连接WIN7共享的打印机,提示未安装驱动,该怎么解决? 添加网络共享的打印机时提示 windows无法找到驱动 怎么解决? 连接共享打印机时,有些电脑提示安装驱动,有些电脑不提示安装驱动,为什么会这样?不提示安装的打印不了 添加网络共享的打印机,提示驱动程序不正确,无法自动加载驱动 网络共享打印机出现需要“更新驱动程序”这是怎么回事,下载了驱动重新还是不行,求解 本人电脑是内部局域网,连接网络打印机时提示:服务器安装的打印机驱动程序不正确 共享打印机提示没有驱动怎么处理? 连共享打印机时安装驱动程序时总显示无法连接,要重新安装或更新 这是怎... 无法连接共享打印机,提示需要安装驱动,请给个详细的操作过程,谢谢! 跨系统共享打印机,提示驱动不正确!怎么解决? 添加网络打印机失败,提示需要安装驱动是什么问题?? 烧烤吃什么凉菜 哪些菜适合做夏天的凉拌菜 有哪些适合新手的关于Linux网络编程的项目 请问Linux下学习网络编程应该具备的知识? 请问中兴u930可以使用HC内核工具备份efs文件吗 网路流行语言 网络流行词语知多少,大家都来解释一下! 谁知道榕树的科属? 美军是如何利用虚拟现实技术来进行军事训练的? 目前已知光速最快,那么未来有没有可能发现快于光速的速度呢? 网络的口语 求网络语言大汇总 有什么网站可以免费学英语 华为麦芒4如何换电池? 华为麦芒4电池更换去哪? 华为麦芒4电池如何更换? 华为 麦芒4能更换电池吗? 华为麦芒4 换电池去哪? 华为麦芒4自己换电池可以吗? 华为麦芒4费电太快充电还特别慢 可以换电池吗 换电池我该去哪换 华为麦芒四可以售后换电池吗? 华为麦芒4手机电池更换去哪?
  • 焦点

最新推荐

猜你喜欢

热门推荐