总结

这几周学习总结

首先 前几周测试自己出错的地方:

第三周:

判断:Linux Bash中, man printf和man 1 printf 功能等价。 ok

  1. 填空:在 Linux 里面可以使用使用(chmod)命令修改文件的权限。
  2. 填空:Linux中没有C盘,D盘,其文件系统的目录是由(FHS)标准规定好的。
  3. 判断:Linux Bash中,cd - 命令可以切换到'home'目录。 x     应该是cd ~ , cd -切换到上一个目录
  4. 判断:Linux Bash中,强制删除test文件的命令是(rm -f test )。
  5. 填空:Linux Bash中,ls . | sort 命令的功能是( 显示当前目录内容并排序            )
  6. 填空:Linux Bash中,使用grep查找当前目录下*.c中main函数在那个文件中的命令是(  grep main *.c )

第四周:

cheat 填空:To list the content of /path/to/foo.tgz archive using tar ( tar -jtvf /path/to/foo.tgz )
find 填空:查找当前目录下所有目录的find命令是(find . -type d)
grep 填空:查找宏 STDIN_FILENO 的值的命令是(grep -nr XXX /usr/include)
针对如下代码:


1. 在vi中,查看scanf和printf man pages(帮助文档)的命令分别是?(2分)
K 3K
2. 编译和运行以上代码的命令(2分) 
gcc *.c -o main 
./main
3. 使用GDB调试以上代码:编译代码的命令是?main.c中如何给main函数设置断点?如何在第六行设置断点?(3分)
gcc -g *.c -o main 
b main 
b 6
4. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.a静态库?main.c如何使用mymath.a?(3分)
gcc -c add.c sub.c mul.c div.c
ar rcvs libmymath.a add.o sub.o mul.o div.o

gcc main.c -o main -L. -lmymath (or gcc main.c ./libmymath.a -o main)

5. 除了main.c外,其他4个模块(add.c sub.c mul.c div.c)的源代码不想给别人,如何制作一个mymath.so共享库?main.c如何使用mymath.so?(4分)
gcc -fPIC -c add.c sub.c mul.c div.c
gcc -shared -o libmymath.so add.o sub.o mul.o div.o

gcc -o main main.c -L. -lmymath

libmymath.so 要拷贝到/lib or /usr/lib

6. 写出编译上面代码的makefile,编译出来的目标文件为testmymath, 只用显式规则就可以.(4分)

testmymath: main.o add.o sub.o mul.o div.o 
gcc main.o add.o sub.o mul.o div.o -o testmymath
main.o: main.c head.h
gcc -c main.c
add.o: add.c head.h
gcc -c add.c
sub.o: sub.c head.h
gcc -c sub.c
mul.o: mul.c head.h
gcc -c mul.c
div.o: div.c head.h
gcc -c div.c

第五周:

man -k 填空:Linux中显示文件(file )属性(status)的命令是( stat )
cheat 填空:使用du命令对当前目录下的目录或文件按大小排序 的命令是( du -sk *| sort -rn )
grep 填空:~/test 文件夹下有很多c源文件,查找main函数在哪个文件中的命令( grep main *.c )
vi 填空: vi中查看函数qsort的帮助文档的快捷键为(K)

2.23 填空:fun2(0xED005380) = (0xFFFFFF80)
2.24 填空:四位数0xC 截断为3位数,解释为无符号数的截断值是(4)
2.25 判断:代码for中条件 i<=(int) length -1 可以消除程序bug ( ok ) 
2.27 判断: 函数代码可以是 ruturn x+y >= y; (ok) 
2.29 填空: [11000] + [11000] = ([110000])

第六周:

 

CH06 填空:对磁盘扇区的访问时间包括三个部分(寻道时间、旋转时间、传送时间)。
6.3 填空:最大旋转时间是(4ms)。

 

以下是本学期目前为止所有学习内容:

 存储器层次结构

 程序的机器级表示

 处理器体系结构

信息的表示和处理

 

课堂内容:

缓冲区溢出 --栈帧

如何形成空栈 push   %ebp

                  mov  %esp  %ebp 

 

机器语言---机器的灵魂 

信息=位+上下文

ISA

    算术逻辑运算

    寻址方式

    跳转

    中断

    函数调用

   栈帧

 

find 指定查找目录

      -name----精确查找

      -iname---不区分大小写

 

GCC编译: 预处理器------编译器----汇编程序----汇编器----连接器

操作系统管理硬件:

进程

线程

虚拟存储器

 

linux   静态库   xx.a

                     xx.Gb

          动态库   xx.c

                      xx.h

 

 

 

 

具体内容见自己前几次博客

 

学习感受: 觉得自己学习的积极性提高了 从最开始比较茫然到现在稍稍学会了如何去掌握和学习这门功课 课后应该如何阅读书本 如何运用虚拟机一步一步完成实验楼的实验 以及不会调试的时候找同学帮忙同时自己学习 但不足仍有很多 在此放在心里以后一一进行改善。娄老师是一个负责人的老师…..(不得不提一下) 以后会更加努力 能进步一点就一点

你可能感兴趣的:(总结)