linux读书笔记
- 格式:doc
- 大小:53.00 KB
- 文档页数:9
郑重声明:未经本人允许,不得用于商业或非商业的转载和使用,如有需要请联系:yrj1978@hotmail.com引子为什么要写这个笔记:1,这本书的中文版翻译了太垃圾,没法阅读。
阅读英文原版,可以很好的理解作者的思路。
作此笔记备忘2,一直以来学习LINUXkernel的知识缺乏系统化,借对这本书的学习,系统化的学习一下LINUXkernel。
3,自己一直在做一个toosmall,toosimple的单进程,特权模式,64bit保护模式的称不上OS的OS,已经做完了bootloader,构思kernel的实现的时候,困惑在内存管理的实现上,阅读这本书,希望能有利于自己的OS的编写。
4,克服惰性,多读书,希望一天能阅读5页,争取半年内阅读完这本原版700多页的巨著。
不足:我不可能完全理解LINUX内存管理的精髓,肯定有很多地方理解错误。
希望大家能够指正,以便提高,谢谢。
学习方法:可能您第一次阅读的时候很多地方都不理解,不用担心。
那您可能需要阅读一些文件系统的知识。
或者阅读全部笔记后,再回头阅读,有些地方您就理解了。
言归正传:一、概要可用工具CodeViz:生成代码调用关系图的工具,这个工具我现在还没有去使用,有兴趣的可以自己试试去建立调用关系图。
http://www.csn.ul.ie/ ̄mel/projects/codeviz/Linuxcrossreference(LXR):以web的方式阅读和查找LINUX内核源代码的工具。
这个工具安装相当麻烦,我建议直接到它的官方网站直接读代码。
http://lxr.linux.no/linux+v2.6.24/模块LINUX内存管理代码模块主要分为4个部分:1.Outofmemory代码在mm/oom_kill.c貌似用于杀进程的时候对内存的操作2.虚拟内存的分配代码在mm/vmalloc.c3.物理内存页面分配代码在mm/page_alloc.cVMA(virtualmemoryaddresses)的创建和进程内的内存区域的管理4.这些模块,贯穿与其他kernel代码之中,形成更复杂的系统模块,如页面替换策略,buffer的输入输出等中间插段广告Linux文化T恤,淘宝销售,有兴趣的可以购买。
linux笔记全(⽆图版)1、ls 查看当前⽬录下的所有内容⿊⾊的是⽂件,蓝⾊的是⽂件夹,也就是⽬录2、rm -f anaconda-ks. cfg 彻底删除⽂件(如不确定,则需要先保存备份,也就是快照)3、ifconfig 查看⽹卡的配置信息(ip地址等)4、ifconfig ens33 192.168.18. 201 /24(⽹络地址/⼦⽹掩码)更改ip地址5、systemctl restart network 重启⽹络服务6、桥接模式,直接可以进⾏通信(同⼀⽹段,配置ip)7、能不能通信的2个条件:在同⼀个物理⽹络内,ip地址也在同⼀⽹段内8、仅主机模式,虚拟机和物理机不能进⾏通信,相当于虚拟机和物理机进⾏了隔离与笔记本(真机)通信截图9、NAT模式,⾃动分配⽹络地址和⽹关,以及dns,可以直接上⽹可以访问互联⽹内的主机,但互联⽹内的主机不能访问本机(max特点)10、route -n 查看⽹关11、cat /etc/resolv. conf 查看dns(注意cat后⾯有⼀个空格,空格不可少)12、验证nat模式可以直接上⽹13、shell:通常指linux的字符界⾯,图形界⾯和字符界⾯都属于shell,但图形界⾯的shell常称为gui,字符界⾯的shell常称为cli14、cat /etc/shells 查看⽂件内容(linux⾥⾯提供的所有的shell)15、linux默认使⽤的shell是bash的shell16、echo $SHELL 查看当前使⽤的shell17、shell默认指的是bash,它的应⽤是最⼴泛的18、linux是彻底的多⽤户多任务,它可以直接多个⽤户同时进⾏操作19、ctrl+alt+f2-f6 对应5个shell ctrl+alt+f1 开始图形界⾯shell 作⽤:如何开始shell(也就是如何打开命令界⾯)20、虚拟终端的缩写为tty, 在字符界⾯下执⾏“tty"命令就可以显⽰⽤户⽬前所在的终端编号(终端名称)。
linux操作系统课程学习笔记,我的Linux学习笔记·Linux操作系统基础今天的笔记主要是关于Linux操作系统根底的相关学问。
那就从我⾯前的电脑开端讲起。
计算机和操作系统计算机主要包括五个部分:运算器,控制器,存储器,输⼊设备和输出设备。
通常,运算器,控制器再加上其他⼀些部件如寄存器等构成了我们通常所说的CPU(central processing unit),存储器则主要是内存。
运算器,控制器和存储器可以实现数据的处理.但是数据从何⽽来,运算之后的结果去往哪⾥?这就需要输⼊设备和输出设备(I/O设备)。
我们通常⽤到的输⼊设备包括键盘⿏标等,输出设备为屏幕,打印机等。
值得⼀提的是,计算机中有个叫做硬盘的东西,它并不是存储器,⽽是⼀个I/O设备。
在将数据读取到内存时,它是⼀个输⼊设备;⽽将结果保存到磁盘时,它就变成了⼀个输出设备。
这么多设备整合在⼀起,就成了⼀台计算机。
它可以接收我们的指令(键盘⿏标),通过运算(CPU),把结果展⽰给我们(屏幕,硬盘等)。
但是这么多硬件是如何协调作⽤,共同完成⼀个任务⽽不会我⾏我素地乱来呢?我们需要⼀个东西,它可以控制硬件有序地⼯作,各⾃执⾏⾃⼰的任务,这个东西就是操作系统(Operating System)。
操作系统是⼀个特殊的软件,它的任务就是硬件管理—控制CPU的运算,控制内存的分配,控制计算机的⼏乎⼀切。
假如⼀台电脑没有操作系统,它可能只是⼀个艺术品,或者⼀堆废铁。
⼀个完整的操作系统包括内核和⼀些辅助软件。
内核的主要任务就是进⾏硬件管理,它是⼀个操作系统最基础最底层的东西。
内核若想很好地控制硬件并使其发挥相应的功能,需要和硬件相识相知相爱,他俩可以成为完美的⼀对,全都仰仗于驱动的帮忙。
驱动是硬件的灵魂,它向操作系统提供了访问和使⽤硬件的接⼝,以便在某项任务中最⾼效地调⽤硬件。
什么是LinuxLinux就是⼀个操作系统,它可以管理整个计算机硬件,并且可以接收我们的指令,来指挥硬件完成相应的任务,并把结果反馈给我们。
RAID阅读笔记前言 (1)1 RAID概述 (1)1.1RAID在linux内核中的位置 (2)1.2 mdadm (3)1.3参考文献 (3)2 RAID-5(一)基础 (3)2.1stripe, strip 与 P (4)2.2RAID-5基本原理 (5)3 RAID-5(二)数据结构 (5)3.1bio 与 stripe_head (5)4 RAID-5(三)简单的读写 (8)4.1一次简单的读处理 (8)4.2一次简单的写处理 (9)5 RAID-5(四)make_request (10)6 RAID-5(五)rmw与rcw (12)7 RAID-5(六)延迟写 (13)8 RAID-5(七)Error处理 (14)8.1错误处理 (14)8.2Bad Sector Remapping(BSR) (15)9 RAID-5(八)失效处理 (16)10 RAID-5(九)handle_stripe (17)11 RAID-5(十)raid5d线程 (19)12 RAID-5(十一)stripe_head的管理 (20)13 RAID-5(十二)resync与recovery (22)14 RAID-5(十三)其它 (24)15 Multiple Device (25)16 MD(一)数据结构 (27)17 MD(二)resync和recovery概论 (28)18 MD(三)resync和recovery的调度 (29)18.1resync和recovery的调度(上) (29)18.2resync和recovery的调度(下) (31)19 MD(四)进入syncd内部 (33)20 MD(五)MD中的线程 (37)21 MD(六)小议superblock (38)22 MD(七)In_sync标志与resync (39)23 RAID5 Write Hole (41)24 Zone in RAID0 (43)25 Data flow in Raid0 (45)26 Chunk Aligned Read (46)前言转载自:/,吴素贞整理。
学习好资料欢迎下载读书笔记——《鸟哥的linux私房菜》最近看了老师推荐的《鸟哥的linux私房菜》,虽然之前曾学习过linux操作系统,但是本次的部分阅读,自己还是从中学到了不少。
个人通过部分的阅读,觉得这本是很不错,是本适合linux新手的入门书籍,读完之后对整个Linux 框架可以有个大体了解,这本书内容比较琐碎,但大都是些基本知识,读完之后如果继续研究,你会发现收益良多,总之,读完这本书会对整个LINUX 有个提纲挈领的了解。
我发现自己以前学习过的linux知识,由于平时都在使用windows操作系统,长时间不适用,现在基本忘却了,这本书各个方面的粗略讲解,帮忙回顾了之前学习到的知识。
通过这本书的阅读我发现自己以前对于linux的学习都是皮毛中的皮毛,而现在也还是皮毛中的皮毛。
整本书很长,我只是粗略的看了一下,发现自己要学的很多。
Linux的基础知识在各大主流Linux安装版本中基本相同,如账号管理、硬盘文件格式、数据管理与核心编译等。
本书深入浅出地介绍了Linux操作系统的基本原理与架构,适合当前所有主流Linux版本的学习。
全书共分5大篇。
第1篇主要介绍Linux操作系统的规划与安装;第2篇介绍Linux的基本文件权限与系统架构;第3篇介绍非常重要的Shell与Shell scripts的基本内容,这是所有以文字界面操控主机的基础;第4篇着重介绍Linux用户管理,包括账号管理、磁盘配额与用户的例行性工作流程介绍等;第5篇注重于Linux系统管理,如套件管理员RPM与Tarball、核心的重新编译、开关机与多重启动的设定技巧、系统登录文件的分析,以及X-Window的基本设定的网络参数设定细节。
书中还给了不少的问题、习题和相关的解答,供读者学习参考,这对我们的学习很有用。
虽然我粗略的阅读了一遍,但却使我收益很大,作为linux入门的老牌基础学习书,之后我还会在自己阅读,详细了解linux相关知识,找个方向继续深入学习。
目录第一章 LINUX简介及安装 (2)一、LINUX介绍 (2)二、LINUX安装 (2)三、LINUX目录 (2)四、总结来说: (4)第二章常用命令及帐户管理 (4)一、linux命令格式 (4)二、常用命令 (4)三、用户管理命令 (5)使用技巧: (7)第三章 vi 编辑器 (8)一、Linux 系统中的编辑器知识 (8)二、vi 的模式 (8)三、命令: (8)第四章 SHELL的使用 (8)一:Shell的环境 (8)二、Bash的主要功能 (9)三、Shell变量 (9)第五章、应用程序安装与管理 (11)一、Linux应用程序组成 (11)二、RPM(Redhat Package Manager)包管理 (11)三、应用程序的编译安装 (11)第六章Linux系统管理 (12)一、启动过程: (12)二、运行级别: (12)三、系统服务的启动状态: (13)四、磁盘空间配额: (14)五、压缩命令: (14)第7章Linux基本网络配置 (15)第八章 NFS文件系统: (15)一、NFS的概述和安装 (15)二、NFS服务器的配置 (16)三、图形界面的NFS服务器配置工具: (16)第一章 LINUX简介及安装一、LINUX介绍1Linux:Linux是由芬兰大学的Linus Torvalds 李納斯发起创建的开源软件项目。
2版本号xx.yy.zz :①.xx表为主版本号,yy为次版本号,zz为修订的版本号。
②.次版本号中,单数代表测试版,双数代表正式发行版3开源软件:①源代码开放。
②GPL协议:主要是以源代码形式发布,任何人都可以得到源代码,但是不提供任何的担保,不限制商业性质的发行和包装。
③LGPL许可协议:允许在使用者自己的应用程序中使用程序库,即使不公开自己的源代码。
二、LINUX安装1RHEL4是由RED HAT公司发布的2Linux硬盘概念:①可以分为主分区、扩展分区、逻辑分区。
Linux学习笔记整理Linux笔记第一部分:基础一、概述登录::root 密码或普通用户登陆后用su - 来切换成系统管理员身份注销:logout开始X桌面:startx (可以在X桌面上注销切换到终端)关机:shutdown -h now重启:shutdown -r now 或reboot切换到超级用户(切换root到帐号):su (效果:[root@localhost zsj]# ,#为管理员级别)su - (效果:[root@localhost ~]$ ,$为用户级别)登出超级用户:logout(回到当前用户)-----------------------------------------------------------------------------------------------------Vi编辑器 (可编辑java 、c、cpp程序)Ⅰ编辑Java1.新建进入Vi: Vi Hello.java2.进入到插入模式:i3.编辑(比如 HelloWorld.java)4.保存: [Esc]键进命令模式输入:冒号保存(写入)退出:wq 不保存退出q!5.列(列表)出文件ls参数-l 详细看ls -l6.编译:Javac HelloWorld.java //这个通用(此时可ls再看,可看到HelloWrold.class)7.运行:java HelloWorldⅡ编辑C命令:vi Hello.cpp //new file编程:#includeint main(){Printf("hello!");Return 0;}编译(gcc):gcc hello.cpp(默认编译生成a.out)gcc -o my1 hello.cpp (编译生成的文件叫my1) 运行: ./a.out (绿色的那个) ./my1二、文件目录:/ (根目录)/root (存放root用户的相关文件)/home (存放普通用户的相关文件)/ bin (存放常用命令的目录)/boot (存放引导相关的文件)/sbin (要具有一定权限才可以使用的命令)/mnt(默认挂载光驱和软驱及其他文件系统的目录)/etc (存放配置相关文件)/var (存放经常变化的文件)/usr (软件默认安装的地方,相当于win的program files文件夹) 做个例子来说明文件目录结构cd / (切换到根目录)ls (查看) (dir命令也可以在Linux下用)cd bin/ (或cd bin)ls -l (详细查看)ls -a (查看隐藏项目)显示当前绝对路径:pwd 命令(Print Work Directory)三、用户管理添加用户(useradd命令):只有root或具有root权限的用户才可以操作例:(1)创建用户 useradd star (添加用户star)(2)设密码/ 改密码(好习惯) passwd star (设密码passwd,对象为star)若没有指定用户,则是给当前用户设密码(3)新密码(new password,输两次)删除用户(userdel命令):例:userdel star (删除用户star,但文件夹和文件保留)userdel -r star (删除用户star及star用主目录)文件夹(目录)名按“Tab”可补全四、常用命令指定运行级别0:关机1. 单用户2.多用户状态无网络服务3.多用户状态有网络服务(常用)4.系统未使用保留给用户5.图形界面(常用)6.系统重启常用运行级别是3和5,要修改默认的运行级别可改文件:/etc/inittab的id:5:initdefault:这一行中的数字例:把运行级别设为6,则系统会不断重启。
学习Linux的心得学习Linux的心得「篇一」Windows操作系统是目前世界上使用最广泛的操作系,但是在企业级服务应用上则是Linux系统更为专业与出名,也许听到Linux操作系统会觉得陌生,Android操作系统(安卓)就是基于Linux平台的开源手机操作系统,在个人电脑桌面操作系统有ubuntu、centos、Fedora等都是基于linux。
这个号称“全地球人的操作系统”,以其免费、安全、稳定等优点获得人们的广泛好评。
作为计算机专业的学生,Linux是一门值得深入学习的课程。
我们身处网络发达的年代,网络科技发展速度非常之快,所以,我们的学习范围不应只局限于课本局限于校园,不断学习新的知识,接触新的环境,才能更全面地了解网络发展的新趋势。
4月,我们有幸参加了学校与华清远见教育集团组织的“Linux课程实训”。
实训主要内容为嵌入式Linux服务器搭建,本次实训课程我们学习了部分Linux的基本操作命令,了解了服务器的主要工作原理和流程,在Linux操作系统上如何搭建服务器,服务器与客户端之间如何建立连接,数据的访问读取,上传和下载文件等。
尽管课程安排紧凑,老师讲课速度较快,同学们跟着老师的思路走,还是会有很多收获。
纸上得来终觉浅,绝知此事要躬行。
在学校的课堂上,我们所学的更多的是课本上的理论知识,实训课程中,老师除了讲解理论知识外,还会简单介绍自己的工作和实战经验,这样的实训课程除了强化我们所学的理论知识外,还让我们粗略了解到我们所学的知识能够用在什么地方;如果从事这方面的的工作,在企业里我们还需要掌握哪些技能等。
由此可见,实战经验很重要,就如在给我们讲课的时侯,老师编译程序时也会出现问题,可实战经验丰富,就能快速地找出问题并解决。
很感谢学校提供这样的一次机会,让我们更深刻地了解到,希望今后会有更多实训机会,让我们能够用所学的理论知识去开展更多的实践,学以致用,格物致知。
学习Linux的心得「篇二」学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。
学习Linux的心得学习Linux的心得(精选6篇)在平日里,心中难免会有一些新的想法,应该马上记录下来,写一篇心得体会,这样能够给人努力向前的动力。
一起来学习心得体会是如何写的吧,以下是小编为大家整理的学习Linux的心得,希望对大家有所帮助。
学习Linux的心得篇1本学期对于Linux系统的学习,让我对Linux有了一定的了解。
我知道了Linux只是个内核。
现在的Linux操作系统,都是用这么一个内核,加上其它的应用程序构成的。
Linux最大的特点就是其开源性,这一点是十分难得的,这也是它能够存在到现在的原因之一,使其在金融、安全等部门有很重要的应用。
学习Linux,首先我们应该从基础开始学起。
对Linux操作系统的功能、版本、特点,以及Linux系统安装和图形环境有较全面的了解。
Linux命令是必须学习的。
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。
Linux是一个命令行组成的操作系统,精髓在命令行,学习如何在安全的环境中执行系统命令,包括有关文件、目录、文件系统、进程等概念,如何使用相应的命令对文件、目录、进程等进行管理,了解遇到问题时,如何找到帮助信息等。
Linux常用命令,有echo 命令、date命令、passwd命令、file命令、ls命令、touch命令等。
要明白学好Linux不是一件一蹴而就的事,一定要能坚持使用它,特别是在学习初期。
要增加自己的Linux技能,只有通过实践来实现。
只要多动手,就一定会有收获。
遇到问题时要自己去寻找答案,在寻找答案的过程中,会学到更多知识。
应该说目前我们对于Linux的学习只是入门而已,学习Linux是一个长期的过程,很耗时间。
作为电子信息工程专业的学生,对我们来说,Linux将来主要应用于嵌入式Linux系统的开发,这非一日之功,我们还需要不断深入地学习它。
最后,衷心感谢唐磊老师一学期来的辛苦教学,唐老师幽默风趣的教学方式给我们的课堂带来很多欢乐。
Linux学习笔记系列(1)据说linux很厉害;⼀、 Linux的发展史。
了解⼀个东西,⾸先就要了解他的历史,emmmm,了解,就是不⽤记得,所以,我也只是知道个⼤概,于是乎,我去别⼈的博客复制⼀下他的历史来这⾥放着。
UnixUnix操作系统是⼀个强⼤的多⽤户、多任务操作系统,⽀持多种处理器架构,按照操作系统的分类,属于分时操作系统,最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。
⽬前它的商标权由国际开放标准组织所拥有,只有符合单⼀Unix规范的Unix系统才能使⽤Unix这个名称,否则只能称为类Unix(Unix-like)。
GNUGNU是⾃由软件之⽗Richard Stallman在1984年组织开发的⼀个完全基于⾃由软件的软件体系,与此相应的有⼀分通⽤公共许可证(General Public License,简称GPL)。
Linux以及与他有关的⼤量软件是在GPL的推动下开发和发布的。
⾃由软件之⽗ - Richard Stallman 像⼀个神态庄严的传教⼠⼀样喋喋不休地到处传播⾃由软件的福⾳,阐述他创⽴GNU的梦想:“⾃由的思想,⽽不是免费的午餐”。
这位⾃由软件的“顶级神甫”为⾃⼰的梦想付出了⼤半⽣的努⼒,他不但⾃⼰创作了许多⾃由软件,如:GCC、和GDB,在他的倡导下,⽬前⼈们熟悉的⼀些软件如BIND、Perl、Apache、TCP/IP等都成了⾃由软件的经典之作。
如果说Richard Stallman创⽴并推动了⾃由软件的发展,那么,Linus Torvalds毫不犹豫奉献给GNU的Linux,则把⾃由软件的发展带⼊到⼀个全新的境界。
BSD386BSD因为法律问题直到1992年还不能发布,NetBSD和FreeBSD是386BSD的后裔,⽐Linux早。
Linus Torvalds说,当时如果有⾃由的基于386的Unix-like操作系统,他就可能不会创造Linux。
Linux笔记(狂神说)笔记关注狂神公众号1、概述及环境搭建1.11)我们为什么要学习LinuxLinux诞⽣了这么多年,以前还喊着如何能取代windows系统,现在这个⼝号已经⼩多了,任何事物发展都有其局限性都有其天花板。
就如同在国内再搞⼀个社交软件取代腾讯⼀样,想想⽽已基本不可能,因为⽤户已经习惯于使⽤微信交流,不是说技术上实现不了解⽽是⽼百姓已经习惯了,想让他们不⽤,即使他们⾃⼰不⽤亲戚朋友还是要⽤,没有办法的事情。
⽤习惯了windows操作系统,再让⼤家切换到别的操作系统基本上是不可能的事情,改变⼀个⼈已经养成的习惯太难。
没有办法深⼊到普通⽼百姓的⽣活中,并不意味着Linux就没有⽤武之地了。
在服务器端,在开发领域Linux倒是越来越受欢迎,很多程序员都觉得不懂点Linux 都觉得不好意思,Linux在开源社区的地位依然岿然不动。
尤其是作为⼀个后端程序员,是必须要掌握Linux的,因为这都成为了你找⼯作的基础门槛了,所以不得不学习!2)Linux 简介Linux 内核最初只是由芬兰⼈林纳斯·托⽡兹(Linus Torvalds)在赫尔⾟基⼤学上学时出于个⼈爱好⽽编写的。
Linux 是⼀套免费使⽤和⾃由传播的类 Unix 操作系统,是⼀个基于 POSIX(可移植操作系统接⼝)和 UNIX 的多⽤户、多任务、⽀持多线程和多 CPU 的操作系统。
Linux 能运⾏主要的 UNIX ⼯具软件、应⽤程序和⽹络协议。
它⽀持 32 位和 64 位硬件。
Linux 继承了 Unix 以⽹络为核⼼的设计思想,是⼀个性能稳定的多⽤户⽹络操作系统。
3)Linux 发⾏版Linux 的发⾏版说简单点就是将 Linux 内核与应⽤软件做⼀个打包。
⽬前市⾯上较知名的发⾏版有:Ubuntu、RedHat、CentOS、Debian、Fedora、SuSE、OpenSUSE、Arch Linux、SolusOS 等。
读书笔记——《操作系统》《操作系统》目录1 操作系统发展史2 进程和线程3 内存管理4 文件系统(Linux)5 设备管理1 操作系统发展史1.1引言操作系统诞生距今已经有了几十年的时间,它是计算机资源的管理者。
最初的人们是没有操作系统来对计算机加以控制的,一直都处于人工管理方式来对计算机进行操作和管理,人机交互之间出现了人工手动的低速和计算机的高速处理形成了尖锐的矛盾,资源利用率非常的低,从而导致计算机的效率十分低下。
为了解决人工干预和CPU速度不匹配的矛盾,提高计算机的使用效率,后来出现了世界上第一个的操作系统——脱机输入/输出,用户先将卡片输入到纸带机,然后通过卫星机的处理,将纸带的数据高速写入磁带,主机运行时再将磁带上的数据高速读入内存,输出也可以这样中转,由于数据的读取和写入是脱离主机运行的,所以这样的处理方式称为脱机输入/输出方式。
虽然脱机输入输出方式进一步提高了计算机的运行效率,但是在计算机工作过程中还是需要人工进行干预,后来就出现了批处理系统。
在批处理系统中,操作员将一批作业输入进磁带中,然后运行第一个程序,当第一个作业完成后自动读入下一个作业,直至所有作业全部完成。
由于该类系统的内存中只能保持一个作业运行,所以这类系统又称为单通道批处理系统。
到了20世纪60年代出现了多道批处理系统能够做到计算机内存中的作业并发执行。
直到后来出现的分时操作系统能够让多个用户共同使用一个操作系统可以随时和计算机进行交互,并且让各个用户都感受不到其他用户的存在。
随着计算机技术的发展,越来越多的用户希望操作系统能够实时地对用户进行反馈,在1980年,为了让计算机能够实时地反馈,后来又出现了实时操作系统,对冶炼、发电、炼油、化工、机械加工等的自动控制起到了重要作用。
1.2 无操作系统1)手工特点:(1)用户独占全机(2)CPU等待人工操作问题:(1)计算机处理能力低(2)计算机工作效率低2)脱机输入/输出方式特点:数据的输入输出是在脱离主机的控制下完成的,通常是在外围机的控制下完成的优点:(1)减少了CPU的空闲时间,缓和了人机矛盾(2)提高了I/O速度1.3 单道批处理系统特点:利用磁带将若干个作业分类编成作业执行序列,每个批作业由一个专门的监督程序自动依次处理。
韩顺平LINUX系统笔记第0天开山篇1、linux是一个开源免费的操作系统。
2、学习linux的流程:(1)linux平台上的开发和linux基本操作(2)加强C语言功底:《C专家编程》或者Java语言(3)学习unix环境高级编程(4)Linux应用系统开发/linux嵌入式开发3、书籍推荐:鸟哥的linux私房菜、linux入门到精通、linux内核完全剖析4、学习方法推荐:(1)高效而愉快的学习(2)先建立一个整体框架,然后细节学习(3)用到什么再学什么(4)计算机是做了、练了才会(5)适当的跳过(6)学习linux系统是在琢磨别人怎么做,而不是我认为怎么做第一天1、linux的特点:(1)linux系统时免费开源的(2)linux支持多线程,多用户(3)安全性优良(4)内存和文件管理性能优越2、Linux用户:root(相当于windows的administrator),建议使用普通用户登录,通过su–root切换为身份为管理员3、startx:启动图形用户界面,ctrl+alt+break:切换到控制台环境下4、shutdown now:立即关机shutdown–r now和reboot:立即重启计算机5、注销:logout6、熟悉vi编辑器:vi相当于windows的记事本7、在linux下进行简单的java开发:(1)vi hello.java//创建一个hello.java的文件(2)按"i"进入insert状态,进行文档编辑//编辑一个java文档(3)按"Esc"键退出编辑状态,转换为命令行模式(4)按shift输入冒号,在输入"wq"保存退出,若不保存退出则输入:q!(5)编译java文件:javac hello.java(6)运行java文件:java hello8、ls:列举当前文件夹,参数-l:显示当前目录的详细信息9、ccp程序的编译:编辑过程同上面的java程序,下面只记录编译和运行方式:(1)编译:gcc hello.cpp(2)运行:./a.out//默认编译出的文件为a.out(3)编译时更名:gcc–o hello.out hello.c,编译后的名字变为:hello.out10、set nu:在文件中每行行首加入行号set nonu:取消行号输入数字:直接输入数字,按"Esc"键,将光标移至该行行首/字符串:查找特定字,按"n"继续查找?字符串:查找特定字,按"n"继续查找11、linux的文件系统是采用层级式的树状目录结构,在此结构中的最上层是根目录"/",然后在此目录下再创建其他的目录,详细结构图解:12、linux显示当前路径:pwd13、用户管理:(1)添加用户:只有root用户或者拥有root权限的用户才能创建useradd用户名passwd用户名(2)删除用户:只有root用户或者拥有root权限的用户才能删掉userdel用户名(保留用户相关的文件)userdel–r用户名(删除用户及其相关的文件)14、Linux运行级别:init[0,1,2,3,4,5,6]注释:(1)0:关机(2)1:单用户(3)2:没有网络服务的多用户状态(4)3:有网络服务的多用户状态(5)4:系统未使用保留给用户(6)5:图形界面(7)6:系统重启常用级别为3和5,修改运行级别:vi/etc/inittab,修改id:5:inittabdefault中的数字,即可修改运行等级。
切换X Window与命令行模式:linux login :rootTab 按键具有命令补全与文件补全在线帮助:man page /info page[root@linux^]LANG="man"[root@linuxx]#man dataDATA(1)以root的身份封入Linux之后输入“ls-al”-rwx rwx文件拥有者与文件所属用户组对文件的权利。
linu的发展主要分为哪两种核心版本、文件属性-rwxrwxrwx表示这个文件的意义是什么?要将一个文件的属性改为-rwxr-xr--采用什么命令?若需要更改一个文件的拥有者与用户组,该用什么命令?linux传统的文件系统是什么?常用的文件登陆格式是那些?文件和目录管理:cd切换目录dmtsai 用户的家目录是/home/dmtsai,root家目录是/root,假设一root身份在linux 系统中,这儿个特殊目录的意义是:[root@linux~]# cd【相对路径或绝对路径】[root@linux~]#cd ~dmtsai#表示去dmstai用户的家目录,及/honme/datsai[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#[root@linux~]#pwd(显示当前所在多的目录)[root@linux~]#pwd [-p]参数:-p :显示出十几路径,而非食用连接(link)路径dmtsai用户的家目录是/home/dmtsai root家目录是/rootpwd显示当前所在目录例:[root@linux~]#pwd [-p]pwd显示当前所在目录mkdir(建立新目录)rm 删除文件或目录mv移动文件与目录,或重命名[root@linux~]#mv [fiv]source dmstination[root@linus ]#mv [options] source1 souroe2 souroe2 .....directory-f;force,强调的意思,强制直接移动而不询问。
linux系统学习笔记==============================智能娱乐系统===================硬件:中控:UI,⾳视频数据处理能⼒操作:显卡,声卡、LED、游戏机、触控屏ARM :cortex - A软件:开发环境:vmware + linux(ubuntu)程序开发:linux C程序移植:交叉开发效果:⾃动处理程序⼀、Linux 命令linux : 图形简陋---> 追求效率⾼移植性强,开源性linux :命令⾏形式进⾏交互ls: 查看全部⽂件名/ --->根⽬录pwd: 打印当前的路径/home/gec 等于~ ---> 家⽬录cd : 直接回到/home/geccd / : 回到根⽬录/cd ..: 回到上⼀级的⽬录ls -l类型权限链接数创建者⼯作组⼤⼩⽇期⽬录名d rwxrwxr-x 2 gec gec 4096 Jul 2 2013 Desktop d:⽬录(第⼀个字母:-:普通⽂件d:⽬录)rwxrwxr-x:⽂件的权限r:读权限w:写权限x:执⾏权限⽤户权限:rwx(创建者的权限)rwx(同组⼈)r-x(其他⼈)clear: 清除屏幕信息touch 创建⽂件touch xxxx ----> 因为⾝份是gec,所以必须在/home/gec中创建rm 删除⽂件/⽬录rm xxxx(⽂件名) ----> 因为⾝份是gec,所以必须在/home/gec中删除rm xxxx(⽬录名) -rfgedit 编辑⽂件gedit xxxxcat 查看⽂件内容cat xxxxmkdir 创建⽬录mkdir xxxx ----> 因为⾝份是gec,所以必须在/home/gec中创建cp 拷贝命令cp ⽂件名⽬录名---> cp abc.c 123/chmod 修改⽂件的权限-rw-rw-r-- 1 gec gec 20 Apr 14 19:43 abc.c4214214216 6 4希望三个⼈都是可读可写可执⾏7 7 7chmod 777 xxxxchmod 777 abc.c-rwxrwxrwx 1 gec gec 20 Apr 14 19:43 abc.c⼆、linux与windows间的共享⽬录1,在windows系统中的D:\创建⼀个名字为share的⽬录2, "虚拟机" --- "设置" ---- "选项" --- "共享⽂件夹" --- "总是启⽤" ---"确定" 3,在linux系统输⼊以下命令来进⼊共享⽬录cd /mnt/hgfs/share/4,在linux与windows分别创建⽬录和⽂件,观察两个系统的变化=====================开发板的使⽤=========================⼀、核⼼板CPU:ARM - cortex -A8名字:S5PV210内存:4块4 * 128MB = 512MBnandfalsh: 1G ---〉linux系统⼆、底板电源线插⼝:5V按键⾳频输⼊(红⾊)输出(绿⾊)串⼝:连接PC机与开发板⽹⼝:快速传输数据三、使⽤GEC210板⼦1,接上电源线2,串⼝线⼀端接在开发板上,另⼀端接在USB转串⼝上,USB⼝接在电脑的USB⼝上。
第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了。
虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑。
但前些时候又听说"#!/bin/sh"也是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清。
前几天借了一本书,才真正认识了"#!/bin/sh"。
shell编程是以"#"为注释,但对"#!/bin/sh"却不是。
"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。
如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell。
比如:如果脚本被编写为在Korn Linux中运行,而默认运行shell脚本的为C shell csh,则上述脚本在执行过程中很可能失败。
所以建议大家就把"#!/bin/sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。
即: #!/bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本。
比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等。
那我们真的能写一个/bin/echo的脚本文件吗?我们来试试,下面是一个例子:代码:#!/bin/echo –e这只有一行的程序(实际上它也只能是一行,echo程序并不是被设计成像awk那样的编程语言,能写成源程序文件)命名为myecho,加上权限后执行它:代码:$ ./myecho "hi\a" ./myecho hi如果你的echo支持-e选项并且你工作的环境还算安静,你在得到上面的结果的时候也应该听到清脆的终端响铃。
但这种程序是毫无作用的。
1、linux分区--在linux里面所有的设备、任何东西,在linux看来都是文件。
--文件在它看来,有两种形式:第一种是字符型(键盘输入、打印机);第二种是二进制型(硬盘、光驱、U盘)--linux中所有硬件--手动分区--A、至少有两个分区/ 根分区SW AP 交换分区(物理内存大小的两倍)--B、个人桌面分区//boot 128MB is enough/usrSW AP/tmp(用于光盘刻录)2、linux目录说明--/dev/xxyN--xx (分区所在设备类型:hd--IDE硬盘sd--SCSI硬盘)--y (标明分区所在设备例如:/dev/hda 第一个IDE硬盘或/dev/hdb 第二个IDE硬盘或/dev/sdb 第二个SCSI 硬盘)--N (数字代表分区:1-4--主分区或扩展分区;逻辑分区从5开始!例如:/dev/hda3 第一个IDE硬盘上的第三个主分区或扩展分区/dev/sdb6 第二个SCSI硬盘上的第二个逻辑分区)3、linux目录结构/ 根目录,最高级别/bin 系统基本命令存放目录(/usr/bin)/boot linux的内核及引导系统程序文件存放目录(如:vmlinuz、initrd.img) 一般情况下,GRUB或LILO系统引导管理也位于这个目录/dev 设备文件存储目录,如声卡、光驱.../ect 存放系统设置文件(如用户账号密码、服务器配置文件等)/home 普通用户家目录,默认存放目录/lib 库文件存放目录/lost+found 在ext2或ext3文件系统中,当系统以外崩溃或机器意外关机,而产生一些文件碎片放在这里。
当系统启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。
有事喜用发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或者移文件到原来的位置上。
/media 即插即用型存储设备的挂载点自动在这个目录下创建。
如USB盘系统自动挂在后,会在这个目录下产生一个目录;类似cdrom的目录/mnt 存放挂载存储设备的挂载目录,如cdrom等目录/opt 表示可选的意思,有些软件包也会被安装在此,也就是自定义软件包,比如OpenOffice,或者一些我们自己编译的软件包,也可安装此处。
/proc 操作系统运行时,进程(正在运行的程序)信息及内核信息(比如CPU、硬盘分区、内存信息等)存放在此。
/proc目录是伪装的文件系统proc的挂载目录,proc并不是真正的文件系统/root linux超级权限用户root的家目录/sbin 大多是涉及系统管理的命令的存放,只有超级权限用户root才可执行命令存放,普通用户无权限执行此目录下的命令与/usr/sbin; /usr/X11R6/sbin; usr/local/sbin 目录相似(sbin,只有root权限才能执行)/tmp 临时文件目录,有时用户运行程序的时候,会产生临时文件。
/var/tmp目录和此目录相似/usr 系统存放程序的目录,如命令、帮助文件等。
这个目录下有很多的文件和目录。
大部分Linux发行版提供的软件包都安装在此,涉及服务器的配置文件就安装在/ect中。
/usr/share/fonts 字体目录/usr/share/man 或/usr/share/doc 帮助目录/usr/bin 或/usr/local/bin 或/usr/X11R6/bin 普通用户可执行文件目录/usr/sbin 或/usr/local/sbin 或/usr/X11R6/sbin 超级权限用户root可执行命令存放目录/usr/include 程序头文件存放目录/var (vary)此目录经常变动/var/log 用来存放系统日志/var/www 用来定义Apache服务器站点存放/var/lib 用来存放一些库文件,如MySQL的,以及MySQL数据库的存放地。
4、基本命令--查看帮助*** --help *** --?--查看详细帮助man ***--登录login--退出窗口exit--关机shutdown--重启reboot--初始化init (run level -/etc/inittab),0-6看第六部分的g--进入根目录cd /--回上层目录cd ..--相对路径cd dev--绝对路径cd /dev--查用户名whoami--查当前目录pwd--列出当前目录内容ls-l(树详细显示目录内容)-m(横列显示目录内容,是屏幕长度显示)-a(列出全部文件,包括隐藏文件)-S(以文档大小排序)--创建目录mkdir dname--删除目录rmdir dnamerm -r *** -(递归删除该目录下所有内容,询问每个准备删除的文件)rm -rf ***-(强制删除该目录下所有内容,不询问)--创建空白文件touch ***(ps:从技术的角度来讲,linux的文件后缀名没有任何意义)--复制cpcp -r **1 **2 (复制1到2中)--移动mvmv -t **1 **2 (把2移动到1中)--编辑文本vi [文件名]--查看文本cat 由第一行开始显示文本內容tac 从最后一行显示,可以看出tac 是cat 的倒着写more 一页一页的显示文档內容less 与more 类似,可以往前翻页head 只看头几行-N(数字,可根据行数显示)tail 只看后几行-N(数字,可根据行数显示)nl 显示的時候,顺序输出行号od 以二进制位的方式读取档案內容--查找文本find [路径][查找类型][搜索文件名]如查找rc.local find /etc -name *.local--查找命令信息及其位置whereis 命令如whereis ls--查看环境变量echo $SHELL如echo $PA TH (分大小写:分隔符是:,windows是echo %path%;)--链接ln如ln joe.txt a (硬链接,如同复制一个新文件,joe.txt删除后,a还存在) a是链接的名称,a和joe.txt同步,然后a的内容和joe.txt一样joe.txt改变,a也跟着变如ln -s joe.txt b (软链接,如同创建一个快捷方式,joe.txt删除后,b不存在) --wc 统计指定文本文件的行数、字数、字符数--grep(很常用) 在指定的文本文件中查找指定的字符串grep 字符串文件名--col 见管道..------------------------信息显示命令--------------------------date 显示和设置日期--stat 显示指定文件的相关信息--who、w 显示在线登录用户--whoami 显示用户自己的身份--id 显示当前用户的id信息--hostname 显示主机名称--uname 显示操作系统信息--dmesg 显示系统启动信息--du 显示指定的文件(目录)已使用的磁盘空间--df 显示文件系统磁盘空间的使用情况--free 显示当前内存和交换空间的使用情况--fdisk -l 显示磁盘信息--locale 显示当前语言环境5、挂载点(mount 设备目录挂载目录)--访问设备(那设备当成一个文件,和另外一个文件夹进行绑定)--例如挂载光驱:步骤[cd /mnt]---[mkdir cdr]---[mount /dev/cdrom /mnt/cdr]---[cd cdr]--OK!直接访问光驱内容--卸载挂载设备(umount /dev/cdrom)--注意必须先退出挂载目录,否则出现"device is busy"错误.6、startup-shutdown(linux启动流程)--A、boot sequence(important) linux启动过程a. load bios(hardware information)b. read MBR's config to find out the OS(MBR--Master Boot Record,硬盘第一个物理扇区,柱面0、磁头0、扇区1,包含主引导程序和硬盘分区表)c. load the kernel of the OS(加载为kernel核心的OS)d. init process starts...(启动linux第一个进程init)e. execute /etc/rc.d/sysinit(执行系统最重要的配置文件,后台启用进程)(rc.d--run command)f. start other modules(stc/modules.conf)(开启各种模块,如内存管理模块、硬盘管理模块)g. execute the run level scripts(系统启动是分层次的,根据情况执行,每个层次之间没关系)0 - 系统停机状态1 - 单用户工作状态root2 - 多用户状态(没有NFS)3 - 多用户状态(有NFS)NFS - Network File System 网络文件系统,联网系统4 - 系统未使用,留给用户5 - 图形界面6 - 系统正常关闭并重新启动如:cd /etc -- 有rc0.d、rc1.d、rc2.d、rc3.d、rc4.d、rc5.d等多个文件夹,保存着各个层次执行的进程文件h. execute /etc/rc.d/rc.local (重要)(保存其它进程脚本,如tomcat自动启动,要修改此配置文件)i. execute /bin/login(登录界面)j. shell started...7、vi 文本编辑器--两种模式:命令模式编辑模式--vi [文件名](切换到编辑模式)a append-光标后添加i insert-光标前插入o open-另起一行编辑esc (切换回命令模式):w 存盘:wq 存盘退出:q 退出:q! 不存盘退出dd 删除其中一行dw 删除一个单词(sudo gedit 文本常用linux下的文本编辑器,比vi好用)8、用户设置--切换用户(switch user) su username小技巧:直接exit切换--添加用户useradd username [-g] [组名](分配到某个用户组)(创建后会自动在/home目录下创建该新用户的文件夹,如/home/username)--设置密码passwd username--cd /etc--查看用户信息more password如新增的用户信息:username:x:500:500::/home/username:/bin/bash第一个数字,代表用户组,当添加用户没有指定用户组时,系统会创建一个和用户ID一样的组ID;第二个数字:用户ID号;用户的目录是/home/username;用户的SHELL是/bin/bash(命令--->SHELL[解释命令]--->kenrel内核)SHELL有多种类型,如csh、bash(常用)、bsh、ksh、sh(最原始)--添加用户组groupadd groupname--查看用户组信息more group--删除用户组groupdel groupname--修改用户usermod [-g] [组名] [用户名]--删除用户userdel username然后把/home的文件夹删除了rm -rf 文件夹9、权限file privilege--linux把文件的权限分成四种:r:read w:write x:execute -:none如:-rw-r--r--lrwxrwxrwxdrwxr-xr-xdrwxr-xr-x第一个数字'-'代表文件,其余是文件夹,后9位分为3组,每组有四种权限设置rwx- 第一位表示文件所有者第二位表示和所有者在同一用户组的用户第三位表示不在同一用户组的用户权限--设置权限(随意应用,灵活组合!)1、普通用法--添加权限[chmod +x 文件]如:-rw-r--r-- ---> -rwxr-xr-x--删除权限[chmod -x 文件]如:-rwxr-xr-x ---> -rw-r--r----给自己添加权限[chmod ?+x 文件]如此类推,组--g,其他人--o如:chmod u+x -rw-r--r-- ---> -rwxr--r--chmod g+x -rw-r--r-- ---> -rw-r-xr--chmod o+x -rw-r--r-- ---> -rw-r--r-x2、专业用法chmod 755/777--原理,八进制转二进制如755,111 101 101,rwx r-x r-x777,111 111 111,rwx rwx rwx--修改所有者权限chown (change owner)如:chown 原来文件file1 的所有者是root,改成joe的chown joe file110、管道(把上一个命令执行的结果交给下一个命令)--使用方法:命令1|命令2|命令3......|命令n--使用举例--$ls -Rl /etc | more(如ls -Rl /etc (在控制台模式下,无法返回前面过去的信息),因此需要管道执行该查询,实现分页的工作,ls -Rl /etc | more)--$cat /etc/passwd | wc(显示文件结果,再数数有多少行)--$cat /etc/passwd | grep lrj(显示文件结果,再查找包含lrj的行)--#dmesg | grep eth0(显示系统启动的信息,再查找包含eth0的行--真正含义,检查网卡执行信息是否正常) --$man bash | col -b > bash.txt语法:col [-bfx][-l<缓冲区列数>]补充说明:在许多UNIX说明文件里,都有RLF控制字符。