操作系统
- OS:Operating System,的通用软件程序。
操作系统是用来隔离不同的应用程序的 ,包括硬件管理、网络管理、安全管理、
进程管理、内存内存、文件管理。 - OS分类:
服务器OS:RHEL,CentOS,Windows Server,AIX
桌面OS:Windows 10,Windows 7,Mac OS,Fedora
桌面设备OS:Andriod,IOS,YunOS
开发接口标准
- ABI: Application Binary Interface
ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的
系统中无需改动就能运行。 - API: Application Programming Interface
API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系
统中编译。 - POSIX: Portable Operating System Interface
IEEE在操作系统上定义的一系列API标准
POSIX兼容的程序可在其它POSIX操作系统编译执行。 - 运行程序格式:
Windows: EXE, .dll(dynamic link library), .lib
Linux: ELF, .so(shared object), .a
函数库和系统调用
- linux最核心的东西就是内核(kernel),用户要想访问硬件必须通过系统调用
(Syatem call),给内核发送消息通知硬件让它进行操作。
用户和内核空间
- 用户空间: User space
用户程序的运行空间,为了安全,它们是隔离的,即使用户的程序崩溃, 内核也
不受影响只能执行简单的运算,不能直接调用系统资源,必须通过系统接口( system call)
,才能向内核发出指令。 - 内核空间: Kernel space
是 Linux 内核的运行空间,可以执行任意命令,调用系统的一切资源。
linunx起源
- 1991年的10月5日,Torvalds在comp.os.minix新闻组上发布消息,正式向外宣
布他自行编写的完全自由免费的内核诞生
( Freeminix-like kernel sources for 386-AT)
FREAX英文含义是怪诞的、怪物、 异想天开。 - 类Unix的内核,在GPL下发布
- 官网: www.kernel.org
- Linux操作系统:
完整的类UNIX操作系统
Linux内核+ GNU工具
如: CentOS,Ubuntu,Android
Linux发行版
- slackware:
SUSE Linux Enterprise Server (SLES)
OpenSuse桌面 - debian: ubuntu, mint
- redhat:
RHEL: RedHat Enterprise Linux
每18个月发行一个新版本
CentOS:兼容RHEL的格式
中标麒麟:中标软件
Fedora:每6个月发行一个新版本 - ArchLinux:轻量简洁
- Gentoo:极致性能, 不提供传统意义的安装程序
- LFS: Linux From scratch 自制Linux
- Android: kernel+busybox(工具集) +java虚拟机
- Linux分支参考网站: http://futurist.se/gldt/
linux哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
用户登录
- root 用户
一个特殊的管理帐户
也被称为超级用户
root已接近完整的系统控制
对系统损害几乎有无限的能力
除非必要,不要登录为 root - 普通( 非特权 )用户
权限有限
造成损害的能力比较有限
终端terminal
- 设备终端
键盘鼠标显示器 - 物理终端( /dev/console )
控制台console - 虚拟终端(tty: teletypewriters, /dev/tty# #为[1-6])
tty 可有n个, Ctrl+Alt+F[1-7] - 图形终端: startx, xwindows
- 串行终端( /dev/ttyS# ) ttyS
- 伪终端( pty: pseudo-tty ,/dev/pts/# )
pty, SSH远程连接 - 查看当前的终端设备: #tty
交互式接口
- 交互式接口:启动终端后,在终端设备附加一个交互式应用程序
- GUI: Graphic User Interface
X protocol, window manager, desktop
Desktop:
GNOME (C, 图形库gtk)
KDE (C++,图形库qt)
XFCE (轻量级桌面) - CLI: Command Line Interface
shell程序: sh (bourn 史蒂夫·伯恩) csh tcsh ksh (korn) bash (bourn
again shell)GPL zsh
什么是shell
- Shell 是Linux系统的用户界面,提供了用户与内核进行交互操作的一种接口。
它接收用户输入的命令并把它送入内核去执行。 - shell也被称为LINUX的命令解释器( command interpreter)
- shell是一种高级程序设计语言
- GNU Bourne-Again Shell(bash)是GNU计划中重要的工具软件之一,目前
也是 Linux标准的shell,与sh兼容 - CentOS默认使用
- 显示当前使用的shell
echo ${SHELL} - 显示当前系统使用的所有shell
cat /etc/shells