linux基础与应用学习感想_第1页
linux基础与应用学习感想_第2页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、公司绝密linux基础与应用学习感想篇一:linux学习心得体会linux学习心得我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了xp,上大学时又有了win7。说实话小时候没想过搞it,也计算机了解也只是一些皮毛,至于什么unix,linux,听过没见过,就更别说用过了。以前觉得linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。直到学习linux这门课以后,我才知道,原来我错了。一.为什么要学linux呢?每个人都有不同的看法,下面我说说自己的感想吧。首先linux是开源的,这也是最主要的原因,想学windows,unix,

2、对不起我们没源代码。也正是因为这样,linux才能够像滚雪球一样越滚越大,发展到现在这种规模。其中不乏很多it精英的心血。我们学透以后更可以做成自己的os!其次,linux简单易学,因为我们初学者只是学的基础部分,linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。对我们学习操作系统有很大的帮助,加深我们对os的理解。再次,linux是用c语言编写的,我们有学习c语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。二.学习情况在学习的过程中,我们用的是vm虚拟机,开始时真的不真的该怎么去做,特别

3、是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。后来通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟os程序。老实说,第一个程序是在c中编译好的,调试好了才在linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。但是一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在linux下调试了,因为有的头文件在vc里面说找不到。就这样,我们一边上os理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务,我们自学,就这个循环的过程中,我们学习了

4、基本操作,用vi,shell,模拟内存的分配过程等一些os管理。可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。期间我阅读了不少关于linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。三.对linux未来的展望众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户,甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的,这也正是有别的os得以存在的原因,每个系统都有其自身的优点。linux最

5、大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,随着it从业人员越来越多,理论上会有更多的人使用linux,可以肯定,linux在以后这多时间不会消失。linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面,那么linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。四.总结随着实验课程的结束,理论课也该结束了,说实话教os的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当),因为他们上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理

6、,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题,让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。最后,感谢老师和同学们在学习上对我的帮助。xx年-10-24附:参考资料百度百科老师给的讲义篇二:关于linux学习的心得体会关于linux学习的心得体会本学期对于linux系统的学习,让我对linux有了一定的了解。我知道了linux只是个内核。现在的linux操作系统,都是用这么一个内核,加上其它的应用程序构成

7、的。linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使其在金融安全等部门有很重要的应用。学习linux,首先我们应该从基础开始学起。对linux操作系统的功能版本特点,以及linux系统安装和图形环境有较全面的了解。linux命令是必须学习的。虽然linux桌面应用发展很快,但是命令在linux中依然有很强的生命力。linux是一个命令行组成的操作系统,精髓在命令行,学习如何在安全的环境中执行系统命令,包括有关文件目录文件系统进程等概念,如何使用相应的命令对文件目录进程等进行管理,了解遇到问题时,如何找到帮助信息等。linux常用命令,有echo命令da

8、te命令passwd命令file命令ls命令touch命令等。要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在学习初期。要增加自己的linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。应该说目前我们对于linux的学习只是入门而已,学习linux是一个长期的过程,很耗时间。作为电子信息工程专业的学生,对我们来说,linux将来主要应用于嵌入式linux系统的开发,这非一日之功,我们还需要不断深入地学习它。最后,衷心感谢唐磊老师一学期来的辛苦教学,唐老师幽默风趣的教学方式给我们的课堂带来很多欢乐。老

9、师辛苦了!篇三:linux学习总结学习linux,首先得了解它,linux是一种类unix的操作系统,在源代码级上兼容绝大部分的unix标准,他的标志是一直可爱的企鹅,linux从一开始,就决定自由扩散它,包括源代码,这引起了很多爱好者的注意,他们通过互联网加入了linux的内核开发工作,随着一大批高水平程序员的加入,使得linux的迅猛发展,到了1993年底,linux1.0诞生了。到了今天linux能够像滚雪球一样越滚越大,发展到现在这种规模。其中不乏很多it精英的心血我们学习linux,是在windows下安装vm虚拟机软件,实现在vm虚拟机安装linux操作系统进行一些服务器的配置实验

10、。开始做实验时,不知道为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,到了学习的后期才发现这些问题其实都不是很难的,只要了解了linux的基础之后,就可以很轻易的解决掉这方面的问题。我们学习linux是实行一节上理论课,一节实验课,老师讲解后,布置下我们的实验任务,然后接下来我们就跟上做实验,在这个不断循环的过程中,学会了用chown命令修改文件的拥有者,chmod命令权限,mount命令挂在光盘,vi编辑文件,smb服务器,dns服务器,dhcp服务器,ftp服务器的配置,完成了老师布置的任务,当然这个学习的过程中也出现了纰漏,在ftp服务器的配置中,开始

11、时始终测试不成功,自己检查了好几遍还是不行,最后是和我一起做实验的同学反现了问题的所在,是vi编辑一个重要文件时吧一个小写字母弄作了大写。从这可以看出linux是严格区分大小写,虽然出了纰漏但是我也发现了团队合作的重要。在学习的过程中我发现了linux命令的重要性。虽然现在linux桌面应用发展很快,但是命令在linux中依然拥有着很强的生命力。linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,linux命令有许多强大的功能:从简单的磁盘操作文件存取到进行复杂的多媒体图象和流媒体文件的制作。开始的时候一定会觉得用命令太复杂而不原意用,但是一旦学会

12、就离不了.习惯性的打开终端,就用命令操作各种服务器的配置。用命令可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间.通过一些基础命令的学习让我可以进一步理解linux系统:安装和登录命令:rebootmountrpm文件处理命令:mkdirmvlscat系统管理相关命令:useraddgroupaddtar网络操作命令:ifconfigippingnetstattelnetftproutenslookup系统安全相关命令:passwdsu这些仅仅是我们这学期学习linux下的服务器配置用到的部分命令,还有很多有待我进一步学习。学习linux要养成在命令行下工作

13、:一定要养成在命令行下工作的习惯,要知道x-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外地远程系统。linux的学习需要勤于实践:要增加自己linux的技能,只有通过实践来实现了。这学期的学习就是因为理论与实践的同步,进行linux理论学习的同时,还进行了linux下的smb服务器,dns服务器,dhcp服务器,ftp服务器的配置这些实验。着对于我自身linux能力有一定的提高

14、。可以说linux学习我的收获颇多。篇四:linux操作系统总结与心得linux操作系统总结与心得一知识总结我很荣幸选了“linux操作系统”这门课程,因为在这门课程的学习过程中,我们通过老师的讲解以及在网上查阅资料,学到了许多关于linux操作系统的知识,更重要的是学会了如何应用与操作linux操作系统,我们在自己的电脑上已经安装了linux操作系统,通过亲身体验,我们真正了解到linux系统的方便与快捷,体会到了linux操作系统与windows操作系统的异同之处。以下是我对linux操作系统的一些总结:(一)linux系统简介linux是一类unix计算机操作系统的统称。linux操作系

15、统的内核的名字也叫“linux”。linux操作系统也是自由软件和开放源代码发展中最著名的例子。严格来讲,linux这个词本身只表示linux内核,但在实际上人们已经习惯了用linux来形容整个基于linux内核,并且使用gnu工程各种工具和数据库的操作系统。linux得名于计算机业余爱好者linustorvalds。一般可以认为,linux是一套自由使用(一般可以免费使用)和自由传播的unix操作系统。这个系统是由世界各地的成千上万的程序员和实现的。其目的是建立不受任何商品化软件的版权制约全世界都能自由使用的unix兼容产品。实际上,linux仅仅是linux中的操作系统核心(kernel)

16、。(二)linux操作系统的安装linux操作系统的安装方法主要有3种,其方法如下:1.光盘安装到市场上的软件连锁店直接购买linux光盘发行版,用光盘来安装是最方便快捷的。目前redhat,turbolinux和corel都可以在连锁店买到。一定要注意,大部分linux发行版本有“完整版”和“精简版”的区分,例如turbolinux有1cd,3cd和10cd三个版本。2.网络安装3.硬盘安装从硬盘安装linux操作系统,首先要准备安装包,linux操作系统的安装包通常是一个或多个iso镜像文件(一般通过网络下载就可以得到);其次,要通过某种手段启动镜像文件中的系统安装程序;接下来,按照安装程

17、序的提示信息进行安装就可以了。安装过程中,需要指定linux操作系统的安装位置,这主要涉及硬盘分区的一些知识。总之,对于linux操作系统的硬盘安装,关键要学会两点:第一为linux操作系统准备硬盘空间。第二启动iso镜像文件中的安装程序。(三)常用的命令1文件目录操作命令ls显示文件和目录列表touch生成一个空文件或更改文件的时间cp复制文件或目录mv移动文件或目录文件或目录改名rm删除文件或目录cattac显示文本文件内容moreless分页显示文本文件内容ln建立链接文件whereis查找系统文件所在路径find在文件系统中查找指定的文件grep在制定的文本文件中查找指定的字符串pwd

18、显示当前工作目录cd切换目录mkdir创建目录rmdir删除空目录tree显示目录树chmod更改文件或目录的权限chown更改文件或目录的属主2信息显示操作命令stat显示指定文件的相关信息whoami显示用户自己的身份hostname显示主机名称uname显示系统信息dmesg显示系统启动信息top显示当前系统中耗费资源最多的进程du显示指定的文件(目录)已使用的磁盘空间的总量df显示文件系统磁盘空间的使用情况free显示当前内存和交换空间的使用情况ifconfig显示网络接口信息ping测试网络的连通性netstat显示网络状态信息3用户间通信操作命令write向另外一个登录用户发信息w

19、all向所有登录用户发信息mesg显示设置接受或者不接受其它登录用户发来的信息mailpine邮件收发ftpftp客户端程序lynx字符界面浏览器4备份压缩(四)web应用(五)邮件服务1邮件传递代理-mta在linux下的邮件传递代理包括sendmail,该系统几乎在任何unix平台上都有相应的版本;还有d.j.bernstein的qmail以及wietsevenema的postfix系统。它们负责接收并转递邮件。这听起来很简单,实际上设置可能相当复杂。在邮件策略管理时需要设置一系列的路由和伪装选项,而许多功能是由语言编程实现的,用以过滤或者修改中继消息的头信息。此外邮件路由和寻址邮件存储信

20、箱的过程包含了复杂的与各种目录服务交互操作,这些目录服务可能包括dns,密码文件,nis,ldap别名/数据库管理文件,以及各种的通用数据库系统。2邮件存储和获取代理msa一旦安装并设置完成了mta,通常还需要对msa系统进行同样的配置过程。如今大多数机构并不直接将邮件传送到桌面客户系统,而是将邮件存储到服务器,让用户通过pop或者imap来读取各自的邮件。3邮件客户代理mua二心得体会通过对“linux操作系统”这门课程的学习,我感觉对计算机知识有了更进一步的认识,在我掌握windows操作系统的同时,还掌握了linux操作系统。以前对linux系统只是知道个大概,而现在经过一个学期的学习,

21、使我对这款操作系统有了更深层次的了解,我学会了如何安装linux系统,如何在linux操作系统的背景下进行对计算机的基本操作。在使用这款的操作系统的同时,我发现了这款系统相对于windows系统有着很多的优势,linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有unix的全部功能,任何使用unix操作系统或想要学习unix操作系统的人都可以从linux中获益。并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿

22、来使用。因此,我比较喜欢用这款操作系统,他不仅安全,而且好用。经过这门课的学习,我不仅学会有关linux操作系统的一些知识,而且我在学习的过程中,通过自己查阅资料等方法,大大的提高了我自主学习能力与专研能力,以及同学之间的相互合作能力。因此,我十分感谢这门课的开设,因为让我学到了知识;我更感谢老师这种让学生自主学习的教学方法,因为它提高了同学们之间的相互合作能力。篇五:linux学习心得河海大学文天学院linux学习心得(论文)学号:110310120姓名:解小雨xx年-05-13linux学习心得八周的学习使我对linux系统和网络管理有了进一步的认识。上大学之前只接触过windows操作系

23、统,小时候最早接触的是windows98操作系统,之后是windowsxp,上大学时开始接触windows7.大概是受先入为主思想和自己知识欠缺状况的影响,一直以来,我都认为windows操作系统是最完美的操作系统,但现在我开始明白,除了windows系统之外还有linux这个很完美的操作系统。linux是一种自由和开放操作系统。目前存在着许多不同的linux,但它们都使用了linux内核。linux可安装在各种计算机硬件设备中,从手机平板电脑路由器和视频游戏控制台,到台式计算机大型机和超级计算机。linux是一个领先的操作系统,世界上运算最快的10台超级计算机运行的都是linux操作系统。严

24、格来讲,linux这个词本身只表示linux内核,但实际上人们已经习惯了用linux来形容整个基于linux内核,并且使用gnu工程各种工具和数据库的操作系统。linux是芬兰大学生linustorvalds按照unix内核制作的一款有别于unix的系统。它的标志是一个名叫“tux”的企鹅,之所以选择这个标志,是因为企鹅能在高寒酷冷的南极生存,具有顽强奋斗的精神,而这正是linux的精神之一。linux操作系统是unix操作系统的一种克隆系统。它诞生于1991年的10月5日(这是第一次正式向外公布的时间)。以后借助于internet网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天世

25、界上使用最多的一种unix类操作系统,并且使用人数还在迅猛增长。1981年ibm公司推出享誉全球的微型计算机ibmpc。在1981-1991年间,dos操作系统一直是微型计算机上操作系统的主宰。此时计算机硬件价格虽然逐年下降,但软件价格仍然是居高不下。当时apple的macs操作系统可以说是性能最好的,但是其天价没人能够轻篇二:linux学习心得linux学习心得总结第二事业部kevin.sunlinux简介:linux是一套免费使用和自由传播的类unix开源操作系统,是自由软件和开源代码的经典范例,由世界各地的成千上万的程序员和实现的。具有开放性多用户多任务出色的速度性能良好的用户界面丰富的

26、网络功能可靠的系统安全良好的可移植性标准兼容性等特点,在服务器,嵌入式,工控等方面都有广泛的应用。目前风靡全球的android智能系统也是基于linux内核开发的。第一次接触linux是在上大二的时候,一位给我们上课的老师在课间闲聊时用教训的语气给我们说,计算机专业的学生应该去好好学linux,你要不会linux都不好意思说自己是计算机科班毕业的(当然这有点夸张了,这位老师一直是研究linux的,对linux比较狂热),总之他说了一大堆linux的好处,比如开源啊,稳定性强,支持平台多等等。其实之前早就对linux有所耳闻,但觉得这是专业人士才搞的东西,很高深,我离那一步还早着呢,所以当时也没

27、听懂多少,听完过后只觉得linux是个开源免费的操作系统,在linux上面开发是比较有档次的,有前途的。于是,一兴奋,回去就找了个师兄借了张redhat9.0(linux一个比较稳定的商业发行版本)的光盘,在自己电脑上装了个linux系统,在上面装上了qq,音视频播放器,练了练linux的命令,编译运行了helloworld之类的入门程序,玩了几天后,我发现了一个比较严重的问题,在linux上没法玩魔兽和cs,兴奋劲一过,我的第一个linux系统就在我的电脑分区下长眠了。到后来,开了些以linux为实验平台的课程,于是又把linux系统拿出来,在上面做老师布置的作业,对linux也更了解了,自

28、己也能勉强在那上面做些简单的应用开发,学会了更多的命令,了解了何为gcc,makefile,vi,gdb,知道了怎样调试自己的程序,仅此而已。大三暑假找了个实习的工作,工作环境也是linux方面的应用程序开发,实习了两个多月,跟着公司的老员工打杂,逐渐对linux的应用开发也有了比较深入的了解,真正的产生了兴趣,自己也在linux下做了些小东西,用socket+gtk完成了一个类似于qq的局域网聊天工具等,当时高兴了好几天。毕业后的第一份工作也是linux相关的开发工作,到后来来xx也做linux,毕业快四年了,真正在linux上做开发也有四年多,从应用开发到驱动开发,再到研究内核。做了这么多

29、年来,不敢说有所成,但多少也有所得,有所感悟,回头看看自己学习的过程,也有过迷茫,彷徨甚至痛苦的经历,走过很多弯路,到现在也能勉强摸清linux脉路了,还算欣慰。我们部门还有很多linux高手,我也不敢班门弄斧,在此只是把自己的学习经历和心得总结出来和大家分享,希望对感兴趣的同事有所帮助。首先就是基础知识,俗话说工欲善其事,必先利其器,linux下95%以上的代码都是由c语言编写的(还有部分汇编和脚本),所以要想学好linux,必须要有扎实的c语言基础,c语言看似简单,但要学好并不容易,它绝非我们大学教材里面讲的那点东西。而且千万不要认为c语言过时了,它是开源社区,系统开发和嵌入式开发方面的王

30、者,在软件世界可以预见的未来,c语言将永远不会被淘汰,并将持续不断的焕发生命力。要学好c语言,没有别的办法,除了多写,多练,多看书,多看优秀代码(例如linux内核代码)。在此,给大家介绍几本我读过,并且读后觉得效果不错的经典书籍,入门的就不介绍了,大学基本上都学过,这里介绍几本进阶的,c专家编程,c和指针还有c语言深度剖析,前两本是国外优秀经典教材,国际级hacker的巨作,是c语言进阶必备书籍,后一本是国内一个高人写的网络书籍,很多地方也参考了前两本,由于是中国人自己写的,并且语言诙谐幽默,读起来比较容易理解,把这几本书吃透,再加上大量的练习,你基本上就可以大胆的说你精通c语言了。第二个需

31、要掌握的基础知识就是数据结构和算法,linux的代码里面运用了大量的链表,队列,堆栈,hash表,排序查找等数据结构和算法,所以把这些基础搞好,在后续的开发学习中会有事半功倍的效果。这里也没啥好多介绍的,计算机专业的话数据结构与算法课程是最重要的基础课,掌握这些是最基本的要求,没学过的话最好也找本书好好研究下。当然,上面提到的基础知识也不是说要非常精通才能学linux,c语言和数据结构不是一朝一夕就能学好的,一些东西先了解下,等在后期的学习开发过程中再慢慢补充也行。学linux要怎么入手?有哪些方法和路径?我学的时候也在网上参考了很多linux前辈的学习路径,基本上都大同小异,殊途同归,总结出

32、来由简到难就是使用linuxlinux系统编程开发驱动开发和分析linux内核,我也是这样一路走过来的。要使用linux,首先你要有思维上的转变,忘掉windows,linux和windows的设计思想不同,操作方式也有很大的不同,windowws以图形操作为主,而linux的精髓在于命令行,基本上所有的linux高级用户都是以命令操作为主,所以忘掉图形操作吧,把自己变成命令控,多学一些命令,你会发现一切会变得简单。然后学习下gcc,makefile和gdb,这些是linux编程的编译器和调试器,先知道怎么用就行了,在以后的编程中会大量使用到,到时候自然就熟悉了。还有就是要学会搭建自己的开发环

33、境,学着配置下samba,tftp之类的网络服务器,在以后都可能用的上的。现在我们就进入linux的系统编程,linux的系统编程主要分为文件操作,进程控制,线程控制,信号处理,ipc(进程间通信)这几个部分,这些都是linux编程的基础,必须要掌握。就文件操作来说,在linux的内核层,很多系统接口和设备驱动的节点基本上都是以文件的形式映射到上层文件系统,用户要访问这些设备都必须通过文件操作来进行。而且世界上不存在只有内核的操作系统,如果没有系统级的编程,内核就只是束之高阁的玩具,所以就算你的最终目的是驱动,是内核,这些东西也是必学的,在学这些的过程中也能锻炼你的linux思维,加深功底,有

34、了深厚的功底,后面的东西看起来会变得很简单。在这个阶段我再推荐两本书,人民邮电出版社的linuxc编程实战,这本书是linux下系统编程的入门级书籍,虽说是入门,但涵盖了linux下系统编程的所有主题,详略得当,也比较容易读懂,很适合初学者。还有一本就是国外的经典教材uinx环境高级编程(advancedprogrammingintheunixenvironment),这本书很厚(780页),我自己也没看完,讲的比前面那本更深入,更全面,也会更难一些,网上有人评论说在linux系统编程上遇到的所有问题基本上都能在这本书上找到。如果时间精力允许的话,强烈建议读完此书,并作为案头教材,随时参考,当

35、然如果你暂时没有那么多精力的话,把第一本书看完并吃透,你也可以进入下一阶段-内核!进入内核,你的思维又得转变下了。我在这里先声明一个概念,关于linux操作系统的两种运行级别,在intelcpu上有ring0-ring3四个运行级别(其实不止是intel的cpu,几乎所有的cpu都有不同的运行级别,只是定义不同罢了),不同的级别运行权限不一样,一个低级别运行态不能随便访问高级别运行态的数据。但在linux上只用了两种,ring3级运行用户态,ring0运行内核态,没有使用ring1和ring2。ring3状态不能访问ring0的地址空间,包括代码和数据。linux进程被映射到4gb的地址空间,

36、0-3gb是用户态和内核态共享的,3gb-4gb是内核态专用的地址空间,这里存放了整个内核的代码和内核模块,以及内核所维护的数据。用户的应用程序是运行在用户态的,如果需要访问内核态的数据,比如应用层需要与驱动交互,进行网络数据发送等,则必须使用open,read/write,ioctl,send等系统调用才能访问到,系统调用会调用到内核中的代码,这时,必须切换到ring0,然后进入3gb-4gb的内核地址空间去执行这些内核代码,完成后,切换回ring3,回到用户态。这样,用户态的程序就不能随意操作内核地址空间,对内核起到一定的安全保护作用。所以当进入内核编程时,一切也要小心,稍微不注意就会把系

37、统搞挂。另外还有一个事情提醒下大家,内核态和用户态相当于两个世界了,两个世界两个制度,之前在应用层编程的用的得心应手的c函数库在内核态就不能再用了,之前的很多编程调试技巧在内核里面也不起作用了。所以,我们又得从helloworld开始了。写一个内核模块程序应该算是内核的helloworld了,把这个程序编译并装载进内核运行后,了解其运行机制,你基本上就算进入内核了(当然你也得先了解内核的基本架构,知道怎么编译配置一个内核),但后面的路还很长,相当于万里长征的第一步。接下来你就可以研究linux驱动了,关于驱动的学习,除了linux自身的驱动原理架构要掌握之外,硬件基础和实践都是很重要的,所以对

38、硬件基础较差的初学者来说这个阶段最好有人带,一个人自学的话往往收效甚微,你自己琢磨一个星期都想不明白的事情,别人可能一句话就能把你点通。这个阶段不得不推荐的书当然就是linux驱动开发人员的圣经-oreilly的linux设备驱动程序(俗称ldd)了,现已出了第三版,基于linux2.6内核,这本书理论讲解透彻,包括了linux驱动开发中常用到的所有技术点,把底层内核提供给驱动的api介绍的也比较清楚,而且每个技术点都有相应的例子供你练习,学的时候注意多实践,不要一味的看书,而且不要指望第一遍就能看懂他,我断断续续看了三遍以上,很多地方也还拿不准,这本书对做驱动的人来说,读五遍以上一点都不过分

39、,每读一遍你都会有新的收获,回味无穷。但这本书对基础较差的人来说起点偏高,不容易看懂,国内也有不少关于linux驱动的书,但真正能拿的出手的不多,宋宝华的linux设备驱动开发详解还算不错,他很多地方参考了前面那本,虽说比起来还有一定的差距,但对初学者来说更容易看懂,建议两本书交叉着一起看,遇到不懂的可以相互参考,看完这两本书,你基本上就掌握了驱动开发的基础了,剩下的就是实际开发经验。驱动方面我就不多说了,很多同事都有丰富的经验,每个人的基础不一样,所处的环境不一样(是否有人带,是否有机会参加实际项目开发),学习的效果也是有很大的差距的。如果真的没人带的话,最好自己买个arm开发板,在网上找资

40、料,自己玩板子,没有实际调试,就枉谈驱动开发。另外在学习的驱动的时候最好能深入研究驱动的实现原理和机制,多思考,比如知道怎么去创建一个字符设备了,但对实现原理不大清楚的话就深入点去看看linux设备模型,了解linux系统的设备管理机制,对整个系统的掌控都会有不小的收获,不要认为把结果调出来完成了工作你就掌握了linux驱动开发,那样长期以往,你有的只是靠时间累积起来的经验,但如果能深挖内部原理,你的能力将呈指数增长。知道了怎么用kmalloc()不代表你就懂的linux的内存管理系统,知道schedule()函数也不代表你知道操作系统的进程调度原理,正如同会说汉语并不能说明你了解中国文化一样

41、,如果你有足够的好奇心,吃的下苦,有足够的时间精力,那就去读linux内核源码吧,去了解操作系统的核心,内核比较难啃,但能啃下来的话你将收获颇丰。linux的内核主要分为五个模块,内存管理,文件系统,进程调度,进程间通信(ipc)和网络接口。进程调度控制进程对cpu的访问;内存管理控制进程对内存区域的安全访问,linux的内存管理还使用了虚拟内存,较为复杂;虚拟文件系统隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,目前linux提供了数十种的文件系统的支持;进程间通信(ipc)提供了各个进程之间相互通信的机制;网络接口提供了对各种网络标准的存取和各种网络硬件的支持。从图可以看到进程调度是最核心的模块,也是整个操作系篇三:linux学习心得linux学习心得我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了xp,上大学时又有了win7。说实话小时候没想过搞it,也计算机了解也只是一些皮毛,至于什么unix,linux,听过没见过,就更别说用过了。以前觉得linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。直到学习linux这门课以后,我才知道,原来我错了。一.为什么要学linux呢?每个人都有不同的看法,下面我说说自己的感想吧。首先linux是开源的,这也是最主要的原因,想

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论