计算机网络体系结构(二)
关于物理层的传输媒体 传输媒体作为计算机网络体系结构的第0层,它是数据传输系统中在发送器和接收器之间的物理通路,也称为传输介质或者传输媒介。传输媒体可以分为两大类,即导向传输媒体和非导向传输媒体。在导向传输媒体中电磁波被导向沿着固体媒体(铜线或光纤)传播,而非导向传输媒体就是指自由空间,在非导向传输媒体中电磁波的传输常称为无线传播。网络传输媒介的质量的好坏会影响数据传输的质量,包括速率、数据丢包等。
常见的导向传输媒体有以下几种1. 双绞线 双绞线也成为双扭线,它的结构简单就是把两根互相绝缘的铜导线并排放在一起,然后用规则的方法绞合(twist)起来就构成了双绞线。绞合可减少对相邻导线的电磁干扰。现在以太网基本上也都是使用各种类型的双绞线电缆进行连接的。如无屏蔽双绞线UTP(Unshielded Twisted Pair)、屏蔽双绞线STP(Shielded Twisted Pair),如果对整条双绞线电缆进行屏蔽则标记为x/UTP(x为F(Foiled)表明采用铝箔屏蔽层,x为S(braid Screen)表明采用铜编制层,x为S ...
计算机网络体系结构(一)
概述 两个计算机要想相互通信必须高度协调工作,这种“协调”比较复杂,因此需要分层,也就是分而治之的方法,将庞大而复杂的问题转化为若干个较小的易于研究和解决的局部问题。
最早因为市场上不同公司都使用自己的标准,使用同一个公司生产的设备可以容易的互联成网,但如果购买了其他公司的产品就很难互相连通,为了解决这个问题国际标准化组织ISO于1977年成立了专本的机构研究该问题,不久后便提出了一个试图使各种计算机在世界范围内互联成网的标准框架,即开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称OSI模型,此模型是个抽象的概念(排除和互联无关的部分,仅考虑和互联有关的部分),在1983年形成了正式文件即ISO 7498国际标准,也就是所谓的七层协议的体系结构。
到了20世纪90年代初期,虽然整套的OSI国际标准都已经制定出来了,但由于基于TCP/IP的互联网已抢先在全世界覆盖了相当大的范围,同时却几乎找不到什么厂家生产出符合OSI标 ...
WSL2内使用Windows的v2ray代理
WSL2内使用Windows的v2ray代理
在WSL2中使用install或git命令是总是因为网速问题失败,我们在部署配置环境时就最好需要使用代理,但WSL2 因为是通过虚拟机的方式实现,网络不再像 WSL1 一样与 Windows 共享,变成了一个新的网段,所以想使用宿主机的代理就比较麻烦,这里参考网上资料这里给出设置方法。
一、Windows内设置v2ray客户端开启允许来自局域网的连接
二、WSL2内设置1. 修改DNS服务器地址修改由于使用代理不能再通过宿主机IP获取nameserver,这里在/etc/resolv.conf直接设置nameserver为GoogleDNS地址8.8.8.8或者其他可用的dns服务器地址。
12345# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:# [network]# generateResolvConf = falsen ...
电视盒子做小型服务器(华为海思Hi3798Mv100)
电视盒子做小型服务器(华为海思Hi3798Mv100)前言翻找东西时发现了闲置的一个电信电视盒子,在网上查找了下相关资料挺多的,而且其SDK已经公开,盒子主控是华为海思Hi3798Mv100,四核ARM Cortex A7,主频高达1.5GHz,我这个是1G内存8G的存储的版本,有SD卡槽和两个USB接口,可以外接存储设备扩展,还有蓝牙WIFI功能,功耗仅有3w左右,刷上Ubuntu系统后可玩性非常高,下面就改造下使其变成一个小型的服务器。
拆机硬件拧下前面脚垫下方的两个螺丝后就可以用撬板撬下外壳,上下外壳有卡扣连接,没有撬板的话用螺丝刀慢慢撬也可以,只不过会留下些痕迹。
之前拆开忘记拍了这里补一个拆机网图,可以清楚的看到板子上的外设,两片南亚的512MB的闪存,背面一片8GB的闪迪eMMC芯片,瑞昱的RTL8188FTV低功耗无线芯片 ,双USB2.0接口。
在这个SD卡槽边上有一个预留的调试串口,我们可以自己焊上个座子然后用杜邦线连接好USB转串口的模块来烧录固件。
可以看到cpu是通过散热片被动散热的,后面用起来时温度总是太高,所以这里又拆开加了一个5V的小风扇辅助散热。
...
配置美化bash和vim
配置美化bash和vimbash、vim允许你自定义你的终端,自定义的bash、vim可以实现美化效果,还可以提高你在终端的工作效率,下面我备份的配置文件。
bash.bashrc
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149# ~/.bashrc: executed by bash(1) for non-login shells.# see /usr/share ...
实时操作系统FreeRTOS
FreeRTOS内核实现FreeRTOS中链表的实现
WSL更换镜像源
WSL更换清华镜像源Ubuntu、Python、Nodejs、MySQL、Git、Chromium、Docker、Homebrew 等一系列的常用开源系统、软件都是国外开发的,下载地址位于国外,从国内访问、下载、更新速度慢所以我们要使用镜像源,其中清华源镜像镜像源数量最多,所以这里用清华源镜像做替换,下面是替换方法:
备份原文件
1sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
将/etc/apt/sources.list文件内容替换为清华镜像源
12345678910111213# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe mul ...
使用WSL+VScode搭建C/C++开发环境
使用WSL+VScode搭建C/C++开发环境参考文档:https://docs.microsoft.com/zh-cn/windows/wsl/setup/environment
安装WSL新版本对于最新版本的 Windows (内部版本 20262+)可以使用简化的 –install 命令安装WSL。若要检查 Windows 版本及内部版本号,选择 Windows 徽标键 + R,然后键入“winver”,选择“确定”。
1wsl --install
–install 命令执行以下操作:
启用可选的 WSL 和虚拟机平台组件
下载并安装最新 Linux 内核
将 WSL 2 设置为默认值
下载并安装 Ubuntu Linux 发行版(可能需要重新启动)
在此安装过程中,你将需要重启计算机。
其他版本若要更新到 WSL 2,需要运行 Windows 10。对于 x64 系统:版本 1903 或更高版本,采用内部版本 18362 或更高版本。对于 ARM64 系统:版本 2004 或更高版本,采用内部版本 19041 或更高版本。低于 18362 的版本不支持 WSL ...
C可执行文件生成过程概述(深入理解计算机系统第七章01)
C可执行文件生成过程概述(深入理解计算机系统第七章01)
视频教程:南京大学 计算机系统基础 袁春风老师CSAPP-深入理解计算机系统 九曲阑干
我一直有这样一个疑问,每当我在编辑器中写下一行行代码,完成一个又一个程序时,写好的.c文件里其实都是写满了使用特定编码(ASCII、UTF-8、GBK等等)的字符,电脑或运行程序的机器是如何转化为一个可执行文件的呢?
以一个HelloWorld程序为例,在Linux系统中可以通过图中的gcc命令生成可执行文件,这实际上经历了下面几个过程,这里把整个过程分解采用手动链接的方式生成可执行程序。
gcc命令实际上是具体程序(如ccp、cc1、as等)的包装命令,用户通过gcc命令来使用具体的预处理程序cpp、编译程序cc1和汇编程序as等。
预处理首先是将.c文件通过预处理程序(c preprocessor)cpp生成预处理程序hello.i(通常以.i扩展名结尾),经过预处理后的文件还是一个可读的高级语言源程序文本文件,只不过不包含任何宏定义,为后续编译做准备。
这里直接使用cpp预处理器,也可以使用gcc -E -o hello.i ...













