2016-2017-1 《信息安全系统设计基础》第九周课程总结
本周开始学习Linux系统调用。《深入理解计算机系统》第十章「系统级I/O」,让我们深刻理解了三大抽象「文件、虚存、进程」之一的文件。Unix/Linux中把I/O设备都抽象成「文件」了,对设备的操作跟普通磁盘文件一样,都是通过open(2),read(2),write(2),close(2).
Unix/Linux中创建一个进程时都会打开三个文件:标准输入(fd=0)、标准输出(fd=1)、标准错误(fd=2),可以简单理角标准输入默认打开键盘文件,其他两个默认打开显示器文件。标准输入(fd=0)、标准输出(fd=1)、标准错误(fd=2)是可以重定向的。
Linux系统调用就是库函数,单纯学习非常枯燥,我们课程提倡「做中学」,我为此写了一篇学习指导博客别出心裁的Linux系统调用学习法。这是多年前我的学习过程,很有效。我希望同学通过实践来学习,通过实现Lwho,cp,ls,ls -R,tree,pwd等inux命令来掌握系统级I/O.
问题:
- 本周学习内容用到的csapp.h不该放
/usr/include
中,应该放项目的include目录中,并且编译时用gcc -Iinclude 指定。 - git add, git commit 应该完成一个功能就做一下,-m注释要精细,不能一周的代码提交中的注释都一样。
- 学习参考一下别出心裁的Linux系统调用学习法,通过实践来学习
- 没有代码链接,或给出的链接打不开
- 代码组织太乱,参考代码驱动的程序设计学习
学习中多思考,多动手才有收获,,博客内容中我最看重的是「问题与解决方式」一节就是想培养同学们问题解决能力,解决问题的能力是从事任何工作都需要的能力。这种能力不是凭空来的,要训练的。本周高其同学的博客是个典范。
多实践,多思考,这带来的是一生受益的学习能力:read(2)你认为简单吧?读个大文件,读个小文件,读个文本文件,读个二进制文件,写多个程序读一个文件,写一个程序读多个文件...,试一下收获大不一样。
了解学生的基础和学习情况在教学中非常重要,教学是要经常反馈的。上学期的《Java程序设计》,我对教材的学习指导详细到每段代码如何读,我认为上课没什么讲的了,但通过调查发现我错了,同学们不少就不看,没办法,上课再讲一遍,即使是把博客内容复述一遍,效果就好很多。
学生交了作业,不知道自己做的对错是个大问题。缺少了学习过程中的重要一环:反馈。我们每周考试,考完答案就公布了。我觉得同学们对一下答案查漏补缺就行了,实际上很少人这么做,更多的人懒得这么做,这让我很无语,但也得尊重这个事实:
了解学生的实际情况,实际需求,才能取得更好的教学效果,一切还都在路上,还要不停的实践、改进...
欢迎关注“rocedu”微信公众号(手机上长按二维码)
做中教,做中学,实践中共同进步!
版权声明:自由转载-非商用-非衍生-保持署名| Creative Commons BY-NC-ND 3.0
如果你觉得本文对你有帮助,请点一下左下角的“好文要顶”和“收藏该文”