计算机网络 Computer Networks​ 💻 期末复习总提纲

平时不学习,期末火葬场。 一周时间靠王道考研和各路 pdf 自学计网,留下的提纲都在这里了。全是干货。全文 pdf 可以在这里下载:http://cloud.billc.io/s/xNHarppQPGi3gSz 文章很长,建议在左侧打开目录导航。 水平有限,如有错误,敬请指正。祝你备考愉快。 Collected by Bill Chen, 2019.12, East China Normal University Chapter 1 Overview 7 - layer OSI Model 计算机网络:将分散的,具有独立功能的计算机系统通过通信设备与线路连接起来有完整的软件实现资源共享和信息传递 计算机网络是互联的,自治的 概念和组成 计算机网络的功能 数据通信 数据在信道上的传输 资源共享 硬件、软件和数据 分布式处理 多台计算机共同处理同一个任务 提高可靠性 负载均衡(多台计算机可以更亲密的沟通) 计算机网络的组成 硬件、软件、协议 工作方式 - 边缘部分、核心部分 功能组成 - 通信子网(OSI下三层通信子网)、资源子网网(上三层的处理) 分类 广域网WAN、城域网MAN、局域网WAN、个人区域网PAN 按照使用者分类:公用网、专用网(军队、政府、铁路、公安) 按照交换技术:电路交换、报文交换、分组交换 按照拓补结构分: 按传输方式:广播式、点对点 标准化 标准化相关工作 法定标准:Eg....

January 10, 2020 · Bill Chen

用 C# 和 OpenGL (SharpGL)加载点云与模型

Intro 这一次计算机图形学的作业要求是使用提供的 1.dat (数据点文件)和 2.txt (片面文件)内的数据加载出3D模型。在实现的过程中为了探索 OpenGL 的各种细节也增增补补了许多东西。 程序使用C# .Net Framework 4.5,OpenGL使用库SharpGL链接。这个库使用起来很顺手,获取了 OpenGL 实例之后并命名为 gl 就可以获得和在 C++ 中几乎一样的变成体验。 之前本来打算用 DirectX3d 12 做,奈何实在是太复杂,尝试了许久,用 100 行代码也就清空了一下画布。感受到 d3d 的强大的同时,也被狠狠地劝退了,回到了相对熟悉一些的 OpenGL。 Usage 数据文件 1.dat 和 2.txt 应当和程序放在同一个目录下。 使用 Render All 选项可以渲染所有内容, Render Dots Only 只渲染云点和坐标轴,Render Surfaces With Light 渲染光照和 3D 模型的混合。也可以直接在上面勾选需要渲染的内容。 勾选 Enable Auto Rotation 可以让模型自动绕 y 轴旋转。 取消勾选 Clear Before Repaint 可以在每一次渲染前不清空深度缓存,保留上一次的渲染数据。 Reset 选项将会清空画布并将视角重置为一个比较合适的初始值,重新调整窗口大小也会重新加载画布清空缓存。 Code 核心部分的绘制代码并不难,大概在以下几个函数中。其中有一些和交互相关的代码,逻辑也比较好理解。 private void Initialize() { gl = glCanvas.OpenGL; LookAtMatrix = new double[9]{200, 200, 200, -30, 20, 0, 0, 12, 0}; LightPosition = new float[4]{7....

December 2, 2019 · Bill Chen

使用 C# 和 OpenGL (SharpGL) 实现的一个简易画图版

计算机图形学的第一个大作业是用 OpenGL 或 DirectX3d 实现一个平面的画图,应当具备直线和圆形的功能。正好国庆放假时间比较充裕,就稍微完善了一下界面,实现了一个画图。 随手画的一个Logo 关于 SharpGL 为了使 OpenGL 能正确地与 C# 互动,可以采用动态链接的方式直接手动将 OpenGl 的 dll 链接进自己工程中,但这种方法比较繁琐,况且网上已经有许多人做了重复的工作,于是我选择了一个似乎并不是特别受欢迎的包装库 SharpGL 来在 C# 中使用 OpenGL 的函数。 如果采用 OpenGLControl 控件获取 OpenGL 对象,那么使用 SharpGL 的代码风格会是这样: //C# SharpeGL.OpenGL gl = glCanvas.OpenGL; gl.Color(0, 0, 0); gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); gl.LoadIdentity(); gl.Translate(-4.68f, 4.11f, -10f); 相比对应的 OpenGL 在 C/C++ 中的代码,可以流畅地转换。同时这个库还省去了 Glut 函数后面的 3f 等恼人的参数,全部重载了一起。 //C glColor3f(0, 0, 0); glClear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT); glLoadIdentity(); glTranslatef(-4.68f, 4.11f, -10f); 你可以在这里 https://github.com/dwmkerr/sharpgl 了解到关于 SharpGL 的更多信息。...

October 10, 2019 · Bill Chen

ECNU 计算机系统 (CSAPP) 教材习题作业答案集

这里是华东师范大学计算机系统的作业答案。由于几乎每一年布置的习题都几乎相同,网上的答案又比较分散,就把自己上学期提交的作业pdf放上来了,供参考。 Download Link:http://cloud.billc.io/s/pk9pfAkcyF8br9E 另外,如果你需要LAB2-LAB4的实验报告的话,也可以翻阅我之前的博客,希望能够帮上打算进行肝脏爆破的你。 实在是不知道这个博客能放一些什么东西了。这学期选了三门专选,每天都在为作业奔波,想写的很多博客都没有时间完成。后面有空的话,把其他科目的作业也整理一下放上来好了。

September 23, 2019 · Bill Chen

在 macOS 下备份/还原/重置 LaunchPad 布局

前几天升级到 Catalina Public Beta 后,LauchPad 会出现无法刷新的问题。除了在 App Store 里下载的应用外,其他第三方应用在拖入应用程序文件夹之后无法在 LauchPad 中运行。虽然目前还没有完美的解决方案,为了更新布局只能手动将应用程序拖到 LaunchPad 图标上。在下一个 Beta 版本发布之前,这里提供一个备份和重置布局的方法,可以在布局出现问题的时候留下一手。 备份与还原 LaunchPad 的布局数据库位于 /private/var/folders 下的某个文件夹内,具体位置可以在终端中输入以下命令查找: cd /private/var/folders sudo find ./ -name 'com.apple.dock.launchpad' 我这里找到的位置位于: 接下来在 finder 中前往至 /private/var/folders 下对一个的子文件夹,备份 db 文件夹下的所有文件即可。 恢复布局的时候,将备份好的数据文件覆盖到该文件夹下,再运行 sudo killall Dock 即可。 重置 在终端中运行如下命令: defaults write com.apple.dock ResetLaunchPad -bool true killall Dock 该操作会将布局恢复为出厂默认的状态。第三方应用在正常情况下会开始从第二页开始排列。不过在 Catalina Public Beta 1 下,这个操作会使所有第三方应用消失,别忘了提起备份。为了在执行了这个操作后重新添加所有第三方 App,可以在应用程序文件夹选中所有 app 文件,拖动到 LaunchPad 的小火箭图标上。 值得一提的是,这个系统默认的布局存储在/System/Library/CoreServices/Dock.app/Contents/Resources/LaunchPadLayout.plist下。不过一般情况下,这个文件不应该被修改。 参考链接 https://www.reddit.com/r/MacOS/comments/bxtve1/launchpad_applications_missing_in_macos_catalina/ https://discussions.apple.com/thread/8285610

July 1, 2019 · Bill Chen