Alpha/FAQ

From Gentoo Wiki
< Alpha
Jump to:navigation Jump to:search
This page is a translated version of the page Alpha/FAQ and the translation is 100% complete.
Other languages:
English • ‎italiano • ‎polski • ‎русский • ‎中文(中国大陆)‎ • ‎日本語 • ‎한국어


이 자주 묻는 질문 문서에서는 젠투/알파와 일반적인 리눅스/알파와 관련된 자주 묻는 대부분의 질문 일부에 대해 답을 하려 합니다.

도입부

이 문서에서는 젠투/알파와 알파/리눅스 관련된 보통 많이 묻는 질문에 대한 대답을 넣었습니다. 새 사용자와 경험자 모두를 대상으로 합니다.

젠투/알파 프로젝트 관련

젠투/알파가 뭐죠?

젠투/알파 프로젝트는 알파 플랫폼에 대한 최신의 젠투 배포판과 현재 상태를 유지하는 책임을 가지고 있습니다. 근본적으로 패키지 키워딩, 프로그램 포팅, 새 릴리즈 만들기가 이에 포함됩니다. 젠투/알파 프로젝트는 데스크톱/서버용으로 쓸만한 환경을 제공하는것이 목표입니다.

알파 아키텍처

알파 아키텍처는 죽었나요?

거의 뭐 그렇습니다. HP는 새 알파 시스템에 대한 주문을 2007년 4월 27일부로 중단했고 알파기종에 대한 추가 및 업그레이드는 2008년 4월 25일 중단했습니다. 더 많은 정보는 계획 페이지를 참고하세요.

32비트 프로그램은 실행할 수 있나요?

아니요. 모든 알파 시스템은 순수하게 64비트 커널을 사용하고 순수한 64비트 사용자 환경(userland)입니다. 심지어 gcc의 결과물을 -m32 플래그를 사용하여 32비트로 강제로 결과물을 낼 수 없습니다.

알파는 빅-엔디안 인가요 아니면 리틀-엔디안 인가요?

알파 시스템은 리틀 엔디안이죠. 알파를 사용하는 거대한 크레이 시스템은 빅-엔디안 이었지만 리눅스는 지원하지 않습니다.

리눅스/x86 프로그램을 알파에서 실행할 수 있나요?

아니요. qemu 같은 x86 에뮬레이터 없이는 안됩니다. 과거의 DEC/Compaq/HP에서는 리눅스/알파 시스템에서 리눅스/x86 프로그램을 동작할 수 있게 하는 em86 이라는 프로그램을 관리했었습니다만, 이 프로그램은 폐쇄 소스였고 업스트림에서 더이상 관리하지 않습니다. gcc-3의 ABI와 호환되는 em86 바이너리는 없습니다.

알파에 왜 젠투를 설치해야 하죠?

분명하게, amd64같이 더 빠른 64비트 시스템을 찾을 수 있습니다만 알파 시스템이 쓸모가 없다는 얘긴 아닙니다. 이런 종류의 하드웨어에 리눅스를 설치하려 할 때 몇가지 바람직한 이유가 있습니다:

  • 오래된 컴퓨터를 쓸모있는 물건으로 변모시킬 수 있습니다. 더 오래된 알파 머신은 멋진 라우터 내지는 서버가 될 수 있습니다. 게다가 이들 데스크톱 성능이 뒤쳐지는건 아닙니다.
  • 흔하지 않은 컴퓨터 하드웨어에 대해 배울 수도 있습니다.
  • 괜찮죠. 알파 머신에서 리눅스가 돌아간다는 사실을 얼마나 많은 사람들이 말할 수 있을까요?

알파 하드웨어를 어디서 살 수 있죠?

알파 하드웨어는 동네 컴퓨터 가게에서는 보통 없습니다. eBay는 보통 좋은 선택이 되겠지만, 선적 가격이 꽤 비싸지 않을 경우에나 해당합니다. 구글을 통해서라면 중고 장비 유통업자가 있을텐데, 가격을 비싸게 부릅니다.

하드웨어

알파 서버 껍데기를 열었는데 전원을 넣을 수가 없네요? 뭘 어떻게 해야 하죠?

케이스의 상판이 제 위치에 있는지 확인하십시오. 중판은 하부로 향한 철 재질의 작은 조각들입니다. 상판을 제대로 돌려놓으면 철 조각들이 스위치를 누릅니다. 스위치가 눌린 상태가 아니라면, 시스템의 전원이 안들어옵니다.

알파 관련 컴파일러 플래그

추천하는 알파 관련 컴파일러 플래그가 있나요?

컴파일러 최적화에 따라, 그 이상은 하지 마십시오. 해당 플래그를 조심스레 사용하면 안정적이고 상당히 빠른 시스템을 제공합니다. 옵션을 공격적으로 사용하면 시스템을 갑작스레 망가뜨릴 수 있습니다. 의심된다면 그냥 포기하십시오. 좀 더 많은 설명이 필요하다면 gcc 맨페이지를 확인하십시오

특정 명령셋과 스케줄링 모델을 어떻게 최적화 하죠?

XXX 부분에 CPU 형식을 넣어서 -mcpu=XXX 특정 명령셋과 스케줄링 모델에 최적화할 수 있습니다. 유효한 CPU 형식은 ev4, ev45, ev5, ev56, pca56, ev6,ev67 입니다. -mcpu=XXX 플래그를 사용하지 않으면 gcc는 여태 컴파일해던 머신의 CPU 형식을 기본으로 사용합니다. -mcpu=는 x86의 -march=와 동일합니다.

참고
AlphaServer 800사용자는 ev5로 설정해야 합니다. ev56로 설정하면 가끔 Xorg에서 시스템이 전체적으로 얼어버리는 문제가 있습니다.

명령셋을 바꾸지 않고 어떻게 스케줄링 모델을 지정하죠?

-mtune=XXX으로 명령셋을 바꾸지 않고도 스케줄링 모델을 지정할 수 있으며 XXX는 CPU 형식을 의미합니다. 유효한 CPU 형식에는 ev4, ev45, ev5, ev56, pca56, ev6, ev67이 있습니다. -mtune=-mcpu=로 의미하므로, -mcpu=로 설정했다 하더라도 지정할 필요가 없습니다. -mtune=은 x86의 -mcpu=랑 동일한 플래그입니다.

소프트웨어 지원 부동 소숫점 기능을 어떻게 활성화 하나요?

-mieee 플래그로 소프트웨어 지원 부동 소숫점 기능을 활성화 할 수 있습니다. 비정규화된 숫자와 NaN이나 음/양 무한대와 같은 예외적인 IEEE값을 올바르게 지원하도록 하는 소프트웨어 지원을 활성화 합니다.

어떤 조치를 취하고 있는지 제대로 알지 않는 한 전역 CFLAGS에 이 플래그를 반드시 넣어야 합니다.

제 시스템의 메모리 레이턴시를 어떻게 지정하죠?

-mmemory-latency=XXX 플래그를 사용하여 시스템의 메모리 레이턴시를 정의할 수 있으며, XXX는 클록 사이클 수를 의미합니다. 여기에 설정하는 값은 스케줄러가 메모리를 참조할 때 고려해야 할 레이턴시 시간입니다. gcc에는 -mmemory-latency=XXX에도 설정한 "전형적인" 사전 설정값이 있습니다. 이 값에는 Dcache에 대한 L1값, Scache에 대한 L2값, Bcache에 대한 L3, 메인 메모리에 대한 main 값이 있습니다.

이 플래그는 컴파일 하는 프로그램의 메모리 접근 방식에 따라 값이 달라지므로 전역 CFLAGS 변수에는 사용하지 않는 것이 좋겠습니다.

작은 데이터 영역에 놓아야 할 정적 데이터를 어떻게 지정하나요?

-msmall-data 플래그를 사용하면 작은 데이터 영역에 정적 데이터 위치를 지정할 수 있습니다. 작은 메모리 섹션을 호출하는 특정 섹션에 매우 자주 사용하는 데이터 일부를 저장하여 gcc가 알파 아키텍처에서 일부 기능 사용에 대한 혜택을 볼 수 있게 합니다. 이 섹션은 64KiB로 제한되는데, 이 섹션에 저장한 어떤 데이터를 접근하는건 하나의 명령만 가능하다는 의미입니다.

-fPIC 플래그는 -msmall-data를 중복적용하므로 -msmall-data를 다른 플래그로 대신 중복 적용하기 원하지 않는다면 -fpic 플래그를 대신 사용해야 합니다(주: 대소문자 주의).

어떤 객체가 64KiB 이상의 용량으로 저장해야 할 일이 있다면 CFLAGS 전역 변수에 이 플래그를 사용해야 하지 말아야 하며, 만약 사용하게 되면 gp_overflod ld 오류를 일으킵니다.

작은 텍스트 영역에 들어가야 할 오브젝트 코드를 어떻게 지정하나요?

-msmall-text 플래그로 작은 텍스트 영역에 놓여야 할 오브젝트 코드를 지정할 수 있습니다. 이를 통해 gcc로 하여금 전체 프로그램(또는 라이브러리)이 4MB 용량 범위에 맞는걸로 가정하게 하여 분기 명령으로 접근할 수 있게 합니다. 이 방법으로 함수 호출에 필요한 명령 갯수를 4개에서 1개까지 줄입니다.

어떤 프로그램(또는 라이브러리)가 4MB 이상일 경우 전역 CFLAGS 변수에 이 플래그를 쓰지 않는 것이 좋습니다. 만약 이 플래그를 사용하면 ld 오류가 발생합니다.

이 컴파일러 플래그가, 컴파일, 링커, 실행시간 오류를 일으키면 어떻게 해야 하나요?

#CFLAGS에서와 같이 CFLAGS는 조심스럽게 사용하십시오. 시스템을 망가뜨리는 수가 있습니다. 문제가 나타났다면 버그를 올리기 전에 CFLAGS에 플래그를 넣는 시도를 자제해보십시오.

알파 부팅 및 부트로더

SRM이란게 뭔가요?

SRM은 OpenVMS, Tru64 Unix, 리눅스 운영체제에 대한 운영 환경을 제공하는 알파 콘솔 하위시스템 명세를 기반으로 합니다. SRM에 대한 더 많은 내용은 SRM 설명서를 보십시오.

ARC는 뭔가요?

ARC는 Windows NT용 운영 환경을 제공하는 고급 RISC 컴퓨팅(ARC) 명세를 기반으로 합니다.

ARC 또는 SRM 펌웨어를 가지고 있다면 어떻게 불러내야 하나요?

SRM을 사용한다면 시스템에 전원을 인가할 경우 푸른색 배경에 흰색 글씨를 보게 됩니다. ARC를 사용한다면 그래픽 부트 시스템 화면을 봅니다.

어떤 부트로더를 사용해야 하나요?

알파 시스템에서 SRM을 지원한다면 aboot를 사용해야 합니다. SRM과 ARC(ARC, AlphaBIOS ARCSBIOS)를 다 지원한다면, SRM으로 전환하고 aboot를 사용하기 위해 the SRM 펌웨어 설명서를 따르는 것이 좋습니다. ARC만 사용할 수 있다면 (Ruffian, xl, etc.) milo를 선택해야 합니다.

aboot가 EXT4, XFS, ReiserFS, JFS 파티션으로 커널을 부팅할 수 있나요?

안됩니다. abootext2ext3 파티션에서만의 커널 부팅을 지원합니다. 파티션에서 다른 파일 시스템을 사용한다면 ext2 또는 ext3 형식의 /boot 파티션을 만들어야 합니다.

ext4 지원을 고려했습니다. 사실 ReiserFS, XFS, ext4에 대한 지원 패치도 돌아다니긴 했습니다.

프로그램

젠투/알파 에서 자바 지원은 어떻게 되나요?

컴팩/HP에서 compaq-jrecompaq-jdk라고 하는 바이너리 패키지를 제공합니다. 모든 지원을 중단했고 패키지는 2006년 10월 11일부로 젠투에서 제거했습니다. 그 이후로, 자바를 지원하지 않습니다.

자바 지원을 위한 작업을 할건가요?

알파에서 icedtea를 사용할 수는 있겠지만, 엄청나게 많은 추가 패키지를 시험하는데 상당한 유지 비용이 수반되기 때문에 지원 계획은 없습니다.

젠투/알파에서 .NET 지원은 어떻게 되나요?

알파 지원에 대해서는 모노 또는 DotGNU 그 어디에도 없습니다.

.NET 지원에 필요한건 무엇인가요?

.NET을 알파로 끌어오는건 간단한 일이 아닙니다. JIT 컴파일러에 대한 모든 어셈블리 언어 코드 생성 매크로를 코딩해야 하고 아키텍처 관련 함수(레지스터 할당자 등)도 코딩해야 합니다.

알파 리눅스 커널

어떤 커널 소스코드를 사용해야 하나요?

gentoo-sources 사용을 추천하지만 vanilla-sources도 젠투/알파에서 지원합니다. 어떤 커널이 필요에 맞는지 판단하려면 젠투 커널 안내서를 읽어보십시오.

kernel-2.6에서 동작을 안하는데요, 2.4 기반 시스템으로 빌드할 수 있을까요?

젠투/알파는 2008년 1월을 기점으로 2.4 커널과 프로파일의 지원을 중단했는데요. 기술적으로는 2.4 젠투 시스템(트리의 커널)을 빌드할 수 있지만, 2.6 전용 꾸러미는 여러분 자신이 가려야 하고, 이 문제에 대해서는 개발자들의 지원을 받을 수 없습니다.

젠투/알파는 동작하지 않는 2.6 시스템에 대해 버그 보고서를 확인하고, 할 수 있는 한 최대한 도움을 드리려 할 것입니다.

hardened-sources를 지원하나요?

간단하게는 "아니요"입니다. 얼마전까지만 해도 지원했지만, 하드웨어와 관리자를 잃음으로서 지원하지 않습니다. 초기 작업을 계속해보고 싶고 관심이 있다면 알려주십시오.

2.6 커널에 알파 SMP를 지원하나요?

과거에 몇번 깨진 적이 있습니다. 그러나 최근 버전에서는 잘 동작하는 걸로 알려져 있습니다.

젠투/알파 프로젝트 돕기

버그를 어떻게 보고하죠?

버그를 찾으려 하거나 패치를 보내려 한다면, 버그를 보고해야 합니다. 시간이 약간 걸릴 수 있을 뿐, 도움은 정말로 고맙게 생각합니다. 젠투 버그 보고 안내서를 따라주십시오.

젠투/알파 프로젝트를 어떻게 돕죠?

다음 방식으로 도와주실 수 있습니다:

  • 명확하고 명백한 버그작성.
  • ~alpha 키워드로 시험하지 못한 프로그램 시험
  • 메일링 리스트 , 포럼, IRC 대화방서 질문에 답해주기
  • 패치 보내기
  • AT에 참여하기

알파 아키텍처 테스터 프로젝트가 있나요?

예. 자세한 내용은 젠투 리눅스 알파 아키텍처 테스터 프로젝트를 보십시오.

문제 해결

왜이리 Xorg에서 알파 머신이 멈추는거죠?

잘못된 -mcpu 설정으로 인해 일어납니다. 예를 들어 AlphaServer 800에서는 xorg glibc를 컴파일할 때 ev5 플래그로 컴파일 해야 합니다. 이렇게 했는데 실패하면 기대치 못한 결과가 야기됩니다.

기타 자료

젠투 알파 포럼이 왜 없죠?

젠투 포럼에는 PPC용 젠투 and 스파크용 젠투와 같은 특정 아키텍처 분류가 있습니다. 누군가가 확신할 수 있을 정도로 충분한 젠투/알파 분야에 대한 활동이 포럼에 없었기 때문에 알파용 젠투 분류는 없습니다. 대체 아키텍처용 젠투 카테고리에 모든 알파 관련 게시물을 넣어야 합니다.

젠투/알파에 대해 더 많은 도움이나 정보는 어디서 얻나요?

여기에 답변하지 못한 질문이 있다면, 알파 핸드북 또는 프로젝트 홈페이지와 같은 다른 자원을 찾아보실수도 있습니다. 또한 irc.freenode.net#gentoo-alpha 대화방, 대체 아키텍처용 젠투 포럼, 또는 gentoo-alpha@lists.gentoo.org 메일링 리스트에서 질문하실 수도 있습니다.

알파/리눅스에 대해 더 많은 도움이나 정보는 어디서 얻나요?

알파/리눅스에 대한 모든 내용이 들어있는 중앙 저장소는 AlphaLinux.org 입니다.


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Thomas Cort, Brian Evans, nightmorph, Matt Turner
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.