操作系统
操作系统的原理学习与实践
zhouyuming_hbxt
一个理想主义的工程师
github地址:https://github.com/zhouyuming
展开
-
Linux学习笔记01--好书推荐
1、《Modern Operating Systems》Andrew S. Tanenbaum2、《乐者为王 JUST FOR FUN》3、《COMPUTER ARCHITECTURE A QUANTITATIVE APPROACH》JOHN L HENNESSY & DAVID A PATTERSON原创 2020-10-25 13:47:52 · 198 阅读 · 0 评论 -
Linux学习笔记02--vi编辑器的使用
vi的基本概念vim没有菜单,只有命令;基本上vi可以分为三种状态,分别是命令模式、输入模式和末行模式。】设置TAB键为4字节和行号打开文件/etc/vim/vimrc,在最后输入代码set ts=4、set nu...原创 2017-10-29 12:22:06 · 334 阅读 · 0 评论 -
Linux学习笔记03--进程分配内存的方式和内存分析工具使用
参考文献:https://blog.csdn.net/andylauren/article/details/93189740原创 2020-11-14 16:18:26 · 173 阅读 · 0 评论 -
Linux学习笔记04--进程与线程
进程与线程原创 2020-11-17 09:48:07 · 225 阅读 · 0 评论 -
Linux学习笔记05--基础知识
传统磁盘(Hard Disk Drive,HDD)和固态硬盘(Solid State Drive,SSD)uname -r 查看Linux内核版本由于近年来硬件虚拟化技术的成熟,目前普通的中阶个人计算机的CPU微指令集中,就已经整合了硬件虚拟化指令集了!所以,随便一台计算机就能够虚拟化出好几台逻辑独立的系统了。在Li...原创 2018-10-24 16:09:07 · 182 阅读 · 0 评论 -
Linux学习笔记06--VMWare的安装和使用
vmware提供了三种网络的工作模式,它们分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-Only(仅主机模式)。VMnet0表示的是用于桥接模式下的虚拟交换机;VMnet1表示的是用于仅主机模式下的虚拟交换机;VMnet8表示的是用于NAT模式下的虚拟交换机。同时,在主机上对应的有VMware Network Adapter VMnet1和VMware Netw...原创 2017-08-05 11:21:46 · 345 阅读 · 0 评论 -
Linux之内核编程与调试学习笔记
内核编程与调试原创 2018-12-02 20:29:55 · 247 阅读 · 1 评论 -
Linux之lds链接脚本学习笔记
简单例子以下脚本将输出文件的text section定位在0x10000,data section定位在0x800000:SECTIONS{ . = 0×10000; .text : { *(.text) } . = 0×8000000; .data : { *(.data) } .bss : { *(.bss) }}简单脚本命令ENT...原创 2018-12-06 15:03:20 · 347 阅读 · 0 评论 -
Linux之物理地址与虚拟地址学习笔记
物理地址和页物理地址被分成离散的大小相等单元,称之为页Linux系统内部许多对内存的操作都是基于页的每个页的大小通常为4096个字节,具体的大小在<asm/page.h>中用PAGE_SIZE定义内存地址,无论是虚拟的还是物理的,它们分为页号和一个页内的偏移量页帧号:忽略地址偏移量,并将除去偏移量的剩余位移到右端,称该结果为页帧号。 通常处理器必须使用某种机...原创 2018-12-23 09:37:29 · 421 阅读 · 0 评论 -
Linux之并发与竞态控制学习笔记
如何解决竞态问题?保证对共享资源的互斥访问,指一个执行单元在访问共享资源的时候,其他的执行单元被禁止访问。Linux设备驱动中可采用的互斥途径:中断屏蔽、原子操作、自旋锁、信号量以及completion。中断屏蔽可以解决中断与进程之间的并发,也可以解决内核抢占进程之间的并发。 ...原创 2018-12-12 12:01:23 · 269 阅读 · 0 评论 -
Linux之引导启动程序学习笔记
原创 2018-12-26 12:18:08 · 227 阅读 · 0 评论 -
嵌入式Linux驱动开发之基础学习笔记
驱动在嵌入式系统中的位置1、驱动是内核的一部分2、内核是操作系统的核心操作系统对硬件资源进行管理设备分类:按照CPU和外围设备之间传输数据的 大小字符设备:以字节为单位块设备:传输的数据以固定的块为单位512/1024BYTE网络设备:传输的是按照协议封装好的网络数据(MTU)驱动是在Linux操作系统下对外围设备进行管理1、Linux模块编程2、Li...原创 2019-05-08 07:38:36 · 215 阅读 · 0 评论 -
Linux之Ubuntu下搭建Samba服务器学习笔记
局域网下使用samba服务在Linux系统与Windows系统直接共享文件是一项很方便的操作,下面以Ubuntu为例配置samba服务。1、更新当前软件sudo apt-get upgradesudo apt-get updatesudo apt-get dist-upgrade2、安装samba服务器sudo apt-get install samba samba-com...原创 2019-07-12 13:54:23 · 239 阅读 · 0 评论 -
Linux之Ubuntu配置国内更新源学习笔记
为了方便国内用户使用最新版的Ubuntu,本文提供了 Ubuntu的国内更新源以及更改更新源的完整步骤.进入更新源文件所在目录:cd /etc/apt备份原有更新源文件:sudo cp -p sources.list sources.list.bak编辑更新源文件:sudo vi sources.list写入如下国内更新源:#阿里云源deb http://mirrors.a...原创 2019-07-12 14:14:57 · 957 阅读 · 0 评论 -
Linux之Ubuntu下命令行串口工具minicom安装和使用学习笔记
参考文献:https://jingyan.baidu.com/article/6b182309f9dd6dba59e1597a.htmlminicom是linux系统下的一个命令行串口工具安装minicom:sudo apt-get install minicom打开minicom:sudo minicom...原创 2019-07-12 15:22:28 · 925 阅读 · 0 评论 -
Linux之Ubuntu下远程登录服务SSH安装和使用学习笔记
Secure Shell(SSH)是一种加密网络协议,用于在不安全的网络上安全地运行网络服务。利用SSH可以实现加密并安全地远程登录计算机系统。Ubuntu安装后默认只有ssh客户端,即只能在Ubuntu内去连接其他ssh服务器,本文将详细介绍在Ubuntu下安装部署ssh服务端,以便实现其他客户端使用ssh协议远程登录Ubuntu服务器。安装SSH:sudo apt-get install...原创 2019-07-12 15:52:21 · 253 阅读 · 0 评论 -
Linux之内核模块学习笔记
Linux内核模块的特点模块本身不被编译入内核镜像,这就控制了内核的大小模块一旦被加载,它就和内核中的其它部分完全一样原创 2018-12-02 19:30:30 · 164 阅读 · 1 评论 -
Linux之设备驱动模型学习笔记
提供了对许多模块支持,包括但不限于设备驱动每个模块由目标代码组成(没有连接成一个完整可执行程序)insmod将模块动态加载到正在运行的内核rmmod程序移除模块 #include <linux/init.h>#include <linux/module.h>MODULE_LICENCE("Dual BSD/GPL")...原创 2018-12-02 16:29:58 · 395 阅读 · 0 评论 -
Linux之文件与目录管理学习笔记
什么是操作系统API?API是一些函数,这些函数是由linux系统提供支持的,由应用层程序来使用。应用层程序通过调用API来调用操作系统中的各种功能,来干活。学习一个操作系统,其实就是学习使用这个操作系统的API。linux常用文件IO接口open、close、write、read、lseek文件操作的一般步骤先用open打开一个文件,得到一个文件描述符,然后对文件进行...原创 2017-08-24 10:10:49 · 279 阅读 · 0 评论 -
Linux之系统简介学习笔记
Unix与Linux的发展史Unix-1969年开始研制,1971年v1发布(Ken Thomson/Dennis Ritchie);BSD-1977年,Berkeley Software Distribution;Linux系统诞生于1991年,由芬兰大学生Linus Torvalds和后来陆续加入的众多爱好者共同开发完成;GNU&RMS-GCC、EMACS,自由软件是理...原创 2017-06-10 20:44:52 · 334 阅读 · 0 评论 -
Linux之软件包管理学习笔记
原创 2017-11-06 13:49:44 · 272 阅读 · 0 评论 -
Linux之用户权限管理学习笔记
chgrp:改变文件所属群组选项与参数:-R:进行递归(recursive)的持续变更,亦即连同次级目录下的所有文件、目录都更新成为这个群组之意。常常用在变更某一目录内所有的文件之情况。chown:改变文件拥有者选项与参数:-R:进行递归(recursive)的持续变更,亦即连同次级目录下的所有文件都变更。chown [-R] 账号名称 文件或目录chown [-R]...原创 2017-11-08 20:05:30 · 299 阅读 · 0 评论 -
Linux之Shell脚本学习笔记
shell脚本的建立与执行shell脚本(bash shell程序)通常是在编辑器(如vi/vim)中编写的,由Unix/linux命令、bash shell命令、程序结构控制语句和注释等内容组成。变量Shell变量由全大写字母加下划线组成,有两种类型的Shell变量:环境变量:环境变量可以从父进程传给子进程,因此Shell进程的环境变量可以从当前Shell进程传给fork出来的子...原创 2017-10-04 20:41:42 · 249 阅读 · 0 评论 -
Linux之服务器学习笔记
NFS(Network File System)网络文件系统多用于Unix和Linux网络系统中在NFS服务器主机中进行设置安装NFS服务器软件包启动NFS服务器程序设置NFS共享目录输出在NFS客户机中进行设置使用mount命令挂载NFS服务器中的NFS共享目录到文件系统中通过NFS文件系统的挂载点目录访问NFS服务器中的共享内容rpm -q nfs-utils 查询是否安装nfs-utilsr...原创 2018-04-23 17:55:10 · 293 阅读 · 0 评论 -
Linux 之VMWare下Linux系统重新分区学习笔记
1、Gparted简介 GParted (Gnome Partition Editor)是一种非常小巧自启动运行光盘,采用X org,轻量级的Fluxbox窗口管理器,以及最新的2.6 Linux内核建构。其中包含的GParted硬盘分区工具,作为系统维护盘非常有用。 GParted是一款linux下的功能非常强大的分区工具,和windows下的‘分区魔术师’类似,操作和显示上...原创 2018-08-30 15:16:13 · 961 阅读 · 0 评论 -
Linux之硬盘分区学习笔记
硬盘上的数据按照其不同的特点和作用大致可以分为5部分:MBR区、DBR区、FAT区、DIR区和DATA区。1、MBR区 MBR(Main Boot Record 主引导记录区)位于整个硬盘的0磁道0柱面1扇区。不过,在总共512字节的主引导扇区中,MBR只占用了其中的446个字节,另外的64个字节交给了DPT(Disk Partition Table,硬盘分区表),最后两个字节5...原创 2018-10-25 09:59:06 · 260 阅读 · 0 评论 -
Linux之PC上电启动过程学习笔记
PC上电启动过程分析:1、程序被加载器(软件或硬件)加载到内存的某个区域。2、CPU的cs:ip寄存器被指向这个程序的起始地址。以Intel 8086CPU为例,其有20根地址总线,一共可以访问1MB的内存空间,如果表示成16进制的话就是0x00000到0xFFFFF,实模式下内存空间布局如下:从低地址向高地址看,0到0x9ffff为DRAM,也就是插拔的内存条,有640KB。...原创 2018-10-25 11:45:35 · 388 阅读 · 0 评论 -
Linux之curl工具的安装和使用学习笔记
curl命令是个功能强大的网络工具,支持通过http、ftp等方式下载文件;还可以用来抓取网页、网络监控等方面的开发,解决开发过程中遇到的问题。常用参数:curl命令参数很多,这里只列出shell脚本编程中常用的一些参数-v/--verbose 小写的v的参数,用于打印更多信息,包括发送的请求信息,这在调试脚本时特别有用;-m/--max-time <second> 指...原创 2019-08-14 14:40:12 · 961 阅读 · 0 评论