您的位置:首页 > 其它

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: