CSAPP-Shell Lab】的更多相关文章

Shell Lab的任务为实现一个带有作业控制的简单Shell,需要对异常控制流特别是信号有比较好的理解才能完成.需要详细阅读CS:APP第八章异常控制流并理解所有例程. Slides下载:https://www.cs.cmu.edu/afs/cs/academic/class/15213-f21/www/schedule.html Lab主页:http://csapp.cs.cmu.edu/3e/labs.html 完整源码:https://github.com/zhangyi1357/CSA…
博客中的文章均为meelo原创,请务必以链接形式注明本文地址 Shell Lab是CMU计算机系统入门课程的一个实验.在这个实验里你需要实现一个shell,shell是用户与计算机的交互界面.普通意义上的shell就是可以接受用户输入命令的程序.它之所以被称作shell是因为它隐藏了操作系统低层的细节.完成Shell Lab你会对shell有更加深入的认识,并熟悉Linux的多进程编程方法. 编程实现是一种绝佳的学习方式,然而就像这个实验一样,很多很好的课程作业都隐藏在互联网当中.大多数人难以通…
期中之后的第一个lab 就是实现一个简单的Shell 程序,程序的大部分已经写好,只需要实现 eval 函数和处理信号的sigchld_handle, sigint_handle, sigtstp_handle这三个函数. 这个lab 主要要求处理好各个信号,因为上课的时候一直听得很糊涂,就拖着没有写,直到这两天deadline逼近才动手.同样是时间紧迫,debug的时候出了很多问题,在网上搜了很多解答,但是因为题目版本不一样,并不完全适用,比如之前的不需要重定向.因此把自己写的代码也贴出来,最…
CSAPP buffer lab为深入理解计算机系统(原书第二版)的配套的缓冲区溢出实验,该实验要求利用缓冲区溢出的原理解决5个难度递增的问题,分别为smoke(level 0).fizz(level 1).bang(level 2).boom(level 3).kaboom(level 4).在实践中加深对函数调用和缓冲区溢出机制的理解(针对IA-32体系结构). 本记录使用的是取自原书配套网站的self-study handout版本,网址为http://csapp.cs.cmu.edu/2…
shlab这节是要求写个支持任务(job)功能的简易shell,主要考察了linux信号机制的相关内容.难度上如果熟读了<CSAPP>的"异常控制流"一章,应该是可以不算困难的写出来.但如果读书不仔细,或者实践的时候忘记了部分细节,那就可能完全不知道怎么下手,或者得改bug改到吐了.我自己写了大概八个小时,其中仅一半的时间都在处理收到SIGTSTP后莫名卡死的问题,最后才发现是课本没看仔细,子进程停止后也会向父进程发送SIGCHLD. 在实验中我们需要实现job.fg.bg…
记录关于CSAPP 二进制炸弹实验过程 (CSAPP配套教学网站Bomb Lab自学版本,实验地址:http://csapp.cs.cmu.edu/2e/labs.html) (个人体验:对x86汇编寻址模式要有清晰的了解,如mov指令涉及的是计算出的地址所指向的存储单元的值,而lea指令保留的是计算出来的地址,数字是否加$表示常数的问题等: 实验中涉及的跳表的存储方式.链表的处理等是C语言的汇编语言实现方式,处理起来较为复杂,但可对这些方式的对象底层实现方式有一个较为清晰的了解: 涉及指针操作…
CSAPP  && lab5 实验指导书: http://download.csdn.net/detail/u011368821/7951657 实验材料: http://download.csdn.net/detail/u011368821/8019293 搞定这个实验还是要看一下曾经的笔记,再复习一下block的组织方式.仅仅看link里面第11节,动态内存分配的部分就能够了 http://blog.csdn.net/cinmyheart/article/details/3813637…
[WARNING] 本文是对CSAPP附带的Buffer Lab的究极指北,PWN小白趁机来练习使用pwntools和gdb && 用老朋友IDA查看程序逻辑(可以说是抄小路了x. LAB链接:CSAPP - Buffer Lab 任务说明书:buflab.pdf 真正的指南:Bufbomb缓冲区溢出攻击实验详解-CSAPP - 云+社区 - 腾讯云 本文环境相关: IDA pro 7.5 Python 2.7.17 gdb 8.1.1 (插件使用pwndbg) pwntools 4.4.…
JOS lab1 首先向MIT还有K&R致敬! 没有非常好的开源环境我不可能拿到这么好的东西. 向每个与我一起交流讨论的programmer致谢!没有道友一起死磕.我也可能会中途放弃. 跟丫死磕究竟.(事实上这个过程会学到非常多东西,非常好玩非常好玩,不要被panic吓到,等你都能定位panic,并修复触发panic的bug的时候.我相信大家debug的能力会上升一个水平,互勉-) ---------------------------------------------------------…
本文讲的是计算机学生怎么自学专业课,说长点就是该如何借助网络上已有的高质量学习资源(主要是公开课)来系统性的来点亮自己的CS技能树.这篇文章完全就是一篇自学性质的指南,需要对编程充满热情,起码觉得编程是件乐事.兴趣是大前提,后面讲解的很多知识都是比较"硬核"的,保持热情才能啃下去. 写作背景 下面是小作文时间,不想看可以活用博客的悬浮目录功能跳到"分科目讨论"章节处: 这篇文章本来是写给 ACM 集训队里的学弟学妹们看的,一开始觉得写的并不是非常好,所以只在集训队内…