操作系统的历史

 1945~1946 第一台电子计算机ENIAC
·诺依曼起草ENIAC(电子离散变量自动计算机)设计报告初稿,确定计算机的结构,采用存储程序以及二进制编码等,至今仍为电子计算机设计者所遵循。(广岛原子弹)
UNIX
1965~1969:贝尔实验室、通用电气、麻省理工学院开发MULTICS操作系统,多用户、多任务、多层次(美国登月,5次!)(1964我国第一颗原子弹!珠算!)
1970~1973:改写MULTICS汇编语言为主的时代,为了移植操作系统,诞生了C语言,广泛流行(开源)
1979:版权,走上商业化(IBM-AIX,HP-UX,SUN….)
DOS
 1970年微软收购了86-DOS
 4个月写成
 单用户、单任务
 IBM个人电脑安装一台$200
LINUX UNIX
1991~1993Linux 1.0GNU/LINUX
  林纳斯·托瓦兹,写了LInux内核
  几个月完成
 shell一个月
1995RedHat发行版


言不合,撸代码

系统的启动过程
Linux系统的组成
内核的主要组成
虚拟文件系统

SHELL
启动
 启动级别:
/etc/inittab文件
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
id:3:initdefault:


Linux系统的组成
宏观分为内核空间和用户空间
/sbin/init:用户空间第一个程序
程序的角度,应用程序关心自己的业务逻辑,对硬件资源、不同进程之间的通信等交由操作系统即内核实现,使用系统调用交互
软件工程角度,通用的系统调

  用程序封装为库(.so*)文件,

  减少应用程序开发的复杂度和

  减少程序对内存资源的占用

 
         内核的主要组成
内核主要组成:
进程管理
多任务、多用户
虚拟文件系统
一切皆文件、HFS
内存管理
网络堆栈
设备驱动
 
POSIX
可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX
是一个标准
虚拟文件系统
内核加载进内存后会在内存中维护一个虚拟文件系统
挂载 / 目录所在的分区(至少包含/sbin/bin/etc/lib/dev等目录)
系统INIT阶段会继续挂载其他目录(本地、NFS/proc等)
一切皆文件
/proc目录下存放内核相关文件,cpuinfomeminfo等,可以获取系统实时的信息,比如内存使用情况,arp缓存表等
/dev目录下存放设备文件,光驱、usb等,需要挂载到一个目录,挂载同时指定文件系统
tty
echo “hello” > /dev/pts/0
Filesystem Hierarchy Standard(文件系统目录标准
目录树(directory tree)
目录树的起始点为根目录(/, root)
Linux FHS定义:
/boot: 系统启动相关的文件,如内核、initrd,以及grub(bootloader)
/dev: 设备文件
  设备文件:
  块设备:随机访问,数据块
  字符设备:线性访问,按字符为单位
  设备号:主设备号(major)和次设备号(minor
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/USERNAME
/root:管理员的家目录;























原文地址:https://www.cnblogs.com/jxhd1/p/6715822.html