博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SystemConfiguration 简介
阅读量:4296 次
发布时间:2019-05-27

本文共 1466 字,大约阅读时间需要 4 分钟。

SystemConfiguration 框架简介

在电脑开启时,configd 守护线程便会开启,进行网络配置,而 SystemConfiguration.framework 则是与该线程进行会话,从而管理网络配置的。

该框架主要有两个目的,一是提供动态的网络配置,使得用户可以对网络无缝连接,另一个是支持应用对网络的创建、修改以及网络服务的访问。

对于简单的网络连接状态变化,该框架中直接提供了一些方法,可以监听相关的状态值,从而避免开发人员去涉及较低层的方法,如常用的 AFNetworking 第三方库就使用了该框架中的方法来。

对于从事网络配置或拨号软件相关工作的开发人员,除了了解该框架中检查网络状态的相关方法,更应关注网络偏好设置和配置相关的方法。

框架中的一些名词:

  • Location,地点,是对网络连接环境的描述,由用户在网络偏好设置中创建,是面向普通用户的。
  • Set,集合,一个地点所包含的网络配置,如 IP 地址、接口信息、系统配置等,是面向开发人员的。
  • Network service,网络服务,是描述网络接口和连接的实体的集合,这些实体中所包含的信息,能确保一个网络服务生效。
  • Network entity,网络实体,描述一个实体的属性集合,如 PPP、DNS 协议,都是通过一组属性进行描述的。
  • Interface,接口,表示物理连接,如以太网。

Location 和 Set 都是对一个完整的网络配置的描述,只是使用的人不同而已。

系统网络配置分为多个部分,各个部分通过相互配合,才能够提供强大方便的网络服务,各部分如下:

  • 存储所有网络配置偏好和所选系统信息的持久化文件
  • 存储当前使用的网络配置信息的动态存储空间
  • 协调管理上面两个部分的配置管理者(可以同时存在多个管理者,处理相关的配置变化事件)
  • 定义了网络配置过程中使用的数据类型文件
  • 访问或修改网络配置以及消息推送等操作的接口

从网络感知到网络服务提供及拨号应用的相关接口,该框架都有提供。只是需要创建、修改网络服务的接口较为底层,使用了专门的名词来描述相关配置,要进行底层网络服务的编程,需要先了解相关名词。并且,此操作需要修改配置文件,就需要根权限。另外,还会涉及到其他框架的使用,如创建一个网络服务,就需要结合 IOKit 框架中的方法。

/usr/sbin 下,有两个命令 scutilscselect ,分别是网络 system configure 的管理工具和选择命令。

在测试时,也可以使用 ipconfig 命令,来设置相关网络参数,具体使用方式可使用 man ipconfig 命令查看。

实际上,可以打开 /Library/Preferences/SystemConfiguration/preferences.plist 配置文件,查看所有的网络配置信息,更好的理解配置信息的组织方式。但是,该文件对于该系统配置框架是私有的,不要在程序中直接使用它,或者编辑它。

这个文件存储了所有的网络配置,但是应用并不是从该文件获取网络动态的,而是通过读取动态存储的状态值。为了避免开发者的应用直接监听底层网络状态的变化,configuration agents 会根据底层事件来实时更新存储的动态网络配置,而顶层的应用只要通过该框架注册监听感兴趣的值即可。

当然,能使用框架提供的接口的,就应避免去监听具体的值,无法避免,则需要参考 SCSchemaDefinitions.h 文件,明白具体应该监听哪个值,也可参见官方文档 。

转载地址:http://qvdws.baihongyu.com/

你可能感兴趣的文章
期货市场技术分析05_交易量和持仓兴趣
查看>>
TB交易开拓者入门教程
查看>>
TB创建公式应用dll失败 请检查用户权限,终极解决方案
查看>>
python绘制k线图(蜡烛图)报错 No module named 'matplotlib.finance
查看>>
talib均线大全
查看>>
期货市场技术分析06_长期图表和商品指数
查看>>
期货市场技术分析07_摆动指数和相反意见理论
查看>>
满屏的指标?删了吧,手把手教你裸 K 交易!
查看>>
不吹不黑 | 聊聊为什么要用99%精度的数据回测
查看>>
X 分钟速成 Python
查看>>
对于模拟交易所引发的思考
查看>>
高频交易的几种策略
查看>>
网格马丁格尔交易法
查看>>
一行代码让 Python 的运行速度提高100倍
查看>>
一行 Python 实现并行化 -- 日常多线程操作的新思路
查看>>
期货市场的运作机制
查看>>
一文精通 crontab从入门到出坑
查看>>
股票连续跌停后开板表现
查看>>
东航期货行情接口和交易接口(20190509)
查看>>
ubnutu系统完美克隆至新硬盘,系统备份迁移至新硬盘
查看>>