zoukankan      html  css  js  c++  java
  • 《鸟哥的Linux私房菜:基础学习篇》读书笔记之第一部分

    一、如何学习Linux

    1. Linux基础知识

    (1) 计算机概论与硬件相关知识。

    (2) 先从Linux的安装与命令学起。

    (3) Linux操作系统的基础技能。如用户/用户组、权限、程序等概念。

    (4) 务必学会vi文本编辑器。

    (5) 学习shell脚本。包括“正则表达式”、“管道命令”、“数据流重定向”等。

    (6) 一定要会软件管理。包括Tarball/RPM/DPKG等软件管理员的安装方式。

    (7) 网络基础。如IP、路由等概念。

    2. 陈皓给出的Linux技术练级攻略:

    (摘自coolshell上陈皓的博客《程序员技术练级攻略》http://coolshell.cn/articles/4990.html )

    入门:

    (1) 文件系统结构和基本操作 ls/chmod/chown/rm/find/ln/cat/mount/mkdir/tar/gzip …

    (2) 学会使用一些文本操作命令 sed/awk/grep/tail/less/more …

    (3) 学会使用一些管理命令 ps/top/lsof/netstat/kill/tcpdump/iptables/dd…

    (4) 了解/etc目录下的各种配置文章,学会查看/var/log下的系统日志,以及/proc下的系统运行信息

    (5) 了解正则表达式,使用正则表达式来查找文件。

    进阶:

    (1) 用这些系统知识操作一下文件系统,用户(实现一个可以拷贝目录树的小程序)

    (2) 用fork/wait/waitpid写一个多进程的程序,用pthread写一个多线程带同步或互斥的程序。多进程多进程购票的程序。

    (3) 用signal/kill/raise/alarm/pause/sigprocmask实现一个多进程间的信号量通信的程序。

    (4) 学会使用gcc和gdb来编程和调试程序(参看我的《用gdb调试程序》)

    (5) 学会使用makefile来编译程序。(参看我的《跟我一起写makefile》)

    (6) IPC和Socket的东西可以放到高级中来实践。

    二、主机规划与磁盘分区

    1. 在Linux下,每个设备都被当成一个文件来对待。

    2. 硬盘分为传统硬盘(HDD)、固态硬盘(SSD)、混合硬盘(HHD)三种。其中传统硬盘HDD又分为IDE(Integrated Drive Electronics,即“电子集成驱动器”)、SATA(Serial Advanced Technology Attachment,又称“串口硬盘”)、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)几种。

    3. 磁盘的记录整个磁盘的两个重要信息:主引导分区(Master Boot Record, MBR)、分区表(partition table)。其中,主引导分区是安装引导加载程序的地方,有446bytes。分区表则记录整块磁盘分区状态,有64bytes,总共分为四组记录区,每组记录区记录该区段的开始与结束的柱面号码。

    4. 磁盘分区

    (1) 其实所谓的“分区”只是针对哪64bytes的分区表进行设置而已。

    (2) 硬盘默认的分区表仅能写入四组分区信息。

    (3) 这四组分组信息我们成为主(Primary)分区或扩展(Extended)分区,扩展分区最多只能有1个,主分区和扩展分区最多可以有4个。

    (4) 逻辑分区是由扩展分区持续切割出来的分区。

    (5) 分区的最小单位为柱面(cylinder)。

    5. 分区的原因

    (1) 隔离数据,提高数据的安全性。

    (2) 将相关数据集中在某个柱面的区段,有助于数据读取的速度和性能。

    6.从开机到操作系统运作之前的流程

    (1) 开机时计算机会主动执行BIOS,BIOS会去分析计算机里面有哪些存储设备,根据用户的设置去取得能够开机的存储设备(如硬盘、光驱或USB等),并且到该设备里面去读取第一个扇区的MBR位置。

    (2) MBR内的引导加载程序(Boot loader)会加载内核文件。

    (3) 内核文件开始操作系统的功能。

    7. Boot Loader的主要任务

    (1) 提供菜单。使得用户可以选择不同的开机选项。

    (2) 载入内核文件。直接指向可开机的程序区段来开始操作系统。

    (3) 转交其他loader。将引导加载功能转交给其他loader来负责。

  • 相关阅读:
    SuffixArray
    CodeForces722C
    CodeForces1000C
    浅谈定积分
    浅谈线段树
    飞行员配对方案问题
    FhqTreap的区间翻转
    NOI2004郁闷的出纳员
    二分图匹配
    Far Relative’s Problem (贪心 计算来的最多客人)
  • 原文地址:https://www.cnblogs.com/wuhualong/p/ReadingNote_Linux_Vbird_Part1.html
Copyright © 2011-2022 走看看