声明
通过学习 泷羽sec的个人空间-泷羽sec个人主页-哔哩哔哩视频,做出的文章如涉及侵权马上删除文章
笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负
编程语言:
- c语言:面向过程的编程语言,应用于软件开发和嵌入式开发
- c++:在c的基础上发展过来的,支持面向对象编程,用于游戏开发高性能计算等领域
- java:面向对象编程语言,具有跨平台性,应用于企业级应用开发
- python:简单易学,,拥有丰富的库,适用于数据分析,人工智能,web开发(可以开发工具给自己使用)
- javascript:用于网页的前端开发,也可以用于服务器端开发(Node.js)
- C#:由微软开发,主要用于windows平台的应用开发
- Ruby:一种简洁而富有表现力的编程语言,常用于web开发
- PHP:主要用于web开发,尤其适合服务器端脚本编程
- Go:高效简洁的编程语言,适用于网络编程和云计算等领域
- Swift:苹果开发的编程语言,用于iOS和macOS应用开发
- Kotlin:可以与Java互操作,主要用于Android开发
函数式编程语言:
- Haskell:纯函数式编程语言,有强大的类型系统和数学的严谨性
- Lisp(包括Common Lisp、Scheme等):历史悠久的编程语言家族,以高度的灵活性和宏系统著称
- Clojure:运行在Java虚拟机的Lisp方言,结合了java平台的优势和函数式编程
数据科学和机器学习领域:
- R:在统计分析和数据可视化方面应用广泛
- Julia:设计用于高性能科学计算和数据分析
web全栈开发:
- TypeScript:Javascript的超级,增加了静态类型检查等特性,提高了大型项目的开发效率
移动开发:
- Objective-C:曾经是iOS开发的主要语言,但是被Swift代替
嵌入式开发:
- Assembly Language(汇编语言):不同的处理器架构有不同的汇编语言,用于对硬件进行底层控制
其他:
- Pascal:曾经在数学和早期软件开发里有广泛运用
- Delphi(基于Object Pascal):用于快速应用开发
- Scala:融合了面向对象编程和函数式编程,运行在Java虚拟机上
- Elixir:基于Erlang虚拟机,具有高并发和容错性,适合构建分布式系统
软件程序类型概述:
- Web程序:- 包括各种网站和在线应用,主要用于渗透测试。
- 二进制程序:- 主要用于逆向分析,与渗透测试不同,通常需要更深的技术基础。
- 驱动程序:- 由二进制程序编写,后缀通常为
.sys
,用于操作系统的硬件交互。 - 上位机程序:- 暂不深入讲解,后续会详细讨论。
- 脚本程序:- 包括多种语言如 Lua、PHP、Java,广泛应用于自动化和快速开发。
- 操作系统:- 大型软件系统,尽管技术含量高,但本质上也属于软件程序。
- 裸板程序:- 不依赖于操作系统,通常用于嵌入式系统开发。
- 机器学习程序:- 一般用 Python 编写,也可使用 Go 等语言,最终都是实现特定功能的程序。
- 量子计算程序:- 特定于量子计算领域,尚处于发展阶段。
- 工控程序:- 用于工业控制系统,涉及到硬件和软件的结合。
- BIOS程序与本质理解:- BIOS程序:是低级代码,负责硬件初始化和操作系统启动。其本质是代码,不应被复杂的术语所迷惑。- 认清本质:无论别人如何夸大技术,重要的是理解其底层原理。例如,组合技术(如二进制与 Web 的结合)只需掌握其基础即可。#### 操作系统类型- 操作系统列表- iOS- macOS- Linux- Android- Windows- Windows CE (Wince)- VxWorks- RT-Thread
这些类型的程序展示了软件的多样性和应用场景,理解它们的特点有助于在各个领域中更有效地进行开发和渗透测试。
操作系统:实时与非实时
- 非实时操作系统:- 包括 Windows、macOS、iOS 和 Linux。主要关注性能和用户体验,但在处理指令时不一定立即响应用户操作。
- **实时操作系统 (RTOS)**:- 如 VxWorks 和 RT-Thread,能够在确定时间内响应外部事件,适用于时间要求严格的嵌入式系统和工业控制。
网络通讯
- 在任何系统中,网络通讯都是至关重要的,硬件设备的连接与交互依赖于网络。
计算机硬件组件
- **中央处理器 (CPU)**:- 计算机的核心,负责执行指令和处理数据,其性能直接影响计算速度。
- 内存:- 存储运行中的程序和数据,容量和速度影响计算机性能。
- 硬盘:- 用于长期存储数据,包括操作系统和应用程序,容量和读写速度也会影响性能。
- 显卡:- 处理图形和图像数据,其性能对图形处理能力至关重要,尤其在游戏和设计领域。
- 主板:- 连接各个硬件组件,主板的质量影响计算机的稳定性和扩展性。
网络硬件设备
- 网络服务器:- 提供网络服务,如文件存储和Web服务,通常具有较高性能。
- 网络存储设备:- 包括 NAS 和 SAN,提供高容量、高可靠性的数据存储解决方案。
- 网络打印机:- 通过网络共享,方便多台计算机打印。
- 网络摄像头:- 用于视频监控和远程会议,可将视频信号通过网络传输。
移动设备硬件
- 智能手机:集成多种功能,包含处理器、内存、存储和摄像头。
- 平板电脑:类似于智能手机,但屏幕更大,适合阅读和观看视频等。
- 可穿戴设备:如智能手表等,可以监测用户健康数据并连接智能手机等设备。
硬件发展趋势
- 小型化:硬件设备趋向体积越来越小,便于携带。
- 高性能:处理器、内存、存储的性能和容量不断提高。
- 智能化:硬件设备更加智能,可以适应不同用户习惯。
- 互联互通:设备之间的联网与互联越来越密切,形成物联网。
网络类型
- 局域网(LAN):覆盖范围较小,通常用于办公室、学校或家庭等局部区域,用于共享资源(办公室的网络就是一个局域网)
- 城域网(MAN):覆盖一个城市范围内的网络,例如城市的有线电视网络,宽带网络
- 广域网(WAN):覆盖范围极广,跨越国家甚至全球的区域(互联网就是一个例子)它连接了世界各地的计算机和网络设备。
网络协议
- TCP/IP协议:互联网的基础协议。- TCP(传输控制协议):负责数据的可靠传输- IP(网际协议):负责数据的路由和地址解析。
- HTTP协议:超文本传输协议,用于Web浏览器和服务器之间传输网页、图片等超文本数据。
- FTP协议(端口协议):文件传输协议,用于计算机之间安全传输文件。
- SMTP、POP3和IMAP协议(全都是端口协议):用于电子邮件的发送与接收。SMTP负责发送,POP3和IMAP负责接收。
网络设备
- 路由器:用于连接不同的网络并转发数据,依据IP地址和路由表确定数据的传输路径。
- 交换机:局域网内的多台计算机通过交换机进行数据交换,依据MAC地址转发数据帧。
- 网卡:计算机连接网络的硬件设备,将计算机数据转换为网络信号进行传输。
- 无线接入点(AP):为无线设备提供网络接入,使其能够连接到局域网或广域网。
网络安全
- 防火墙:保护网络免受外部攻击,依据规则过滤进出网络的流量(分为硬件防火墙和软件防火墙)
- 加密技术:对数据进行加密,例如SSL/TLS协议用于确保Web浏览器和服务器之间的通信安全
- 身份认证:通过验证用户身份来确保只有授权用户能访问网络资源,常用的方法包括用户名和密码、数字证书以及生物识别等
通讯协议
- TCP(传输控制协议):用于可靠的、面向连接的数据传输,确保数据到达目的地。
- UDP(用户数据报协议):用于快速、不可靠的通信,不提供数据重传机制,适用于实时应用(如视频流、在线游戏等)。
- IP(网际协议):用于网络间的路由和数据传输地址解析,是互联网数据传输的基础协议。
总结:这些网络类型、协议和设备共同构成了现代网络通信的基础。了解这些概念有助于理解网络运作原理,并为进一步学习网络安全和协议栈奠定基础。
机器学习工作流程
- 数据收集- 来源:数据可以来自数据库、文件、传感器、网络等多种渠道。- 类型:包括结构化数据(如表格数据)、半结构化数据(如XML、JSON)和非结构化数据(如文本、图像、音频等)。
- 数据预处理- 数据清洗:去除噪声数据、处理缺失值、纠正错误数据。常用方法如均值填充、中位数填充等。- 数据归一化:将数据缩放至统一范围,常见方法包括最小-最大归一化和Z-score标准化。- 特征提取:从数据中提取有用特征,如图像识别中提取颜色、纹理、形状等。
- 模型选择与训练- 根据任务类型选择算法:分类问题可以使用决策树、支持向量机等;回归问题可以使用线性回归、随机森林等。- 数据分割:将数据分为训练集和测试集。- 使用训练集训练模型,调整参数最小化损失函数。
- 模型评估与优化- 评估指标:常用指标包括准确率、精确率、召回率、F1值、均方误差等。- 根据结果调整模型参数、选择不同算法或增加数据量来优化模型。
- 模型应用- 将优化后的模型应用于实际问题,执行预测、分类、聚类等任务。- 持续监控和评估应用结果,优化模型以提高性能。
深度学习的基本原理
1. 神经网络基础
- 神经元模型: 深度学习的核心是人工神经网络,其灵感来源于生物神经元。一个神经元接收多个输入信号,每个输入对应一个权重,通过加权求和后,输入激活函数得到输出。
- 激活函数: 激活函数决定了神经元的输出值常见激活函数包括ReLU(修正线性单元)、sigmoid和tanh。它们引入非线性,增强了神经网络处理复杂问题的能力。
2. 多层神经网络
- 层次结构: 深度学习中的神经网络通常包括:- 输入层:接收原始数据,如图像的像素值、文本的词向量等。- 隐藏层:多层隐藏层对输入数据进行特征提取,每一层逐步提取高阶特征。例如,图像识别中,低层提取边缘特征,高层提取更复杂的形状和结构。- 输出层:生成最终的预测结果。例如,图像分类任务中,输出层可能是图像的类别标签。
- 深度网络: 深度神经网络有多个隐藏层,层数越多,提取的特征越复杂。深度学习的能力主要源于其处理复杂模式、特征提取的多层次特性。
总结:深度学习通过多层神经网络逐步提取数据的特征,并通过激活函数实现非线性映射,最终用于预测和分类等任务。
版权归原作者 winnerforit 所有, 如有侵权,请联系我们删除。