Linux第一讲前言课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Linux第一讲前言课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Linux 第一 前言 课件
- 资源描述:
-
1、李 林 电子科技大学 计算机学院自我介绍姓名:李林专业:计算机系统结构学位:博士职称:副教授研究方向:操作系统及安全分布式计算计算机网络QoS自我介绍技术背景:熟悉windows内核程序设计熟悉windows API/MFC/ATL/WTL的应用开发熟悉Linux下基于API的应用开发熟悉Linux下网络应用程序开发熟悉Linux内核网络模块开发熟悉erlang应用开发Email:第一讲 前言教学目的课程主要内容及安排学习方法学习资料推荐编程环境介绍第一讲 前言教学目的课程主要内容及安排学习方法学习资料推荐编程环境介绍教学目的作为程序员,为什么要学习Linux程序设计?计算机网络越来越普及,带
2、来了巨大的经济效益单机版程序越来越弱化,各种应用将放置于云端(桌面应用web化、web中心化、SaaS、云计算?)Linux是后台系统首选的操作系统7教学目的 Linux上的程序设计涉及到的内容很多:Shell编程各种Web后台技术:PHP,Python,Ruby.数据库技术:MySql,Oracle,Sybase.各类开发语言:erlang,scalarLinux内核程序设计底层的基于操作系统API的socket编程技术 本课程的关注点?从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台四个层次从程序员视角看计算机系统硬 件 设 备操作系统API层Shel
3、lC/C+库其他库或平台硬件工程师包括固件程序微码的编写从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台内核工程师包括驱动、各类内核模块开发从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台应用开发工程师基于API的程序开发从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台应用开发工程师使用各种库进行开发从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台应用程序开发从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台
4、应用程序开发本课程关注点从程序员视角看计算机系统硬 件 设 备操作系统API层ShellC/C+库其他库或平台应用程序开发本课程关注点理清学习思路教学目的本课程以Linux操作系统为基础,通过介绍该系统的API,使同学们掌握Linux系统调用的基本使用方法。同时,也希望通过本课程的教学,使同学们初步掌握按照当代程序设计思想灵活运用API的方法,以提高学生在Linux环境下进行程序开发的能力和水平。为此,本课程开发了一个面向对象的执行体类库什么是系统调用和库过去windows使用0 x2e号中断作为系统调用入口,而linux使用0 x80号。现在仍然可以使用0 x80示例1.10编译方法:需要安
5、装nasm#nasm f elf64 hello.asm#gcc-o hello hello.o调试:gdbdisass main/段名找到地址后,b*addrr什么是系统调用和库Intel提供了sysenter/sysexit指令,可以在long mode下运行,但是在AMD上这组指令无效。Intel不支持32位中使用syscall/sysret,但和AMD相同,在64位下支持所以,为了兼容性,在64位下使用syscall/sysret示例1.11什么是系统调用和库从某种意义上将,C库实际上是对系统调用的包裹。通常,把包裹之后的函数成为API示例1.12真正的入口点如何调试C库第一讲 前言教
6、学目的课程主要内容及安排学习方法学习资料推荐编程环境介绍课程主要内容及安排总学时:20学时教材Linux程序设计实践,李林 段翰聪 著,电子科技大学出版社参考资料UNIX环境高级编程,W.Richard Stevens,人民邮电出版社考核方式考查(平时作业)有问题、错误时,随时打断提问课程主要内容 操作系统程序设计所涉及的内容过多,不可能面面俱到,只能讨论重点内容 如何组织重点内容?本课程将讨论如何设计、实现一个执行体模型的程序库,并以此为线索,覆盖重点内容 执行体模型程序库面向对象的类库封装了基本的执行体:线程、进程封装了执行体常见的创建方式、同步方式、通信方式https:/ 49周,将开设
7、Linux环境高级编程实验一课 主要内容包括:高级编程环境学习(vi的高级使用,make的使用、gdb的使用、测试驱动工具googletest使用)序列化模型实现基本网络程序框架实现通用插件框架实现第一讲 前言教学目的课程主要内容及安排学习方法学习资料推荐编程环境介绍同学们存在的普遍问题 各方的反馈意见:一些基础性的,或者核心的知识点没有吃透语言方面this指针、虚表、成员函数和一般函数异同局部对象如何影响性能在基类析构函数中调用虚函数有什么效果操作系统方面什么是进程上下文编译方面什么是编译单元、为什么会有重定义算法方面为什么时间复杂度一样的两个算法,实际执行时间会有数量级差异数据库方面怎样写
8、sql语句,才会高效 缺乏一种适合于计算机软件系统的学习方法总体的学习方法系统观 总体思想“少”量的知识+“猜测、实证、构建”=系统观高级语言底层物理模型软件架构核心课程及课程设计猜测、实证、构建站在处理器的角度,利用反汇编技术,理解使用C/C+所编写的程序的执行细节站在软件设计的角度,利用C/C+所蕴含的程序设计思想,理解架构的设计方法总体的学习方法系统观从高级语言到底层物理模型从高级语言到软件架构总体的学习方法系统观从高级语言到底层物理模型从高级语言到软件架构总体的学习方法系统观为什么高级语言到底层物理模型这么重要?问题1:struct stru1 char a;short I;请问str
9、u1的大小(Size)是多少?对齐什么是对齐?为什么要对齐总体的学习方法系统观问题2:long*p;int main()addr();loop();void addr()long k;k=0;p=&k;void loop()long i,j;j=0;for(i=0;i10;i+)(*p)-;j+;printf(“%dn”,i);总体的学习方法系统观问题3:int main()int i;int a10;for(i=0;i=10;+i)ai=0;printf(“%dn”,i);exit(0);总体的学习方法系统观问题4:void main()int*i;allocateInt(i);printf
10、(“*i=%d”,*i);void allocateInt(int*i)i=(int*)malloc(sizeof(int);*i=3;总体的学习方法系统观问题5:f和g谁快?int _tmain(int argc,_TCHAR*argv)DWORD t1 =:GetTickCount();for(int i=0;iNUM;i+)f();DWORD t2 =:GetTickCount();printf(%dn,t2-t1);DWORD t3 =:GetTickCount();for(int i=0;iNUM;i+)g();DWORD t4 =:GetTickCount();printf(%dn
11、,t4-t3);return 0;答案:f快。cache的作用void f()int aNN;for(int i=0;iN;i+)for(int j=0;jN;j+)aij=0;void g()int aNN;for(int i=0;iN;i+)for(int j=0;j 0)b=1;elseb=2;答案:右边效率高提示:CPU流水线分支预测int a=-5;int b=0;.if(a=0)b=2;elseb=1;总体的学习方法系统观同样是局部性原理:当CPU执行某条机器指令时(同样存储在内存中),很大的概率会执行该条指令下面的几条指令流水线技术会提前为这几条将要执行的指令,做好准备工作。(执
展开阅读全文