GNU/Linux与开源文化的那些人和事

 一、计算机的发明

世上本无路,走的人多了,就有了路。世上本无计算机,琢磨的人多了……没有计算机,一切无从谈起。

三个人对计算机的发明功不可没,居功至伟。阿兰·图灵(Alan Mathison Turing)、阿塔那索夫(John Vincent Atanasoff)、和冯·诺依曼(John von Neumann)。

图灵从理论上证明了计算机的可行性;阿塔那索夫实践了图灵的理论;冯·诺依曼奠定了现代计算机的体系结构。

图灵说这玩意儿应该可以做,已经被证明了;阿塔那索夫二话不说动手就做了一个;冯·诺依曼说应该这么做才更好。

图灵功劳很大,死得很惨,只因他是同性恋。他的最后时刻是吃了一个沾有氰化钾的苹果。有人说苹果公司的Logo是为了纪念图灵,不实。确定纪念图灵的是“图灵奖”,计算机研究领域的最高奖项,由美国计算机协会于1966年设立。

阿塔那索夫名气不大,享年较长。世界上第一台计算机是阿塔那索夫领导发明的ABC计算机,并非我们很多书上说的ENIAC。

冯·诺依曼长得帅,聪明,研究领域广,故事很多。今天我们使用的计算机都被打上了一个的深深的烙印,这个烙印就叫冯·诺依曼体系结构。

关于计算机之父有很多说法,版本不一,这三个人都可以称为计算机之父。曾有人奉冯·诺依曼为计算机之父,冯·诺依曼说不敢当,殊荣当归图灵。

早年全世界的计算机中心在美国普林斯顿大学,群星闪耀,璀璨夺目。冯·诺依曼曾在此工作,图灵曾在此学习,他俩在普林斯顿的花园里聊过天。冯·诺依曼想让图灵给他当助手,被拒绝了。

二、最初的Unix和C语言

早期计算机个头大,电子元器件多,开动一次电费都不少,使用起来也很不方便。别的不说,一次只能干一件事就让人受不了。先煮粥,半小时之后粥煮好了再炒菜。花老多钱雇的厨师,明明煮粥的时候可以炒菜好不好?一次做一件事,就叫单任务,比较笨。

受不了就要想办法,就有人提出了操作系统的想法。操作系统就是想让计算机用起来更方便,能发挥更大的作用。

1965年,MIT、贝尔实验室和美国通用电气公司合作准备搞个超级操作系统,取了个霸气的名字:Multics (Multiplexed Information and Computing System),多路复用信息和计算机系统。能让多个人可以同时干很多事,也叫多用户多任务操作系统。

Multics名字挺好,事没干成,目标过于庞大,结果壮志未酬。

1969年,Multics项目进展缓慢,被迫停止,参与项目的两个人Ken Thompson和Dennis Ritchie也闲了下来。他们都是贝尔实验室的人。没活干了,就打游戏。他们俩找了一台破电脑准备玩以前开发的一个游戏。

把游戏移植到一台闲置机器(PDP-7)的过程中,实现了一个简单的操作系统。到了 1970年,这个简单的系统已经可以使用,但只能同时两个人使用。有人调侃他们,说你们这个破玩意离Multics差远了,就叫Unics(UNiplexed Information and Computing Service)吧。Unics是Multics的反义,与其说调侃他俩,不如说在调侃Multics。Ken Thompson稍微把名字修改了一下,Unix。

自此,Unix纪元开始。1970年是为Unix元年,今年已经是Unix45年。Unix时间戳从1970年1月1日开始计算和Unix诞生的时间有莫大关系。

早年的操作系统最早是用汇编语言写的,汇编语言低级落后,写起来很痛苦。开发Unix过程中,Thompson发明了B语言,Ritchie在B语言基础做了改进,称之为C语言。

C语言发明后,Ritchie和贝尔实验室的同事Brian W. Kernighan合著一本C语言的书,后来被称为K&R。Kernighan名气没Ritchie大,但并非凡人,Unix命令Awk中的K就是Kernighan。

接下来Thompson和Ritchie用C语言重新编写了Unix系统。结果相当满意,Unix可以见人了。1974年,Dennis M. Ritchie和Ken Thompson发表了第一篇关于UNIX的论文《The UNIX Time Sharing System》,从此Unix广为人知。

这几年世界计算机的中心到了贝尔实验室,Thompson、Ritchie、Kernighan还有好多。Thompson和Ritchie后来都获得了图灵奖。

有心栽花花不活,无心插柳柳成荫。Multics目标宏伟,没干成,Unix和C语言刚开始并没想那么多,而且还是业余时间的作品,终成伟业!

Unix和C语言是计算机领域的常青树,历久弥新。从发明至今一直保持着旺盛的生命力,从发明至今都基本保持原貌,足见伟大!

三、混乱的Unix发展过程

Unix一经出现,引起了众人的关注,很多人找Thompson和Ritchie要Unix的源代码。那是个开放的时代,那是个相互学习研究的时代,把程序的源码分享给别人是很平常的事。一份份的Unix源码被流传到各个实验室、学校、公司。

加州大学伯克利分校有一帮热衷于Unix的人,他们拿到源码后不断研究,不断改进,大大推进了Unix的发展。

这个阶段Unix发展有两条主线,一条在贝尔实验室内部,另一条就在伯克利分校。伯克利分校的成果很辉煌,著名的TCP/IP协议在Unix上的实现就是他们搞出来的。后来把他们搞的这套Unix称为BSD(Berkeley Software Distribution)。

伯克利分校一时风光无两,最杰出的一位是Bill Joy。Bill Joy,Vi、Csh等等一系列软件的作者,Sun公司的创始人。没有Sun公司,就没有今天的Java语言。

Unix刚诞生的时候,贝尔实验室受反垄断法所限,不能从事计算机业务。其实也并没想到Unix发展势头如此之好。

等到1983年,贝尔实验室的母公司AT&T已经被强制拆分为几个小公司,不再受反垄断法的限制。这时,AT&T发布了Unix最新版System V,宣布从此Unix只能商业使用,不再开放源代码。AT&T想用Unix赚大钱。

BSD那边受到了很大影响,他们不想急着赚钱,他们想开放源码。没办法,伯克利分校决心把BSD当中受到影响的源码重新写过。从伯克利分校出来的几位同学成立了一家公司,专门开发BSD项目。直到有一天,他们宣布BSD当中再没有最初来自贝尔实验室的源码。AT&T不买账,告你,起诉,打官司。

这是一场漫长的官司,官司尚未打完,Unix版权就被倒卖了好几次。买版权的好几家公司继续和BSD打官司,几家公司相互也打官司。

等到硝烟散尽,BSD终究推出了完全属于自己的Unix,因为版权的问题,不能再叫Unix,只能叫类Unix系统。

BSD的类Unix系统是FreeBSD、MacOS的前身。今天使用的苹果电脑,iPhone手机上的操作系统都是从BSD这一支上发展而来。

漫长的官司耗尽了人们对BSD的热情,也让BSD错过了最好的发展机会。后来的FreeBSD、NetBSD、OpenBSD都是从BSD分化而来,免费,开源,优秀,但再没挽回曾经的荣光,因为已经有了Linux。


Unix发展过程图

四、斯托曼博士的GNU计划

AT&T想靠Unix赚钱的时候,不止是AT&T,很多商业公司都希望通过软件赚钱。不再免费,不再开放源代码,不再相互通过源代码学习研究。

曾经是多么好的时代,怎么现在就变得只认钱了呢?这一切让一个人很不满意。他曾经看到一个系统有问题,想要一份源码拿来帮修改一下,别人冷笑以对。

世风日下,他要向这个令人沮丧的时代挑战,他要还一个开源、免费的系统与人世间。请记住这个人的名字,理查德·斯托曼(Richard Matthew Stallman)博士。

斯托曼是老牌黑客,Emacs的作者。Emacs和前面提到的Vi是计算机领域中两大强悍的编辑工具,Emacs和Vi哪个更强是最容易引起争议的话题之一。为了少吵架,千万别和宝马车主说奔驰好。

斯托曼博士长头发,大胡子,不修边幅,一直单身。他一心投入自由软件运动,他创建了自由软件基金会(FSF)。他雄心勃勃地提出了一项伟大的计划,GNU(GNU's not Unix)计划。Not Unix,不是Unix,是自由的、免费的、开源的、像Unix一样好用的系统。


理查德·斯托曼博士

GNU起初进展很顺利,GLibc、GCC、GDB,这一系列的操作系统必备软件都有条不紊地在进展。所有的“G”来自Gnu的首字母。为什么叫“G”,斯托曼博士说当时他觉得好玩,而且他小时候听过一首歌,很喜欢,歌名是《The Gnu》。

完全搞个操作系统看来也并非易事,GNU完成了一大堆软件的时候才意识到遇到了大麻烦。GNU系统的内核项目Hurd迟迟不能令人满意。内核之于操作系统,就像发动机之于汽车,必不可缺。

五、Linux出世记

1991年,Linus Torvalds尚是芬兰赫尔辛基大学的一名学生,他在学校学操作系统的课程,他也想搞个操作系统玩玩。他当时已经在使用Gnu项目的Bash、GCC等软件。受GNU的影响,把他自己开发的一个简陋的操作系统内核放到了互联网上。

这个内核系统就是Linux,Linus's Unix,Linus的Unix。名字并非Linux所取,他一贯的风格是取个调侃的名字,但当时管理员说Linux挺好,名字就这么定了。

Linux放到网上后引起了很多人的兴趣,他们陆续通过互联网加入到Linux开发过程中。1993年,大约有100多名程序员参与了Linux内核代码。这时已经是互联网的时代,他们不用相识,不用谋面,通过网络讨论,通过网络协作,推进着Linux。

1994年3月,Linux1.0发布,Linux已经成为一个基本可用的内核。从此Linux就一直没有踩过刹车,一步步从幼苗长成参天大树。

Linus小时候被企鹅攻击过,他给Linux定Logo的时候选中了企鹅,真不知道这是什么逻辑。长得像企鹅的除了QQ,还有Linux。

Linux开创了一种前所未有的软件开发模式。多人协作,代码随时提交,有问题及时修改,所有参与人员并非精英,而是一群狂热的支持者。前前后后无数人参与了Linux项目的开发,组织不太严谨,有很多的争吵和讨论。Linus经常写代码,偶尔扮演仲裁的角色,而非传统意义上的领导。

后来开源运动的吹鼓手Eric Raymond写了一篇文章《大教堂与集市》来分析Linux的开发模式。大教堂要设计好图纸,动用优秀的工匠,有序的工程计划才能修筑,闹哄哄无序如菜市场的一拨人能不能修一座大教堂?答案是可以的,因为他们建成了。

Linus后来坦言,他开发Linux时不了解还有FreeBSD等项目,如果知道了可能他就不会动手写Linux了。那时各种BSD系统正在官司的阴影笼罩下,某种程度了也促进了Linux的发展。

他们一开始也没什么图纸,一边修建,一边请人参观,出了问题随时修复,有的地方干脆推倒重来。他们没有严密的组织,只有大体的分工。随时有人在使用教堂,给他们提出各种意见。他们建的教堂已经足够好,他们建的教堂一直没有竣工,会一直修建下去。

Eric Raymond这个人不得不提,早年和斯托曼博士一起共事,还帮斯托曼博士修改过Emacs的代码。他比写程序更擅长的是演讲和写文章。《大教堂与集市》是开源文化的扛鼎之作。斯托曼博士是开源运动的精神领袖,Raymond是开源运动的布道师和理论家。

六、Linux各种发行版

一边GNU项目为内核苦苦挣扎,一边Linux内核项目横空出世,这不天作之合么?不错,手快的人来不及同情斯托曼博士的痛苦,把GNU一大堆项目和Linux攒在一起搞了个新系统,GNU/Linux。

好了,终于大家可以拿去用了,可以用一个完全免费、源码开放的系统了。

今天很多人把使用的系统叫Linux,很不公平,是对GNU工作的漠视。正确的叫法是GNU/Linux。

有了GNU/Linux还不是一切,只能是一个基础的操作系统,要想用得更好还缺很多软件。就像有了Windows系统,没有Word,没有Excel,没有浏览器,没有游戏,可干的事并不多。

所幸的是GNU/Linux诞生的年代,已经有了很多优秀的开源项目,他们和GNU无关,有的是个人开发,有的是组织开发,都遵循免费开源的理念。这些开源项目有Apache、Perl、Python、Vim、TeX等等。

攒系统的人干脆一股脑攒了起来,就是所谓的GNU/Linux的发行版。最早攒GNU/Linux系统的公司是Redhat,后来陆续一大堆GNU/Linux的发行版,Slackware、Mandrake、Gentoo、Debian、Ubuntu等等。有的已经死了,有的还活得挺好。

所谓GNU/Linux发行版,就是攒好的一套GNU/Linux。选用GNU项目中的基础软件,加上Linux内核,再找一堆开源免费,版权协议许可的软件,最后做个安装程序,就齐活了。更好的发行版大体就是考虑的更周全些,软件包的更新、安装、卸载更方便些。

能不能自己动手攒一个GNU/Linux的发行版?当然可以,Linux From Scratch,网上的一个项目,教你一步一步从头打造一个属于自己的GNU/Linux发行版。

2002年,南非商人Mark Shuttleworth花了两千万美金,搭乘俄罗斯的宇宙飞船去了一趟太空。次年,他成立了Canonical公司,致力于开源文化的推广,推出了GNU/Linux发行版Ubuntu。有钱人办事就是不一样,Ubuntu做得太好了,GNU/Linux用户纷纷投靠,Ubuntu基本一统GNU/Linux发行版的江湖。

五、GNU/Linux和开源文化的背后

GNU/Linux来了虽然没成为大多数人电脑里的系统,但每个人都离不开它。诸多互联网公司的服务器里都跑着GNU/Linux,名单不完全确认,Google、Facebook、淘宝、百度、腾讯、小说阅读网等等。

大多人使用的安卓手机的系统也是基于Linux内核。

GNU/Linux的繁荣有宏伟的规划,有个人的努力,也有很多无形的力量在起着作用。

没有Unix就没有GNU/Linux,是Unix给予了伟大的启示。

没有C语言就有没有GNU/Linux,C语言简单,优雅,介于高级语言和低级语言之间,开发系统软件的首选编程语言。

没有一系列Unix标准的制定就没有GNU/Linux的繁荣。标准就是“车同轨、书同文、统一度量衡”,秦始皇可算最早的标准制订者。遵循Posix标准为GNU/Linux发展铺平了道路。

没有互联网就没有GNU/Linux,GNU/Linux不是一个人在开发,是全球无数人协作的结果。如果没有互联网实在不可想象。当然,GNU/Linux也反哺了互联网,无数互联网公司采用GNU/Linux搭建服务器,GNU/Linux也促进了互联网的繁荣。

没有斯托曼博士的努力,就没有GNU/Linux。他的功劳不仅是创建GNU组织,也不仅是编写Emacs、GCC、GDB,他的精神感召着无数人为开源运动做贡献。

当然还有Raymond的振臂高呼,摇旗呐喊。

还有GNU/Linux诞生之前就开发开源项目的人和组织。Larry Wall因为懒,整天被报表搞得焦头烂额,发布了Perl语言;高德纳教授因为对排版工人不满意,十年时间停止重要工作,发明了伟大的排版软件TeX;Guido为了打发圣诞节的无聊,编写了新的脚本语言Python……

GNU/Linux发布之后,在前辈们的感召下无数人接受了开源的思想和理念,接受了开源文化的洗礼,兴起了开源文化运动。无数为开源项目做出贡献的人和组织,他们发布了PHP、MySQL、Ruby、Node.js、X.Org、Gnome、KDE……他们丰富了GNU/Linux,他们进一步推动了开源文化运动,他们继续感召着别人。

KDE(Kool Desktop Environment)的初衷是想开发一套易用的桌面系统。Windows系统就是一种桌面,使用方便,不是像程序员整天对着黑乎乎的屏幕工作。桌面系统要有浏览器,他们就分了一个小组KHTML来开发浏览器。全世界能开发浏览器核心的也没几家,KDE做到了。后来苹果公司和微软闹别扭,想自己开发浏览器,就是在KHMTL的基础之上开发了自己的浏览器Safari。KHTML的浏览器核心模块叫Webkit。Google推出安卓手机时浏览器也是基于Webkit开发的。

今天的iPhone手机和安卓手机的浏览器都是Webkit内核。

各种版权许可协议的制订也为GNU/Linux的发展铺平了道路,其中就有GNU的GPL、LGPL,还有Apache License、BSD协议。不可能每个人都有一套自己开源协议项目的版权协议,已经制订好的版权许可协议使得软件更好地传播。

其实开源并非自由,有人说GPL是用自由抹杀自由。GPL许可要求任何含有GPL许可的软件发布时必须开放源码。BSD和Apache License相对比较宽松,算是准自由软件。

版本管理软件对GNU/Linux的发展和开源文化运动也功不可没。Linux内核开发起初使用的是商用版本管理软件,某天Linus Torvalds先生不开心了,就自己动手搞了一个。他好取自嘲调侃的名字,命名为Git,意为没什么用的东西。

Git可不是没什么用,太好用了,Linux内核源码从此都用Git管理。Git免费、开源,Git成就了一家伟大的网站github.com,伟大的源码项目托管网站。很多开源项目纷纷把源码托管到了Github上。

GNU/Linux不朽,开源运动不朽!

作者刘军民,主页http://www.jianshu.com/users/98212189b0d9/latest_articles

转载于:https://www.cnblogs.com/lamp01/p/6610902.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP使用PHPMailer发送邮件

1. 首先下载phpmailer插件,并将插件复制到目录下 下载地址: http://download.csdn.net/download/m_nanle_xiaobudiu/10261269 2. home/view/user/mail_chck.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><…

python学习记录2

一、两个模块&#xff08;sys和os&#xff09; 1 #!/usr/bin/env python2 # _*_ coding: UTF-8 _*_3 # Author:taoke4 import sys5 print(sys.path)#打印环境变量6 print(sys.argv[0])#当前文件相对路径,sys.argv是一个列表&#xff0c;第一个元素为程序本身的相对路径&#xf…

将 Figma 设计转换为 .NET MAUI Graphics 代码

原文链接&#xff1a;https://github.com/jsuarezruiz/figma-to-maui-graphics原文作者&#xff1a;jsuarezruiz翻译&#xff1a;沙漠尽头的狼(谷歌翻译加持)&#xff0c;翻译别扭&#xff0c;建议直接阅读原文使用FigmaSharp.Maui.Graphics将Figma设计转换为 .NET MAUI Graphi…

mooc- 基本程序设计方法week1,week2

学习了第一单元我们几本可以写出10行左右的代码。 week1:python编程之基本方法 1、从计算机到程序设计语言&#xff1a; 理解计算机&#xff1a;计算机是能够根据一组指令操作数据的机器。 功能性&#xff1a;可以进行数据计算 可编程性&#xff1a;根据一系列指令来执行 计算机…

Windows 11 的 2022 更新为每个人带来了新的东西

Windows 网站发布博客&#xff0c;宣布今天在 190 多个国家/地区推出 Windows 11 2022 更新。微软在过去一年中对 Windows 11 进行了非常大的改进&#xff0c;感觉每个月都有一次更新。对于之前的 Windows 11&#xff0c;相信很多人在使用过程中也遇到过或大或小的问题。而一部…

HTML5 Canvas 绘制六叶草

注意&#xff1a; context.arc(横坐标,纵坐标,弧半径,起始角度,终止角度,逆顺时针);这个函数挺难用&#xff0c;主要原因是最后参数和角度的关系。不管文档怎么说&#xff0c;按我的实际经验&#xff0c;逆顺时针false时&#xff0c;是逆时针旋转&#xff1b;逆顺时针true时&am…

哪些听起来像段子一样的故事?

杭州海底世界&#xff0c;一个小走廊两边都是各种爬行动物展览。有两只蜥蜴当时是这个样子人还年轻&#xff0c;还比较猥琐&#xff0c;看到一个趴在另一个身上就觉得在做什么羞羞的事。于是就拍下来&#xff0c;发到群里&#xff0c;然后说了句交配中。然后一天就光拍照&#…

String 与 StringBuilder 区别与用法

String用final修饰&#xff0c;实际上是不可更改的。我们平常用的“”来连接&#xff0c;实际执行过程中是将原字符串连接之后生成新的对象重新赋值给这个名字的字符串。Testpublic void myStrTest(){String s "str_s";System.out.println(s);String ss s.toUpperC…

防跳墙访问

出现场景: 1. 没有登录&#xff0c;也能访问网页 2. 没有相关权限&#xff0c;也能访问对应的控制器和方法 解决方案: 定义一个CommonController,其他控制器继承CommonController,在CommonController中定义初始化方法_initialize 注:这里用的是tp3.2框架,如果我们直接在Commo…

C# WPF开源控件库HandyControl用法举例

概述HandyControl是一款免费开源的WPF控件库&#xff0c;Github可以获取到源代码&#xff0c;相关的示例代码也在github上能获取到&#xff0c;但是没有详细的中文说明文档&#xff0c;对于新手而言使用起来还是会有一些困扰&#xff0c;网上也很难搜到相关的用法示例&#xff…

nginx服务器,访问时显示目录,不直接显示index.php

一、效果 二、解决方案 修改网站配置文件&#xff0c;添加如下代码&#xff1a; autoindex on; autoindex_exact_size off; autoindex_localtime on; 修改后的网站配置文件如下&#xff1a; server {listen 80;server_name test.haveyb.com;charset utf-8;error_log …

Git的使用(推荐命令行模式)

一 使用 git版本控制已经逐渐取代cvs,svn等版本控制,对于一名程序员来说,使用git同样是一门必备的功课.1. 仓库初始化查看文件.如果有.git文件夹,说明创建本地仓库成功(.git是隐藏文件夹)2. 修改用户名和邮箱本地配置:注: 在全局配置与本地配置都存在用户名时,本地配置优先级更…

.NET MAUI 环境配置技巧

关于 .NET MAUI 国内⼩伙伴在配置 .NET MAUI 的时候&#xff0c;遇到不少问题。希望通过本教程&#xff0c;给到大家⼀些指引。01基础组件部分.NET SDK 安装建议安装最新的 .NET SDK下载地址 https://dotnet.microsoft.com/download/dotnet/6.0安装 .NET MAUI安装 .NET MAUI 成…

Linux中一些常用的很巧妙的命令

当你想要使用上一个命令的最后一个参数&#xff0c;&#xff08;上一个命令的最后一个参数很长&#xff09;&#xff0c;可以使用 esc .      (是esc 点&#xff09; !$ 引用上一个命令的最后一个参数 对命令行的编辑快捷方式&#xff1a; Ctr…

android 8种对话框(Dialog)使用方法汇总

本文为作者原创&#xff0c;转载请注明出处&#xff1a;http://www.cnblogs.com/gzdaijie/p/5222191.html 目录 1.写在前面2.代码示例2.1 普通Dialog&#xff08;图1与图2&#xff09;2.2 列表Dialog&#xff08;图3&#xff09;2.3 单选Dialog&#xff08;图4&#xff09;2.4 …

使用layui的layer组件做弹出层

官方文档地址: http://www.layui.com/doc/modules/layer.html 本例演示效果: 当点击申请提现时,出现申请提现框,并根据用户输入进行一些判断,给出友好提示,比如: 代码实现: <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8&q…

实现一个基于相等性比较的 GroupBy

实现一个基于相等性比较的 GroupByIntro在我们的系统里有些数据可能会有问题&#xff0c;数据源头不在我们这里&#xff0c;数据不好修复&#xff0c;在做 GroupBy 的时候就会很痛苦&#xff0c;默认的 group by 会依赖于 HashCode &#xff0c;而某些场景下 HashCode 可能并不…

CrossPHP框架的常用操作

1. 在视图控制器中使用$this->res()方法来生成资源文件的绝对路径$this->res(css/style.css);生成的连接为http://youdomain.com/static/css/style.css2. 生成指定app名称的连接$this->appUrl()第一个参数为基础url, 第二个参数为app名称, 第三个参数为 控制器:方法 第…

jdk自带常用命令行工具使用

转自&#xff1a;http://blog.csdn.net/winwill2012/article/details/46364923jps命令使用jps命令类似于Linux下的ps命令&#xff0c;用于列出当前正在运行的所有Java进程。基本用法直接运行不加任何参数就能列出所有java进程的pid和类的短名称。例如&#xff1a;常用参数-q参数…

crossphp框架中,在模板中加载其他模板

这里说我自己做的项目的应用场景 要求是用layui框架的layer组件,实现弹出层效果,用原声PHP无疑很容易做到,但是如果应用到crossphp框架流程就会非常麻烦 这里简单讲一下大致的步骤: 1. 在一个模板文件中应用layui的layer组件实现弹出框 index.tpl.php2. 从我们自己定义的路径上…