- 博客(61)
- 收藏
- 关注
原创 笔记:前端知识梳理
让JavaScript能够在目标机器上能够正常运行的一种实现方式,浏览器不同,JavaScript引擎的实现也不同,如:谷歌的v8、火狐的spidermonkey、IE的chakra、Edge的chakracore。:在v8引擎的基础上又新增了很多js库,换句话说:Node.js内置了自身实现的js变量和函数,功能类似C/C++的标准库。:脚本语言的标准,不同版本的标准称为ESx,如:ES5、ES6。:对ES标准的一种实现,ES标准的其他实现还有JScript。:Node.js的包(库)管理工具。
2024-05-17 11:55:15
267
原创 笔记:.NET的框架梳理及相关概念了解(“.NET Core“ “.NET“ “.NET Framework“)
语言层有语法标准,中间层有中间语言标准,但是实现层并没有统一的标准,导致编译时必须选择具体的实现层,.NET实现层的不同类似于C/C++下的CPU架构不同。实现层的每种实现都按照自己的版本规划对标准进行实现,即:每种实现除支持.NET Standard外,还具有自己的一些特性,是.NET Standard的超集。:若程序的实现层选择.NET Standard,那么就可以在所有支持.NET Standard的实现中运行,无需再为不同的实现生成不同的库。):C/C++程序的运行代码称为“非托管代码”。
2024-04-24 16:27:57
1428
原创 笔记:C++中常见函数修饰关键字:extern “C“、_cdecl、__stdcall、__fastcall、__declspec(dllexport)和__declspec(dllimport)
函数修饰关键字的作用1. 确定函数名,便于链接时链接到正确函数地址。2. 确定函数调用栈的汇编代码。
2023-11-06 00:44:48
148
原创 笔记:TCP握手为什么是3次而不是2次?
三次握手建立连接是让客户端先处于已连接状态,然后服务端再进入已连接状态。而两次握手建立连接则恰好相反,是让服务端先处于已连接状态,然后客户端再进入已连接状态。
2023-04-05 23:37:21
1077
原创 笔记:关于TCP分段和IP分片的原因总结
由于TCP是可靠的传输协议, 但IP协议又是不可靠的,那么TCP必须负责丢包后的重传机制。如果TCP塞给IP层的数据比较大,由于以太网MTU的限制,此时会触发IP层的分片逻辑。由于 每个分片都是独立发送的,一旦单个分片丢失会导致整个IP包的无效,进而导致TCP重传整个包,而不是重传丢失的单个分片。故:为了尽可能的提高重传效率,TCP不得不考虑以太网的MTU(且是整个链路上的MTU中的最小值,称为路径MTU),尽量避免触发IP层分片,进而提高重传效率,这也是最大段大小(MSS)存在的原因。
2023-04-05 22:30:50
833
原创 笔记:gdb在tui模式下,通过自动刷新解决界面混乱的问题
在gdb的tui模式下,可看到源码,并自动跟踪代码行,很方便。但在运行next、continue或其他指令后,界面有时会变得混乱,需手动执行refresh指令进行刷新后才可恢复正常,很繁琐。通过在gdb的初始化文件中新增自定义指令,覆盖默认的指令即可解决。
2023-03-03 14:30:52
702
原创 笔记:VLAN及交换机处理详细教程(Tagged, UnTagged and Native VLANS Tutorial)
1. VLAN协议格式:在以太网包的类型(或长度)字段的位置插入一个4字节的标签。2. 标签格式:2字节(TPID,即:Tag Protocol Identifier,标签协议标识,取固定值:0x8100) + 0.5字节(优先级,取值越大优先级越高) + 1.5字节(VLAN ID,0x000和0xfff做保留)3. 包分类:插入VLAN标签的称为标签包(tagged packet),未插入VLAN标签的称为非标签包(untagged packet)。
2023-02-23 17:15:47
1562
原创 笔记:容器和云学习
一、docker笔记多个linux会话共享一个docker编译时,dockerfile文件被docker解释执行,CMD命令除外。from命令可以导入网络映像,网络映像需要提前登录。二、k8s笔记编写yaml,yaml中需要指定容器的映像名。加载yaml,k8s会将yaml同步到各个节点,但是yaml中指定的资源(映像)如果为本地文件,需要将本地文件手动拷贝到所有节点,也可以将yaml中的映像指定为统一的网络地址。k8s会根据映像自动启动容器,注意:如果k8s已经集群,具体在被分配在哪个
2022-05-25 11:44:41
81
原创 笔记:linux中tcp_tw_reuse和tcp_tw_recycle的作用
一、tcp_tw_reuse开启时,处于TIME_WAIT的套接字,不用等到2MSL超时,也可再次作为客户端去连接服务端。主要用于解决:TCP短连接频繁重连导致大量处于TIME_WAIT的套接字占用端口。二、tcp_tw_recycle开启时,对于处于TIME_WAIT的套接字,内核会快速回收,且内核会维护TIME_WAIT套接字的远程主机的timestamp。如果TIME_WAIT期间,其远程主机向当前主机发起tcp连接,则其timestamp必须存在且严格递增,否则丢弃请求。对于TIM
2022-03-11 16:10:15
4639
原创 笔记:分布式相关的各种概念性问题
一、各种分布式(distributed)名称分布式计算计算可分为串行计算和并行计算,而分布式计算仅对可以并行计算的任务才是有意义的,故:分布式计算也是一种特殊的并行计算。通过将计算拆分为多个可以并行的计算,将其分配到不同计算机上实现并行执行。相关的概念还有:网格计算、云计算。分布式存储二、分布式框架Hadoop可应用于大数据存储和计算的分布式框架,Hadoop框架最核心的设计就是:分布式文件系统HDFS(Hadoop Distributed File System)和并行运算编程
2022-03-07 21:25:00
470
原创 搬运:VS中如何查看C++头文件的依赖(层次)关系
在VS的工程中设置如下属性:Project Settings -> Configuration Properties -> C/C++ -> Advanced -> Show Includes更多点击中转:VS中如何查看C++头文件的依赖(层次)关系
2022-02-24 17:02:13
2814
原创 笔记:svn操作优化,在bash中通过别名实现svn代码仓库的在线操作
一、TortoiseSVN使用过SVN的应该都知道TortoiseSVN,界面操作简单方便,易上手。二、SVN命令行如果想在命令行中操作代码仓库,必须把代码下下来,才能在目录间切换,如果代码仓库中的代码量很大,全部下下来非常不现实,既占用磁盘空间又耗时。三、自定义别名通过对svn的常见操作做别名处理,通过别名来实现命令行中对svn代码仓库目录的切换。对于喜欢用命令行来操作的人来说是一个不错的方法,别名示例如下:#将GBK转为UTF8alias utf8_iconv='iconv -f GBK
2021-06-02 17:54:21
153
原创 笔记:Linux系统调用在文件中的分布情况
一、系统调用在文件中的分布情况如下所示:arch/alpha/kernel/osf_sys.c:SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen)arch/alpha/kernel/osf_sys.c:SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code,arch/alpha/kernel/osf_sys.c:SYSCALL_DEFINE2(osf_sig
2021-05-26 14:00:18
260
原创 笔记:设计模式
一、设计模式设计模式指人们在日常开发中对常见问题的解决方法的一个合集。特定模式通常为特定场景下的一种最佳解决方案,其本质是为了增强代码的可读性、可维护性以及健壮性。二、七大原则单一原则(Single Responsibility Principle):一个类或者一个方法只负责一项职责。职责越多,功能实现越复杂,修改维护越容易出错。开闭原则(Open Close Principle):对扩展开放,对修改关闭。因为修改已有代码可能造成大范围影响甚至不可控,而新增代码的影响一般较小且可控。里氏代换原则
2021-02-25 11:43:04
88
原创 笔记:C++模板梳理
一、C++模板梳理模板声明时,类型可带默认值,但实例化时,即使只含一个带默认值的类型,尖括号<>也必不可少。模板可专用化(特例);模板在前,专用在后,专用优先;非继承关系,彼此独立。模板支持非类型模板参数,整型系列可作为非类型形参(如:char,long,unsigned,bool,short),浮点数、类及字符串不可作为形参,实参必须是编译时常量表达式。typename除了和class相比,除了声明类模板的类型以外,还可以做typedef、局部变量的类型声明。...
2021-02-24 09:50:00
76
原创 笔记:windows的bat中用cmd /c xxx等价实现eval功能
在linux的bash中,有eval指令,可以将字符串当指令进行执行。在windows下没有找到相关的指令,可按如下方式实现:cmd /c xxx,xxx为具体的指令,如: set tt=dir cmd /c %tt%
2020-12-23 19:34:10
897
原创 笔记:Linux系统调用
Linux系统调用目前了解到的情况如下一、基础概念1. 中断向量表 IDT(Interrupt Descriptor Table)这个是CPU提供了一系列的中断类型,用一个整型的值表示,对于x86架构的CPU而言,其中断取值类型有256个。可以为每个中断类型注册一个中断发生后的回调处理地址,一旦对应的中断发生,CPU中断当前正在处理的任务,直接跳转到对应的注册地址进行中断处理。注册的这个256个中断及其回调处理地址(函数的地址)构成了一个IDT(中断描述符表),每个中断条目长4个字节,总共1024
2020-11-13 19:07:45
85
原创 笔记:nc、socat用法
socat与netcat(nc)用法如下:一、netcat(nc)发起tcp连接:nc ip port监听tcp端口:nc -l port二、socketcat(socat)命令组成:socat [可选属性] 地址1[用逗号分隔的可选地址属性] 地址2[用逗号分隔的可选地址属性]第一个可选属性是socat的属性,如:-d为日志、-t和-T为超时关闭时间、-u和-U为单向读取地址是数据来源或存放的一种抽象,可以为:普通的文件、socket(协议+ip+端口)、或是标准输入输出(用-表示
2020-10-28 21:25:36
576
原创 笔记:Linux LVM(Logical Volume Manager)逻辑卷管理
Linux磁盘分区相关的:Linux LVMLinux LVM(Logical Volume Manager)逻辑卷管理是在Linux2.4内核以上实现的磁盘管理技术基础概念:物理卷-PV(Pysical Volume)、卷组-VG (Volume Group)、逻辑卷-LV (Logic Volume)关系:每个物理卷对应一个类型为Linux LVM的分区,把物理卷加入到卷组中实现卷组的扩容,然后将大容量的卷组划分为多个小容量的逻辑卷,每个具体的逻辑卷是可以格式化后使用的单位...
2020-10-13 20:59:35
83
原创 笔记:redis
一、redis五大数据类型:(string + HLSZ)字符串(string)、哈希(Hash)、链表(List)、集合(Set)、有序集合(ZSet,即:Sorted Set)key管理1)删(DEL key)序(列化:DUMP key)有(EXISTS key)查(KEYS pattern)、类(TYPE key)随(RANDOMKEY)移(MOVE key db)2)毫超(PEXPIRE key milliseconds)秒超(EXPIRE key seconds)定点超(EXPI
2020-09-19 12:44:56
65
原创 笔记:Socket编程
一、基础知识地址族(AF_xxx,有的系统称为协议族:PF_xxx):AF_INET、AF_UNIX、AF_IPX等,指通信时使采用哪一种地址,不同类型网络的地址不一样,如:因特网(TCP/IP)地址为:sockaddr_in(sin_family、sin_port、sin_addr)、AppleTalk地址为:sockaddr_at(sat_xxx)、X.25地址为:sockaddr_x25(sx25_xxx)。不同网络的地址包含的信息不同,所以需要定义成不同的结构。socket将不同网络地址统
2020-09-18 14:53:03
153
原创 搬运:SOCKET的level取值(SOL_SOCKET、IPPROTO_IP)
点击中转:level取值说明The level argument specifies the protocol level at which the option resides. To retrieve options at the socket level, specify the level argument as SOL_SOCKET. To retrieve options at other levels, supply the appropriate protocol number for
2020-09-18 13:54:17
858
原创 笔记:Linux的7个运行级别
Linux的7个运行级别:0关(机)1单(用户)2无网(多用户)3标(准)4保(留)5UI(X Windows GUI系统)6重启备注:可以用"init + 运行级别"切换运行级别
2020-09-14 11:44:52
84
原创 笔记:代理、反向代理及CDN
一、正向代理指代理服务发起者去发起请求,即:客户端被代理,如果客户端所在网段被限制不能访问某个服务器,可以通过代理来中转二、反向代理指代理服务响应者去响应请求,即:服务端被代理,如果服务器网络IP经常改变,那么可以通过代理服务器来屏蔽这种变化;也可以通过反向代理实现负载均衡助记:正代客,反代服...
2020-06-17 00:28:54
188
原创 笔记:Linux下的多线程编程
话说多线程的POSIX接口好多、好难记、花了一整天的时间,稍微梳理下便于后续查看:一、POSIX线程文件:pthread.h线程(pthread)1)创(pthread_create)线(程)(pthread_t)属(pthread_attr_t)函(数及其)参(数)2)线程(类是)整型、创(建)带星、其(余的)无星、回调(函数)双空星(void*(xx)(void*))3)分离(pthread_detach)、等待(pthread_join)参数返(void **return)4)返0成功
2020-06-14 21:09:45
310
原创 笔记:C++11多线程
C++11多线程编程相关的一些知识点:一、非模板线程类:thread1)默执行、显构造、变长构造可带参2)右拷贝(thread(&&))、右赋值(thread=(&&))、还有交换(swap)和id(get_id)3)防崩join、detach二、非模板互斥量:mutex(继承自_Mutex_base)1)一锁(lock)一解(unlock)一尝试(try_lock)2)互斥(mutex)单(次上)锁,递归(recursive_mutex)(同线程)多锁(类似引
2020-06-14 19:19:33
143
原创 笔记:makefile规则
makefile规则总结:一目(target)一冒(:)多前置(prerequisites)命令(commands)tab头,头可换(.RECIPEPREFIX)目必须、前置命令二选一伪目标(.PHONY)、目上前(置)下默(认)首目、可指目、深度执行不重复转义(\拼接为一行)、行shell、行内分(;),唯一shell(.ONESHELL)通配星(*)问(?)方([]),获取(匹配)百分号(%)等(=)执扩、冒(:=)定扩、问(?=)空扩、加(+=)追扩变量@(@)(当前)是目标,小(
2020-06-03 15:45:20
178
原创 笔记:sed和awk用法
一、sed(Stream EDitor):格式:sed [options] ‘command’ file(s)若 command 会修改内容,则需要加 -e整行处理:1)a:行后增加行2)c:取代指定行3)d:删除指定行4)i:插入指定行5)p:打印指定行\行内处理:1)s:用正则处理指定行2)格式:sed ‘s/要被取代的字串/新的字串/g’,s前面可接指定行号\-e 不支持级联处理,即:每个 command 只会对原始行处理,但是可对 sed 级联处理\二、awk(gawk
2020-05-16 15:09:27
146
原创 笔记:Linux文件系统与分区
一、磁盘分区一个磁盘最多四个主分区(primary partion),且引导必须位于主分区最多一个扩展分区(extended partition),且扩展分区不能直接使用,即:扩展分区不能用来存储数据逻辑分区(logical partion)由扩展分区进一步划分而得,且逻辑分区无划分数量限制二、文件系统可以为每一个主分区、扩展分区指定文件系统,即:格式化...
2020-05-12 21:52:39
120
原创 笔记:tcp与udp用法区别总结
声明:仅代表个人观点,不代表正确与否给数据提供者传输数据时使用tcp:一般来讲,需要存起来供其它使用者使用的数据是不允许出错的,一旦出错,给使用者的数据也是错的,如果中转多次再到使用者手里,错误还会累加数据使用者不允许出错且数据量比较大(大于udp最大包长)时使用tcp:因为此种情况用udp需要上层加入拆包、应答等机制,完全可以用tcp代替数据使用者不允许出错但数据量比较小时,网络好用ud...
2020-05-07 01:17:19
117
原创 笔记:tcpdump用法
一、简单助记如下i网卡,网络号(net)源(src)目(dst)主机(host)端口号(port)比较(less/greater)与(and/&&)或(or/||)非(not/!)协议类型(fddi、ip、arp、rarp、tcp、udp)是小写...
2020-05-06 00:19:51
91
原创 笔记:HTTP知识点
一、关于cookie和sessioncookie是数据,存在于客户端;session是连接,存在于服务端;同一份cookie可以在客户端的不同的session中发给服务端
2020-05-05 17:12:33
98
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人