摘要: 《深入理解计算机操作系统》第一章  这一章主要是让我们对计算机系统有个整体的了解,系统介于软件与硬件之间,通过软件与硬件的相互交互来运行应用程序.而每个环节又分为各种层次,从而更好的提供上层抽象。理解一个系统的实质的运行机制,才能真正了解程序,了解一些实际发生的情况是什么原理。 &emsp 阅读全文
posted @ 2017-11-26 21:59 20179215袁琳 阅读(195) 评论(1) 推荐(0) 编辑
摘要: 《从问题到程序》第一章  这一章主要强调了分析问题的能力,告诉我们如何学会写程序,以及在程序编写过程中要学会检查程序错误的能力。  想通过分析一个程序来逐步掌握程序设计的思维及方法。  题目是这样的:有一个不超过3位的数,现在要求按指定格式输出,例如312就输出:BBB 阅读全文
posted @ 2017-11-26 21:56 20179215袁琳 阅读(280) 评论(1) 推荐(0) 编辑
摘要: 实验:理解进程调度时机跟踪分析进程调度与进程切换的过程 一、实验要求  (1)理解Linux系统中进程调度的时机,可以在内核代码中搜索schedule()函数,看都是哪里调用了schedule(),判断我们课程内容中的总结是否准确。  (2)使用gdb跟踪分析一个schedule 阅读全文
posted @ 2017-11-26 21:47 20179215袁琳 阅读(212) 评论(1) 推荐(0) 编辑
摘要: 《构建之法》  1.对于编程基础较差的我而言,团队中的程序员、测试员等角色我应当向哪个方向发展?  2.构建是一个团队非常重要的工作,那么我们的团队中是不是应当也需要专员做构建大师?  3.我们如果现在一起进行软件项目的开发,那么我们的团队模式一定是一窝蜂模式,我觉得这 阅读全文
posted @ 2017-11-19 22:21 20179215袁琳 阅读(157) 评论(2) 推荐(0) 编辑
摘要: 《从问题到程序》  这本书主要分为十章,从程序设计与 C 语言开始讲起,叙述了程序开发过程中的步骤及注意要点。之后各章从数据对象、变量函数、循环、条件、指针、输入输出、文件、结构体等c程序开发过程中需要用到的基本概念及语法。编程的过程实际就是对一个事件的流程分析,或许一个事件可以用很多方法 阅读全文
posted @ 2017-11-19 22:13 20179215袁琳 阅读(160) 评论(1) 推荐(0) 编辑
摘要: 实验:ELF文件格式与程序的编译链接 一、可执行文件的创建  从源代码到可执行程序所要经历的过程概述:  源代码(.c .cpp .h)经过c预处理器(cpp)后生成.i文件,编译器(cc1、cc1plus)编译.i文件后生成.s文件,汇编器(as)汇编.s文件后生成.o文件,链 阅读全文
posted @ 2017-11-19 10:25 20179215袁琳 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 一、实验部分:分析Linux内核创建一个新进程的过程。 【第一部分】 根据要求完成第一部分,步骤如下: 1. 首先进入虚拟机,打开终端,这命令行依次敲入以下命令: cd LinuxKernel rm menu rf //强制删除 git clone https://github.com/mengni 阅读全文
posted @ 2017-11-12 19:54 20179215袁琳 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 第三周测试总结分析 本周课堂测试重点是为了让大家学习c语言中嵌套汇编程序的方法。本次测试中要求将之前编写的sum文件进行反汇编,观察其反汇编的结果,并将其在main.c中通过汇编调用sum。  1.首先展示下我的sum函数、main函数及测试结果,如下图:  2.观察汇编代码分析 阅读全文
posted @ 2017-11-12 16:11 20179215袁琳 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 一、实验部分:使用gdb跟踪分析一个系统调用内核函数(上周选择的那一个系统调用)。 【第一部分】 根据要求完成第一部分,步骤如下: ①更新menu代码到最新版 ②在原有代码中加入C函数、汇编函数 int Getuid(int argc,char argv[]) { int uid; uid=getu 阅读全文
posted @ 2017-11-04 22:33 20179215袁琳 阅读(233) 评论(0) 推荐(0) 编辑
摘要: 一、视频学习 1、系统调用的三层皮:xyz(API)、system call(中断向量)、sys_xyz(不同种类的服务程序)。 2、Libc库定义个一些API引用了封装例程(wrapper routine,唯一的目的就是发布系统调用,程序员在写代码的时候不需要用汇编指令来触发一个系统调用,而是直接 阅读全文
posted @ 2017-10-29 01:32 20179215袁琳 阅读(272) 评论(2) 推荐(0) 编辑
摘要: 本次的实验是使用gdb跟踪调试内核从start_kernel到init进程启动,并分析启动的过程。 1、首先是在实验楼虚拟机上进行调试跟踪的过程。 cd LinuxKernel qemu kernel linux 3.18.6/arch/x86/boot/bzImage initrd rootfs. 阅读全文
posted @ 2017-10-22 20:50 20179215袁琳 阅读(274) 评论(2) 推荐(0) 编辑
摘要: 第二周测试 1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因为如果静态函数库改变了, 阅读全文
posted @ 2017-10-21 22:44 20179215袁琳 阅读(156) 评论(1) 推荐(0) 编辑
摘要: 本次作业分为两部分:第一部分为实验。主要目的是进行基于MYKERNEL的一个简单的时间片轮转多道程序内核代码分析。第二部分为阅读教材,了解LINUX进程调度等。 一、实验部分 实验过程如过程所述:使用实验楼的虚拟机打开shell,输入下面的两条命令,即可以启动mykernel: cd LinuxKe 阅读全文
posted @ 2017-10-15 22:56 20179215袁琳 阅读(207) 评论(1) 推荐(0) 编辑
摘要: 20179215《Linux内核原理与分析》第二周作业 这一周主要了解了计算机是如何工作的,包括现在存储程序计算机的工作模型、X86汇编指令包括几种内存地址的寻址方式和push、pop、call、re等几个重要的汇编指令。主要分为两部分进行这周的学习总结。第一部分对学习内容进行总结,第二部分对实验进 阅读全文
posted @ 2017-10-08 21:13 20179215袁琳 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 一、Linux介绍 我们现在很常见Windows系统,对于Linux则显得尤为陌生。当然我也不例外,初识Linux过程中遇到一些困惑,但我也在实验的同时通过不断查找资料与实践中慢慢解决问题。那么下面我将从安装Ubuntu到实现一些基本实验案例谈一下我的感受。 一些Linux开发名词解释 硬件,内核, 阅读全文
posted @ 2017-10-01 20:45 20179215袁琳 阅读(1142) 评论(1) 推荐(0) 编辑