计算机网络基础|第一节
计算机网络基础|第一节
前言学校网课不努力,B站大学再继续。实在努力不下去,美团饿么当兄弟。
计算机网络定义两个以上主机可发送接受信息的互连的,可自治的,组成计算机网络
计算机网络的性能指标常用以下8个1.速率比特 bit 数据量单位
代表:一个数0/1
字节=B
8bit=1B;
注意:依次乘与2的10次方
K->M->G->T
举个例子
我们购买的硬盘,商家标的是250GB为什么在操作系统中却只有232.8GB呢
我们看下面的一个公式:
\frac{250*10^{9} } {2^{30} }=232.8(GB)商家的计算方式是G 为10的9次方,操作系统中数据量的G 是2的30次方
比特率速率单位 bit/s
注意:依次乘与10的3次方
k->M->G->T
与数据量不同
2.带宽在模拟信号中 :单位Hz
表达的是信号频率范围
在计算机网络中:
可以理解为网络中点到点传输的 最高数据率
单位b/s与比特率相同
这两者其实表述都是有联系的,带宽频率越宽,网络越好
3.吞吐量单位时间通过的数据量
受到带宽限制
4.时延总的来说就是传输数据的 ...
GDB基础
GDB的调试
GDB (GUN DEBUGGER)
设置断点
单步运行
查看变量值
动态改变执行环境
分析崩溃产生core文件
GDB调试参数调试需要在编译时加入可调试信息才可使用GDB工具进行调试
12g++ -g test.cpp -o test#生成可调试的执行文件
GDB 常用指令 说多也不多,毕竟现在调试大多都是gui调试,暂时很少直接用gdb命令行进行调试,写几个比较基础的糊弄糊弄,就记住几个
123456789101112131415161718192021222324gdb [file]#执行gdb调试#进入gdb,可以直接输入命令break(b) [num]#在第num行代码设置断电info breakpoint #查看当前代码信息display [变量]#显示变量,在每次运行到断点显示值continue#继续运行run#运行程序quit#退出GDB调试#更多的我也记不到了,用man gdb指令查吧
应用程序出现段错误时,GDB打开可调试的执行文件,直接运行,程序停止位置表示段错误的位置
G++基础
G++/GCC基础
编译过程有四步
预处理123g++ -E test.cpp -o test.i#预处理为.i文件#头文件啥的的预定义啥的
编译12g++ -S test.i -o test.s#编译为汇编语言输出为.s文件
汇编12g++ -c test.s -o test.o#编译为机器语言输出为.o
链接12g++ test.o test#生成为可执行文件test,二进制的文件
GCC/G++的优化选项1234567891011121314#基本优化-O #等效O1-O0#不做优化-O1#为默认优化-O2#默认优化+额外的调整-O3#默认优化+额外的调整+循环展开等处理特性的优化g++ test.cpp -O2 -o test#优化等级2生成可执行文件test
所谓优化就是提升效率,编译时间换取执行效率
示例:
1234567891011121314151617181920212223242526272829#include <iostream>using namespace std;int main (){ unsigned lo ...
博客的更新与备份
博客的更新与备份基于hexo的博客,搭建在github的仓库中
我们要实现在不同的系统与电脑中进行修改,与同步
需要以下条件
Nodes.js
npm
git
博客源文件已经部署在github的仓库中(建议部署在分支中)
需要注意的事项首先新系统下的git配置,关键点在于重新配置ssh密匙
其次是Nodes.js与npm需要最新版本(有多新装多新
初始化另一台电脑的操作
git bash 将远程仓库克隆到本地
1git clone 博客所在仓库地址
进入项目目录,安装依赖启动博客服务器,生成静态文件
并在本地部署,通过http://localhost:4000进行访问
12npm installhexo g&hexo s
发布文章与之前相同
1hexo c&hexo d -g
另一台电脑同步 在博客目录下执行
12hexo cleanhexo d -g
后执行更新原始文件
1234git pull git add -Agit commit -m "描述"git push origin hexo
...
简单的写一个makefile
MakeFile什么是MakeFile?很好理解,是一种规则,什么规则呢?顾名思义:生成文件的规则
这是一条基本语法(伪代码)
12目标:依赖 依赖操作成为目标的指令
三个要素:
目标
需要的结果
依赖
执行中需要的文件
指令
执行的操作代码
make指令执行的顺序模式是:自顶向下,典型的树状结构
可以理解为,执行最顶部的目标生成规则,根据当前目标所需的依赖向下查找依赖的生成规则。
最终目标生成规则一般都写在最上方,第一条
简单看一个简单的makefiiewe文件的简单编写伪代码
伪代码makeFile文件的简单的编写格式如下
1234567891011121314 target=最终文件名 obj=子文件1 子文件2 子文件3 .... $(target):$(obj) 具体操作命令 子文件%:源文件% 具体操作命令 .... .PHONY:clean clean: -rmrm $(obj) $(target) -f#-f 强制执行
需要注意的 自动变量
12$<:规则中的第一个依赖(就 ...
CMake基础
Cmake前言Linux下cmake编译工具使用过程与windows的操作大同小异
单独开一篇文章对指令基础做个总结
Corss-platform development跨平台:毕竟做linux下的c++ 开发不用cmake 可不行,总不能徒手写makefile文件罢,利用cmake生成的makefile也相当块。
语法特性指令格式
1指令(参数1 参数2)
不同参数需要用空格或者分号隔开
指令无关大小写,参数和变量是大小写相关的
常用指令
cmake_minimum_required:指定cmake版本
123#cmake_minimum_required -指定cmake的最小版本要求cmake_minimum_required (VERSION 2.8.3)
project:定义工程名称
123#指定 project(projectname [CXX][C][java])project(HEllO CXX)#指定工程名称为HELLO 支持C++
set:显示的定义变量
12set(SRC sayhello.cpp hello.cpp)#定义一个SRC变量 引用SRC 相当 ...
利用VScode与CMake做C++开发环境
啥事cmake? CMake 是一个开源、跨平台的工具,旨在构建、测试和打包您的程序。CMake 用于使用简单的平台和编译器独立配置文件来控制程序编译过程,并生成可在您选择的编译器环境中使用的主机配置文件和项目文件。这套 CMake 工具由 Kitware 创建,以满足 ITK 和 VTK 等开源项目对强大的跨平台构建环境的需求。
说白了,这玩意只是个配置器,配置你的编译器该如何进行编译
cmake的好处:<center>“Write once, run everywhere”
</center>
非常好理解,就是只写一次,到处运行
对我来说就三个字:跨平台。
cmake的缺点: 缺点:麻烦,步骤繁多
断点调试挺麻烦的,VScode里的插件可以,但是需要对luanch.json和tasks.json进行修改,尤其是出现多个目录多个源文件等大项目的编译,修改虽然不复杂,但是麻烦。想要调试添加额外配置参数来打印所执行的所有代码及行号,插入lo ...
linux基础00| 简单常用的几个基础指令
linux基础中的基础linux 的基础命令指令默认格式
1指令 [选项] [操作对象]
注意:中括号代表的意思是可以省略内容不输入,一样可以运行该指令
默认打开终端
1Ctrl+Alt+T
常用指令打印当前所在的目录
1pwd
打印当前目录下的文件与文件夹
1ls
ls的用法扩展:
123ls [文件路径]#文件路径:#相对路径or绝对路径
打开文件目录下的文件
12ls 选项 [文件路径]#选项:指定方式显示
选项:
123-a #表示显示所有的(all)文件与文件夹,包括隐藏-l #表示详细列表的方式展示(list)-h #以可读性较高的形式显示
cd(chanage directory)
:跳转目录
123cd cd ~#作用都是直接回到家目录
与ls类似的
123cd [文件路径]#文件路径:#相对路径or绝对路径
mkdir(make directories)
1234mkdir myfolder #在当前的目录下创建一个mydir文件夹mkdir myfolder1 myfolder2#在当前目录下创建两个文件夹,分别是 myfolder1,myfolder2 ...