摘要

在OS X的系统中,不再有Windows用户熟悉的C盘、D盘,这是因为OS X底层是Unix系统,其目录机构符合Unix系统的规范。MAC机器主板使用了Intel主导的EFI标准,硬盘分区格式采用GPT。这种EFI+GPT的方式相比传统的BIOS+MBR的方式有很多好处,具体可以参考我之前写的博客。

1 硬盘分区

默认情况下,MAC OS X把硬盘分成了3个GPT分区。第一个就是GPT标准要求的ESP分区,这个分区很小,200MB,FAT文件系统格式。按照EFI惯例,应该用来存放操作系统的引导程序。但是苹果没有遵守这个惯例,它的引导程序boot.efi并没有存放在ESP中,这个分区只是被苹果用来存放升级固件的文件。第二个分区就是OS X的系统分区了,它占用了大部分磁盘空间,用来存放整个OS X系统和用户数据,分区文件系统格式为HFS+。第三个分区是系统恢复分区,里面存放了一个精简的OS X系统,用来完成系统恢复、安装等任务,类似于WindowsPE。默认情况下,OS X自带的磁盘工具并不能显示ESP分区和恢复分区,需要开启DEBUG菜单才可以。开启方法为:

defaults write com.apple.DiskUtility DUDebugMenuEnabled 1

然后重启“磁盘工具”,菜单栏里会多出一项“调试”菜单,选中此菜单中的“显示所有分区”菜单项,就会在左侧显示出磁盘的隐藏分区。如下图所示:

此时, ESP分区和恢复分区都显示为灰色,因为此分区虽然存在,但是没有被挂载到系统目录树中,右键点击分区,选择挂载就可以正常显示了,而且可以直接在Finder中查看这个分区。

其中ESP分区的目录结构如下:

2 OS X系统分区的目录结构

Mac OS X已经是被认证的Unix系统,所以其目录结构基本符合Unix系统目录结构。但是有很多目录在Finder中并看不到,这是因为这些目录的被设置了隐藏属性,我们可以在终端窗口中利用unix命令查看

可以看出,根目录下存在着传统的unix系统目录,也存在着一些os x特有的目录。

2.1 符合unix传统的目录

  • /bin 传统unix命令的存放目录,如ls,rm,mv等。

  • /sbin 传统unix管理类命令存放目录,如fdisk,ifconfig等等。

  • /usr 第三方程序安装目录。

  • /usr/bin, /usr/sbin, /usr/lib,其中/usr/lib目录中存放了共享库(动态链接库).

  • /etc. 标准unix系统配置文件存放目录,如用户密码文件/etc/passwd。此目录实际为指向/private/etc的链接。

  • /dev 设备文件存放目录,如何代表硬盘的/dev/disk0。

  • /tmp 临时文件存放目录,其权限为所有人任意读写。此目录实际为指向/private/tmp的链接。

  • /var 存放经常变化的文件,如日志文件。此目录实际为指向/private/var的链接。

这些标准的Unix目录在Finder中并不可见,如下图所示:

2.2 os x特有的目录

OS X系统中,除了标准的unix目录外,还增加了特有的目录。

  • /Applications 应用程序目录,默认所有的GUI应用程序都安装在这里;

  • /Library 系统的数据文件、帮助文件、文档等等;

  • /Network 网络节点存放目录;

  • /System 他只包含一个名为Library的目录,这个子目录中存放了系统的绝大部分组件,如各种framework,以及内核模块,字体文件等等。

  • /Users 存放用户的个人资料和配置。每个用户有自己的单独目录。

  • /Volumes 文件系统挂载点存放目录。

  • /cores 内核转储文件存放目录。当一个进程崩溃时,如果系统允许则会产生转储文件。

  • /private 里面的子目录存放了/tmp, /var, /etc等链接目录的目标目录。

3 用户的资料应该存放到什么目录?

对于普通OS X用户来说,对系统目录树结构的理解与否并不影响正常使用系统,以至于OS X把很多目录都故意隐藏,让普通用户通过Finder不能看到。用户真正关心的是把自己的资料存放到哪里更加方便和安全。Windows用户通常会把个人资料存放在非系统盘(C)的其他分区中,因为Windows系统一旦死掉,C盘的内容很可能就找不回来了。Mac OS X的用户则不用担心这个问题,OS X发生崩溃和不能启动的概率实在是太低了,就算是系统出现问题,由于用户目录和系统目录是彼此独立的,所以也容易找回。所以通常情况下,用户直接把资料存放在自己的用户目录中,OS X也建议用户这么做,并且已经为用户准备好了常用的子目录,如下图所示:

应用程序,文档,下载,音乐,电影,图片,公共,对于普通用户这些子目录也就够用了,当然如果你觉得不够,可以自己随便添加,例如上图中就增加了Work目录来存放一些工作的项目文件,家庭照片视频则用来存放来自手机、Dv等等的照片视频资料。

从Windows过来的用户,如果还想保持原来的习惯,把用户文件和系统文件存放在不同的分区中,那么就需要利于“磁盘工具”,重新分区,把系统分区调整小一些,留出空间建立一个新的HFS+分区,使用的时候把这个分区挂载到系统目录树上就可以使用了。

Mac OSX 系统目录结构(转)的更多相关文章

  1. MAC系统 - 系统目录结构

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/smstong/article/detai ...

  2. Mac OS X 系统目录结构

    在OS X的系统中,不再有Windows用户熟悉的C盘.D盘,这是因为OS X底层是Unix系统,其目录机构符合Unix系统的规范.MAC机器主板使用了Intel主导的EFI标准,硬盘分区格式采用GP ...

  3. 解决mac osx下pip安装ipython权限的问题

    1 pip install ipython --user -U 下面是pip install gevent的错误提示, 又是 Operation not permitted …   1 2 3 4 5 ...

  4. mac OSX使用spdlog1.7

    !!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist 注意️ 请选择对c++11支持较为完善的编译器,因为spdlog一直更新.   本机演示环境 ...

  5. Linux实战教学笔记07:Linux系统目录结构介绍

    第七节 Linux系统目录结构介绍 标签(空格分隔):Linux实战教学笔记 第1章 前言 windows目录结构 C:\windows D:\Program Files E:\你懂的\精品 F:\你 ...

  6. Linux系统目录结构以及简单说明

    Linux系统目录结构以及简单说明 linux目录图: / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...

  7. mac osx下django-admin.py出现的问题

    mac osx 下面用django-admin.py创建项目的时候,没创建成功出现django-admin.py编辑文件,这主要的原因是mac osx下面django-admin.py被重命名为dja ...

  8. mac osx 上面部署Django项目 apache+mysql+mod_wsgi

    1.安装Xcode command line tools 首先,编译mysql和Homebrew需要用到Xcode command line tools,所以首先安装command line tool ...

  9. Webstorm 10 for mac osx 注册机,序列号,kegen

    小菜最近get到mac体验机会,早就耳闻mac非常适合做开发,于是迫不及待的安装各种开发工具,不知不觉,轮到前端开发神器webstorm了,看了一下官网的价格,心拔凉拔凉的. 果断搜索注册机,搜到的结 ...

随机推荐

  1. csu 1756(数论+去重)

    Prime Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 84  Solved: 12[Submit][Status][Web Board] Descr ...

  2. GUC-4 CopyOnWriteArrayList/CopyOnWriteArraySet

    /* * CopyOnWriteArrayList/CopyOnWriteArraySet : “写入并复制” * 注意:添加操作多时,效率低,因为每次添加时都会进行复制,开销非常的大.并发迭代操作多 ...

  3. loadrunner生成随机uuid的方法

    在globals.h中定义方法: 方法: 1.将生成GUID方法放在新建的GUID.h文件中: 2.把这个文件放入脚本保存处: 3.在globals.h中增加函数头“#include "GU ...

  4. 第七章:Mapping插件

    Mapping插件 Knockout设计成允许你使用任何JavaScript对象作为view model.必须view model的一些属性是observable的,你可以使用KO绑定他们到你的UI元 ...

  5. ArrayList to Array Conversion in Java

    ArrayList to Array Conversion in Java Following methods can be used for converting ArrayList to Arra ...

  6. thinkphp5.0Traits引入

    ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trai ...

  7. elementUI 学习入门之 checkbox 复选框

    CheckBox 复选框 与单选框基本类似.如:按钮样式.带边框.复选框按钮大小. eg: <template> <el-checkbox-group v-model="s ...

  8. Python添加系统路径BASE_DIR

    Python可以使用OS模块智能添加sys.path,需要放在Start.py的开始 import os import sys if __name__== '__main__': BASE_DIR = ...

  9. Android中xml tool属性

    http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0309/2567.html 我是搬运工.. 总结而言tool属性就是为了在IDE ...

  10. 【JAVAWEB学习笔记】网上商城实战4:订单模块

    今日任务 完成订单模块的功能 1.1      订单 模块的功能 1.1.1    我的订单: [我的订单的查询] * 在header.jsp中点击我的订单. * 提交到Servlet: * 获得用户 ...