当前位置:首页 » 操作系统 » linux跨平台

linux跨平台

发布时间: 2022-07-02 14:59:22

linux系统下 php跨平台连接sqlserver数据库获取数据

你可以在你php的server里面尝试用shell远程连接你的SQLserver。一般这些是两个问题,要么是你远程SQLserver没有开端口,所有不能访问你SQLserver,或者是你mysql没有开启远程连接。

② linux远程连接软件有哪些

您好,命令远程连接工具:Xshell、SecureCRT、Putty、SSH Secure Shell Client等
图形远程连接工具:xmanager(需安装配置服务并打开177端口)、VNC-Viewer(linux需安装vncserver)、windows自带的远程桌面(linux需安装xrdp和vnc)
如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。

③ 如何在Windows和Linux上进行跨平台P/Invoke

NET的程序是和Java一样的托管代码,在底层操作上,具有很大的局限性,像Java的JNI一样,.NET具有Platform Invoke(平台调用,通常叫P/Invoke)。本文中,Linux下的.NET托管代码运行在Mono CLR上。之所以做跨平台的P/Invoke,是因为考虑到有些客户在Win32/WinCE等系统中开发的.NET程序,需要换到Linux平台运行。嵌入式开发中,经常需要操作IO,.NET程序就通过P/Invoke来调用一些用比如c/c++一类语言开发的native代码完成IO操作。这时候针对windows编写的native代码,就不能不加修改的移植到Linux上,要完成这个移植工作就需要编写Linux下的native代码。但如何做到不修改.NET程序呢,下面就让笔者以实例讲述。
要保证.NET程序不加修改,不许重新编译,需要做到native代码具有一致的接口。比如我们有native.dll何libnative.so两个不同系统下的动态链接库,在.NET程序中,调用动态库中的getSum(int a,int b)函数,则需要在native.dll和libnative.so中都存在getSum(int a, int b)函数,而且导出的名字要一致,都是getSum。编译时要注意编译器对符号名称的修饰,vc编译器中,可以用Mole-Defination File(.def)文件来规范到处的函数名称。
在.NET的代码中,透过DllImport引入外部函数时,指定的链接库模块不要加扩展名。比如native.dll,只要写native就好。windows中,会自动寻找native.dll,Linux下对应的是libnative.so。
以下是实例代码:
using System;
using System.Runtime.InteropServices;
namespace Managed
{
class Program
{
[DllImport("native")]
public static extern int getSum(int a, intb);

static void Main(string[] args)
{
System.Console.WriteLine("Managed code out.");
System.Console.WriteLine("1+2=" + getSum(1, 2));
}
}
}
上边的代码演示了从外部动态链接库引入函数的方式,注意没有加扩展名。接下来在看看windows下的c代码是如何编写的:
/**
* native.h 头文件,声明函数原型
*/
#ifndef NATIVE_H
#define NATIVE_H
#ifdef __cplusplus
extern "C" {
#endif
int __stdcall getSum(const int a, const intb); // 原型
#ifdef __cplusplus
}
#endif
#endif

/*
* native.cpp
* 2013-03-05 实现功能的代码
*/
#include "native.h"
#include <stdio.h>

int __stdcall getSum(const int a, const intb)
{
printf("WindowsNative code.\n");
returna+b;
}
以上是具体的代码,另外需要模块定义文件(.def)来指定导出的函数表。如下:
LIBRARY "native"

EXPORTS
getSum
在VC中,编译,以上代码,可以生成dll文件。用mpbin工具可以看到导出的函数名为getSum。
Linux下的共享库(Shared Object,简称so)的实现比上边更简单,编译时gcc加上-shared参数即可,这方面网上很多。我直接采用了code block的IDE,建立shared library工程。编译时IDE就会把这些处理好。编写的代码如下:
#include <stdio.h>

int getSum(int a, int b)
{
printf("Linux Natie code\n");
return a+b;
}
编译生成libnative.so。
我们在native的代码中插入了输出语句,用来显示调用了哪个库。将这些native.dll, libnative.so, 还有C#程序managed.exe拷贝到一个文件夹,在Windows上运行managed.exe结果如下:


可以看出,在Windows和Linux下的P/Invoke调用都很成功。差不多到这里就该结束了,但是还有一点需要提醒,不论哪个平台,如果提示找不到库的问题,请将库放在一个程序能够找到的地方。
以上只是简单的演示了P/Invoke,实际上更复杂的情况,我们可以在.NET程序中,判断当前运行的操作系统,然后采用LoadLibrary或者dlopen等,动态加载共享库,这样更灵活,不再有上边提到的“不加扩展名”,路径找不到的要求或者问题。感兴趣的读者可以自行了解这方面的内容。

④ 如何在 Linux 上使用 BackupPC 来架设跨平台的备份服务器

首先要做的事情就是将 CentOS testing 软件库连同 yum-priorities 插件一并安装

# cd /etc/yum.repos.d

# wget http://dev.centos.org/centos/5/CentOS-Testing.repo # yum install yum-priorities

yum --enablerepo=c5-testing install backuppc httpd mod_perl
设置 Apache

如上述所提及,假若要一切正常地与 CGI 及 mod_perl 运作,Apache 的执行身份必须是安装 RPM 时在系统上所创建的 BackupPC 用户。请你现在就把合适的值设于 httpd.conf 内。

# vim /etc/httpd/conf/httpd.conf ## 更改 User apache 为 User backuppc User backuppc Servername backuppc.domain.com:80

存储并离开文件,然后更改被创建于 conf.d 目录下的 backuppc.conf 文件。

# vim /etc/httpd/conf.d/backuppc.conf ## 将 Allow from 127.0.0.1 改为 all Allow from all
存储并离开这个文件,然后创建你将会用来访问网页界面的用户及密码。# htpasswd -c /var/lib/backuppc/passwd/htpasswd your_user //看主配置文件来设置密码。 New password: your_password Re-type new password: your_password Adding password for user your_user

# service httpd start # chkconfig httpd onBackupPC 服务器设置初次设置时,你必须在命令行上编辑数个参数,额外的你可以通过命令行或网页界面来完成。请打开 BackupPC 的主要配置文件,然后设置下列参数。TopDir 这个路径就是放置实际备份的地地。它的缺省值是 /var/lib/backuppc。我利用一个加密的分区来作备份,因此我的路径是 /srv/backuppc。请按你的需要修改它。 # vim /etc/BackupPC/config.pl ## BackupPC 缺省的传输方法。 $Conf{XferMethod} = 'rsync'; ## 备份数据存放位置的路径。 $Conf{TopDir} = '/var/lib/backuppc'; ## init.d 内用来引导服务器的路径。 $Conf{ServerInitdPath} = '/etc/init.d/backuppc'; $Conf{ServerInitdStartCmd} = '$sshPath -q -x -l root $serverHost$serverInitdPath start'; ## 你以 htpasswd 创建获授权的用户。 $Conf{CgiAdminUsers} = 'your_user';设置 BackupPC Sudobackuppc 这位用户须要拥有 sudo 权限来执行 gtar 及 tar 的指令。否则,BackupPC 便不能正确地运作。Sudo 应该已被安装在你的系统上,因此你可以通过 visudo 这个指令来作出所需的修改。# visudo ## 注释掉 Defaults requiretty ## 加入以下两行。 Defaults !lecture backuppc ALL=NOPASSWD:/bin/gtar,/bin/tar存储并离开这个文件,然后重新引导 Apache,引导 BackupPC 并设置它在开机时引导。# service httpd restart # service backuppc start # chkconfig backuppc on

ackupPC SSH 金钥由于我们会专注以 rsync 进行备份,你也许会想为 backuppc 进程创建无须密码的金钥,让它能远程连接到需要备份的主机上。请以 root 的身份在 /var/lib/backuppc 内置立隐藏的 SSH 目录,继而修改权限。# cd /var/lib/backuppc # mkdir .ssh # chown backuppc.backuppc .ssh # chmod 700 .ssh接着,请改为 backuppc 这个用户。你须要指定一个指令壳,因为 backuppc 这位用户缺省是没有指令壳的。然后请利用 ssh-keygen 创建没有密码的 SSH 金钥。# su -s /bin/bash backuppc bash-3.2$ ssh-keygen -t dsa Generating public/private dsa key pair. Enter file in which to save the key (/var/lib/backuppc/.ssh/id_dsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /var/lib/backuppc/.ssh/id_dsa. Your public key has been saved in /var/lib/backuppc/.ssh/id_dsa.pub. The key fingerprint is: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx [email protected]
复制服务器金钥到客户端

你必须将你服务器上创建的金钥复制到每一台要被备份的客户端里。就此,请继续上一步,在服务器上以 backuppc 这个用户的身份执行 ssh--id 这个指令。
bash-3.2$ ssh--id -i .ssh/id_dsa.pub root@host_to_backup

它应该会将金钥复制到主机里,并通过 SSH 把你登录该台机器。

⑤ linux比windows的优势

Linux相信大家并不会陌生,Android(安卓或安致)就是基于Linux平台的开源手机操作系统,在电脑方面有ubuntu(中文名:乌班图)等等也是基于linux。

Windows与Linux
Windows与Linux

Linux,这个号称“全地球人的操作系统”,以其免费、安全、稳定等优点获得人们的广泛好评!下面yarn就列出几点linux相对于Windows的优势。

合法升级到最新版本却不需要花一分钱。(windows或者apple合法升级是需要掏钱的,windows与Linux比较差别大吧!)
同一个硬件平台上最新的操作系统却比老的更快。(如果在一硬件平台上运行xp比较卡的话,那运行windows7是不可能的,而linux却相反,Linux与windows相比大大不同)
如果你不喜欢默认的桌面环境,可以非常容易的自行安装其他的界面。­(比如你在linux安装了gnome和kde程序,那么切换时只需要输入:switchdesk gnome就能切换到gnome桌面环境了,输入switchdesk kde就能切换到kde桌面环境了;当然,现在windows下也能体验kde程序,不过首先需要安装kde installer【kde安装程序】,而且基于windows的kde程序现在好像还处于alpha【内部测试】阶段)
一个命令就可以安装二十个程序。windows与Linux有得比吗?
让系统自动为用户所安装的软件更新。
可以在N台机器上安装同一份OS(意为操作系统)拷贝而无须担心协议限制或激活码。
可以自由分发该操作系统及其他运行其上的软件而不会违犯法律,政治或伦理道德,因为它本身就提倡这么做的。
可以裸奔(无需杀毒软件,反广告/间谍防护软件),甚至可以数月不用重启机器,因为它具有独特的内存管理方式。(大家可以想一下如果windows下裸奔会是怎样的后果;windows如果很长一段时间不关机或是重启,那么它运行肯定不会有刚开机时那么流畅),所以说安全上Linux与windows比较没意思。
从来不用磁盘碎片整理。
尝试软件,觉得不喜欢,就删掉他,而且知道他不会在什么注册表里留下一些垃圾可能导致把我的系统搞慢。而比较的windows呢?时间长了得重装系统!
犯了重大错误而导致全新重装系统,也不过花去了1小时不到的时间,因为我把我的数据放在了独立于操作系统和程序的分区。
在一台3岁的老电脑上可以有如win7那样超酷的登录效果…少于40秒,这已经是将我输入用户名和密码并登录计算在内了。(yarn的系统开机只需要10秒到20秒,这一点windows8与Linux有得比较。可毕竟还没正式发行)
合法自定义任何我想要的东西,包括我最喜爱的程序。我甚至可以跟踪软件开发者并向他们问问题,提意见,如果我愿意的话,也可以参与到真正的软件设计和开发进程中去。而相比的windows可能告你侵权。
超过4个的文字处理窗口,听音乐,玩超酷的桌面效果,联系一个大型的社区,并同时运行着firefox(火狐浏览器),即时通讯以及email客户端,而不必求爷爷告奶奶的要什么令我的系统可以运作的代码,而不会把系统变慢。
使用”dpkg –get-selections > pkg.list”命令来获得一个完整详尽的已装软件列表,备份我的/etc和/home文件夹到一个独立分区,然后你就可以随时恢复你的系统了,而且超简单。
同时运行多个桌面,甚至可以让多用户同时登录并使用该机器。
无损调整分区大小而不用担心会丢失数据。(现在windows7也自带这个功能,windows其他版本必须借助第三方软件才能做到)
硬件可以使用超过五年而无须更换
可以在OS(意为操作系统)安装的同时浏览网页!(windows下这是不可能的)
使用几乎所有的硬件,因为系统已经自带了驱动。

⑥ linux为何可以支持这么多平台

一个一个的来回答你的问题吧。

1,不能说GCC一点都没有贡献,但LINUX的可移植可不是GCC就能解决的了的问题。

2,特殊的CPU,毋庸置疑linux代码一定要改。

3,这个问题很怪,只要遵循C语法,GCC当然可以编译,但我上面说过了,光靠GCC不能解决问题。

4,linux强大的移植性最重要的原因是因为它已经为每一个CPU都实现了代码,你可以在他的源代码包下找到很多以硬件名字命名的文件夹,这才是LINUX可移植的重要原因。

5,GCC是C编译器,所谓的C语言有移植性,比如说网络编程上的SOCKET这个概念,在每个操作系统都是有实现的,linux或者windows,作为C的库函数,他把这2种实现都包容进来,再给你一个统一的接口,然后,当你把代码放到linux下编译时,他就会编译成linux下的支持,到windows下就成另一种,从而实现了跨平台。

6,究竟是先有谁,这个没有可比性。

7.完全没有可比性。

从你的问题看出,你还需要继续学习。你再继续学习就能明白可移植到底是如何实现的。2种方式:针对不同的东西我给出不同的实现,新加一种我就多一种实现这样可以达到可移植。例如linux。2,在出现之前我就给出标准,大家都遵守标准程序就可以移植,比如POSIX可移植操作系统标准。

⑦ 跨平台组态软件有哪些支持Linux的

紫金桥跨平台组态呀(手动滑稽)

视频链接网页链接


⑧ linux跨平台吗

Linux和Android都是平台,不存在跨平台一说,其次Android的app能运行在各种硬件设备上,是因为app不是直接调用Android系统的api,而是运行在虚拟机上的

⑨ linux系统好用吗

当然,Linux是非常好用的操作系统,具备免费、开源、跨平台、良好的界面等特性。
1、易于使用。Linux几乎具备Windows的功能,具有良好的图形用户界面(GUI),能满足大多数用户的需求。
2、易于维护。Linux系统非常容易维护,每个发行版都有自己的软件管理中心,提供定时更新,即安全又高效。
3、高安全性、高可用性。Linux非常安全稳定,不易崩溃,除非用户以root身份登录,否则程序无法更改系统设置和配置。
4、可在任何硬件上运行。Linux能有效利用系统资源,用户可自行选择需要安装的模块,能够最佳地使用所有硬件资源。
5、免费开源。Linux完全免费且拥有强大的免费软件群,企业可以免费使用软件,大大降低了成本预算。

⑩ 据说linux可以不装驱动,那可以直接跨平台吗

Linux不是不用驱动,而是很多驱动都在里面了。当然,迁移一套Linux系统确实比Windows容易很多。但是容易也不是就是不出问题,第一个驱动问题,碰上了不认识的硬件你一点办法都没有。
第二,会把新机器的网卡,其它硬盘或其他设备认成新设备,从而导致命名混乱,详细请参见udev如果你需要在不同的硬件环境下运行同一套Linux系统,不妨考虑一下knoppix,这套系统就是为这种需要而生的。

热点内容
无共享存储如何实现vm高可用 发布:2024-11-17 09:11:55 浏览:406
一个小压缩 发布:2024-11-17 09:10:10 浏览:158
安卓透视挂在哪里买 发布:2024-11-17 09:09:36 浏览:712
破解加密的apk 发布:2024-11-17 09:09:23 浏览:366
如何拷贝文件夹 发布:2024-11-17 09:08:07 浏览:650
安卓系统怎么使用油管 发布:2024-11-17 09:05:10 浏览:807
跨境电商需要什么电脑服务器 发布:2024-11-17 08:58:41 浏览:904
linux查看mysql表 发布:2024-11-17 08:48:50 浏览:75
java日期星期几 发布:2024-11-17 08:48:39 浏览:925
java抽象实例化 发布:2024-11-17 08:43:16 浏览:385