第六周学习笔记

第六周学习笔记


2018-11-12疑问

Q1:视频中输入网址时非常快怎么做到的?

Q2:如何下载最新版本内核?这么多种表达方式中的路径是什么?使用上边的代码后我的版本没有任何变化。
Q3:解压没有路径?

路径改为

sudo tar -xvf /home/ycx/Downloads/linux-4.18.18.tar.xz /usr/src/

Q4:差点拉到页面最后面添加函数,最后面是32位的
32位之前是64位的,第二栏有的是64有的是common,应该写common。

![]
Q5:找不到syscall_64.tbl目录?
已经更新了新的目录;
Q6:各种错误,安装了很多。
sudo apt-get install make
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install libssl-dev
安装的过程apt总是被占用

E: Could not get lock /var/cache/

apt/archives/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the download directory

只能不断结束进程,更新apt;

sudo rm -rf /var/cache/apt/archives/lock
sudo apt-get update

Q7:sudo make oldconfig的时候又出错?需要安装
sudo apt-get install libssl-dev
sudo apt-get install build-essential
Q8:sudo make bzImage的时候报错无法找到文件?
syscall_64.o:(.rodata+0xa78): undefined reference to `_x64_sys' failed;


在.tbl文件中,我将跟着格式的最后一列__64_sys_zyq改为sys_zyq,就通过了
Q9:在系统调用sudo dmesg -c时出了一堆,报了三个错,网上没有找到相关的问题。
[sda] Assuming drive cache: write through(貌似时和主机断开了连接需要关机设置)
[drm:vmw_stdu_crtc_page_flip [vmwgfx]] ERROR Page flip error -16.

2018-11-13

视频课的实验比较顺利,和课本基本一致。

2018-11-14

Q10:单元测试是怎么写出来的,不是很懂,修改代码貌似是改bug的过程,其实没看懂。以下是代码清单的截图:



Q11:效能分析中,“应用程序时间是指应用程序占用CPU的时间,不包括CPU在核心态时花费的时间。”这里的核心态是说的内核态嘛?如果是,占用CPU的时间是是说的用户态时间嘛?为什么要出去这个核心态时间?

2018-11-14至2018-11-16

第一章

软件=程序+软件工程;
程序=数据结构+算法;
软件工程=软件的开发+运营+维护 整个周期;
难点:复杂性(软件迅速得变得更复杂但是人的理解和记忆等没有大的变化)、不可见性(只能看到报错痕迹)、易变性(需求变化)、服从性(服从硬件、用户、行业)、非连续性(输入的变化导致输出极大变化);
软件工程侧重:短期得成果、各种因素得折衷、具体应用、各种、好的、成熟的实践方法、灵感和直觉解决问题、追求可靠;
知识域:
-生命周期:需求、设计、构建、测试、维护;
-专门领域:软件配置管理、软件工程管理、软件工程过程、软件工程模型和方法、软件质量;
-理论基础:计算基础、数学基础、工程基础;
规律:
-霍夫斯塔特定律-实际时间总是比预期要长,即使你考虑到了霍夫斯塔特定律。
-向进度落后的项目中增加人员,会让项目更加落后。
好软件:用户满意度、可靠性、软件流程质量、可维护性;
目标:符合需求、预计时间内发布足够好的软件、软件可维护可继续发展。

第二章:个人技术和流程

单元测试:
功能定义明确(设计的时候写好)、独立、稳定、量化、技术模块的规格说明书尽可能详细、最好各项要求表示为一个单元测试用例。
标准:
-基本单元(API的每个方法每个参数);
-由作者写;
-测试过后状态不变;
-快;
-可重复(随机数不太合适);
-独立;
-覆盖100%路径(函数、语句、分支、条件);
-集成到自动测试框架;
-和产品代码一起维护;
回归测试:
regression-baseline、新的需求-修改基准。
标准:
-改正缺陷
-新的代码没有破坏现有的功能
效能分析:抽样找到瓶颈、代码注入详细分析、详细分析可使用效能浏览器(PerformanceExplorer);
个人软件开发流程PSP:
团队能力成熟度模型(CMM CMMI)、软件工程师(Personal Software Process);
-计划:明确需求、其他、时间成本、依赖关系;
-开发:分析需求、生成设计文档、设计复审、代码规范、具体编码、代码复审、测试;
-记录用时;
-测试报告;
-计算工作量;
-事后总结;
-提出过程改进计划;

我们身处的这个社会,坏的东西太多,好的东西若隐若现。 ——张曼菱
next

原文地址:https://www.cnblogs.com/Ychancy/p/9970836.html