1.3系统安装及初步认识
2016-04-19 00:00
225 查看
Linux:
API: 应用编程接口 通常是:
syscall 系统调用接口
libcall 库调用接口
ABI: 不同操作系统的内核对于二进制格式文件的支持是各不相同的
对应平台支持的可执行环境
Linux和windows所支持的二进制文件格式是不完全相同的
在每个应用程序的开头几个字节,有一些符号用来标记这是什么格式的可执行文件,后面就是可执行的数据
Linux 支持的格式为 ELF格式的 windows上支持的是exe,msi格式的 他们的二进制格式是不同的
当任何程序需要运行时,先向内核申请需要运行,内核识别看是否可运行,如发现可以运行,则划分成一部分cpu,让其运行
.so: Shared Object 共享对象
.dll: Dynamic Link Libraries 动态链接库
连接是有两种方式的
静态链接:能够独立运行,但是链接后空间很庞大
动态链接:
编译时,移植能成功,API需要一样 库兼容
编译后,移植能成功,ABI需要一样
早期IEE定义的规范叫:POS API 可移植操作系统接口 操作系统的兼容规范
Portable OS 为了能够兼容UNIX的使用风格,POS API --> POSIX API
x86
32bits linux: p1
64bits linux: p1
自由软件: 都是支持开源协定的 遵循开源协定的都是自由软件
FSF:Free Software Fundation 自由软件基金会
ASF:Apache Software Fundation Apache软件基金会
特点:
自由学习、自由修改源代码
可以出于任何目的获取源代码
自由分发源代码
自由创建衍生版
开源许可协议:开源协定
GPLv2 , GPLv3 通用公共许可证(GPL)的几个版本
LGPL: Lesser(松散的) 仅调用库无需开源
BSD:
1、如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协议;
2、如果二次发布的只是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协议;
3、不可以用开源代码的作者/组织和原来的产品名字做市场推广;
Apache License: 也和BSD相似,但比BSD更宽泛
Copyright 版权
Copyleft 公共版权
各种发行版: 各种开源程序 + Linux内核 都是编译好的
GPL, LGPL, BSD, APL
Android系统:
Linux + jvm(虚拟机) + java程序 处理垃圾时,是不能运行程序的
IOS:
FreeBSD + Object-C (swift) (面向对象的C)
Linux基本法则:
一切皆文件(包括硬件)
由多个单一目的小程序组成
组合小程序完成复杂任务
尽可能避免捕获用户接口,为了方便脚本编程以实现自动化执行;
使用文本文件保存程序的配置数据:使用一个文本编辑器即可完成系统及服务配置工作;
Linux系统层次:
运行程序:通过内核把某应用程序调度至硬件执行其执行;
用户接口:是一种独特的应用程序,能够为用户提供启动其它应用程序的机制;有两种接口:
CLI:
命令提示符,用户输入要执行的命令即可;
shell: 外壳
sh, csh, ksh, bash, zsh, tcsh
[root@root scripts]#echo $SHELL 查看当前用户所用shell
/bin/bash
GUI:
通过点击操作来启动应用程序;
Linux下常用的GUI
Gnome, c, gtk
KDE, c++, qt 界面研发
xface, 轻量级桌面
终端:
虚拟终端(程序)
Ctrl-Alt-F[1-6]
所有的虚拟终端表示:/dev/tty#
图形终端 用户使用的GUI终端
Ctrl-Alt-F7
伪终端
使用ssh远程连接
在图形界面下打开的命令提示符
所有的伪终端表示:/dev/pts/#
物理终端(控制台console) 没有启动虚拟终端也没有启动伪终端,通过显卡直接连到显示器,在启动虚拟终端启动程序之前的终端就是物理终端。
表示:/dev/console
串行终端: 不使用vga显示 一个一个字符来显示,使用图形程序时,需要用到VGA
表示:/dev/ttyS#
设备文件:
此前未启动X window:
startx &
startx -- :2 &
总结命令:
ifconfig, tty, ls, startx, echo
API: 应用编程接口 通常是:
syscall 系统调用接口
libcall 库调用接口
ABI: 不同操作系统的内核对于二进制格式文件的支持是各不相同的
对应平台支持的可执行环境
Linux和windows所支持的二进制文件格式是不完全相同的
在每个应用程序的开头几个字节,有一些符号用来标记这是什么格式的可执行文件,后面就是可执行的数据
Linux 支持的格式为 ELF格式的 windows上支持的是exe,msi格式的 他们的二进制格式是不同的
当任何程序需要运行时,先向内核申请需要运行,内核识别看是否可运行,如发现可以运行,则划分成一部分cpu,让其运行
.so: Shared Object 共享对象
.dll: Dynamic Link Libraries 动态链接库
连接是有两种方式的
静态链接:能够独立运行,但是链接后空间很庞大
动态链接:
编译时,移植能成功,API需要一样 库兼容
编译后,移植能成功,ABI需要一样
早期IEE定义的规范叫:POS API 可移植操作系统接口 操作系统的兼容规范
Portable OS 为了能够兼容UNIX的使用风格,POS API --> POSIX API
x86
32bits linux: p1
64bits linux: p1
自由软件: 都是支持开源协定的 遵循开源协定的都是自由软件
FSF:Free Software Fundation 自由软件基金会
ASF:Apache Software Fundation Apache软件基金会
特点:
自由学习、自由修改源代码
可以出于任何目的获取源代码
自由分发源代码
自由创建衍生版
开源许可协议:开源协定
GPLv2 , GPLv3 通用公共许可证(GPL)的几个版本
LGPL: Lesser(松散的) 仅调用库无需开源
BSD:
1、如果二次发布的产品中包含源代码,则在源代码中必须带有原来的代码中的BSD协议;
2、如果二次发布的只是二进制格式的库或程序,则需要在发布的文档或版权声明中说明包含原来的代码中的BSD协议;
3、不可以用开源代码的作者/组织和原来的产品名字做市场推广;
Apache License: 也和BSD相似,但比BSD更宽泛
Copyright 版权
Copyleft 公共版权
各种发行版: 各种开源程序 + Linux内核 都是编译好的
GPL, LGPL, BSD, APL
Android系统:
Linux + jvm(虚拟机) + java程序 处理垃圾时,是不能运行程序的
IOS:
FreeBSD + Object-C (swift) (面向对象的C)
Linux基本法则:
一切皆文件(包括硬件)
由多个单一目的小程序组成
组合小程序完成复杂任务
尽可能避免捕获用户接口,为了方便脚本编程以实现自动化执行;
使用文本文件保存程序的配置数据:使用一个文本编辑器即可完成系统及服务配置工作;
Linux系统层次:
运行程序:通过内核把某应用程序调度至硬件执行其执行;
用户接口:是一种独特的应用程序,能够为用户提供启动其它应用程序的机制;有两种接口:
CLI:
命令提示符,用户输入要执行的命令即可;
shell: 外壳
sh, csh, ksh, bash, zsh, tcsh
[root@root scripts]#echo $SHELL 查看当前用户所用shell
/bin/bash
GUI:
通过点击操作来启动应用程序;
Linux下常用的GUI
Gnome, c, gtk
KDE, c++, qt 界面研发
xface, 轻量级桌面
终端:
虚拟终端(程序)
Ctrl-Alt-F[1-6]
所有的虚拟终端表示:/dev/tty#
图形终端 用户使用的GUI终端
Ctrl-Alt-F7
伪终端
使用ssh远程连接
在图形界面下打开的命令提示符
所有的伪终端表示:/dev/pts/#
物理终端(控制台console) 没有启动虚拟终端也没有启动伪终端,通过显卡直接连到显示器,在启动虚拟终端启动程序之前的终端就是物理终端。
表示:/dev/console
串行终端: 不使用vga显示 一个一个字符来显示,使用图形程序时,需要用到VGA
表示:/dev/ttyS#
设备文件:
此前未启动X window:
startx &
startx -- :2 &
总结命令:
ifconfig, tty, ls, startx, echo
相关文章推荐
- 2.1Linux系统基础入门
- 2.2Linux命令行接口及基础命令
- 2.3Linux文件系统初步
- 2.4Linux文件系统初步
- java override error
- Oracle简单的时间计算
- Eclipse使用
- [C/C++]更安全的内存操作替代函数
- js插件spacetree使用
- Maven的pom文件中依赖的 <classifier>属性
- 系统中Jedis的应用,通过JedisClient来进行数据的交流
- css权重
- windows下使用apache配置https服务器
- PPA方式升级Nginx
- [一句秒懂]高仿QQ底部小红点弹簧效果
- 甜蜜的负担
- 文件从服务器下载后发现打不开的解决方法
- Linux CentOS下shell显示-bash-4.1$不显示用户名路径的解决方法
- CentOS7安装Maven
- CentOS7安装JDK