线程,进程,协程的区别
线程,进程,协程的区别线程、进程和协程是程序执行的不同抽象,每种方式在操作系统中的资源管理、执行方式和用途上都有所不同。下面详细解释每一个概念及其之间的区别:
1. 进程(Process)
定义:进程是操作系统进行资源分配和调度的基本单位。它是一个程序的实例,具有独立的地址空间。每个进程至少有一个线程(主线程),并且可以包含多个线程。
特点
:
每个进程有自己独立的内存空间和系统资源(如文件句柄和设备)。
进程间通信(IPC)需要操作系统提供的特殊机制,如管道、消息队列、共享内存等。
上下文切换成本高,因为涉及到完整的内存空间和执行状态的保存与恢复。
2. 线程(Thread)
定义:线程是进程中的实际运行单位,是操作系统进行CPU调度的基本单位。一个进程中可以包含多个线程,它们共享进程的内存空间和资源。
特点
:
线程间共享同一进程内的内存空间和资源,如文件句柄和其他系统资源。
线程间的通信和同步相对容易,可以直接通过读写共享内存来完成。
上下文切换成本低于进程,因为线程共享大部分资源,切换时只需保存和恢复少量寄存器和栈信息。
3. 协程(Coroutine)
定 ...
线程间的通信方式
线程间的通信方式线程间通信(Inter-Thread Communication, ITC)是指同一进程内的不同线程之间进行数据交换和状态同步的机制。由于所有线程共享同一进程的内存空间,线程间通信比进程间通信更为高效和直接。以下是一些常见的线程间通信方式:
共享内存:
线程可以直接访问同一进程中的共享数据。由于线程共享同一地址空间,这使得共享内存成为线程间通信的最快方式。使用共享内存时,通常需要通过同步机制来防止数据冲突和竞态条件。
互斥锁(Mutexes):
用来确保同时只有一个线程可以访问特定的数据段。互斥锁帮助防止所谓的“竞态条件”,这是多个线程尝试同时读写共享数据时可能出现的问题。
信号量(Semaphores):
和互斥锁类似,信号量是一个更高级的同步机制,用于控制对共享资源的访问。不同于互斥锁只允许一个线程访问资源,信号量可以允许多个线程根据信号量的计数值访问共享资源。
条件变量(Condition Variables):
通常与互斥锁结合使用,条件变量允许线程在某些条件未满足时挂起,等待条件满足时被唤醒。这种机制常用于线程间的事件通知和等待。
事件(Ev ...
linux管道
linux管道在Linux系统中,管道(pipe)是一种用于进程间通信的技术,允许一个进程的输出直接成为另一个进程的输入。管道是一个非常重要的功能,因为它支持命令行中多个程序的协作,使得Linux和Unix系统的命令行工具非常强大和灵活。
基本概念管道,用符号 | 表示,在命令行中非常常见。它创建了一个通道,使得一个程序的标准输出可以直接传送到另一个程序的标准输入。
示例假设你想查找一个文件中包含特定文本的行数,你可以使用 grep 命令来搜索文本,然后用 wc 命令来计算行数。通过管道连接这两个命令:
123bashCopy codecat filename.txt | grep "search_text" | wc -l
这里的操作流程如下:
cat filename.txt 命令读取文件内容并将其输出。
grep "search_text" 从上一个命令接收输入,筛选出含有 “search_text” 的行,然后输出这些行。
wc -l 接收上一个命令的输出,计算并返回行数。
工作原理在技术层面,管道是通过在内核中创建一个缓冲区实现的 ...
零信任网关
零信任网关前言讲零信任,要先从VPN说起。
在电影《指环王》的圣盔谷守卫战中,洛汗军民依托城堡坚固的防御工事,一次次打退敌军的攻击,却因敌人利用了一条通向城内的下水道将厚重的城墙炸穿,攻守形势瞬间逆转。
VPN作为企业远程办公的常用工具,如今也如同那个致命的下水道一样,反倒为黑客突破层层边界防御提供了“捷径”。
把VPN比作“小区门卫”,安全破绽有多少?如果把VPN网关比作小区门卫,在外网环境下通过VPN访问公司内网应用,好比小甲要去位于该小区的小乙家玩,门卫只需对小甲身份和来意简单盘问即可放他进门。
VPN网关IP和连接端口须映射到互联网,能被黑客扫描到并发起攻击。这就好比欲对小乙家图谋不轨的法外狂徒张三,可以轻易地获取到小乙家的地址。面对小区门卫,张三使点小伎俩,即可骗过门卫,进入小区。比方说:
由于VPN默认“信任”所有内部访问流量,因此一旦VPN网关被攻破,就没有更进一步的安全措施阻止攻击到达企业数字资产。也就是说,只要张三骗过门卫进入小区,就可以:
除了盗窃和破坏,张三还能叫来一大群地痞流氓,围住小区门口不让进出,勒索小区住户打钱……
若小区门卫懂得零信任,张三还能 ...
零信任-深信服零信任aTrust介绍
零信任-深信服零信任aTrust介绍深信服零信任aTrust介绍深信服是国内领先的互联网信任服务提供商,也是国内首家通过认证的全球信任服务商。深信服零信任是其中一项核心的信任技术,主要针对身份认证、数字签名、数字证书等方面的信任问题。
深信服零信任提供了一种新的安全保护模式,可以在不对客户端进行任何信任的情况下,通过智能硬件等安全设备实现身份认证和数字签名。深信服零信任不仅可以保证安全,还可以提高效率和易用性,是信任技术领域的一个重要创新。
深信服零信任访问控制系统aTrust(简称aTrust),是深信服基于零信任安全理念推出的一款以“流量身份化”和“动态自适应访问控制“为核心的创新安全产品。产品通过网络隐身、动态自适应认证、终端动态环境检测、全周期业务准入、智能权限基线、动态访问控制、多源信任评估等核心能力,满足新形势下多场景的企业应用安全访问需求。同时,aTrust作为深信服零信任安全架构整体解决方案的核心组成部分,支持对接态势感知等多种安全设备,安全能力持续成长,助力客户网络安全体系向零信任架构迁移,帮助客户实现流量身份化、权限智能化、访问控制动态化、运维管理极简化的新一代网络 ...
什么是零信任网络
什么是零信任网络什么是零信任?「零信任」既不是技术也不是产品,而是一种安全理念。根据 NIST《零信任架构标准》中的定义: 「零信任(Zero Trust)」提供了一系列概念和思想,假定网络环境已经被攻陷,在执行信息系统和服务中的每次访问请求时,降低其决策准确度的不确定性。零信任架构(ZTA)则是一种企业网络安全的规划,它基于零信任理念,围绕其组件关系、工作流规划与访问策略构建而成。
零信任的策略简单来讲,「零信任」的策略就是「不相信任何人」,除非明确接入者身份,否则将无法通过验证,进行下一步操作。传统的访问验证方式只需要知道 IP 地址或主机信息,便可通过验证,而如今零信任的验证模型,需要更清晰、更明确的信息才准许通过,如若不清楚用户身份、访问来源、授权途径等信息,访问请求则会被立即拒绝。
零信任的主流技术从技术视角划分,零信任的主流技术分为三种:即 SIM:S 为 SDP(Software Defined Perimeter, 软件定义边界)、I 为 IAM(Identity and Access Management,身份识别与访问管理系统),M 为 MSG(Micro-Segm ...
车联网入门
车联网入门前言更多的是对车联网安全认知过程的记录,希望能找到车联网安研需要的一些技能树和研究的大体方向。
最初对车联网安全的认知,大概要从sky-go在MOSEC 20 BaijiuCon里汽车安全talk里的一张汽车安全攻击面导图说起:
首先从我们朴素的车联网认知出发,结合图里认识的关键字,有两个常规思路的攻击路径:
云服务。IoT设备所谓万物互联,除了局域内用CAN或PLC连接的情况,基本都是借助云服务实现,这就把这部分车联网安全问题可以归类为主机安全问题和一些认证相关的问题。
移动终端。也就是图里从Phone到IVI的路径,可能通过WiFi,可能通过蓝牙,可以通过协议、无线电的安全问题考虑,也可以从移动端的安全问题入手。
然后,了解一下图里相对生僻的关键字所代表的进入车内网路径:
GNSS,定位模块。
ADAS,先进驾驶辅助系统。
Sensor,传感器。(图里最右边红色圆柱确实看不清,问了Sky-go的师傅,大概是传感器这方面)
V2X,基于蜂窝(Cellular)通信演进形成的车用无线通信技术(Vehicle to Everything),RSU(路侧设备)、OBUs( ...
汽车“ECU”安全风险与攻击分析
汽车“ECU”安全风险与攻击分析前言随着汽车电子、车联网、无人驾驶技术的快速发展,汽车控制智能化越来越深入,带来的安全隐患层出不跌,汽车系统被成功攻破的例子屡见不鲜,方法和手段也呈现多样化。
特斯拉“PKES(Passive Keyless Entry and Start)系统”被30秒攻破,攻击者在CHES2018发表了研究成果,我有幸在现场聆听,主要是利用中继攻击的方法进行攻击。特斯拉PKES工作原理如下:
特斯拉PKES工作原理
攻击者是在PKES的工作过程中汽车与钥匙的数据交互的过程中,伪装成汽车,获取敏感信息,攻破密钥,再伪装成KEY,解锁汽车,具体攻击过程如下:
Phase 0: 攻击者记录汽车周期性传输的wake以获取2字节的car id;
Phase 1: 攻击者伪装成汽车,传输2个选好的40位的challenge到key fob,并记录各自24位的response;
Phase 2: 使用challenge response对和TMTO表,就可以恢复40位的密钥。第一对用于选择正确的key子集,第二对用于从大约2^16个可能的key中找出key。
Phase 3: ...
路由器漏洞基本知识
路由器漏洞基本知识路由器作为连接网络的关键设备,其安全性至关重要。了解路由器漏洞的基本知识是进行漏洞分析和挖掘的必要前提。
漏洞分类路由器漏洞可以按照不同的特征进行分类,以便更好地理解和应对这些漏洞。
密码破解漏洞密码破解漏洞是通过对WiFi加密密码进行破解来获取未授权访问权限的一种漏洞。攻击者可以利用WPS的PIN爆破、WiFi弱密码爆破或管理员账号密码爆破等方式来获取路由器的控制权。
WEB漏洞WEB漏洞是指存在于路由器的Web服务器中的漏洞。这些漏洞可能包括SQL注入、命令执行、跨站请求伪造(CSRF)和跨站脚本攻击(XSS)等。
后门漏洞后门漏洞是由开发人员为了方便后续调试而故意留下的安全漏洞。然而,一旦黑客发现这些后门,就会对路由器的安全性造成严重威胁。
溢出漏洞溢出漏洞是指由于缓冲区溢出等原因导致的内存溢出问题。攻击者可以通过利用这些漏洞来执行恶意代码,实现对路由器的攻击和控制。
路由器仿真firmAE
路由器仿真firmAE前言其实比起用仿真软件去防真路由器,其实更加推荐的是买一个对应的路由器来复现,省下搭建的环境的时间,z1r0师傅的建议是这样
FirmAE 简介FirmAE是由国外安全研究团队开发的一款全自动固件仿真工具,FirmAE工具以Firmadyne工具为基础,提出了仲裁仿真的技术方式,将固件仿真成功率由Firmadyne的16.28%提高到了79.36%。经FirmAE团队测试,目前已经成功对来自八家设备供应商的超过1100款无线路由器和网络摄像机固件进行了模拟。
FirmAE工具的官方代码仓库为:https://github.com/pr0v3rbs/FirmAE
FirmAE 工具安装FirmAE官方推荐使用Ubuntu 18.04系统进行安装部署,FirmAE工具的安装部署十分简单,只需要拉取工具仓库后执行安装脚本即可。
首先运行git clone –recursive https://github.com/pr0v3rbs/FirmAE命令
Clone FirmAE
1git clone --recursive https://github.com/pr0v3r ...