Alpha/FAQ

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Alpha/FAQ and the translation is 100% complete.

Other languages:
English • ‎italiano • ‎日本語 • ‎한국어 • ‎polski • ‎русский • ‎中文(中国大陆)‎

This FAQ is intended to answer some of the most frequently asked questions relating to Alpha on Gentoo and Alpha on Linux in general.

Contents

도입부

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

About the Alpha Project

What is Alpha?

The Alpha project is responsible for keeping the Gentoo distribution updated and current for the Alpha platform. This primarily includes keywording packages, porting software, and making new releases. The Alpha project aims to provide a usable environment for both desktops and servers.

알파 아키텍처

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

Kind of, yes. HP stopped taking orders for new Alpha systems on April 27, 2007. and for Alpha options and upgrades on April 25, 2008.

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 오류가 발생합니다.

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

As CFLAGS, please use these CFLAGS cautiously. They may break your system. If you experience problems, try using less aggressive CFLAGS before bugs.

알파 부팅 및 부트로더

SRM이란게 뭔가요?

SRM is based on the Alpha Console Subsystem specification, which provides an operating environment for OpenVMS, Tru64 UNIX, and Linux operating systems. See the SRM Howto for more information about SRM.

ARC는 뭔가요?

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

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

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

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

If your Alpha system supports SRM, then you should use aboot. If your system supports both SRM and ARCs (ARC, AlphaBIOS, ARCSBIOS), then you should follow the SRM Firmware Howto for switching to SRM and use aboot. If your system can only use ARCs (Ruffian, xl, etc.) then you will need to choose milo.

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

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

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

프로그램

How is Java support in Alpha?

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

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

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

How is .NET support in Alpha?

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

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

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

알파 리눅스 커널

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

We recommend using gentoo-sources but vanilla-sources is also supported by Alpha. You should read the Gentoo Kernel Guide to determine which one is right for your needs.

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

Alpha stopped supporting 2.4 kernel and profile in January 2008. Technically you can build a 2.4 Gentoo System (the kernel is in the tree) but you will have to mask all the 2.6 only packages by yourself and you won't have support from developers.

Alpha will review all bug reports about non-working 2.6 systems and will try to help as much as we can.

hardened-sources를 지원하나요?

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

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

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

Helping out the Alpha project

버그를 어떻게 보고하죠?

If you find a bug or you want to send us patches, then you need to file a bug report. It only takes you a little bit of your time, and your help is really appreciated. Please follow the Gentoo Bug Reporting Guide.

How can I help the Alpha project?

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

  • Filing clear and concise bugs.
  • Testing software that does not yet have the ~alpha keyword.
  • Answering questions on the mailing lists, forum and IRC channel.
  • Sending patches
  • Becoming an AT

Is there an Alpha arch testers project?

Yes, see the Alpha arch testers project page for details.

문제 해결

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

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

기타 자료

젠투 알파 포럼이 왜 없죠?

On the Gentoo Forums there are several arch specific categories like Gentoo on PPC and Gentoo on Sparc. There is no Gentoo on Alpha category because there simply isn't enough Alpha activity on the forums to warrant one. All Alpha related posts should go in the Gentoo on Alternative Architectures category.

Where can I get more help or information about Alpha?

If any of your questions weren't answered here, you can try other resources like the Alpha Handbook or our project homepage. You can also ask us at #gentoo-alpha on irc.freenode.net, Gentoo on Alternative Architectures Forum, or on the gentoo-alpha@lists.gentoo.org mailing list.

Where can I get more help or information about Alpha on Linux?

알파/리눅스에 대한 모든 내용이 들어있는 중앙 저장소는 AlphaLinux.org 입니다.
This article 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 as the 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 the history page.