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.

Page kept on Wikipedia This page exists already on Wikipedia.


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