- 2021-05-07 发布 |
- 37.5 KB |
- 11页
申明敬告: 本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
文档介绍
linux基础与应用学习感想
linux基础与应用学习感想 linux基础与应用学习感想 linux基础与应用学习感想 linux基础与应用学习感想 linux基础与应用学习感想 linux基础与应用学习感想 篇一:LINUX学习心得体会 linux学习心得 我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后 来又有了xp,上大学时又有了win7。说实话小时候没想过搞it,也计算机了解也只是一些 皮毛,至于什么unix,linux,听过没见过,就更别说用过了。 以前觉得linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。直到 学习linux这门课以后,我才知道,原来我错了。 一.为什么要学linux呢?每个人都有不同的看法,下面我说说自己的感想吧。首先linux是开源的,这也是最主要的原因,想学windows,unix,对不起我们没源代 码。也正是因为这样,linux才能够像滚雪球一样越滚越大,发展到现在这种规模。其中不 乏很多it精英的心血。我们学透以后更可以做成自己的os!其次,linux简单易学,因为我们初学者只是学的基础部分,linux的结构体系非常清晰, 再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操 作和运行模式。对我们学习操作系统有很大的帮助,加深我们对os的理解。 再次,linux是用c语言编写的,我们有学习c语言的基础,读程序和编写代码方面存 在的困难小一点,也是我们能较快掌握的原因之一。 二.学习情况 在学习的过程中,我们用的是vm虚拟机,开始时真的不真的该怎么去做,特别是我的是 命令窗口界面,别人的是图形界面,我都不知道怎么调过来。后来通过自学老师给的资料和 向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在linux环境下运行,转 换目录等等。学了这些基础才能进行下面的模拟os程序。 老实说,第一个程序是在c中编译好的,调试好了才在linux下运行,感觉用vi比较麻 烦,因为有错了不能调试,只是提示错误。但是一些显而易见的小错误还是用vi改正比较方 便。以后的大一点的程序就得在linux下调试了,因为有的头文件在vc里面说找不到。就这样,我们一边上os理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步 地布置任务,我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟 内存的分配过程等一些os管理。可以说自己收获很大,基本上完成了老师布置的任务,对于 拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。 期间我阅读了不少关于linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了 我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。 三.对linux未来的展望众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变, 其方便友好的图形界面吸引了众多的用户,甚至目前许多应用软件都是基于它的。可是没有 哪一个系统是十分完美的,这也正是有别的os得以存在的原因,每个系统都有其自身的优 点。 linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原 因之一,随着it从业人员越来越多,理论上会有更多的人使用linux,可以肯定,linux在 以后这多时间不会消失。linux简单,占内存少,特别是对于程序开发人员来说很方便,如 果说windows的成功在于其方便用户的窗口管理界面,那么linux的成功就在于用最少的资 源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。 四.总结 随着实验课程的结束,理论课也该结束了,说实话教os的这两位老师是我们遇到过的不 错的老师(这话放这可能不太恰当),因为他们上课传授的不仅仅是知识,更重要的是一些道 理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不 以你过去的成绩看问题,让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。 其实老师让写心得我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌 乱;很少提到编程,因为那些在实验报告里已经说了,这里再写就多余了。最后,感谢老师 和同学们在学习上对我的帮助。2010-10-24 附:参考资料 百度百科 老师给的讲义篇二:关于linux学习的心得体会 关于linux学习的心得体会本学期对于linux系统的学习,让我对linux有了一定的了解。我知道了linux只是个 内核。现在的linux操作系统,都是用这么一个内核,加上其它的应用程序构成的。linux 最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使 其在金融、安全等部门有很重要的应用。 学习linux,首先我们应该从基础开始学起。对linux操作系统的功能、版本、特点, 以及linux系统安装和图形环境有较全面的了解。 linux命令是必须学习的。虽然linux桌 面应用发展很快,但是命令在linux中依然有很强的生命力。linux是一个命令行组成的操 作系统,精髓在命令行,学习如何在安全的环境中执行系统命令,包括有关文件、目录、文件 系统、进程等概念,如何使用相应的命令对文件、目录、进程等进行管理,了解遇到问题时, 如何找到帮助信息等。linux常用命令,有echo 命令、date命令、passwd命令、file命令、 ls命令、touch命令等。 要明白学好linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在学习初期。 要增加自己的linux技能,只有通过实践来实现。只要多动手,就一定会有收获。遇到问题 时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。应该说目前我们对于linux的学习只是入门而已,学习linux是一个长期的过程,很耗 时间。作为电子信息工程专业的学生,对我们来说,linux将来主要应用于嵌入式linux系 统的开发,这非一日之功,我们还需要不断深入地学习它。 最后,衷心感谢唐磊老师一学期来的辛苦教学,唐老师幽默风趣的教学方式给我们的课 堂带来很多欢乐。老师辛苦了!篇三:linux学习总结学习linux,首先得了解它,linux是一种类unix的操作系统,在源代码级上兼容绝大 部分的unix标准,他的标志是一直可爱的企鹅,linux从一开始,就决定自由扩散它,包括 源代码,这引起了很多爱好者的注意,他们通过互联网加入了linux的内核开发工作,随着 一大批高水平程序员的加入,使得linux的迅猛发展,到了1993年底,linux1.0诞生了。 到了今天linux能够像滚雪球一样越滚越大,发展到现在这种规模。其中不乏很多it精英的 心血 我们学习linux,是在windows下安装vm虚拟机软件,实现在vm虚拟机安装linux操 作系统进行一些服务器的配置实验。开始做实验时,不知道为什么我使用一个命令的时候, 系统告诉我找不到该目录,我要如何限制使用者的权限等问题,到了学习的后期才发现这些 问题其实都不是很难的,只要了解了 linux 的基础之后,就可以很轻易的解决掉这方面的问 题。我们学习linux是实行一节上理论课,一节实验课,老师讲解后,布置下我们的实验任 务,然后接下来我们就跟上做实验,在这个不断循环的过程中,学会了用chown命令修改文 件的拥有者,chmod命令权限,mount命令挂在光盘,vi编辑文件,smb服务器,dns服务器, dhcp服务器,ftp服务器的配置,完成了老师布置的任务,当然这个学习的过程中也出现了 纰漏,在ftp服务器的配置中,开始时始终测试不成功,自己检查了好几遍还是不行,最后 是和我一起做实验的同学反现了问题的所在,是vi编辑一个重要文件时吧一个小写字母弄作 了大写。从这可以看出linux是严格区分大小写,虽然出了纰漏但是我也发现了团队合作的 重要。在学习的过程中我发现了linux命令的重要性。虽然现在linux桌面应用发展很快,但 是命令在linux中依然拥有着很强的生命力。linux是一个命令行组成的操作系统,精髓在命 令行,无论图形界面发展到什么水平这个原理是不会变的,linux命令有许多强大的功能: 从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。开始的时候 一定会觉得用命令太复杂而不原意用,但是一旦学会就离不了.习惯性的打开终端,就用命令 操作各种服务器的配置。用命令可以完成非常复杂的操作,如果同样的操作用图形界面的工具 来完成,恐怕要多花十几陪的时间.通过一些基础命令的学习让我可以进一步理解linux系统: 安装和登录命令: reboot 、mount、rpm文件处理命令: mkdir、 mv 、ls 、cat系统管理 相关命令: useradd、 groupadd 、tar网络操作命令:ifconfig、 ip 、ping 、 netstat 、 telnet、 ftp、 route、nslookup 系统安全相关命令: passwd 、su、 这些仅仅是我们这 学期学习linux下的服务器配置用到的部分命令, 还有很多有待我进一步学习。学习linux要养成在命令行下工作:一定要养成在命令行下工作的习惯,要知道x- window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但 是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上 就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也 能操纵几千公里以外地远程系统。linux的学习需要勤于实践: 要增加自己linux 的技能,只有通过实践来实现了。这学期的学习就是因为理论与实践的同步,进行linux理论学习的 同时,还进行了linux下的smb服务器,dns服务器,dhcp服务器,ftp服务器的配置这些 实验。着对于我自身linux 能力有一定的提高。可以说linux学习我的收获颇多。篇四:linux 操作系统总结与心得linux操作系统总结与心得 一 知识总结 我很荣幸选了“linux操作系统”这门课程,因为在这门课程的学习过程中,我们通过老师的讲解以及在网上查阅资料,学到了许多关于linux操作系 统的知识,更重要的是学会了如何应用与操作 linux操作系统,我们在自己的电脑上已经安装了linux操作系统,通过亲身体验,我 们真正了解到linux系统的方便与快捷,体会到了linux操作系统与windows操作系统的异 同之处。以下是我对linux操作系统的一些总结: (一)linux系统简介 linux是一类unix计算机操作系统的统称。linux操作系统的 内核的名字也叫“linux”。linux操作系统也是自由软件和开放源代码发展中最著名的 例子。严格来讲,linux这个词本身只表示linux内核,但在实际上人们已经习惯了用linux 来形容整个基于linux内核,并且使用gnu 工程各种工具和数据库的操作系统。linux得名 于计算机业余爱好者linus torvalds。 一般可以认为,linux是一套自由使用(一般可以免费使用)和自由传播的unix操作系 统。这个系统是由世界各地的成千上万的程序员和实现的。其目的是建立不受任何商品 化软件的版 权制约、全世界都能自由使用的unix兼容产品。实际上,linux仅仅是linux 中的操作系统核心(kernel)。 (二)linux操作系统的安装linux操作系统的安装方法主要有3种,其方法如下: 1.光盘安装 到市场上的软件连锁店直接购买linux 光盘发行版,用光盘来安装是最方便快捷的。 目前redhat,turbolinux和corel都可以在连锁店买到。一定要注意,大部分linux发行版本有“完整版”和“精简版”的区分,例如turbolinux 有1cd,3 cd和10cd三个版本。 2.网络安装 3.硬盘安装 从硬盘安装linux操作系统,首先要准备安装包,linux操作系统的安装包通常是一个或多个iso镜像文件(一般通过网络下载就可以得到);其次,要 通过某种手段启动镜像文件中的系统安装程序;接下来,按照安装程序的提示信息进行安装 就可以了。安装过程中,需要指定linux操作系统的安装位置,这主要涉及硬盘分区的一些 知识。总之,对于linux操作系统的硬盘安装,关键要学会两点:第一、为linux操作系统 准备硬盘空间。第二、启动iso镜像文件中的安装程序。 (三)常用的命令 1、文件目录操作命令 ls 显示文件和目录列表 touch 生成一个空文件或更改文件的时间 cp 复制文件或目录 mv 移动文件或目录、文件或目录改名 rm 删除文件 或目录cat、tac 显示文本文件内容 more、less 分页显示文本文件内容 ln 建立链接 文件 whereis 查找系统文件所在路径 find 在文件系统中查找指定的文件 grep 在制定 的文本文件中查找指定的字符串 pwd 显示当前工作目录 cd 切换目录 mkdir 创建目录 rmdir 删除空目录 tree 显示目录树 chmod 更改文件或目录的权限 chown 更改文件或 目录的属主 2、信息显示操作命令 stat 显示指定文件的相关信息whoami 显示用户自己的身份 hostname 显示主机名称 uname 显示系统信息dmesg 显示系统启动信息 top 显示当前系统中耗费资源最多的进程 du 显示指定的文件(目录)已使用的磁盘空间的 总量 df 显示文件系统磁盘空间的使用情况free 显示当前内存和交换空间的使用情况 ifconfig 显示网络接口信息 ping 测试网络的连通性 netstat 显示网络状态信息 3、用户间通信操作命令 write 向另外一个登录用户发信息 wall 向所有登录用户发信息 mesg 显示、设置接受或者不接受其它登录用户发来的信息 mail、pine 邮 件收发 ftp ftp客户端程序lynx 字符界面浏览器 4、备份压缩 (四)web应用 (五)邮件服务 1、邮件传递代理-mta在linux下的邮件传递代理包括sendmail,该系统几乎在任何unix平台上都有相应的 版本;还有d.j. bernstein的qmail以及wietse venema的postfix系统。它们负责接收并 转递邮件。这听起来很简单,实际上设置可能相当复杂。在邮件策略管理时需要设置一系列 的路由和伪装选项,而许多功能是由语言编程实现的,用以过滤或者修改中继消息的头信息。 此外邮件路由和寻址邮件存储信箱的过程包含了复杂的与各种目录服务交互操作,这些目录 服务可能包括dns,密码文件,nis, ldap别名/数据库管理文件,以及各种的通用数据库系 统。 2、邮件存储和获取代理msa一旦安装并设置完成了mta,通常还需要对msa系统进行同样的配置过程。如今大多数 机构并不直接将邮件传送到桌面客户系统,而是将邮件存储到服务器,让用户通过pop或者 imap来读取各自的邮件。 3、邮件客户代理mua二 心得体会 通过对“linux操作系统”这门课程的学习,我感觉对计算机知识有了更进一步的认识, 在我掌握windows操作系统的同时,还掌握了linux操作系统。以前对linux系统只是知道个大概,而现在经过一个学期的学习,使我对这款操作系统 有了更深层次的了解,我学会了如何安装linux系统,如何在linux操作系统的背景下进行 对计算机的基本操作。在使用这款的操作系统的同时,我发现了这款系统相对于windows系 统有着很多的优势,linux之所以受到广大计算机爱好者的喜爱,主要原因有两个,一是它 属于自由软件,用户不用支付任何费用就可以获得它和它的源代码,并且可以根据自己的需 要对它进行必要的修改,无偿对它使用,无约束地继续传播。另一个原因是,它具有unix 的全部功能,任何使用unix操作系统或想要学习unix操作系统的人都可以从linux中获益。 并且这样一个功能强大的软件完全免费,其源代码是完全公开的,任何人都能拿来使用。因 此,我比较喜欢用这款操作系统,他不仅安全,而且好用。 经过这门课的学习,我不仅学会有关linux操作系统的一些知识,而且我在学习的过程 中,通过自己查阅资料等方法,大大的提高了我自主学习能力与专研能力,以及同学之间的 相互合作能力。因此,我十分感谢这门课的开设,因为让我学到了知识;我更感谢老师这种 让学生自主学习的教学方法,因为它提高了同学们之间的相互合作能力。篇五:linux学习 心得 河海大学文天学院 linux学习心得(论文) 学号:110310120 姓名:解小雨 2014-05-13linux学习心得 八周的学习使我对linux系统和网络管理有了进一步的认识。 上大学之前只接触过 windows操作系统,小时候最早接触的是windows98操作系统,之后是windows xp,上大学 时开始接触windows7.大概是受先入为主思想和自己知识欠缺状况的影响,一直以来,我都 认为windows操作系统是最完美的操作系统,但现在我开始明白,除了windows系统之外还 有linux这个很完美的操作系统。linux是一种自由和开放操作系统。目前存在着许多不同的linux,但它们都使用了linux 内核。linux可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制 台,到台式计算机、大型机和超级计算机。linux是一个领先的操作系统,世界上运算最快 的10台超级计算机运行的都是linux操作系统。严格来讲,linux这个词本身只表示linux 内核,但实际上人们已经习惯了用linux来形容整个基于linux内核,并且使用gnu 工程各 种工具和数据库的操作系统。linux是芬兰大学生linus torvalds按照unix内核制作的一款有别于unix的系统。它 的标志是一个名叫“tux”的企鹅,之所以选择这个标志,是因为企鹅能在高寒酷冷的南极生 存,具有顽强奋斗的精神,而这正是linux的精神之一。linux 操作系统是unix 操作系统的一种克隆系统。它诞生于1991 年的10 月5 日(这 是第一次正式向外公布的时间)。以后 借助于internet 网络,并经过全世界各地计算机爱好者的共同努力下,现已成为今天 世界上使用最多的一种unix 类操作系统,并且使用人数还在迅猛增长。 1981 年ibm 公司推出享誉全球的微型计算机ibm pc。在1981-1991 年间,dos操作系 统一直是微型计算机上操作系统的主宰。此时计算机硬件价格虽然逐年下降,但软件价格仍 然是居高不下。当时apple 的macs 操作系统可以说是性能最好的,但是其天价没人能够轻篇二:Linux学习心得 Linux学习心得总结 第二事业部 Kevin.Sun Linux简介: Linux是一套免费使用和自由传播的类Unix开源操作系统,是自由软件和开源代码的经典范例,由世界各地的成千上万的程序员和实现的。具有开放性、多用户、多任务、出色的速度性能、良好的用户界面、丰富的网络功能、可靠的系统安全、良好的可移植性、标准兼容性等特点,在服务器,嵌入式,工控等方面都有广泛的应用。目前风靡全球的Android智能系统也是基于Linux内核开发的。 第一次接触Linux是在上大二的时候,一位给我们上课的老师在课间闲聊时用教训的语气给我们说,计算机专业的学生应该去好好学Linux,你要不会Linux都不好意思说自己是计算机科班毕业的(当然这有点夸张了,这位老师一直是研究Linux的,对Linux比较狂热),总之他说了一大堆Linux的好处,比如开源啊,稳定性强,支持平台多等等。其实之前早就对Linux有所耳闻,但觉得这是专业人士才搞的东西,很高深,我离那一步还早着呢,所以当时也没听懂多少,听完过后只觉得Linux是个开源免费的操作系统,在Linux上面开发是比较有档次的,有前途的。于是,一兴奋,回去就找了个师兄借了张Red Hat 9.0(Linux一个比较稳定的商业发行版本)的光盘,在自己电脑上装了个Linux系统,在上面装上了QQ,音视频播放器,练了练Linux的命令,编译运行了 hello world 之类的入门程序,玩了几天后,我发现了一个比较严重的问题,在Linux上没法玩魔兽和CS,兴奋劲一过,我的第一个Linux系统就在我的电脑分区下长眠了。 到后来,开了些以Linux为实验平台的课程,于是又把Linux系统拿出来,在上面做老师布置的作业,对Linux也更了解了,自己也能勉强在那上面做些简单的应用开发,学会了更多的命令,了解了何为gcc,makefile,vi,gdb,知道了怎样调试自己的程序,仅此而已。大三暑假找了个实习的工作,工作环境也是Linux方面的应用程序开发,实习了两个多月,跟着公司的老员工打杂,逐渐对Linux的应用开发也有了比较深入的了解,真正的产生了兴趣,自己也在Linux下做了些小东西,用socket+GTK完成了一个类似于QQ的局域网聊天工具等,当时高兴了好几天。 毕业后的第一份工作也是Linux相关的开发工作,到后来来XX也做Linux,毕业快四年了,真正在Linux上做开发也有四年多,从应用开发到驱动开发,再到研究内核。做了这么多年来,不敢说有所成,但多少也有所得,有所感悟,回头看看自己学习的过程,也有过迷茫,彷徨甚至痛苦的经历,走过很多弯路,到现在也能勉强摸清Linux脉路了,还算欣慰。我们部门还有很多Linux高手,我也不敢班门弄斧,在此只是把自己的学习经历和心得总结出来和大家分享,希望对感兴趣的同事有所帮助。 首先就是基础知识,俗话说工欲善其事,必先利其器,Linux下95%以上的代码都是由C语言编写的(还有部分汇编和脚本),所以要想学好Linux,必须要有扎实的C语言基础,C语言看似简单,但要学好并不容易,它绝非我们大学教材里面讲的那点东西。而且千万不要认为C语言过时了,它是开源社区,系统开发和嵌入式开发方面的王者,在软件世界可以预见的未来,C语言将永远不会被淘汰,并将持续不断的焕发生命力。要学好C语言,没有别的办法,除了多写,多练,多看书,多看优秀代码(例如Linux内核代码)。在此,给大家介绍几本我读过,并且读后觉得效果不错的经典书籍,入门的就不介绍了,大学基本上都学过,这里介绍几本进阶的,《C专家编程》,《C和指针》还有《C语言深度剖析》,前两本是国外优秀经典教材,国际级Hacker的巨作,是C语言进阶必备书籍,后一本是国内一个高人写的网络书籍,很多地方也参考了前两本,由于是中国人自己写的,并且语言诙谐幽默,读起来比较容易理解,把这几本书吃透,再加上大量的练习,你基本上就可以大胆的说你精通C语言了。第二个需要掌握的基础知识就是数据结构和算法,Linux的代码里面运用了大量的链表,队列,堆栈,Hash表,排序查找等数据结构和算法,所以把这些基础搞好,在后续的开发学习中会有事半功倍的效果。这里也没啥好多介绍的,计算机专业的话《数据结构与算法》课程是最重要的基础课,掌握这些是最基本的要求,没学过的话最好也找本书好好研究下。当然,上面提到的基础知识也不是说要非常精通才能学Linux,C语言和数据结构不是一朝一夕就能学好的,一些东西先了解下,等在后期的学习开发过程中再慢慢补充也行。 学Linux要怎么入手?有哪些方法和路径?我学的时候也在网上参考了很多Linux前辈的学习路径,基本上都大同小异,殊途同归,总结出来由简到难就是使用Linux—〉Linux系统编程开发—〉驱动开发和分析Linux内核,我也是这样一路走过来的。要使用Linux,首先你要有思维上的转变,忘掉Windows,Linux和Windows的设计思想不同,操作方式也有很大的不同,Windowws以图形操作为主,而Linux的精髓在于命令行,基本上所有的Linux高级用户都是以命令操作为主,所以忘掉图形操作吧,把自己变成 命令控 ,多学一些命令,你会发现一切会变得简单。然后学习下gcc,Makefile和gdb,这些是Linux编程的编译器和调试器,先知道怎么用就行了,在以后的编程中会大量使用到,到时候自然就熟悉了。还有就是要学会搭建自己的开发环境,学着配置下samba,tftp之类的网络服务器,在以后都可能用的上的。 现在我们就进入Linux的系统编程,Linux的系统编程主要分为文件操作,进程控制,线程控制,信号处理,IPC(进程间通信)这几个部分,这些都是Linux编程的基础,必须要掌握。就文件操作来说,在Linux的内核层,很多系统接口和设备驱动的节点基本上都是以文件的形式映射到上层文件系统,用户要访问这些设备都必须通过文件操作来进行。而且世界上不存在只有内核的操作系统,如果没有系统级的编程,内核就只是束之高阁的玩具,所以就算你的最终目的是驱动,是内核,这些东西也是必学的,在学这些的过程中也能锻炼你的Linux思维,加深功底,有了深厚的功底,后面的东西看起来会变得很简单。在这个阶段我再推荐两本书,人民邮电出版社的《Linux C编程实战》,这本书是Linux下系统编程的入门级书籍,虽说是入门,但涵盖了Linux下系统编程的所有主题,详略得当,也比较容易读懂,很适合初学者。还有一本就是国外的经典教材《UINX 环境高级编程》(Advanced Programming in the UNIX Environment),这本书很厚(780页),我自己也没看完,讲的比前面那本更深入,更全面,也会更难一些,网上有人评论说在Linux系统编程上遇到的所有问题基本上都能在这本书上找到。如果时间精力允许的话,强烈建议读完此书,并作为案头教材,随时参考,当然如果你暂时没有那么多精力的话,把第一本书看完并吃透,你也可以进入下一阶段---内核! 进入内核,你的思维又得转变下了。我在这里先声明一个概念,关于Linux操作系统的两种运行级别,在intel cpu上有Ring0-Ring3四个运行级别(其实不止是intel的cpu,几乎所有的cpu都有不同的运行级别,只是定义不同罢了),不同的级别运行权限不一样,一个低级别运行态不能随便访问高级别运行态的数据。但在Linux上只用了两种,Ring3级运行用户态,Ring0运行内核态,没有使用Ring1和Ring2。Ring3状态不能访问Ring0的地址空间,包括代码和数据。Linux进程被映射到4GB的地址空间,0-3GB是用户态和内核态共享的,3GB-4GB是内核态专用的地址空间,这里存放了整个内核的代码和内核模块,以及内核所维护的数据。用户的应用程序是运行在用户态的,如果需要访问内核态的数据,比如应用层需要与驱动交互,进行网络数据发送等,则必须使用open,read/write,ioctl,send等系统调用才能访问到,系统调用会调用到内核中的代码,这时,必须切换到Ring0,然后进入3GB-4GB的内核地址空间去执行这些内核代码,完成后,切换回Ring3,回到用户态。这样,用户态的程序就不能随意操作内核地址空间,对内核起到一定的安全保护作用。所以当进入内核编程时,一切也要小心,稍微不注意就会把系统搞挂。另外还有一个事情提醒下大家,内核态和用户态相当于两个世界了,两个世界两个制度,之前在应用层编程的用的得心应手的C函数库在内核态就不能再用了,之前的很多编程调试技巧在内核里面也不起作用了。所以,我们又得从 Hello World 开始了。 写一个内核模块程序应该算是内核的 Hello World 了,把这个程序编译并装载进内核运行后,了解其运行机制,你基本上就算进入内核了(当然你也得先了解内核的基本架构,知道怎么编译配置一个内核),但后面的路还很长,相当于万里长征的第一步。接下来你就可以研究Linux驱动了,关于驱动的学习,除了Linux自身的驱动原理架构要掌握之外,硬件基础和实践都是很重要的,所以对硬件基础较差的初学者来说这个阶段最好有人带,一个人自学的话往往收效甚微,你自己琢磨一个星期都想不明白的事情,别人可能一句话就能把你点通。这个阶段不得不推荐的书当然就是Linux驱动开发人员的圣经---O REILLY的《Linux设备驱动程序》(俗称LDD)了,现已出了第三版,基于Linux2.6内核,这本书理论讲解透彻,包括了Linux驱动开发中常用到的所有技术点,把底层内核提供给驱动的API介绍的也比较清楚,而且每个技术点都有相应的例子供你练习,学的时候注意多实践,不要一味的看书,而且不要指望第一遍就能看懂他,我断断续续看了三遍以上,很多地方也还拿不准,这本书对做驱动的人来说,读五遍以上一点都不过分,每读一遍你都会有新的收获,回味无穷。但这本书对基础较差的人来说起点偏高,不容易看懂,国内也有不少关于Linux驱动的书,但真正能拿的出手的不多,宋宝华的《Linux设备驱动开发详解》还算不错,他很多地方参考了前面那本,虽说比起来还有一定的差距,但对初学者来说更容易看懂,建议两本书交叉着一起看,遇到不懂的可以相互参考,看完这两本书,你基本上就掌握了驱动开发的基础了,剩下的就是实际开发经验。驱动方面我就不多说了,很多同事都有丰富的经验,每个人的基础不一样,所处的环境不一样(是否有人带,是否有机会参加实际项目开发),学习的效果也是有很大的差距的。如果真的没人带的话,最好自己买个arm开发板,在网上找资料,自己玩板子,没有实际调试,就枉谈驱动开发。另外在学习的驱动的时候最好能深入研究驱动的实现原理和机制,多思考,比如知道怎么去创建一个字符设备了,但对实现原理不大清楚的话就深入点去看看Linux设备模型,了解Linux系统的设备管理机制,对整个系统的掌控都会有不小的收获,不要认为把结果调出来完成了工作你就掌握了Linux驱动开发,那样长期以往,你有的只是靠时间累积起来的经验,但如果能深挖内部原理,你的能力将呈指数增长。 知道了怎么用kmalloc()不代表你就懂的Linux的内存管理系统,知道schedule()函数也不代表你知道操作系统的进程调度原理,正如同会说汉语并不能说明你了解中国文化一样,如果你有足够的好奇心,吃的下苦,有足够的时间精力,那就去读Linux内核源码吧,去了解操作系统的核心,内核比较难啃,但能啃下来的话你将收获颇丰。 Linux的内核主要分为五个模块,内存管理,文件系统,进程调度,进程间通信(IPC)和网络接口。进程调度控制进程对CPU的访问;内存管理控制进程对内存区域的安全访问,Linux的内存管理还使用了虚拟内存,较为复杂;虚拟文件系统隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,目前Linux提供了数十种的文件系统的支持;进程间通信(IPC)提供了各个进程之间相互通信的机制;网络接口提供了对各种网络标准的存取和各种网络硬件的支持。从图可以看到进程调度是最核心的模块,也是整个操作系篇三:linux学习心得 Linux学习心得 我们这一代90后,从小接触的是windows98,家里条件好的自己有电脑装的是2000,后来又有了XP,上大学时又有了win7。说实话小时候没想过搞IT,也计算机了解也只是一些皮毛,至于什么UNIX,Linux,听过没见过,就更别说用过了。 以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。直到学习Linux这门课以后,我才知道,原来我错了。 一.为什么要学Linux呢?每个人都有不同的看法,下面我说说自己的感想吧。 首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。其中不乏很多IT精英的心血。我们学透以后更可以做成自己的OS! 其次,Linux简单易学,因为我们初学者只是学的基础部分,Linux的结构体系非常清晰,再加上老师循序渐进的教学以及耐心的讲解,使我们理解起来很快,短期内就基本掌握了操作和运行模式。对我们学习操作系统有很大的帮助,加深我们对OS的理解。 再次,Linux是用C语言编写的,我们有学习C语言的基础,读程序和编写代码方面存在的困难小一点,也是我们能较快掌握的原因之一。 二.学习情况在学习的过程中,我们用的是VM虚拟机,开始时真的不真的该怎么去做,特别是我的是命令窗口界面,别人的是图形界面,我都不知道怎么调过来。后来通过自学老师给的资料和向同学请教,掌握了一些基本的操作,比如挂载优盘,编译程序,在Linux环境下运行,转换目录等等。学了这些基础才能进行下面的模拟OS程序。 老实说,第一个程序是在C中编译好的,调试好了才在Linux下运行,感觉用vi比较麻烦,因为有错了不能调试,只是提示错误。但是一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。 就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务,我们自学,就这个循环的过程中,我们学习了基本操作,用vi,shell,模拟内存的分配过程等一些OS管理。可以说自己收获很大,基本上完成了老师布置的任务,对于拔高的题目没有去做,因为我了解我的水平,没有时间和精力去做。 期间我阅读了不少关于Linux的相关资料,其中也不乏一些有趣的小故事,这既丰富了我的课余生活,也让我加深了对一些术语的理解,比玩游戏强多了。 三.对Linux未来的展望 众所周知,目前windows操作系统是主流,在以后相当长的时间内不会有太大的改变,其方便友好的图形界面吸引了众多的用户,甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的,这也正是有别的OS得以存在的原因,每个系统都有其自身的优点。 Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,随着IT从业人员越来越多,理论上会有更多的人使用Linux,可以肯定,Linux在以后这多时间不会消失。Linux简单,占内存少,特别是对于程序开发人员来说很方便,如果说windows的成功在于其方便用户的窗口管理界面,那么Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。 四. 随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当),因为他们上课传授的不仅仅是知识,更重要的是一些道理,包括一些做人的道理,讲课时也抓住重点,循序渐进,让同学理解很快;更可贵的是不以你过去的成绩看问题,让我树立了很大的信心学好这门课程,也学到了不少专业知识和技能。 其实老师让写我也没怎么找资料应付,自己想到什么就写些什么,所以不免有些凌乱;很少提到编程,因为那些在实验里已经说了,这里再写就多余了。最后,感谢老师和同学们在学习上对我的帮助。 2010-10-24 附:参考资料 百度百科 老师给的讲义《》 linux基础与应用学习感想查看更多