版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Linux环境高级编程第一讲前言教学目的课程主要内容及支配课程学习方法Unix/Linux标准化及实现编程环境介绍教学目的作为程序员,为什么要学习Linux程序设计?计算机网络越来越普及,带来了巨大的经济效益(各类网站,各类即时通讯工具等等)单机版程序越来越弱化,各种应用将放置于云端(桌面应用web化、web中心化、SaaS、云计算???)后台系统将不仅仅是单机系统,而是集群,分散式类webservice(网站架构的变迁)Linux是后台系统首选的操作系统教学目的互联网络程序设计涉及到的技术Web前台技术:html,css,javascript,flashWeb后台技术:ASP,JSP,PHP,Python,Ruby数据库技术:MySql,Oracle,Sybase适用于分布式处理的函数式语言:erlang,scalar底层的基于操作系统API的socket编程技术本课程的关注点?4从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台四个层次从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台硬件工程师包括固件程序微码的编写从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台内核工程师包括驱动、各类内核模块开发从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台应用开发工程师基于API的程序开发从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台应用开发工程师使用各种库进行开发从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台应用程序开发从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台应用程序开发本课程关注点从程序员视角看计算机系统硬件设备Linux操作系统API层ShellC/C++库其他库或平台应用程序开发本课程关注点理清学习思路教学目的掌握Linux供应的常见系统调用(API,ApplicationProgrammingInterface)加深对操作系统结构的理解掌握系统编程的方法,能够举一反三,为今后对其他系统的学习奠定基础本课程不对Linux内核做商量但将会说明如何依据现代程序设计思想,运用API第一讲前言教学目的课程主要内容及支配课程学习方法Unix/Linux标准化及实现编程环境介绍课程主要内容及支配总学时:20学时(以前是40学时)参考教材UNIX环境高级编程考核方式考查(平常作业)有问题、错误时,随时打断提问课程主要内容及支配文件系统文件、名目的操作方法,常用的文件I/O标准I/O及流标准I/O及流的概念、标准I/O与文件I/O区分、常用的I/O函数进程进程概念、状态转换图、进程环境、掌握方法等信号信号的处理方式,以及应用程序对信号的捕获线程线程的本质,线程的创建方式,同步方式文件的操作文件的基本操作(打开、定位、读写、关闭)I/O效率文件共享其他重要I/O函数ext2文件系统在磁盘的组织stat、fstat、lstat函数文件的基本性质修改文件属性的函数硬链接与符号连接名目操作标准I/O静态库、动态库的编写库接口编写的注意事项标准I/O库打开流定位流读写流格式化输出临时文件进程环境main函数和命令行参数进程的启动和终止环境表和环境变量存储空间布局存储器安排setjmp和longjmp函数进程掌握进程标识符fork等函数exit函数wait等函数exec等函数更改用户ID和组IDsystem函数进程会计用户标识和进程时间进程关系进程组会话掌握终端信号信号的概念signal函数不行靠信号与牢靠信号信号的发送接收机制信号集与牢靠信号机制sigsetjmp和siglongjmp函数abort函数线程线程的概念线程的创建线程的终止线程的同步线程的属性同步属性重入线程私有数据23Linux环境高级编程实验11周后,将开设《Linux环境高级编程实验》一课主要内容包括:高级编程环境学习(vi的高级使用,make的使用、gdb的使用、测试驱动工具googletest使用)执行体模型实现基本网络程序框架实现通用插件框架实现24第一讲前言教学目的课程主要内容及支配课程学习方法Unix/Linux标准化及实现编程环境介绍学习路线建议学习中的困惑漫无目的、缺乏指导,不知道该怎么样学习基本的方法看书+实践方向不明确学习路线建议高度重视语言的学习学好C和C++,临时不要盲目学Java等语言,限制今后的技术道路C和C++程序贴近机器(大多数操作系统都是基于C的)、高性能,将使你更能深化理解计算机系统和算法,在技术道路上走得更远语言的学习不仅仅是语法的学习,最主要的是其背后隐藏的程序设计思想、软件架构思想的学习要知道这些思想的来龙去脉到了肯定程度后,保持每年都能学种新语言,为什么?(有些思想是某种语言特有的)27书籍推举(假定有基本C基础)深化理解计算机系统C学习C陷阱与缺陷C和指针基本C++学习EssentialC++EffectiveC++MoreEffectiveC++C++深思录中面对对象的部分设计模式精解深化C++学习深度探究C++对象模型28书籍推举(假定有基本C基础)模版学习C++Template:CompleteGuideModernC++Design模版库学习C++标准程序库EffectiveSTLSTL源码剖析C++学习收工ExceptionalC++MoreExceptionalC++C算法卷一、卷二29学习路线建议语言到了肯定程度,可以进行系统的学习建议首先学习Windows操作系统Windows比Linux先进(内核结构,线程)学习windows能尽快熟识先进的软件架构(各种架构库,天生的消息循环观察者)30Windows学习书籍推举WindowsAPI学习Programmingwindows(上下册)Windows核心编程MFC学习MFC基本使用的学习深化浅出MFCCOM学习COM原理与应用ATLInternals31学习路线建议之后,可进行Linux系统的学习Linux系统操作鸟哥的Linux私房菜:基础学习篇鸟哥的Linux私房菜:服务器架设篇Linux系统APIUnix环境高级编程Unix网络编程卷一、卷二C++网络编程卷1、卷2ACE程序员指南32学习路线建议Linux内核学习肯定要先学Linux设备驱动编程学习内核源代码《Linux内核完全剖析--基于0.12内核》学习内核源代码,要有方向性。文件系统网络系统学习路线建议在linux内核学习到肯定程度后,可深化学习操作系统80X86汇编语言程序设计教程自己动手写操作系统(其次版:orange’s一个操作系统的实现)此时,可依据需要选择性的学习.NET、Java等平台34第一讲前言教学目的课程主要内容及支配课程学习方法Unix/Linux标准化及实现编程环境介绍Unix进展史UNIX诞生于1969年,美国贝尔电话实验室(BellTelephoneLab)“UNIX”来源于MULTICS(MULTiplexed(多元)InformationandComputingSystem)1957年,苏联放射的第一颗人造卫星刺激了美国,艾森豪威尔总统下令成立高等讨论计划署(ARPA,AdvancedResearchProjectsAgency),推动计算机进展36Unix进展史上世纪60年月,麻省理工学院最先实现了兼容分时系统(CompatibleTime-SharingSystem,CTSS)1963年,麻省理工以IBM的大型计算机作为主体,连接了近160台终端机。这些终端机四散在学校和教职工家中,可以让30位使用者同时共享计算机资源到了1965年,该系统就不堪重负了37Unix进展史麻省理工决定开发更大型的分时计算机系统,即MULTICSMULTICS计划连接1000部终端机,支持300位使用者同时使用计算机资源(貌似云计算???)它面临的挑战:分时观念尚在形成、计算机硬件需要重新设计麻省理工原本找IBM合作,但是被拒绝。38Unix进展史麻省理工、通用电子公司(GeneralElectircCompany,即奇异公司)、贝尔电话实验室共同执行MULTICS计划到了1969年,经过四年的奋战,未达到原先的设计目标,贝尔电话实验室退出但是MULTICS还是安装在了奇异公司的GE645大型机上,供麻省理工学院使用其次年,奇异公司淡出了大型机市场39Unix进展史1969年,贝尔实验室退出MULTICS计划的同时,该实验室两位工程师,正在用fortran语言编写一个叫“SpaceTravel”的游戏。该游戏是在GECOSSystem上开发,该大机型的CPU时间相当昂贵,75$/s。两位工程师找到了PDP-7迷你计算机,代替GECOS40Unix进展史两位工程师将太空旅行的游戏,转移到PDP-7小型机上在此过程中,共同设计了一套包含文件系统、进程系统、一组有用程序的操作系统当时,该系统只能支持两个使用者使用由于当时贝尔实验室参加MULTICS计划失败,两位工程师玩笑似地将这套新系统取名为UNiplexedInformationandComputingSystem,UNICS,即简称为UNIX41Unix进展史事实上,该套系统并未得到重视,只是私下使用,直到1971年1970年,UNIX被移植到了拥有512k字节硬盘的PDP-11/20小型机上,为贝尔实验室的专利部门开发了一套文书处理工具。这套正式被正式命名为版本1。Unix移植成功后,使用B语言为它添加了fortran编译器;由于其解释语言特性,又使用了C语言。1973年,用C语言改写了全部Unix源程序。即首个正式版本,V5。42Unix进展史1975年,Unix发表了第六个版本V6。其最大特点是:以高级语言编写,仅需要做少量的程序修改即可移植到不同的计算机平台上V6的源代码开头在各大高校和讨论机构流传UCBerkeley基于这个版本进行讨论,于1977年发表了1BSD(BerkeleySoftwareDistribution)版本的UnixOS43Unix进展史1978年,发表了至今影响最大的Unix第7版,即V7。供应了诸多工具,例如make工具、shell等等1978年,Berkeley发表了2BSD,包含了vi等工具1979年,发表了3BSD,支持虚拟内存1981年,发表了4.1BSD1983年,发表了4.2BSD44Unix进展史Unix所诞生的贝尔实验室,属于AT&T公司但初期AT&T并未重视Unix1981年,其下属的UnixSystemGroup发表了SystemIII。1982年,发表了SystemIV1983年,发表了SystemV1984年,SystemVRelease2发表,SVR245Unix进展史Sun的操作系统SunOS1.0,继承于4.1BSD直到1990年11月,SunOS4.1.1更名为Solaris1.0Solaris是BSD和SystemV的混合体Unix历史.png46Linux的进展Linux的诞生Linux进展的五大支柱Linux的近况Linux诞生1991年10月,芬兰的计算机系大二同学Linus开发了Linux当时,Unix系统格外昂贵,PC用户完全不能负担AST教授编写了一个供同学学习的开源操作系统MINIX,刺激了全球计算机爱好者操作系统的学习。Minix仅仅用于教学,功能不强GNU计划开发出了众多的免费工具软件,如GNUC编译器Linux进展史--五大支柱UNIX操作系统MINIX操作系统GNU计划POSIX标准Internet网络Linux进展史Unix操作系统诞生:1969年,贝尔实验室在DECPDP-7小型机上开发了一个分时操作系统(为了能玩星际旅行的游戏)1972年,使用C语言改写了Unix至此,Unix开头得到推广,诞生了诸多实现版本SVR4、4.4BSD、FreeBSD、SolarisLinux进展史MINIX操作系统AST开发的一个供同学学习的开源操作系统由于MINIX开放源代码、以及MINIX的小型化,都激发了Linus编写LinuxLinux进展史GNU(GNU‘sNotUnix,递归缩写)计划1984年创办,旨在开发一个类似UNIX,并且是自由软件的完整操作系统:GNU系统严格来说,GNU/LINUXGNU项目开发了诸多免费软件:emacs、bash
shell、gcc、gdbLinux进展史POSIX标准PortableOperatingSystemInterfaceforComputingSystems该标准依据现有Unix实践阅历,规定了操作系统的服务调用接口,以保障程序在不同操作系统之间的移植性该标准为Linux的设计供应了指导使得Linux与很多Unix系统兼容Linux进展史Internet网络通过网络,全世界计算机爱好者参加编写,共同努力Linux发行版本经过十多年的进展,Linux拥有了众多的发行版本UbuntuSUSEFedoraDebianRedHatSlackware第一讲前言教学目的课程主要内容及支配课程学习方法Unix/Linux标准化及实现编程环境介绍Linux操作系统的安装虚拟机中安装Linux系统远程登录到Linux服务器直接安装Linux系统虚拟机中安装Linux在Windows操作系统中,安装虚拟机软件VMware在VMware中安装Linux操作系统无需磁盘分区,可边使用Windows,边使用Linux虚拟机中安装Linux虚拟机中安装Linux远程登录到Linux服务器使用telnet、SecureCRT等登录到远程Linux服务器无需进行磁盘分区,对原有系统无影响必必要有Linux服务器不能独占使用,可能存在干扰远程登录到Linux服务器直接安装Linux推举直接磁盘分区安装Linux更快熟识Linux系统的操作,为什么?对计算机硬件要求低(虚拟机内存要求高)也不要求远程服务器环境(远程登录)可便利使用集成开发环境(类似于VC开发环境)推举安装Ubuntu强大的软件包管理工具APT,负责下载安装软件,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 直流线路杆塔基础专项施工方案
- ISO 201262022 牙科学.手动牙刷.一般要求和试验方法标准立项发展报告
- 小学英语四年级上册 Unit 2 Exploring Hobbies (教案)
- 小区车辆停放综合管理方案
- 六年级上册数学《小数乘分数》单元整体教学设计
- 初中七年级地理:气候成因探究及其与人类活动的双向影响教案
- 物流枢纽物流仓储建设项目运营管理方案
- 初中数学八年级《等腰三角形的判定:逻辑链的构建与逆想》教学设计
- 养老护理员临终关怀与安宁疗护
- 小学数学二年级下册《角的初步认识:从生活抽象到空间建构》教案
- 物业装修申请书样本范文
- TCNAS50-2025成人吞咽障碍患者口服给药护理学习解读课件
- 应急救灾物资项目方案投标文件(技术方案)
- 船舶修造结算管理办法
- 汇丰银行课件
- 舆情法制培训课件
- 额敏县生活垃圾热解处理项目环评报告
- 借车试乘试驾协议书
- JJF(新) 139-2024 锅炉散热损失测试规范
- DB33T 1368-2024医院“一站式”综合服务中心建设与服务规范
- (医学书籍)张元素医学全书
评论
0/150
提交评论