Smack核心机制浅析

【优化算法】曲线递增策略的自适应粒子群算法(CIPSO)【含Matlab源码 2591期】 1 引言自然界中的鸟群和鱼群的群体行为一直是科学家的研究兴趣所在。生物学家Craig Reynolds在1987年提出了一个非常有影响的鸟群聚集模型,在他的仿真中,每一个个体都遵循:避免与邻域个体相撞:匹配邻域个体的速度;飞向鸟群中心,且整个群体飞向目标。仿真中仅利用上面三条简单的规则,就可以非常接近地模拟出鸟群飞行的现象。1990年, 生物学家Frank Heppner也提出了鸟类模型, 它的不同之处在于:鸟类被吸引飞到栖息地。 阅读详情

Smack核心机制浅析

上传者: pcxchen      
我也要“ 分享赚钱”
2014/7/8
关注( 141)
评论( 0)

声明:此内容仅代表网友个人经验或观点,不代表本网站立场和观点。

id="cproIframe_u1617689" width="640" height="60" src="http://pos.baidu.com/acom?adn=3&at=6&aurl=&cad=1&ccd=24&cec=UTF-8&cfv=11&ch=0&col=zh-CN&conOP=0&cpa=1&dai=2&dis=0&ltr=http%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26tn%3D93233997_hao_pg%26wd%3Dsmack%2520domain%2520linux%26rsv_spt%3D3%26rsv_pq%3D8f2081190009aa68%26rsv_t%3D9964CtdcNq9jEXPqGLTRaSK%252F%252BN18UTted7XCu80ZxDFOefGWT9RbRWVnQtlstluyTfGbM0ZX%26rsv_enter%3D1%26rsv_sug3%3D7%26rsv_sug4%3D190%26rsv_sug2%3D0%26inputT%3D1604&ltu=http%3A%2F%2Fwww.shangxueba.com%2Fjingyan%2F1849665.html&lunum=6&n=csai_cpr&pcs=1572x904&pis=10000x10000&ps=407x327&psr=1920x1080&pss=1572x407&qn=e77fa1a4a202993f&rad=&rsi0=640&rsi1=60&rsi5=4&rss0=%23FFFFFF&rss1=%23FFFFFF&rss2=%230000FF&rss3=%23444444&rss4=%23008000&rss5=&rss6=%23e10900&rss7=&scale=&skin=&td_id=1617689&tn=text_default_640_60&tpr=1417915931596&ts=1&xuanting=0&dtm=BAIDU_DUP2_SETJSONADSLOT&dc=2&di=u1617689" align="center,center" marginwidth="0" marginheight="0" scrolling="no" frameborder="0" allowtransparency="true" style="margin: 0px; padding: 0px;">

    在以上几篇博客中,我已经阐述了有关Smack技术的一些知识和要点,但是没有把Smack最精华的部分展示出来,由于本人学疏才浅,在阐述的过程中不免有这样那样的问题和诟病,但本人还是尽力把问题说清楚,在这篇文章中,我将尽我所能把Smack的核心机制进行阐述,如果涉及的内容有错误,还请梁老师和各位批判指正。

    一 Smack是如何为主体和客体打上标签,又是如何获取它们的标签?

    Smack的主体是任务,Smack称之为task,客体是文件,套接字,消息,IPC等,Smack为主体和客体打上和获取标签可以分为Smack内核空间和Smack用户空间两部分。

    1. Smack内核空间:

    为task打上标签: 我们知道Smack利用了LSM机制,LSM是要改造内核对象,为其添加安全域,对于任务而言,它的结构体task_struct里有一个成员是cred型,而cred结构体中有一项是void *security,这正是task的安全域,它指向了task_smack这个结构体,这个结构体里的成员就是父进程和子进程的安全标签,smack_lsm.c中的代码static struct task_smack *new_task_smack(char *task, char *forked, gfp_t gfp)是用来设置task_smack的父子进程smack标签,参数task指向父进程smack标签,forked指向子进程的smack标签,task_struct是以Linux内核链表形式组织起来,当设置完进程的安全标签后,该函数会初始化task_smack链表。

    获取task的安全标签:在smack_lsm.c中,有一个很重要的宏--task_security(task),它的作用是获取进程的安全域,即void *security所指向的task_smack结构体,而在smack.h中有一个静态函数smk_of_current(),它用来获取当前进程的smack标签。

    为inode打上标签:inode结构体中安全域是指向了inode_smack结构体,它不仅包含了文件对象的smack标签,而且包含了创建该inode的进程的smack标签,在smack_lsm.c中,钩子函数smack_inode_post_setxattr为inode打上标签,但是要注意只有以超级用户运行程序,才能在用户空间将文件打上Smack标签,因为像setxattr(设置安全标签)或者xattr这样的函数或命令都被安插了Smack的钩子smack_inode_setxattr,而此钩子会检查当前运行的程序有没有超级用户的权限。

    获取inode标签:smk_fetch, smk_of_inode, smack_inode_getsecurity用来获取inode的smack标签。注意,Smack标签形式是键--值,键是XATTR_NAME_SMACK,XATTR_NAME_SMACKEXEC(进程标签),XATTR_NAME_SMACKIPIN(接收包的标签),XATTR_NAME_SMACKIPOUT(外发包的标签)它们在Linux的源码xattr.h中作为宏定义,而这里的值是Smack标签的值,即Smack的字符串,钩子函数一般是根据键(name)来获取值(value)。

    2. Smack用户空间:

    我们可以在/ect/accesses中写下一行访问规则--主体标签 客体标签  访问方式,运行smackload工具,这样这行规则便会被写入Smack的虚拟文件/smack/load中,这样smackfs.c中代码smk_write_load函数会设置相应的主体,客体标签以及访问控制链表smack_rule。

    通过工具getsmack和setsmack可以分别设置和获取当前进程的Smack标签,必须注意两点:第一,设置进程Smack标签的程序必须具备超级用户的权限,因为Smack的钩子setprocattr会对系统调用进行检查,第二,我们只能对当前运行的进程设置和获取标签,也就是说当前运行的进程只能获取或者改变自己的标签,这是由setprocattr和getprocattr两个钩子检查的。在Linux的/proc目录下有个self的子目录,它指向当前正在运行进程,而self/attr/current里面保存着当前进程的Smack标签,默认是"_",getsmack和setsmack就是对此进行操作。

    所以,对于用户来说,Smack给我们提供了很方便的接口,设置主客体安全标签由Smack在内核空间帮我们完成。

    二 Smack是基于LSM机制,那么Smack是如何实现LSM?

    像Smack,SELinux这样的安全模块都是基于LSM做的,这也是Linux的鼻祖Torvalds所要求的,Smack要想实现访问控制,必须做到:

    第一,重写Smack的钩子函数,实现对进程,文件,套接字,管道,消息,IPC等控制;

    第二,实例化结构体security_operations,让LSM的钩子指针指向Smack的钩子函数;

    第三,向LSM注册Smack的安全模块,让安全模块发挥效能;

    第四,初始化安全调用。

    三   Smack的访问控制的实现

    在前面的例子中,我们以普通用户运行setxattr函数对文件设置Smack标签,结果是操作无法进行,这其实是因为setxattr函数是一个系统调用,而此系统调用的源代码又被安插了LSM钩子,而LSM钩子指针指向了Smack的钩子函数,那么Smack的钩子函数就可以对上层的调用进行访问控制。Smack的访问控制可以分为几类:

    第一类,关于进程跟踪ptrace

    Smack钩子函数要求当上层应用执行ptrace等进程跟踪函数或命令时,当前进程对被跟踪进程有读和写的权限,如smack_ptrace_access_check和smack_ptrace_me;

    第二类,关于超块superblock

    当上层应用执行获取文件状态statfs函数时,Smack钩子函数smack_sb_statfs要求当前进程对文件有读权限,当上层应用执行mount或unmount进行文件系统挂载或卸载操作时,Smack钩子函数smack_sb_mount和smack_sb_unmount要求当前进程对文件有写权限;

    第三类,关于可执行程序linux_bprm

    此类钩子函数主要是为linux_bprm设置和提交凭证cred,如smack_bprm_set_creds和smack_bprm_committing_creds;

    第四类, 关于索引结点inode

    当上层应用要执行添加目录,删除目录,更改文件名,设置和移除文件扩展属性等操作时,Smack钩子函数要求当前进程对被操作的inode有写权限,具体钩子函数是smack_inode_link,smack_inode_unlink,smack_inode_rmdir,smack_inode_rename,smack_inode_secattr,smack_inode_setxattr等,当上层应用执行获取文件扩展属性的操作时,Smack的钩子函数要求当前进程对该inode有读权限,具体钩子函数是smack_inode_getxattr;

    第五类,关于文件file

    Linux的文件结构体file中也有安全域void *f_security,Smack的钩子函数smack_file_alloc_security使得此安全域指向当前进程的Smack的标签,也就是说如果该进程创建了文件,那么文件的安全域就是该进程的Smack标签,除此之外还有获取文件状态,为文件加锁等钩子函数。

    第六类, 关于进程task

    当上层应用执行设置进程组识别码setpgid,设置进程nice值setnice,设置进程调度值setscheduler等操作时,Smack钩子函数要求当前进程对被设置的进程或者说事目标进程有写权限,而当上层应用执行getpgid,getsid等操作时,Smack钩子函数要求当前进程对目标进程有读权限;

    第七类,关于消息

    Linux消息结构体msg_msg中有安全域void *security,它指向了当前进程的安全标签,这通过钩子函数smack_msg_msg_alloc_security来设置;

    第八类,关于IPC

    Linux结构体shmid_kernel有一个成员是kern_ipc_perm类型,而此类型的安全域void *security由Smack的钩子函数smack_shm_alloc_security设置为空,当进程利用共享内存进行通信时,Smack钩子函数smk_curacc_shm来进行权限检查;

    第九类,关于信号量数组sem_array

    Linux结构体sem_arrayl有一个成员是kern_ipc_perm类型,Smack钩子函数smk_curacc_sem来进行权限检查;

    第十类,关于套接字socket

    一 从Android内核编译说起

    在将Smack编译到Android内核中,我曾经发现Smack的Kconfig文件里明确要求了NETLABEL,如果内核不进行NETLABEL配置,那么Android内核无法编译Smack,这就是说NETLABEL在Smack技术中占有举足轻重的作用,那么什么是NETLABEL?

    NETLABEL翻译成网络标签,它是一项类似于LSM的工程,可以使得Linux内核具备向IP包打上安全标签CIPSO的能力,而这里的安全标签CIPSO(Commerical IP Security Option)是附加在IP包的包头的一个信息体,由域名解释DOI(domain interpretation),安全级别Level,安全分类Category组成,其中DOI负责对IP包的安全标签进行解释,能够让在网络上收发双方决定对方有没有权限发送包,发送方要想将IP包发送给网络的接收方,那么发送方必须对接收方有写权限。

    那么Linux内核通过什么方式或者说借助什么能够在IP包上打上CIPSO标签? 内核是通过LSM提供的钩子函数可以设置或者获取IP包的CIPSO标签,在Smack技术中,Smack钩子函数smack_sk_alloc_security可以使得套接字sock的安全域指向sockect_smack结构体,而sockect_smack结构体两项smk_in和smk_out分别代表了从此套接字接收包的标签和从此套接字发送出去包的标签。

    二 LSM和NETLABEL交互的结构体netlbl_lsm_secattr

    LSM对套接字设置CIPSO标签是借助了netlbl_lsm_secattr这个结构体,这个结构体保存了套接字的安全属性,域,类型等信息。Smack的钩子函数static void smack_to_secattr(char *smack, struct netlbl_lsm_secattr *nlsp)可以将smack标签填充到nlsp中,而Smack钩子函数static int smack_netlabel(struct sock *sk, int labeled)就是借助netlbl_lsm_secattr来设置套接字sock的CIPSO标签。

    三 两个重要的结构体smack_known和smk_netlbladdr

    struct smack_known {

    struct list_head list;

    char  smk_known[SMK_LABELLEN];

    u32  smk_secid;

    struct smack_cipso *smk_cipso;

    spinlock_t smk_cipsolock; /* for changing cipso map */

    struct list_head smk_rules; /* access rules */

    struct mutex smk_rules_lock; /* lock for the rules */

    };

    这个结构体以Linux内核链表形式组织起来,其中smk_known表示smack的安全标签,每当上层应用执行设置文件的smack标签操作时,这个链表会被Smack函数smack_import和smack_import_entry检查,如果设置的smack标签在smack_known链表中查不到,则新的smack标签会被导入到此链表,在链表中的结点不会被删除,新结点只会被加入。而这里的smack_cipso正是CIPSO标签,通过此结构体一个smk_known可以映射到一个smack_cipso。

    在Smack的用户空间我们可以通过工具smackcipso向Smack虚拟文件/smack/cipso导入规则: smack标签    安全级别(整数)    安全分类(整数),导入到cipso文件中的形式是 smack标签   安全级别/安全分类1,安全分类2,...。

    在smack_lsm.c文件中,有很多函数涉及到smack_known的操作,其中大部分涉及套接字钩子,如:

    static char *smack_from_secattr(struct  netlbl_lsm_secattr *sap,   struct socket_smack *ssp),这个钩子函数就将netlbl_lsm_secattr的相关信息设置到套接字的安全域ssp中。

    struct smk_netlbladdr {

    struct list_head list;

    struct sockaddr_in smk_host; /* network address */

    struct in_addr smk_mask; /* network mask */

    char  *smk_label; /* label */

    };

    此结构体也是以Linux内核链表组织起来的,它是关于主机的网络地址和主机的Smack标签,它在smack_lsm.c中也多次用到,如Smack的钩子函数:static char *smack_host_label(struct sockaddr_in *sip)就是根据主机地址sip来从smk_netlbladdr链表中获取主机的Smack标签。

    四 Smack对网络的访问控制

    Smack对网络控制很像IPC机制,Smack的LSM机制将从套接字发送或者接收的IP包都打上了CIPSO标签,如果在网络中传输的包没有被打上CIPSO标签,那么网络环境的CIPSO标签将被赋予该IP包。网络的发送方要想把IP包发送给接收方,必须保证发送方对接收方有Smack的写权限。如果我们想要容许一方One和另一方Other进行网络通信,我们可以在Smack规则写下:One Other wW   Other One wW。

    Smack的钩子函数static int smack_unix_may_send(struct socket *sock, struct socket *other),检查了套接字sock对套接字other有没有发送包的权限,这其实就是在访问控制链表smack_rule中检查sock的安全域socket_smack的成员smk_out对other的安全域socket_smack的成员smk_in有没有写权限。类似的钩子函数还有smack_unix_stream_connect,smack_netlabel_send,smack_socket_sendmsg等。

RK3588开发板RKNPU2环境部署实战:更新rknn_server与librknnrt.so详解 本文详细介绍了在RK3588开发板上更新rknn_server与librknnrt.so核心组件的完整实战流程。通过adb工具推送文件、设置权限并执行同步操作,确保RKNPU2环境部署成功,从而解决推理速度慢或初始化失败等问题,提升AI模型运行效率与稳定性。 阅读详情

相关推荐

保姆级教程:Java调用海康SDK实现录像回放与倍速播放(附完整代码)

本文详细介绍了如何使用Java调用海康SDK实现录像回放与倍速播放功能,包括开发环境配置、设备连接、流媒体处理、倍速播放实现及性能优化等关键步骤。通过完整的代码示例和实战经验,帮助开发者快速构建智能录像回放系统,提升开发效率。

weixin_29285605的博客 357

Linux安全模块(LSM)学习——SMACK

0.概述 SMACK(Simplified Mandatory Access Control Kernel)的机制是类型增强(Type Enforcement),而没有去更贪心的实现基于角色的访问控制和多级安全,所以将其作为第二个学习的模块。 类型在SMACK中的具体体现是label,定义一个策略(规定主体可以对客体进行什么操作)的格式为 subjectlabel objectlabel access 结构体cred中的security指针会指向SMACK定义的数据结构task_smack的一个实例。

qq_44109982的博客 5266

RT-Thread stm32h7使用串口DMA

stm32h7在rtthread中无法使用串口DMA,通过更改驱动代码使其支持串口DMA

qq_35141454的博客 2286

Linux Smack 学习总结

Linux 中的安全模块LSM是一种轻量级的访问控制框架。用户在执行系统调用时,先通过内核接口依次执行功能性的错误检查,接着进行传统的DAC检查,在访问内核之前通过LSM钩子函数调用LSM,LSM根据具体的访问控制策略来决定方法的合法性,以此来实现访问控制。访问控制的架构图: 1, DAC (Discretionary Access Control) 自主访问控制 Linux文件系统中对文件

kkxgx的专栏 6859

避坑指南:HslCommunication连接西门子PLC时常见的5个错误及解决方法(S7-1200/S1500适用)

本文详细解析了使用HslCommunication连接西门子S7-1200/S1500 PLC时常见的5个错误及解决方法,包括基础连接配置、数据块读写异常、连接闪断、防火墙与权限问题以及高级调试技巧。通过实战案例和代码示例,帮助开发者快速定位和解决连接问题,提升工业自动化项目的开发效率。

weixin_30752699的博客 397

【天线与电波传播】电波传播部分 第7章 电波传播的基础知识3

菲涅尔区与菲涅尔带的基本知识

Chen59_2328的博客 1601

Linux LSM Smack功能简介

LSM简介 Linux 中的安全模块LSM是一种轻量级的访问控制框架。用户在执行系统调用时,先通过内核接口依次执行功能性的错误检查,接着进行传统的DAC检查,在访问内核之前通过LSM钩子函数调用LSM,LSM根据具体的访问控制策略来决定方法的合法性,以此来实现访问控制。访问控制的架构图(不传了,其它地方也有): 几个相关概念简介(也是来自copy): DAC (Discretionary Ac...

m0_37775040的博客 2494

从零实现反激式电源仿真:LTspice高级应用实例

深入解析反激式开关电源的建模与仿真过程,利用LTspice实现从零搭建电路,精准验证电路仿真效果,提升电源设计效率与可靠性。

weixin_36149538的博客 1897

[置顶] 强制访问控制内核模块Smack

Smack(Simplified Mandatory Access Control Kernel)是Casey Schaufler[15]于2007年在LSM基础上实现的Linux强制访问控制安全模块,它以内核安全补丁的形式存在于Linux操作系统中,其设计思想是利用LSM安全域将Linux内核中所有主体与客体都打上安全标签,并规定安全策略,只有符合安全策略的访问方式才被容许。与SELinux和D...

weixin_34378767的博客 815

管理信息系统(MIS)设计

一名读者可以借阅多本图书,而一本图书也可以被不同的读者借阅,所以读者与图书之间存在着多对多的借阅关系,读者与图书之间存在着多对多的联系,即m:n的联系。每一种图书属于一种图书类型,而一种图书类型可以包含很多本图书,因此可以得到图书类型与图书之间也存在着一种一对多的联系,即图书类型与图书是1:n的联系。系统应该实现以下功能:图书管理员可以维护图书信息,包括增加新书、修改图书信息、办理图书借阅登记、图书归还登记、过期图书处理、丢失图书处理及读者借阅证件信息的维护等;

m0_69718745的博客 2477

cellranger安装以及使用

接受cellranger count的输出数据,将同一组的不同测序样本的表达矩阵整合在一起,比如tumor组原来有4个样本,PBMC组有两个样本,现在可以使用aggr生成最后的tumor和PBMC两个矩阵,并且进行标准化去掉测序深度的影响。但是由于病毒基因组太小了,且注释结果只有CDS没有exon,所以曲线救国,将CDS整体替换为exon,也不进行过滤了,直接下一步。虽然安装完毕,但是现在要运行cellranger的话需要在终端输入cellranger的整个路径。自动执行这个命令,需要将“

m0_59974475的博客 9395

Android 开发精彩文章集锦

分享 android openfire smack 源码: http://www.itivy.com/android/archive/2011/11/23/android-openfire-smack.html 人人网的Android客户端源码详解   Android Widget电池插件开发总结 http://www.itivy.com/android/archive/

466

【图像增强】论文精读:Correlation Matching Transformation Transformers for UHD Image Restoration(UHDformer)

论文题目:Correlation Matching Transformation Transformers for UHD Image Restoration —— 用于UHD图像恢复的相关匹配变换变压器AAAI 2024!本文提出了一种用于超高清(UHD)图像恢复的通用变压器UHDformer。UHDformer包含两个学习空间:(a) 高分辨率空间中的学习,(b)低分辨率空间中的学习。前者学习多层次的高分辨率特征,融合低层特征,重建残差图像,后者从高分辨率特征中学习更多的代表性特征,以促进更好的恢复。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 291

【优化求解】基于曲线递增策略的自适应粒子群算法(CIPSO)matlab源码

一、粒子群算法 粒子群算法是在1995年由Eberhart博士和Kennedy博士一起提出的,它源于对鸟群捕食行为的研究。它的基本核心是利用群体中的个体对信息的共享从而使整个群体的运动在问题求解空间中产生从无序到有序的演化过程,从而获得问题的最优解。设想这么一个场景:一群鸟进行觅食,而远处有一片玉米地,所有的鸟都不知道玉米地到底在哪里,但是它们知道自己当前的位置距离玉米地有多远。那么找到玉米地的最佳策略,也是最简单有效的策略就是搜寻目前距离玉米地最近的鸟群的周围区域。 在PSO中,每个优化问题的解都是.

m0_57702748的博客 272

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

基于上下文的权限管理模型设计——利用LSM机制

设计思路 1.模仿SMACK的编码风格,所以首先要精读一遍SMACK的代码,找到有用的部分。(虽然之前也读过并模仿过,但是复杂度不是一个等级)。 2.确定数据结构和hook函数。 3.初步实现部分功能。 4.调试bug,完善功能 SMACK的系统调用 chsmack: 显示或设置 Smack 扩展属性值 smackctl: 加载 Smack 访问规则 smackaccess: 报告带有一个标签的进程是否可以访问带有另一个标签的对象 Smack 使用扩展属性 (xattrs) 在文件系统对象上存储标签。属性

qq_44109982的博客 4112

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

【粒子群算法】基于曲线递增策略的自适应粒子群算法(CIPSO)求解单目标优化问题附matlab代码...

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。????个人主页:Matlab科研工作室????个人信条:格物致知。⛄ 内容介绍群智能算法以其动态寻优能力强,实现途径简单等特点不断成为进化算法领域的研究热点.控参的选择对算法寻优性能有着极大影响,首先从数学推导角度对粒子群参数进行深入研究,...

Matlab_dashi的博客 265

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Linux 3.13 smack 源代码

要写一个安全模块,先读一个安全模块做参考,由于 smack 最简单,所以读 smack。 一. 了解 smack 的基本使用 可以参考 ubuntu 社区的 Smack configuration ,内容没有太大问题,但是逻辑混乱,也可以参考 强制访问控制内核模块Smack 。 二. Linux Security Module linux

NR_BLOG 682

嵌入式安全利器:Smack简介

Smack没有类似selinux或apparmor一样的配置文件,在启动后自动加载配置。Smack通过对每个文件、进程打标签,基于标签进行规则的制定。如针对txt文件添加标签A,然后对cat 命令添加标签B。将下面代码编译为可执行文件,编译命令为gcc -o readfile read.c。# 2. 根据C写一个可执行程序readfile,读取secret.txt。上面命令表示WebApp 标签的主题可以对DB标签的客体制作rw操作。任意短字符串,如 Web、DB、Secret,打在进程/文件/套接字上。

m0_49206984的博客 366

基于曲线递增策略的自适应粒子群算法(CIPSO)附matlab代码

群智能算法以其动态寻优能力强,实现途径简单等特点不断成为进化算法领域的研究热点.控参的选择对算法寻优性能有着极大影响,首先从数学推导角度对粒子群参数进行深入研究,接着提出一种契合粒子本身进化公式的,且具有反向思维的曲线递增策略的改进算法.最后验证该算法具备以下两点突出优势:a)有效避免早熟问题,在处理维度灾难问题上,寻优性能更强,且具备良好的平衡全局与局部寻优性能;b)算法控参简单,可有效解决鲁棒性低且繁琐的人工调参问题.

matlab_dingdang的博客 248

Linux安全模块深度对比:SELinux、AppArmor、Yama、TOMOYO与Smack详解

Linux安全模块深度对比:SELinux、AppArmor、Yama、TOMOYO与Smack详解 【免费下载链接】h4cker This repository is primarily maintained by Omar Santos (@santosomar) and includes thousands of ...

gitblog_00361的博客 1534

ipv4: inet初始化过程

Internet Protocol version 4,简称ipv4。ipv4模块从网络碎片队列初始化开始启动,然后执行cipso初始化,inet初始化等等。

大昱的博客 1096

Linux smack_inode_permission SMACK标签与rule匹配

SMACK的核心是标签间的访问规则,规则定义在smack_rule结构中。规则的加载通过/sys/fs/smackfs/load接口写入,解析后插入到smack_known的规则链表中。smack_inode_setsecurity和smack_inode_getsecurity在读写xattr时触发,内部调用smk_find_label根据字符串查找对应的smack_known结构。/* 以本标签为subject的规则链表 *//* 在subject的规则列表中查找匹配object的规则 */

2501_94114815的博客 18

SMACK简介

Smack is the the Simplified Mandatory Access Control Kernel. Smack是一个基于内核实现的强制访问控制机制,简单性是其主要设计目标。 Smack包括三个主要部件: - 内核 - 基本工具(非常有用,但不是必须的) - 配置数据 Smack的核心组件被实现为一个Linux的安全模块(LSM).Smack运行的前提条件是系统要求

tlight的专栏 2212

Linux内核五个安全模块简述

名称  作者/维护者  第一个公开 版本时间  进入内核主线时间  进入内核主线版本  SELinux  NSA(美国国家安全局)  2000/12/22  2003/8/8  2.6.0-test3  SMACK  Casey Schaufler  2008/4/16  2.6.25  Tomoyo  NTT data

xiaoxiangfu的专栏 2670

SMaCk论文精读:基于自修改代码冲突的高效指令缓存攻击

系统研究了x86处理器中自修改代码(SMC) 带来的安全威胁

太白断水客 919

安全加密 - Android (linux) 权限管理 MAC

linux下有多种权限控制的机制, 常见的如:DAC(Discretionary Access Control)自主式权限控制和MAC(Mandatory Access Control)强制访问控制。 DAC 即 Discretionary Access control, 自主访问控制, 即系统只提供基本的验证, 完整的访问控制由开发者自己控制。 MAC 即 Mandatory Access control, 强制性访问控制, 即系统针对每一项访问都进行严格的限制, 具体的限制策略由开发者给出. .

迟来大师的博客 794
上一篇: iptables详解
下一篇: 手动编译LUCI 到 openwrt中
killmice
博客等级 码龄14年 119粉丝 54原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值