Mit6.828/6.S081 fall 2019的Lab1是Unix utilities,主要内容为利用xv6的系统调用实现sleep.pingpong.primes.find和xargs等工具.本文对各程序的实现思路及xv6的系统调用流程进行详细介绍. 前言 在实验之前,推荐阅读一下官网LEC1中提供的资料.其中Introduction是对该课程的的概述,examples则是几个系统编程的样例,这两部分快速浏览一遍即可.对于xv6 book的第一章,则建议稍微细致地阅读一遍,特别是对fork…
目录 1. 简介 2. 安装ubuntu20.04 3. 更换源 3.1 更换/etc/apt/sources.list文件里的源 3.2 备份源列表 3.3 打开sources.list文件修改 3.4 刷新列表 4. 安装SSH 4.1 SecureCRT 报错 4.2 解决方法 4.3 修改ssh_config 4.4 修改sshd_config 4.5 重新启动服务并测试 5. 配置静态IP 6. 安装RISC-V交叉编译工具 7. 安装QEMU 8 测试 8. 1 下载xv6源码 8.…
Logging Application Block Hands-On Lab for Enterprise Library 企业库的日志应用程序块动手实验 This walkthrough should act as your guide for learning about the Enterprise Library Logging Application Block and will allow you to practice employing its capabilities in v…
刚刚完成注册博客,想写一篇随笔,方便以后自己回顾.如果恰好也能帮助到你,是我的荣幸. 这次随笔是记载我的计算机系统(CS:APP,Computer Systems:A Programer's Perspective)课程的一次实验 为了实现这15个函数,参考了(抄袭了- -)网上很多大佬的解答,但是过程中也有了自己的一些体会. 下面分享一下自己的理解,每个函数的实现都附有相应解释,有个别自己还不是很理解就没有写解释,见谅啊. 注:实验环境 ubuntu 12.04 每次修改bits.c时,都要m…
原文地址:https://billc.io/2019/05/csapp-cachelab/ 这个实验是这学期的第四个实验.作为缓存这一章的配套实验,设计得非常精妙.难度上来讲,相比之前的修改现成文件,直接写一个程序也更高了一些.需要注意的是检查程序在编译时开启了 -Werror,需要保证没有警告才能成功编译. 从官方文档得知需要完善 csim.c 和 trans.c 文件,第一个是模拟一个高速缓存的程序并从由 valgrind 程序生成的 trace 文件中统计 hit, miss 和 evic…
原文地址:https://billc.io/2019/05/csapp-cachelab/ 写在前面 这是 CSAPP 官网上的第 4 个实验 buflab,也是学校要求的第三个实验.这个实验比上一个单纯考查汇编语言使用的 Bomblab 要难许多,需要认真理解一下程序运行时对栈帧的操作.对于自学的学生,可以前往 http://csapp.cs.cmu.edu/3e/labs.html 下载,下载后能得到一个很详细的 pdf 文档,需要认真阅读才能知道作者想让我们干什么.做这个实验同样也啃了很久…
0. 简介 操作系统是计算机科学中十分重要的一门基础学科,是一名计算机专业毕业生必须要具备的基础知识.但是在学习这门课时,如果仅仅把目光停留在课本上一些关于操作系统概念上的叙述,并不能对操作系统有着深层次的理解.必须要结合动手实践,才能真正掌握核心的知识. MIT的操作系统课程6.828是一门被广泛好评的入门课程.它最重要的特点就是它实践第一的教学原则.在这门课程中会涉及到非常丰富的实验,也会有非常多的动手机会.而且授课者更是亲自构建了一个简化的基于Unix内核的操作系统xv6.所有的实验都是在…
正在学习MIT的6.S081,把做的实验写一写吧. 实验的代码放在了Github上. 第一个实验是Lab util,算是一个热身的实验,没有涉及到系统的底层,就是使用系统调用来完成几个用户模式的小程序. Boot xv6 (easy) 启动XV6,按照文档执行就ok了. $ git clone git://g.csail.mit.edu/xv6-labs-2020 $ cd xv6-labs-2020 $ git checkout util $ make qemu 在XV6中没有ps命令,而是使…
本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第一篇. 书籍官网:现代操作系统:原理与实现,里面有实验的参考指南和代码仓库链接. 课程视频与 PPT:SE315 / 2020 / Welcome.建议做实验前至少把每个 LAB 对应的那一节视频看一下,否则可能不知道从哪下手. 我自己的通关代码:ChCore-lab - Kangyupl - gitee 仅是能通过测试集,不保证完全正确.开源的目的是供自学的朋友们误入牛角尖.挠…
在做完 Lab 6 之后,惊觉选做实验缺口很大,于是遍历了一遍夏任务,找到了一条最省力的路线. 做完 Lab 6 的连线不用拆,可以接下来做以下两个实验: Lab 203 网络时钟 核心代码如下: void write_data(int dat) { ,temp; RS_H; EN_L; temp=dat & 0xf0; ; i < ; i++) { if (temp&0x80) digitalWrite(DB[i],HIGH); else digitalWrite(DB[i],LO…
一)基础实验:1. Unix中常见shell及其命令(shell的缩写)    Bourne shell (sh)      Korn shell (ksh)    C shell (csh)    Bournw-again shell (bash)2. 普通用户与超级用户如何进行相互切换     普通用户—>超级用户:sudo su    退出超级用户:exit    用户间切换:su username3. 远程登录及退出服务器的命令    远程登陆:telnet ip地址    退出服务器:…
实验的代码放在了Github上. 第二个实验是Lab: system calls. 这个实验主要就是自己实现几个简单的系统调用并添加到XV6中. XV6系统调用 添加系统调用主要有以下几步: 在user/user.h中添加系统调用函数的定义. 在user/usys.pl中添加入口,这个文件将会在make后生成user/usys.S文件,在该汇编文件中,每个函数就只有三行,将系统调用号通过li(load imm)存入a7寄存器,之后使用ecall进入内核态,最后返回. fork: li a7, S…
本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第四篇:多核处理.所有章节的笔记可在此处查看:chcore | 康宇PL's Blog 踩坑总结 本着早看见少踩坑的原则,我先说一些在实践中总结的一点玄学经验,如果你能搞清楚这种现象的真实原因请务必在博客底端评论区赐教一下. 薛定谔的评测结果 你可能会遇到手动 make run-xxx 样例时可以正确运行,但 make grade 有时候莫名其妙就过不了的情况.或者干脆手动 mak…
本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第三篇:用户进程与异常处理.所有章节的笔记可在此处查看:chcore | 康宇PL's Blog 实现用户进程 进程结构 ChCore 中每个进程都对应一个 process 结构体.slot_table 是一个进程占有的内核对象数组和元信息组成的结构体.thread_list 是连接该进程所有线程的链表.如何通过 list_head 的得到对应的对象我们在 Lab 2 里已经学习过…
本文为上海交大 ipads 研究所陈海波老师等人所著的<现代操作系统:原理与实现>的课程实验(LAB)的学习笔记的第二篇.所有章节的笔记可在此处查看:chcore | 康宇PL's Blog 实验准备 首先一句 git merge lab2 把 Lab 2 分支合并到当前分支下. 这章中为了方便调试我手动将 CMakeLists.txt 中构建类型从 Release 改为 Debug set(CMAKE_BUILD_TYPE "Debug") # "Release…
本文为我的斯坦福计算机网络课的编程实验(Lab Assignments)的学习总结.课程全称:CS 144: Introduction to Computer Networking. 事情发生于我读了半本<计算机网络:自顶向下方法>后,想要找点练手的东西,碰巧在知乎上看到了这个推荐帖:CS144: 什么,你学不会TCP?那就来自己写一个吧!.这门课的作业要求实现一个简单的TCP协议,自带充足评测程序,同时又比较有挑战性,我便欣然做之. LAB0 在我开始做实验的时候官方不知为何已经删掉了spo…
在使用 Linux/UNIX 时,会经常遇到 "command not found" 的错误,就如提示的信息,Linux /UNIX 没有找到该命令.原因无外乎你命令拼写错误或 Linux/UNIX 系统就没有安装该命令. 分析过程 确认命令没有拼写错误 Linux/UNIX 中的所有命令都是大小写敏感的. 搜索路径中检查 查找命令路径 $ which xxxx /usr/bin/which: no xxxx in (/usr/local/sbin:/usr/local/bin:/us…
原标题:尾递归优化 快速排序优化 CPS 变换 call/cc setjmp/longjmp coroutine 协程 栈编程和控制流 讲解 本文为部分函数式编程的扩展及最近接触编程语言控制流的学习和思考,主题是栈编程和控制流相关,涉及内容有 堆栈编程总结, 函数式语言的CPS变换,python 如何实现尾递归优化装饰器及其思想方法的总结应用,快速排序的算法导论写法的一种视角/分析,C 语言setjmp/longjmp 函数的作用和实现分析,如何实现 C/C++ 下的协程库编写的一些思路和要点分…
Hi,大家好!我是CrazyCatJack.今天给大家讲解Linux根文件系统的init进程和busybox的配置及编译. 先简单介绍一下,作为一个嵌入式系统,要想在硬件上正常使用的话.它的软件组成大概有这三部分:1)bootloader  2)嵌入式系统kernel  3)根文件系统 .这其实非常好理解,类比于PC上的操作系统,首先我们需要类似BIOS的东东,来控制系统的启动项,决定从哪里启动,怎样启动,启动什么.在嵌入式系统里bootloader就起着这样的作用.再者,我们需要一个已经配置.…
历经3年的学习时间,我从Puppy Linux到各种常见的Linux发行版,从Gentoo Linux再到LFS,期间学会了LiveCD.中文化定制.服务器搭建.Google Key Search.C Language & Shell Script. 纸上得来终觉浅,绝知此事要躬行.不知项目为何物的我,现在口口声声要做一个开源项目,未免有些哗众取宠了.但是,脚踏实地的付出还是有所回报的,通过多方面的努力,我正尝试将三年所学的知识融合在一起,将它们用同一种方式展现出来.做一个Linux发行版! 可…
http://www.owasp.org/index.PHP/Phoenix/Tools http://sebug.net/paper/other/Web安全工具大汇聚.txt =========================LiveCDs Monday, January 29, 2007 4:02 PM 828569600 AOC_Labrat-ALPHA-0010.iso - http://www.packetfocus.com/hackos/DVL (Damn Vulnerable Li…
20155324<网络对抗技术>web安全基础实践 实验内容 使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当做用户名等输入正常网页中以获取数据库信息的攻击,最终达到欺骗服务器执行恶意的SQL命令 ②对输入的数据进行过滤,在数据库中对密码进行加密 XSS攻击的原理,如何防御 ①通过对网页注入可执行代码,成功地被浏览器执行,以达到攻击的目的…
---恢复内容开始--- OBDII Interface Project When I can ever find enough time away from schoolwork, I try to work on an OBDII compliant portable ScanTool. However, with my current course load and lab projects progress on this project has been very slow. I fi…
实验内容 •使用webgoat进行XSS攻击.CSRF攻击.SQL注入 实验问答 •SQL注入攻击原理,如何防御 ①SQL注入攻击是攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当做用户名等输入正常网页中以获取数据库信息的攻击,最终达到欺骗服务器执行恶意的SQL命令 ②对输入的数据进行过滤,在数据库中对密码进行加密 •XSS攻击的原理,如何防御 ①通过对网页注入可执行代码,成功地被浏览器执行,以达到攻击的目的 ②对用户输入的数据进行合法性验证,可执行代码.…
我是今年四月份报的HCIE培训,到考完面试总共六个月的时间,对于HCIE整个考试的流程来说,六个月的时间不短,但也不是很长.尤其是面试,需要花费大量的时间和精力,下面我就把我整个备考历程做个简单的分享. 笔试 首先是理论知识培训,我最开始报班的时候是3.0刚刚改版,新开的班上3.0的课程,我是中途插班到0302的班,已经上了大概一个月,课上阮老师跟我们说3.0更注重的是实际应用,相对于2.0来说,对实际工作的帮助更大,听了这些也更加坚定了我要学好3.0理论课的决心.由于我报考HCIE以后公司要求…
http://exploredegrees.stanford.edu/coursedescriptions/cs/ CS 101. Introduction to Computing Principles. 3-5 Units. Introduces the essential ideas of computing: data representation, algorithms, programming "code", computer hardware, networking, s…
  OSWatcher Balck Box简介 OSWatcher Black Box (oswbb)是Oracle开发.提供的一个小巧,但是实用.强大的系统工具,它可以用来抓取操作系统的性能指标,用于辅助监控系统的资源使用.其安装部署.卸载都非常简单:资源消耗也比较小,原理也十分简单,它通过调用OS的的一些命令(例如vmstat.iostat等)来采集.存储CPU/Memory/Swap/Disk IO/Nentwork相关数据.安装和运行oswbba可以帮助在性能诊断时提供丰富多样的各类性能…
转自:http://blog.csdn.net/lxgwm2008/article/details/38925051 busybox号称Linux平台的瑞士军刀,它集成了100多个最常用的Linux命令和工具的软件.其中包含一些常用的工具,如ls,cat,echo等等:也包含了一些更强大,更复杂的工具,如grep,find,mount,telnet等等.这些工具在标准Linux系统上都有,但Android系统却去掉了其中的大部分工具,所以在调试和研究Android系统时有些不方便.为此,我们需要…
Linux监控工具介绍系列--OSWatcher Black Box OSWatcher Balck Box简介 OSWatcher Black Box (oswbb)是Oracle开发.提供的一个小巧,但是实用.强大的系统工具,它可以用来抓取操作系统的性能指标,用于辅助监控系统的资源使用.其安装部署.卸载都非常简单:资源消耗也比较小,原理也十分简单,它通过调用OS的的一些命令(例如vmstat.iostat等)来采集.存储CPU/Memory/Swap/Disk IO/Nentwork相关数据…
该资料已上传至本人QQ群空间,如需该资料,可到本人QQ群空间查找.下面贴表文本: Oracle Performance Diagnostic GuideHang/LockingVersion 3.1.0 January 13, 2009Welcome to the Oracle Performance Diagnostic Guide This guide is intended to help you resolve query tuning, hang/locking, and slow d…