❶ 【深入解析MAX OSX & iOS操作系统】读书笔记 —— OS X 和 iOS 使用的技术
作为一个BSD衍生的操作系统,OSX继承了很多BSD的特性,包括POSIX系统调用、一些BSD扩展(内核队列)以及BSD的强制访问控制。
苹果新增的内容:“沙盒”机制。替换了原本系统配置的/etc目录。标准的UNIX syslog被AppleSystem Log增强了。还有FSEvents新技术。
尽管XNU的绝对的核心是Mach,但XNU向用户态展现出来的主要接口是BSD层。
sysctl(8)访问内核内部状态的标准方法。直接查询内核变量的值,获得重要的运行时诊断信息。也可以设置可写变量的值。
内核组件也可以在运行会注册额外的sysctl变量值,甚至增加整个名称空间。
sysctl变量的范围很广,包括从一些简单的调试变量到其他可控制整个子系统行为的读写变量。ps和netstat都依赖于sysctl获得PID和socket系列,当然也可以通过其他方式获得。
kqueue是BSD中使用的内核事件通知机制。一个kqueue指的是一个描述符,这个描述符会阻塞等待知道一个特定类型和种类的事件发生。用户态的进程(或内核)可以等待这个描述符,因为kqueue提供了一种用于一个或多个进程同步的简单高效的方法。
kqueue和对应的 kevent(表示事件的数据结构) 构成了内核异步I/O的基础。
审计是OSX中一个自包含的子系统。主要的用户态组件是auditd,由launchd根据需要而启动的后台服务进程。这个后台服务进程不负责实际的审计日志记录,审计日志记录是由内核本身直接完成的。然后这个后台服务进程能控制内核。
如果启用了审计,那么XNU中编号从350到359的系统调用都被分配用于启用和控制审计。
添加了对象级别的安全性,限制特定进程针对具体文件或资源的访问权限。可以控制一个给定的应用程序不允许访问用户的私有数据或某网站。
从内核的角度看,在各种系统调用的实现中插入了对MAC的调用,每一个系统调用都必须先通过MAC的验证,然后才能真正处理来自用户态的请求。
MAC是OSX的隔离机制和iOS的entitlement机制的基础。
UNIX从传统上都依赖密码文件 /etc/passwd 和保存密码的散列文件 /etc/shadow 。在OSX单用户(以及iOS)中,使用 /etc/master.passwd 作为shadow文件,其他情况都放弃了这些密码文件,使用自己的 目录服务 。
目录服务的维护的内容不仅仅是用户和用户组,还保存了系统配置和很多其他方面的信息。
OSX还抛弃了大部分其他配置文件,这些配置文件传统上在UNIX中是当做系统“注册表”使用的。
为了维护系统配置,OSX和IOS使用了一个特殊的守护程序—— configd(8) ,这个守护程序可以加载额外的可加载的bundle(插件),这个bundle位于 /System/Library/SystemConfiguration 下,包含IP和IPv6配置、日志以及其他bundle。
可通过工具 scutil 来流量和查询系统配置。
OSX也继承了传统UNIX的系统日志功能。OSX10.4引入新的日志模型,ASL,提供了更多特性,例如过滤和搜索。
ASL采用模块化设置,同时提供了以下四种日志接口:
ASL日志收集在 /var/log/asl 目录中。 aslmanager(8) 命令负责管理这些日志,launchd自动运行这条命令。
ASL日志采用的是二进制格式,而不是syslog采用的文本文件。日志文件变小了,但不像syslog那么对grep友好。OSX包含了syslog()命令用于显示和查看日志,并提供了搜索和过滤的功能。
OSX有非常强大的支持脚本的能力。通过osascript(1)命令和友好的Automator应用程序可以访问AppleScript
FSEvents是文件系统的通知API,应用程序可以简单快速地响应文件添加、修改和删除事件。
OSX提供了一个系统级的通知机制,这是分布式IPC的一种形式。
通知机制核心部分在于notifyd(8)守护进程,在系统引导时启动,这是Darwin的通知服务器。
Entitlement可以将一些表现行为良好的应用程序单独从监禁中释放出来。
❷ .fseventsd是什么
你肯定把卡接到苹果的os系统下使用过,苹果os系统,在插入外接u盘、卡的时候,会自动创建.fseventsd、.Spotlight-V100、.Trashes三个隐藏文件夹,不用担心,不是病毒,但我总感觉苹果太不仗义!每次都自动建立这三个文件夹,每次删除了,只要再插入os系统的机器,就又会重新建立!不想要,删掉就成。
❸ 如何备份mac系统
1、将一个格式化后的外置硬盘驱动器连接到Mac电脑上。使用驱动器提供的数据线(通常版是USB、Lightning或eSATA数据线)权,来将驱动器连接到电脑。
❹ 苹果电脑怎么备份
苹果电脑在Leopard操作系统中自带了一个叫时间机器(Time Machine)的软件,用于数据备份和恢复。既然70-80%的用户都不做备份,为什么苹果要在Leopard中隆重推出时间机器这个新功能呢?况且,在Mac OS X上本身就已经有了不少备份工具。下面介绍一下MAC苹果电脑数据备份和数据恢复方法以及时间机器(Time Machine)的优势及使用方法。
在进一步讲述时间机器前,不妨回顾一下Mac OS 10.4下苹果自带一些备份工具,以及它们的备份方法。
1.Finder
Finder的工具栏里具有复制功能。通过Finder把一个文件夹从硬盘挪到移动硬盘或共享宗卷的过程,谁说不是一种备份方法呢。但是,这种备份很大的局限性。首先,通过Finder配合鼠标把文件或文件夹复制到另一个磁盘或路径下,一些重要信息或丢失或改变,这包括文件或文件夹的所有人信息,替身的所有人信息等等。第二,即使把一个能够用于启动的硬盘下的所有文件和文件夹用Finder挪到另一个磁盘,仍然不能得到一个能够启动的系统。第三,Finder本身没有提供定时或自动复制等功能。第四,作为一个简单的复制过程,没有比较高级的机制来提高复制的速度。
2.磁盘工具
磁盘工具可用来制作映像,这个功能允许用户把整个硬盘做成映像储存到其他磁盘或共享宗卷中。映像不外乎是个 dmg或sparseimage文件或者说是一个特殊的文件包,虽然在系统瘫痪时,可以用磁盘工具里的恢复(Restore)功能把硬盘用映像重新复制,但是这个映像本身不能直接启动。换句话说,你系统不能启动,但你有个原系统的dmg映像,你可以用这个映像使系统恢复到制作映像时的状态,但却不能马上让系统启动,因为恢复本身要花一、两个小时或更长时间。
当然,利用磁盘工具的恢复功能,你可以进行整盘克隆,把一个硬盘里的东西,完整地复制到另一个硬盘中去。当系统出现故障时,你换上克隆的硬盘或通过火线(Firewire)连接那个克隆硬盘,就可以用该克隆启动,你就可以马上使用机器。
但是,Mac OS X下的各个版本的磁盘工具功能不尽相同。用于PPC构架的磁盘工具不能对目前正在运行的系统盘制作映像或直接作整盘克隆。你需要使用其他启动硬盘或光盘来启动,然后再对原先的启动盘进行备份,而这个备份结果往往需要储存到第三个磁盘上。假设你用系统安装DVD来启动,对机器的内置硬盘进行备份,其备份储存到某个移动硬盘上,DVD、内置和移动硬盘加在一起就是三个盘。用于Intel构架的磁盘工具则必须使用正在运行当中的系统来做整盘克隆。如果用系统安装 DVD启动后,DVD内部的磁盘工具不允许你选择目标或源宗卷。但是即使用正在运行的系统中的磁盘工具对自身进行整盘克隆,其结果虽然也是个能够启动的盘,但是你会发现备份系统中的隐含文件和文件夹居然都变为可见,这说明Intel构架的磁盘工具在复制中还是有遗漏。另外磁盘工具本身也没有提供任何的定时进行自动备份的机制。
3.Apple Backup
Apple Backup本身不是随机就有的,它本身是为.mac用户进行远程备份而设计的,但是也允许用户选择其他的媒介对备份文件进行储存。Apple Backup带有定时功能,用户可以设定时间自动备份。但是,Apple Backup 不能够对整个系统进行备份。换句话说,一旦发生硬盘问题,整个系统瘫痪了,用户必须先恢复系统,然后才能用Apple Backup对文件恢复。
4.NetInstall
NetInstall是远程安装工具需要Mac OS X Server(服务器)来支持。其本身的目的是便于批量安装机器,而不是备份。但是实现NetInstall的步骤包括做网络启动盘映像。这个映像需要用 OS X服务器版专门的image软件来制作,与dmg文件不同,因为其中含有网络内容。
5. Unix和苹果系统命令
除了以上软件以外,Mac OS X系统里带了一些Unix或苹果自己的系统命令,比如:cp、ditto、rsync、asr,甚至hdiutil的映像的功能。但是这些命令有其适用条件,并不是所有的命令都可以把文件或文件夹得所有属性进行复制。而且对于多数用户来说,对命令实在是不知如何下手。
从恢复的角度上来说,从Mac OS 10.1到Mac OS 10.4,苹果没有给用户提供更多的方便。Finder只有一层undo,结果,一旦用户把文件或文件夹误拉到废纸篓,不及时undo的话,就没法复位。(当然,第三方软件或可帮助)。如果系统出错,在Windows下有一个恢复(Recovery)功能,允许用户在再次启动时,系统自动检测并恢复。 Windows下还可以允许用户选用最后一次顺利登录的信息来登录,而这些Mac系统也不具备。
于是,Time Machine,做为一种备份工具,一方面弥补了以前版本Mac OS X的不足,一方面拥有新的技术解决了其他系统或备份软件所不能解决的问题,外加其超酷的用户界面和广为人知的噱头,粉墨登场了。
苹果Time Machine的作用机理是这样的:
用户在第一次启动Time Machine以后,该软件将做整盘克隆。以后每个小时,Time Machine就对Mac OS X系统的FSEvents(文件系统事件)进行交流看看系统发生了什么变化。FSEvents进程对系统的所有变化进行持续的追踪。当发现过去一小时的系统变化以后,Time Machine对那些变化的文件进行备份。以后每天会将头一天的小时备份自动清除,每周会将上一周的每天备份自动清除。这样在它节约了备份空间的同时,保持了一套完整的系统备份。
Time Machine根据FSEvents提供的信息,对有变化的文件做出备份,这本身属于渐进备份(incremental backup),它还对没有变化的文件制造一个硬性链接(Hard Link)。从文件系统的角度来看,一个文件在磁盘上不过就是一堆数据,文件目录通过硬性链接将这对数据与文件目录联系起来。如果删除了这个硬性链接,用户就不能找到这个文件,虽然此时文件可能还良好地存在于磁盘上。在Mac OS X下通过Finder的清空废纸篓(Empty Trash)的功能来删除文件其实就是把文件的硬性链接删除了。如果使用恢复性的软件,被如此“删除”的文件只要在磁盘上没有被新文件所覆盖,仍有可能被找回来。
在通常的文件系统和磁盘格式下,一个文件只有一个硬性链接。而苹果为了这个新功能把磁盘格式进行了修改,使其允许一个文件存在多个硬性链接。硬性链接其实就是指针,在备份中储存指针比备份文件既省时又节省空间。而且,由于这些指针的存在,通过用户界面,你可以调出某个时间内的系统所有文件来。
苹果电脑Time Machine与现有的备份系统相比具有很多优势:
1。使用Time Machine只需要进行一次整盘克隆,这比每次使用磁盘工具、SuperDuper或Carbon Copy Cloner省时省力。
2。Time Machine能够持续地保持操作系统的完整性和既往文件史。你再不用担心把文件误挪到废纸篓以后不知道应该把它还原到什么路径中去。误删的文件,只要在系统中存在超过一个小时,你还能找回来。
3。Time Machine不用你在设定备份时间或选择备份的内容,因为它是作用于整个系统,而且是持续运行的。当然,你在某一刻不想备份某些文件时,可以关掉Time Machine.
4。Time Machine由于使用FSEvents,不需要扫描硬盘,备份是使用的系统资源较少。
5与Windows Shadow Copy技术不同,Windows允许用户恢复到过去的系统状态,但是恢复以后,新的状态就没有了。而Time Machines可以让你在历史和现在之间往返。
使用苹果电脑Time Machine应该注意些什么?
1。最好在初始装机后,就启动Time Machine,因为做整盘克隆需要一定的时间,初始装机后内容最少,此时开启Time Machine可以节约很多时间。
2。Time Machine对于未改动的历史文件,采用的是硬性链接。如果在启动Time Machine时,该文件就损坏(corrupt)了,以后也好不了。
3。如果你有不可告人的文件,建议你不要使用Time Machine。上面曾经提到了文件删除的机理,硬性链接就是个指针,只要有指针存在,文件就可以找到。换句话说,当一个文件存在多个指针时,你要把所有的指针都删除,磁盘上的文件才调不出来。虽然Time Machine里的确有功能能够让你将某个文件的所有备份都删除,但是,如果您这样的文件太多,是不是够你喝一壶的?如果你要删除你前男/女朋友的聊天记录或照片,还和人家交往旷日已久的话,那可有你删的了。此时,不如把你的备份盘格掉,重新启动Time Machine做整盘克隆。
4。Time Machine可以在系统崩溃时帮你恢复。但是,如果你的备份硬盘出现的问题,Time Machine帮不了你。
5。Time Machine每一个小时备份一次,如果你正好在那个时间间隔里创立了一个文件,并误删。使用Time Machine不能帮你解决问题。
6。Time Machine能不能用来备份bootcamp所分的Windows扇区的东西?如果你不运行Mac OS,Time Machine都没启动,那肯定就不能。如果运行了Mac OS,我还没试过,不知道Time Machine 能否备份已经装载的共享宗卷(Mounted Sharepoint)的内容,感觉上应该是不可以,应该是已经超出了你系统的FSEvents所能控制的范围。
7。Time Machine的备份自身不能启动。因此最好在你要承载备份的硬盘上分个区,在系统首次运行Time Machine以后,在另一个区做一个整盘备份。这样,一旦系统出现问题,可以使用你的整盘备份启动,继续你的工作