You can edit almost every page by Creating an account. Otherwise, see the FAQ.

소프트웨어 이식성

EverybodyWiki Bios & Wiki

package.lua 80번째 줄에서 Lua 오류: module 'Module:Namespace detect/data' not found. package.lua 80번째 줄에서 Lua 오류: module 'Module:Message box/localize' not found.

"[고도 프로그래밍 언어 | 상위 레벨 컴퓨터 프로그래밍]에서의 이식성은 다른 환경에서 동일한 소프트웨어의 유용성입니다. 이식성에 대한 전제 조건은 응용 로직과 [인터페이스 (컴퓨터 과학) | 시스템 인터페이스] 사이의 일반화 된 [추상화 (컴퓨터 과학) | 추상화]입니다. 동일한 기능을 가진 소프트웨어가 여러 컴퓨팅 플랫폼에서 생성 될 때, 이식성은 개발 비용 절감의 주요 쟁점입니다.

이식성을위한 전략[편집]

소프트웨어 이식성은 다음을 포함 할 수 있습니다.

  • 설치된 프로그램 파일을 기본적으로 동일한 아키텍처의 다른 컴퓨터로 전송합니다.
  • 기본적으로 동일한 아키텍처의 다른 컴퓨터에 배포 파일로 프로그램 다시 설치.

비슷한 시스템[편집]

같은 패밀리의 operating system이 비슷한 instruction set을 가진 프로세서가있는 두 대의 컴퓨터에 설치되어있는 경우 종종 프로그램 파일을 구현하는 파일을 서로 전송할 수 있습니다.

가장 단순한 경우, 파일들은 단지 한 머신에서 다른 머신으로 단순히 복사 될 수 있습니다. 그러나 대부분의 경우 소프트웨어는 상세한 하드웨어, 소프트웨어 및 설정에 따라 컴퓨터에 설치되어 있으며 특정 장치에 대한 장치 드라이버, 설치된 운영 체제 및 지원 소프트웨어 구성 요소를 사용하고 다른 [논리 드라이브 | 드라이브] 또는 [[디렉토리 (파일 시스템)] 디렉토리]를 사용합니다.

경우에 따라 일반적으로 " 휴대용 소프트웨어라고 표시된 소프트웨어는 컴퓨터에 종속적 인 설치없이 호환 가능한 운영 체제 및 프로세서가있는 여러 컴퓨터에서 실행되도록 특별히 설계되었습니다. 지정된 디렉토리와 그 내용을 전송하는 것으로 충분합니다. USB 스틱과 같은 휴대용 대용량 저장 장치 장치에 설치된 소프트웨어는 저장 장치를 꽂기 만하면 모든 호환 컴퓨터에서 사용할 수 있으며 모든 구성 정보를 이동식 장치에 저장합니다. 하드웨어 및 소프트웨어 관련 정보는 구성 파일의 지정된 위치 (예 : Microsoft Windows를 실행하는 컴퓨터의 [[Windows 레지스트리 | 레지스트리])에 저장됩니다.

이러한 의미에서 이식 가능하지 않은 소프트웨어는 대상 시스템의 환경을 지원하기 위해 수정하여 전송해야합니다.

다른 프로세서[편집]

틀:2011 년 현재 대다수의 데스크톱 및 랩톱 컴퓨터는 마이크로 프로세서를 32 비트 및 64 비트 x86 명령 세트와 호환합니다. 소형 휴대용 장치는 ARM과 같이 서로 다른 호환되지 않는 명령 세트가있는 프로세서를 사용합니다. 더 큰 장치와 작은 장치의 차이점은 상세한 소프트웨어 작업이 다르다는 것입니다. 대형 화면에 적합하게 표시되도록 설계된 응용 프로그램은 기능이 유사하더라도 작은 화면의 포켓 크기 스마트 폰으로 간단하게 포팅 될 수 없습니다.

웹 응용 프로그램은 프로세서에 독립적이어야하므로, JavaScript로 쓰는 웹 프로그래밍 기술을 사용하여 이식성을 얻을 수 있습니다. 이러한 프로그램은 공통 웹 브라우저에서 실행될 수 있습니다. 이러한 웹 응용 프로그램은 보안상의 이유로 호스트 컴퓨터에 대한 제어가 제한되어 있어야합니다. 특히 파일 읽기 및 쓰기와 관련해서는 제한적입니다. 정상적인 방식으로 컴퓨터에 설치되는 비 웹 프로그램은 다른 시스템에서 동일한 인터페이스를 제공하는 휴대용 라이브러리에 링크하여 더 많은 제어를 할 수 있지만 시스템 이식성을 달성 할 수 있습니다.

소스 코드 이식성[편집]

플랫폼에 대한 컴파일을 지원하는 프로그래밍 언어로 작성된 경우 소프트웨어를 컴파일하고 다른 운영 체제 및 프로세서의 소스 코드에서 linked 할 수 있습니다. 이것은 대개 프로그램 개발자를위한 작업입니다. 일반 사용자는 소스 코드에 액세스하거나 필요한 기술을 사용할 수 없습니다.

리눅스와 같은 오픈 소스 환경에서는 소스 코드를 모두 사용할 수 있습니다. 초기에는 소스 코드가 표준화 된 형식으로 배포되는 경우가 많았으며 빌드 중에 오류가 발생하지 않으면 알맞은 사용자가 특정 시스템에 대해 표준 Make tool을 사용하여 실행 코드로 빌드 할 수있었습니다. 일부 Linux 배포판은 소스 형식으로 사용자에게 소프트웨어를 배포합니다. 이러한 경우 일반적으로 시스템에 대한 소프트웨어의 세부적인 적응은 필요하지 않습니다. 시스템과 일치하도록 컴파일 프로세스를 수정 방식으로 배포됩니다.

포트 소스 코드 노력[편집]

CC ++와 같이 겉으로보기에 이식성있는 언어를 사용하더라도 소스 코드를 포팅하려는 노력은 상당히 다를 수 있습니다. UNIX / 32V (1979)의 저자는 "[Bourne shell (Bourne) shell]] [...]은 이식 가능한 프로그램의 가장 큰 변환 노력이 필요하다고보고했습니다. 휴대용이 아니라는 단순한 이유입니다. "Thomas B. London과 John F. Reiser (1978). DEC VAX-11 / 780 컴퓨터 용 Unix 운영 체제. Bell Labs 내부 메모 78-1353-4. </ ref>

때로는 소스 코드를 다시 컴파일하는 작업이 포함되지만 때로는 소프트웨어의 주요 부분을 다시 작성해야 할 때도 있습니다. 많은 언어 사양은 구현 정의 동작을 설명합니다 (예 : C의 부호있는 정수를 오른쪽으로 시프트하면 논리적 또는 산술 시프트가 가능함). 운영 체제 기능 또는 타사 라이브러리를 대상 시스템에서 사용하지 못할 수 있습니다. 일부 기능은 대상 시스템에서 사용할 수 있지만 약간 다른 동작을 보입니다 (예 : EACCES가있는 디렉토리에서 utime ()이 실패 함). 프로그램 코드 자체는 포함 파일의 경로와 같이 이식 불가능한 것을 포함 할 수도 있습니다. 모든 운영 체제에서 드라이브 문자와 백 슬래시를 경로 구분 기호로 사용할 수 없습니다. [Endianness | byte order]와 [[Integer (computer science) | int]의 크기와 같은 구현을 정의한 경우에도 포팅 작업을 수행 할 수 있습니다. 실제로 [[C (프로그래밍 언어) | C]와 C ++와 같은 언어로 WOCA ([한 번 쓰고 어디서나 컴파일])를 주장하는 것이 논쟁의 여지가 있습니다.

같이 보기[편집]


This article "소프트웨어 이식성" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:소프트웨어 이식성. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.



Read or create/edit this page in another language[편집]