Cygwin?Cygwin是一个兼容POSXI的环境,可以在Windows系统上本地运行。是的,我发了一张新专辑《零基础swoole学习笔记》。不是我太贪心,而是我和小伙伴们这六个月一直在用swoole开发,踩了一些坑。为了让这些陷阱发挥余热,我们有了这张专辑。有一个常(zheng)传(lun)说“PHP被誉为最好的编程语言,Swoole让PHP成为最好的编程语言”,足以说明swoole对php的重要性。PHP的优点是简单,开发效率高,产品功能实现快。作为一种动态脚本语言,它并不是为计算密集型场景设计的,所以在面对服务端的高并发和IO密集型场景时,它的想法是有余而力不足。这时候,Sw??oole诞生了。纯C语言编写,PHP语言提供异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询,内置Http/WebSocket服务器/客户端,Http2.0服务器。Swoole使PHP开发者能够编写高性能高并发的TCP、UDP、UnixSocket、HTTP、WebSocket等服务,让PHP不再局限于Web领域。随着Swoole4协程的成熟,PHP进入了前所未有的时期,为性能提升提供了独特的可能。Swoole可广泛应用于互联网、移动通信、云计算、网络游戏、物联网(IOT)、车联网、智能家居等领域。使用PHP+Swoole可以大大提高企业IT研发团队的工作效率,更加专注于开发创新产品。Swoole是一个运行在Linux环境中的服务器端框架。“工欲善其事,必先利其器”。本专辑开头的重点是如何在Windows系统上搭建Linux开发环境(Mac用户自行忽略)。-·-全文结构-·-**什么是Cygwin?,通用操作系统的鼻祖,开发了很多衍生系统;Windows,微软的根基,桌面市场的霸主;GNU/Linux是UNIX的近亲,有Ubuntu、CentOS等各种发行版。这些系统有自己的内核。为了系统的稳定性,不允许用户程序直接操作内核。同时,内核开发和应用软件开发也是分开的。系统将必要的功能打包成库,供应用软件调用。该规范是应用软件接口(ApplicationProgramInterface,API)。API函数库是连接用户软件和系统内核的桥梁,或者说是“协议”。操作系统厂商编写函数库手册,应用软件开发者无需关心其内部是如何实现的。使用的时候,查查API手册就可以了。通过封装库的中间层,系统逐渐分层。在硬件之上堆叠系统内核、系统函数库等中间层,在应用程序内部可以进一步细分多个层次,将终端用户与硬件隔离,增强抽象能力,屏蔽底层细节,并让开发者分工,专注于各自层次的开发,同时降低软件移植的难度。1.2.Cygwin的前身DavidWheeler曾说过:“Allproblemsincomputersciencecanbesolvedbyanotherlevelofindirection(计算机科学领域的任何问题都可以通过增加一个间接中间层来解决)”。为了统一各个系统之间的API,IEEE牵头制定了POSIX标准。POSIX标准主要是为UNIXAPI制定的。无论功能如何封装,功能如何实现,API都是基于标准约定的。目前,Linux和Windows都部分兼容POSIX标准。Cygwin的作用是在Windows中增加了一个中间层——POSIX兼容的模拟层,并在此基础上构建了大量的类Linux软件工具。Cygwin按照UNIX/Linux的目录树结构组织存放cygwin1.dll、函数库、应用程序等文件,如/bin、/usr、/lib、/etc、/var、/home等。存在于Cygwin安装路径下,用户从终端登录Cygwinshell后,可以使用与UNIX/Linux系统中相同的命令和工具。2.Cygwin的优缺点*2.1。Cygwin的优点在Windows上开发Linux,常用的方法是安装Linux系统或者虚拟机,而Cygwin则免去了这些麻烦。首先,它比系统或虚拟机更容易安装和卸载。Cygwin提供了一个包管理工具,可以根据需要安装/卸载软件包。一个可以运行的最小Cygwin系统只需要几十Mb。此外,Cygwin还实现了源代码级的兼容性。GNU、UNIX、Linux软件的源代码几乎无需修改即可在Cygwin环境下成功编译构建。另外,Cygwin和Windows的程序运行互不干扰,高效的命令行工具和Windows图形界面各有所长,相得益彰。Cygwin将Windows磁盘挂载到/cygdrive下,比如C盘是/cygdrive/c,D盘是/cygdrive/d,Cygwin中的应用程序可以读写Windows磁盘中的文件,Windows应用程序也可以读写其中的文件Cygwin目录(但要注意不要弄乱文件)。Windows程序可以在Cygwinshell中启动,Cygwin程序也可以在Windowscmd中启动,但由于字符编码不同,可能会出现乱码;多了一套可用的API,对于Windows开发者来说,程序代码可以同时调用Win32API和CygwinAPI,甚至混合使用。2.2.Cygwin的缺点吹嘘这么多优点,Cygwin也有一定的缺点,但对于非系统级的开发者来说,基本可以忽略不计。首先,由于在Win32系统之上模拟了POSIX兼容层,应用程序在底层多了一层函数调用,效率肯定低于UNIX/Linux系统上的原生应用,但是这也是在效率和兼容性方面。选择之间的平衡。另外,Cygwin没有实现二进制文件级别的兼容,在Cygwin系统上编译的应用程序仍然是WindowsPE格式的可执行文件,而在UNIX/Linux系统上的二进制可执行文件不能在Cygwin上运行。与Windows的互操作性不足,Windows原生程序无法使用cygwin1.dll提供的UNIX/Linux兼容信号、pty设备等,除非重写程序代码并重新编译,但这个新程序依赖于cygwin1.dll“Windows原生程序””。2.3Cygwin的应用场景常见的应用场景包括但不限于:(1)Shell命令行使用Shell是UNIX/Linux的精髓。铁杆玩家无需使用鼠标即可通过键入命令来完成所有任务。最常用的大量命令都可以在Cygwin下照常使用,用UNIX/Linux编写的脚本稍加修改也可以在Cygwin下运行。(2)交叉编译构建环境在Cygwin环境中移植了gcc等开发工具,大量的交叉工具链(如arm-none-gnu-eabi-gcc,arm-none-gnu-eabi-binutils)也可以在Cygwin中使用如果是在Cygwin中制作,即使只有Windows原生版本,也可以在Cygwinshell中调用,所以可以用Cygwin搭建交叉编译构建环境.(3)程序移植将符合POSIX标准的程序移植到Windows,越来越多的开源和免费软件正在由个人、社区、商业公司、研究机构不断贡献,造福于广大Windows用户,以及使用现有的GNU、UNIX、Linux软件将使程序移植变得越来越容易。(4)同时使用POSIXAPI和Win32API进行开发一些开发人员可能对UNIX/Linux和Win32API都很熟悉,这两套API也各有优势。在Cygwin下,开发者可以任意选择和混合使用。3、本地安装Cygwin*3.1,安装Cygwin1,进入Cygwin官方地址(http://www.cygwin.com/),下载安装包(我也给小伙伴们准备了一个安装包,点击原文链接文末提取码:8q2a)。2.点击安装文件进行安装,点击下一步。3、根据实际情况,选择本地安装目录和下载文件存放目录,按照流程下载一些文件,存放在指定目录下,这样下次安装就可以直接从该目录读取。4、选择“直连”,点击下一步,填写图片来源。我安装的时候用的是阿里云的镜像源(http://mirrors.aliyun.com/cyg...),其他开源镜像站地址如下:网易http://mirrors。163.com/cygwin/阿里巴巴https://mirrors.aliyun.com/cy...华为https://mirrors.huaweicloud.c...清华https://mirrors.tuna.tsinghua...大学中国科学技术网http://mirrors.ustc.edu.cn/cy...华中科技大学http://mirror.hust.edu.cn/cyg...东软http://mirrors.neusoft.edu.cn...5.链接成功后进入下一步,选择依赖包进行安装。Swoole开发环境需要安装的依赖包有:autoconf-archive;djgpp-gcc-objc;djgpp-gcc-objc++;gcc-对象;gcc-objc++;数据库;libc++-开发;;php-bz2;php-curl;php-devel;php-gd;php-json;php-mbsrtring;php-mysqli;php-pdo_mysql;php-phar;php-sockets5,点击下一步安装,剩下的自动安装的最后,可能需要勾选两个框,分别是图标和快捷键的创建,可以选择自己勾选。5、点击桌面图标,运行命令:cygcheck-ccygwin,查看安装的版本。3.1.扩展Cygwin的可用内存空间1.电脑快捷键Win+R打开电脑,运行:regedit,打开注册表,选择HKEY_LOCAL_MACHINE->SOFTWARE->Cygwin新建CygwinQWORD(32位请选择DWORD)2、名称位heap_chunk_in_mb,取值为2048MB(可以自己选择,不能太小,最好1G以上,另外还要看windows系统内存的大小),重启电脑完成。至此,Cygwin的安装和内存扩展已经完成,快去试试吧!下次再见,拜拜~~
