Copyleft: 与copyright相对,意指使用者可自由学习,自由修改源代码,可以出于任何目的获取源代码……
Android:
Linux+JVM+java程序(因其运行于Java virtual machine上,因此其性能比直接运行于linux 内核上的IOS要弱)
IOS:
FreeBSD+Object-C(swift)
Linux基本法则:
Everything is file(包括硬件)
由众多单一目的的小程序组成,组合小程序完成复杂任务
所有配置数据都以文本文件保存(VI/vim编辑器)
尽量避免捕获用户接口,(程序执行时不与用户交互,以实现脚本程序自动化执行)
Linux 系统层次:
运行程序:通过内核调度应用程序至硬件执行
用户接口:一种特殊的应用程序,可为用户提供运行其它程序的机制或平台
CLI:
Shell,各种shell如sh,bash,csh,等 可用echo$SHELL方式来查看linux是否安装了shell,(echo $是获取某内部变量值的方式)
CLI,用户输入相应命令
GUI:graphic user interface,即图形用户接口,类同于windows界面,但windows的图形界面是固化在系统内核的,而linux则只是一种应用接口,可用可不用,在于用户选择。
Linux常用GUI:
Gnome C
KDE C++
Xfce, 轻量级
终端:
虚拟终端:ctrl+alt+F[1-6],默认一般为6个虚拟终端 使用tty命令表现为/dev/tty#
伪终端:如通过secureCRT,另一种是在图形界面下使用的terminal. 表现为/dev/pts/#
物理终端: console口. 表现为/dev/console
串行终端:串口,串行输出字符,不必依赖显卡,不同VGA 表示为/dev/ttyS#
图形终端:也是一种虚拟终端,ctrl+alt+F7, 第一次启动
需要在虚拟终端下输入startx& 或再次启动一个窗口startx --2 &
总线:
地址总线:寻址
控制总线:
数据总线:
用户模式:工作于环0
内核模式:工作于环3
中断:interrupt
硬中断:由硬件产生的中断
软中断:由程序(软件)产生的中断,从用户模式到特权模式是由软中断实现的
DMA: direct memory access
Matadata: 元数据--索引数据
I/O设备通常分为controller和device两部分。 CPU是通过与controller交互来实现控制I/0设备的
OS的功能:
内存管理
进程调度
文件系统
网络协议栈
驱动程序
安全功能-加密解密等
变量:有名称的内存空间
环境变量,用来改变使用环境或主题的变量。
变量赋值:
格式:变量名=值
``
‘‘
""
PS1:
\u |
当前用户名 |
\h |
当前主机名 |
\H |
当前主机的完整名称 |
\w |
当前工作目录的绝对路径 |
\W |
当前工作目录的基名 |
\& |
提示符 |
Linux 文件系统:
区分大小写
一切皆文件
倒置树状结构
一个目录即为一个名称空间
Rootfs: linux系统是单一根状目录结构,不同于windows可以分为多个分区。
当前目录(工作目录)
家目录,用户刚登录之初的目录