一、体系结构

1. 两种模式

Linux 有两种模式

  • kernel
  • user

2. 基本的操作系统结构

  • 内核
  • shell
  • 文件系统

一起形成了基本的操作系统结构,

3. Linux内核

Linux 内核由如下几部分组成:

  • 内存管理、
  • 进程管理、
  • 设备驱动程序、
  • 文件系统
  • 网络管理

等。

二、User mode和Kernel mode的区别

三、Linux内核

了解linux内核,可以充分利用资源,在系统调优时有目标感。 

1. 内存

Linux 将内存划分为容易处理的“内存页”,提供了对 4KB 缓冲区的抽象,例如 slab 分配器。

2. 进程

进程实际是某特定应用程序的一个运行实体,进程调度控制进程对CPU的访问。

Linux 中常见的进程间通讯机制有信号、管道、共享内存、信号量和套接字等。

内核通过 SCI 提供了一个API来创建一个新进程(fork、exec 或 POSⅨ),停止进程(kill、exit),并在它们之间进行通信和同步(signal 或者 POSⅨ 机制)。

3. 文件系统

Linux 操作系统将独立的文件系统组合成了一个层次化的树形结构,并且由一个单独的实体代表这一文件系统。

由于 Linux 支持许多不同的文件系统,并且将它们组织成了一个统一的虚拟文件系统.

4. 驱动程序

设备驱动程序提供一组操作系统可理解的抽象接口完成和操作系统之间的交互,而与硬件相关的具体操作细节由设备驱动程序完成。

5. 网络

Linux内核的网络部分由BSD套接字、网络协议层和网络设备驱动程序组成。

网络设备驱动程序负责与硬件设备通讯,每一种可能的硬件设备都有相应的设备驱动程序。

四、linux 文件系统

Linux系统能支持多种目前流行的文件系统,推荐用EXT4。

1. Linux下面的文件类型主要有:

1) 普通文件,分为纯文本和二进制。

2) 目录文件,存储文件的地方。

3) 链接文件,指向同一个文件或目录的的文件。

4) 设备文件,分为块设备和字符设备。

5)管道文件,提供进程间通信

6)套接字文件,与网络通信有关

2. Linux使用标准的目录结构,

安装程序就已经为用户创建了文件系统和完整而固定的目录组成形式,并指定了每个目录的作用和其中的文件类型。

目录名 简要说明
/bin 二进制可执行命令
/dev 设备特殊文件
/etc 系统管理和配置文件
/etc/rc.d 启动的配置文件和脚本
/home 用户主目录的基点,比如用户abc的主目录就是/home/user,可以用~abc表示
/lib 标准程序设计库
/sbin 系统管理命令,这里存放的是系统管理员使用的管理程序
/tmp 公用的临时文件存储点
/root 系统管理员的主目录
/mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
/lost+found 这个目录平时是空的,系统非正常关机而留下“无家可归”的文件
/proc 虚拟的目录,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,比方说各种服务的日志文件
/usr

最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

其中包含:   

/usr/X11R6 存放X window的目录   

/usr/bin 众多的应用程序   

/usr/sbin 超级用户的一些管理程序   

/usr/doc linux文档   

/usr/include linux下开发和编译应用程序所需要的头文件   

/usr/lib 常用的动态链接库和软件包的配置文件   

/usr/man 帮助文档   

/usr/src 源代码,linux内核的源代码就放在/usr/src/linux里   

/usr/local/bin 本地增加的命令   

/usr/local/lib 本地增加的库

五、Linux Shell 及命令

shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。

它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。

shell 有很多类型,这里推荐BASH。

BASH是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。

Linux 的命令很多,下面给出了一个简单的分类。

在shell 中组织linux 的命令来完成一系列的任务,就是shell 编程了。

Shell,Perl和Python 是Linux 上最常用的脚本语言,我还是推荐使用Python。

六、Linux 应用

标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、Internet工具和数据库等。

对于文本编辑而言,Emacs 和vim 各有千秋,通过插件配合甚至可以作为IDE使用。 个人感觉,VIM 还应该是必备技能。vim的命令也很多,整理如下: 

就应用的管理而言,ubuntu 需熟知apt命令,centos 则是yum命令。

当然了,源代码编译安装是必须的,makefile的写法,configure/autoconfig/make 的用法要手到擒来才好。

https://blog.csdn.net/ywcpig/article/details/52613222

Linux ubuntu基本知识相关推荐

  1. Linux/Ubuntu网络知识

    Linux/Ubuntu网络知识: Linux ifconfig命令用于显示或设置网络设备.ifconfig可设置网络设备的状态,或是显示目前的设置. (Windows系统cmd中使用ipconfig ...

  2. step1 . day2:Linux系统基础知识

    和Windows一样,Linux计算机必要的文件系统和学习C语言使用到的编辑器知识初步掌握. 1.操作系统和内核的分类 内核:Linux.Unix.NT,Linux内核主要负责5项工作①文件管理②设备 ...

  3. linux下软件包清理,Linux运维知识:如何清理Linux系统中的孤立、无用的软件包

    本文主要向大家介绍了Linux运维知识的如何清理Linux系统中的孤立.无用的软件包,通过具体的内容向大家展现,希望对的大家学习Linux运维知识有所帮助. 在Linux下安装软件,通常会自动安装一些 ...

  4. Linux 系统基础知识

      温故而知新,可以为师矣.好久没有再次系统学习 Linux 相关的知识了,总结回顾一下,为了更好的前进. 一.环境搭建   环境的配置,是我们学习的基础.环境配置会用到的工具及环境: (1) Int ...

  5. linux 标准分区 lvm,Linux lvm 分区知识笔记

    盘面上可以细分出扇区(Sector)与柱面(Cylinder)两种单位,其中扇区每个为512bytes那么大. 通常所说的"硬盘分区"就是指修改磁盘分区表,它定义了"第n ...

  6. linux硬件性能,Linux运维知识:Linux下的硬件性能测试工具汇总

    本文主要向大家介绍了Linux运维知识的Linux下的硬件性能测试工具汇总,通过具体的内容向大家展现,希望对的大家学习Linux运维知识有所帮助. 在购买计算机之后,我们都希望能充分了解它们的硬件性能 ...

  7. Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理

    Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 目录 Linux 之 Linux/Ubuntu 中开发操作中常用的命令整理 一.简单介绍 二.常用命令 1. 打开终端 :Ctrl ...

  8. winxp下虚拟机linux(ubuntu)系统如何访问本地磁盘

    参考:http://blog.csdn.net/js_gary/article/details/6010684 http://blog.163.com/zhanwei103@126/blog/stat ...

  9. 视频教程-初级玩转Linux+Ubuntu(嵌入式开发基础课程)-嵌入式

    初级玩转Linux+Ubuntu(嵌入式开发基础课程) 6年嵌入式开发经验,在多家半导体公司从事芯片测试.验证.Linux驱动开发都工作.熟悉芯片设计流程.熟悉产品平台方案开发流程. 王利涛 ¥39. ...

  10. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

最新文章

  1. CF 1093 E. Intersection of Permutations
  2. Java源码解析:ArrayList 和 Iterator 使用上的不同
  3. SAP Spartacus focus directive tabindex的默认值设置
  4. 学习 wxpython_序
  5. Zeusee 开源移动端车型识别系统HyperVID
  6. 19、SOAP安装,运用与比对结果解释
  7. html设置控件位置大小,下面那个代码段设置myButton控件显示在HTML页左上角100px的位置 - 问答库...
  8. 二分法03:x 的平方根
  9. DN值、地表反射率、 表观反射率、发射率、辐射亮度、亮温名词解释
  10. 谁来帮帮只想救人的医生呢? | 凌云时刻
  11. 好看的php表格样式,分享四个非常好看实用的CSS样式表格
  12. DB9标准的公头\母头接线定义
  13. C语言 输出1000以内所有完数
  14. 傅里叶变换 matlab FFT 函数解析
  15. 【Java框架】CSFramework框架的应用——简易聊天室
  16. 计算机共享文件夹不要用户名密码怎么设置,Win7电脑怎么设置不用密码也能访问共享文件?...
  17. 双绞线与计算机连接的接口是,rj45网络双绞线4根线接法详解
  18. C++ “system“的详解
  19. CSDN:2020 年度 CSDN 博客之星评选——28 号【沉默王二】,感谢你投上的宝贵一票,感谢!
  20. QQ上保险我的QQ密码谁也偷不走

热门文章

  1. 在肉鸡上构建一个完美的虚拟主机
  2. 数学建模python matlab 编程(指派问题)
  3. Linux的 7个运行级别
  4. 发现电脑上装着liteide,就用golang做一个TCP通讯测试(支持先启动client端和断线重连)...
  5. Git 分支及bug分支合并
  6. SpringBoot 分布式session
  7. 自动化测试UI Test, Performance Test, Load Test 总结整理
  8. C++ / vs 如何生成自己的静态库(lib)文件
  9. 决策树分类器vc维如何计算_机器学习入门第三章:决策树分类器-理论
  10. 修改mysql字符集后如何生效_修改MySQL字符集