师傅你而 发表于 2018-5-20 07:10:52

Linux入门及 Basics

  二进制:
  0, 1
  5大部件:
  CPU:计算器、控制器
  Memory: 存储器(内存)
  编址存储单元阵列
  输入设备/输出设备:I/O
  键盘:
  VGA:
  

  辅助存储器
  网卡
  

  编程:
  低级语言:汇编(微码编程)
  高级语言:JAVA, C++, C, Scala, Python
  

  转件:
  

  时序复用:
  

  计算机:硬件+软件
  硬件:开发,制造
  软件:编写,编译
  

  OS: Operating System
  通用软件,主要负责管理底层硬件设备,并且将调用接口抽象为易用的形式
  

  库:
  独立的功能模块,可被共享使用
  

  应用程序:
  人机交互接口:
  GUI:Graphic User Interface
  Windows, Gnome, KDE, Xfce
  CLI:Command Line Interface
  shell: bash, zsh, tcsh
  特定应用程序
  开发工具
  …… ……
  

  通过软件虚拟出硬件平台的程序:
  创建多个“虚拟机”
  虚拟的硬件平台
  而后可以虚拟机上装OS
  

  如何虚拟:
  CPU:时序复用,把CPU的计算能力切割成timeslice
  内存:把物理中空闲的离散的一段或几段组织成一个假的连续的空间当内存
  IO:模拟
  硬盘,网卡
  

  硬盘:通过文件来模拟硬件(回环设备)
  网卡:时序复用,也可通过软件模拟
  

  virutalization, emulation
  

  CMOS:Complimentary Metal Oxied Substance
  BIOS:Basic Input and Output System
  

  POST: Power Onand Self Testing
  

  Ctrl, Alt, Insert (Delete)
  

  

  

  

  计算机的5大部件:
  CPU、内存、I/O
  CPU:运算器、控制器、寄存器、缓存
  内存:编址的存储单元阵列
  8bits = 1Bytes
  I/O设备:
  I/O控制器
  

  VM:虚拟机
  

  硬件规格 --> OS --> 动态库(so, dll) --> 应用程序
  用户界面
  GUI
  CLI
  

  POST --> OS (内核, kernel)
  

  CPU:众多指令
  特权指令:操作硬件,获取敏感资源
  普通指令:
  

  CPU:
  用户模式:运行程序的普通指令
  内核模式:运行特权指令
  

  编程:开发语言
  写程序 --> 编译 --> 目标代码
  

  declare -i num1=2
  declare -i num2=3
  sum=$[$num1+$num2]
  

  CPU1: 摩托,M68000,m68k
  CPU2: Intel, Core 2
  程序 --> 编译器 --> “翻译后的结果是特定于某类CPU的”
  

  编程:
  汇编语言:方言
  CPU1
  CPU2
  高级语言:通用语言
  程序(通用语言) --> 编译 --> 方言(汇编)
  

  源代码:source code
  二进制程序:binary
  

  硬件平台:X86, X86_64 (amd64), m68k, power(IBM), PowerPC, mips, arm, alpha, ultrasparc...
  复杂指令集:CISC
  精简指令集
  

  OS的代码:99%可用高级语言编写,余下的1%使用特定平台的汇编编写;
  

  www.top500.org: 超级计算机排名
  

  高级语言:
  编译:需要将整个程序事先转换可运行格式
  解释:转换一个语句运行一个语句
  

  ENIARC:
  电子管 --> 晶体管 --> 集成电路 --> 超大规模集成电路
  

  MainFrame:
  

  DEC:PDP, VAX
  批处理作业系统 --> Multics(多用户, 多任务)--> Ken (PDP7)
  Unics --> Unix
  Dennis: C
  C --> Unix
  

  Berkeley分校:BSRG, Bill Joy
  1976, Ken
  

  TCP/IP协议,虚拟内存:BSD(Berkeley System Distribution)
  Unix: System V, sysv
  BSD
  

  SUN microsystem
  IBM
  

  Microsoft: XENIX
  

  DOS: Disk OS
  

  Apple: GUI
  

  VAX: VMS
  Windows NT
  

  OS/2: Vista
  

  BSD Lite:
  FreeBSD
  OpenBAD
  NetBSD
  

  Minix
  

  MIT: Stallman, freedom
  GNU: GNU is Not Unix
  GPL: General Public License
  

  copyright, copyleft
  emacs, gcc
  

  Linus:
  Linux: Unix-like
  

  www.kernel.org
  

  GNU/Linux
  

  GNU: 各种程序,源代码
  Linux: 源代码
  

  Linux系统发行版:
  Debian
  Slackware
  S.U.S.E
  RedHat
  

  版本:
  kernel:
  发行商版本:
  包管理器
  

  

  PC兼容机:
  

  Linux系统:由来、kernel, GNU, GPL, 发行版
  Linux: kernel, GNU
  GNU: GPL
  kernel: GPL
  

  Linux发行版:
  Debian: Ubuntu (desktop, server)
  Slackware: SUSE (SLES, OpenSUSE)
  RedHat: RHEL, Fedora Core
  RHEL:src.rpm
  CentOS: Community ENTerprise OS
  

  ArchLinux: 借鉴了FreeBSD
  Gentoo:
  LFS, Linux From Scratch
  

  Android: Linux + jvm + android
  Linux + Busybox + jvm + android
  

  软件包管理器:
  RPM:RedHat Package Manager, PRM is Package Manager
  deb: dpt
  

  RHEL:
  发行更新速度较慢,更关注稳定性;
  rhel 5 --> rhel 6 --> rhel 7
  /sbin/init
  rhel5: sysv init
  rhel6: upstart
  rhel7: systemd
  

  RHEL 6.6 --> CentOS 6.6
  

  对系统执行交互式访问:通过终端
  终端的类型:
  物理终端:VGA, console
  虚拟终端:tty
  Ctrl+Alt+F1-6
  /dev/tty#
  串行终端:serial interface, sty
  伪终端:pty
  /dev/pts/#
  图形终端:
  GUI
  

  Ctrl + Alt + F7
  前提:X Server 要启动
  GNome: startx
  KDE: startkde
  

  Linux的用户:
  管理员:root, 拥有最高权限
  普通用户:不具有管理权限
  实现管理任务:临时切换至管理员
  su, sudo
  

  bash prompt: 命令提示符
  #
  $
  

  环境配置:通过环境变量来实现,持久有效需要保存在配置文件中
  PS1
  

  几个基础性的命令:
  tty: 显示当前终端设备
  who: 查看当前系统上登录的所有用户及其信息
  

  Ctrl + c: 取消当前命令的执行
  Shift + PageUp/PageDown
  

  注意:Linux严格区分字符大小写
  tty,Tty
  

  Stallman: 自由软件
  自由的含义:
  自由使用;自由学习和修改;自由分发;自由创建衍生版;
  

  Linux的哲学思想:
  1、一切皆文件;
  把几乎所有资源,包括硬件设备都虚拟为文件形式;
  open, read, wirte, close, create, delete
  2、由众多功能单一的程序组成;一个程序只做一件事情,而且要做好;
  组合多个程序完成复杂任务;
  3、尽量避免跟用户交互;
  目标:易于编程实现自动化任务执行;
  4、使用文本文件保存配置信息;
  

chxueli 发表于 2018-5-20 08:05:34

回帖后跳转到最后一页
页: [1]
查看完整版本: Linux入门及 Basics