zoukankan      html  css  js  c++  java
  • 操作系统的历史

     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:管理员的家目录;























  • 相关阅读:
    三种适配器模式 总结和使用场景
    (面试)Statement和PrepareStatement有什么区别
    知识点:Oracle+表连接方式(内连接-外连接-自连接)+详解 来自百度文库
    (面试题)有关Integer
    sessionId与cookie 的关系(百度文库)
    (面试)将1到100的随机数插入到长度为100的数组中,保证不会有重复元素
    如何通过sql的insert语句插入大量字符串到oracle的clob字段?
    (面试题)synchronized 和 java.util.concurrent.locks.Lock 的异同
    【转】java io 流 设计模式
    (面试题)两个对象值相同 (x.equals(y) == true) ,但却可有不同的 hash code ,这 句话对不对
  • 原文地址:https://www.cnblogs.com/jxhd1/p/6715822.html
Copyright © 2011-2022 走看看