一,什么是UC?
U是指unix操作系统。Unix操作系统是使用C语言实现的系统级软件。
C是指C语言,就是大家上门课程学习的语言。
UC是指使用C语言在操作系统Unix上的用户编程。unix系统向用户提供了大
量的接口。用户通过系统提供的接,使用操作系统提供的服务。
想要写出功能强大的程序,一定要借助操作系统提供的功能。
比如:网络通信,进程管理,线程管理等。
二、Unix背景介绍
1961-1969:史前时代
CTSS(CompatibleTime-Sharing System,兼容分时系统),以MIT为首的开发小组,小而简单的实验室原型。
Multics(Multiplexed Information and Computing System,多路信息与计算系统),庞大而复杂,不堪重负。
Unics(Uniplexed information and Computing System,单路信息与计算系统),返璞归真,走上正道。
1969-1971:创世纪
1969年,AT&T退出了Multics项目,来自贝尔实验室的Ken Thompson为了在PDP-7上实现他的星际旅行游戏,编写了一系列实用程序,成为后来Unix系统的核心
1970年,KenThompson在BCFL语言的基础上发明了B语言,当时的Unix系统用汇编语言和B语言混合编写
1971年,第一个Unix应用程序nroff诞生,为贝尔实验室的文字处理工作提供支持,Unix系统开始向PDP-11移植
1971-1979:出谷记
1971年,DennisRitchie在B语言的基础上发明了C语言
1973年,DennisRitchie用C语言重写了整个Unix系统,极大地提升了Unix系统的可读性、可维护性和可移植性
1974年,Ritchie和Thompson在《美国计算机通信》上发表论文,第一次公开展示Unix
1979年,贝尔实验室发布UnixV7版本,成为Unix世界公认的第一个真正意义上的Unix操作系统
1980-1985:第一次Unix战争
1980年,美国国防部高级研究计划局(DARPA)决定在加州大学伯克利分校开发的BSD Unix上实现TCP/iIP协议栈
1983年,AT&T的拆分使其得以将UnixSystemV商业化
1984年,第一次Unix战争在AT&T的Unix SystemV和伯克利的BSD Unix之间全面爆发
1985年,以IEEEPOSIX为核心的一系列技术标准最终弥合了UnixSystemV和BSDUnix之间的裂痕
1988-1990:第二次Unix战争
1988年,AT&T持有Sun公司20%的股份,宣告两家公司正式联姻
1989年,IBM、DEC、HP等二线厂商创建开放软件基金会(OSF)并结成盟友,以与AT&T/Sun轴心对抗,第二次Unix战争爆发
1990年,Windows3.0发布,Unix世界从酣战中幡然醒悟,崭新的帝国正在崛起,真正的敌人来自Redmond
1991-2000:尘埃落定
1991年,芬兰大学生LinusTorvalds宣布了Linux项目
1993年,Linux已达到产品级操作系统的水准
1993年,AT&T将Unix系统实验室卖给了Novell
1994年,Novell将Unix商标卖给了X/Open标准组
1995年,Novell将UnixWare卖给了SCO
2000年,SCO将Unix源码卖给了CalderaLinux发行商
三、Linux背景介绍
它是啥
Linux是一款类Unix操作系统,免费开源,Linux的不同发行版本都使用相同的内核
Linux可以运行在手机、平板、路由器、视频游戏控制器、个人电脑、大型计算机、超级计算机等多种硬件平台上
严格意义上的Linux仅指操作系统内核,但一般被用于指称某个具体的发行版本
Linux隶属于GNU工程,整套GNU工具包从一开始就内置其中,可提供高质量的开发工具
Linux的发明人是LinusTorvalds,同时他也是Linux商标的合法持有者
Linux系统的特点
遵循GNU/GPL
开放性
多用户
多任务
设备独立性
丰富的网络功能
可靠的系统安全
良好的可移植性
四,Linux的发行版本
大众的Ubuntu
优雅的Linux Mint
锐意的Fedora
华丽的openSUSE
自由的Debian
简洁的Slackware
老牌的RedHat
五、计算机系统分层
什么是操作系统?
操作系统是管理计算机硬件资源和软件资源的一款系统软件。操作系统简称OS。
学习内容
库文件的制作和使用
内存管理
文件管理和文件系统
进程管理
信号
(软中断)
进程间通讯
网络管理
线程管理
六,环境变量
什么是环境变量?
每个进程都有一张自己的环境变量表,表中的每个条目都是形如“键=值”形式的环境变量。
进程可以通过环境变量访问计算机的资源
在终端下输入env命令,可以查看环境变量列表
通过echo $name可以查看某个环境变量的值
环境变量的添加
在终端窗口输入FOOD=guobaorou,表示向当前进程中增加名为“FOOD”值为“guobaorou”的环境变量,如果环境变量已经存在,则更改其值。强调!在“”左右不要加空格
环境变量的类别
环境变量分成两大类:
全局环境变量:当前shell和其子进程都是可见的
局部环境变量:只有当前shell可见
将局部环境变量设置成全局变量
export name
删除环境变量
unset name
常见环境变量
PATH环境变量
echo $PATH
PAHT=/home/tarena/Qt5.4.1/5.4/gcc_64/bin:/home/tarena/Qt5.4.1/Tools/Qt
Creator/bin:/home/tarena/bin:/home/ta:era/.local/bin:/usr/local/sbin:/usr//lo
cal/bin:/usr/sbin:/usr/bin:/sbin:/bin:/:sr/games:/usr/local/games:/snap/bin
该环境变量所记录的是bash进程对命令的检索路径格式为”:分割的多个路径。当在bash下输入命令的时候,首先,在第一个路径下找该命令的可执行程序,找到就执行,不再向后找;如果找不到,在第二个路径下找,找到就执行,不再向后找;如果找不到,继续下一个路径。如果到最后一个路径都找不到,就提示该命令不能找到的错误。
对PAHT环境变量进行设置,添加当前路径到环境变量
PATH=$PATH:
在命令行执行程序即可省略“/”。
./a.out —> a.out
如果没有特殊操作,对环境变量的设置仅对当前shell进程有效,开启新的终端,之前的操作不会被保留。在家目录下有名为.bashrc的脚本文件,每次bash进程启动前,都会执行该脚本文件的内容。如果希望环境变量的设置对每个bash进程都有效,可以将环境变量的设置写在该脚本文件中。
执行source~/.bashrc命令,可以使文件立即生效。
七、环境变量表
main函数的第三个参数
main函数的第三个参数就是环境变量表的起始地址
int main (int argc, char* argv[], char* envp[]) {
extern char** environ;
printf ("%p,%p\\n", environ, envp);//相等
char **pp;
for (pp =envp; *pp; ++pp){
printf ("%s(n", *pp);
}
return 0;
}
网硕互联帮助中心




评论前必须登录!
注册