纸上得来终觉浅,绝知此事要躬行。
Linux
是一套免费使用和自由传播的类 Unix
操作系统,是一个基于 POSIX
和 UNIX
的多用户、多任务、支持多线程和多 CPU
的操作系统。严格来讲,Linux
这个词本身只表示 Linux
内核,但实际上人们已经习惯了用 Linux
来形容整个基于 Linux
内核,并且使用 GNU
工程各种工具和数据库的操作系统。
1. 知识结构体系
在 Linux 系统上一切皆文件
- 基本思想
- 一切都是文件
- 每个软件都有确定的用途
- 完全免费
- 一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码
- 良好的界面
gnome
Xfce
Fluxbox
KDE
- 支持多种平台
- 支持多处理器技术
- 可运行在嵌入式操作系统
- 可运行在多种
CPU
硬件平台
- 多用户、多任务
- 多用户,保证了各用户之间互不影响
- 多任务,可以使多个程序同时并独立地运行
- 完全兼容 POSIX1.0 标准
- 这使得可以在
Linux
下通过相应的模拟器运行常见的DOS
、Windows
的程序
- 这使得可以在
2. 目录结构体系
根文件系统(rootfs):root filesystem
下面主要介绍 Linux
操作系统的根文件系统的相关目录的对应功能和作用。
/boot:
- 引导文件存放目录,内核文件(vmlinuz)、引导加载器(bootloader, grub)都存放于此目录
/bin:
- 供所有用户使用的基本命令
- 不能关联至独立分区,OS 启动即会用到的程序
/sbin
- 管理类的基本命令
- 不能关联至独立分区,OS 启动即会用到的程序
/lib
- 基本共享库文件,以及内核模块文件(/lib/modules)
/lib64
- 专用于 x86_64 系统上的辅助共享库文件存放位置
/etc
- 配置文件目录(纯文本文件)
/home/USERNAME
- 普通用户家目录
/root
- 管理员的家目录
/media
- 便携式移动设备挂载点
cdrom
usb
- 便携式移动设备挂载点
/mnt
- 临时文件系统挂载点
/dev
- 设备文件及特殊文件存储位置
b
: block device,随机访问c
: character device,线性访问
- 设备文件及特殊文件存储位置
/opt
- 第三方应用程序的安装位置
/srv
- 系统上运行的服务用到的数据
/tmp
- 临时文件存储位置
/usr
: universal shared, read-only databin
: 保证系统拥有完整功能而提供的应用程序sbin
lib
lib64
include
: C 程序的头文件(header files)share
:结构化独立的数据,例如 doc, man 等local
:第三方应用程序的安装位置bin
sbin
lib
lib64
etc
share
/var
: variable data filescache
: 应用程序缓存数据目录lib
: 应用程序状态信息数据local
:专用于为/usr/local 下的应用程序存储可变数据lock
: 锁文件log
: 日志目录及文件opt
: 专用于为/opt 下的应用程序存储可变数据run
: 运行中的进程相关的数据;通常用于存储进程的 pid 文件spool
: 应用程序数据池tmp
: 保存系统两次重启之间产生的临时数据
/proc
- 用于输出内核与进程信息相关的虚拟文件系统
/sys
- 用于输出当前系统上硬件设备相关信息的虚拟文件系统
/selinux
- security enhanced Linux
- selinux 相关的安全策略等信息的存储位置
3. 开源协议分类
在创建开源项目的时候,可以根据下面这个号分类来选择使用哪种开源协议。
什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供一定的权限。
不管产品是免费向公众分发,还是出售,制定一份许可协议非常有用,否则,对于前者,你相当于放弃了自己所有的权利,任何人都没有义务表明你的原始作者身份,对于后者,你将不得不花费比开发更多的精力用来逐个处理用户的授权问题。而开源许可协议使这些事情变得简单,开发者很容易向一个项目贡献自己的代码,它还可以保护你原始作者的身份,使你至少获得认可,开源许可协议还可以阻止其它人将某个产品据为己有。