패러럴즈에 채팅으로 문의했다.
다중 모니터 환경에서 윈도우 실행시 동시실행 모드가 되지 않는 문제가 있었다.
안되는 영어로 문의하느라 고생했다..

1. 
In the 'View' menu for Parallels Desktop check the 'Use All Displaysin Full Screen' option; 
2. Switch the virtual machine into Fullscreen view mode; 
3. Go to Start → Control Panel; 
4. Go to Display Settings → Adjust Resolution (on the left pane); 
5. Click the additional monitors one-by-one, and in the drop-downmenu in the center of the window, select "Extend Windows desktop tothis display" for each of the monitors. 
6. Exit from Fullscreen view mode; 
7. Try to enter Coherence again.


'Device > Mac' 카테고리의 다른 글

[BetterTouchTool]  (0) 2013.05.10
[맥 배경화면 스크린샷 위치]  (0) 2013.04.27
[사파리 커스터마이징]  (0) 2012.10.06
[맥OS 사용자 계정 이름 변경]  (0) 2012.09.04
[알아두면 유용한 단축키]  (0) 2012.05.27
Posted by cyj4369
,

[BetterTouchTool]

Device/Mac 2013. 5. 10. 15:44

작업하다보면 프로그램간 전환을 매우 빈번하게 하여야 한다. 기본적으로 있는 미션컨트롤(스페이시스+익스포제)는 가끔 둘러보면서 전환할 때 유리하고, Command+Tab은 두 개의 프로그램을 오고갈 때에 유리하다. 어디 구석에 박혀있는 프로그램이나 파일을 찾을 때에는 Spotlight를 쓰면 된다.

이 포스팅에서 언급하고자하는 것은 일종의 런처이다. 런처에는 여러가지가 있고 퀵실버라는 유명한 놈도 있는데(이놈은 너무 유명해서 괜히 쓰기싫은 놈이라 제외하고), 여기에서는 아직 마이너 버전만 있는 BetterTouchTool에 대해서 쓰기로 한다. 왜냐면 내가 아주 잘 쓰고 있기 때문이다. 만약 기존에 쓰던 런처가 있다면 해당 런처에서 단축키를 지정하는 기능이 있는지 알아보고 거기에서 설청하는 것이 더 이로울 것이다. BetterTouchToll은 아직 앱스토어에 업기 때문에 직접 다운로드(http://blog.boastr.net)를 받으면 된다.

실행을 하면 상단에 터치패드에 손가락을 대고 있는 모양의 아이콘이 생긴다. Preferences...로 들어가서 단축키들을 설정해주기로 한다.



< 상단 메뉴에 아이콘이 추가 되어 있다. 설정으로 들어간다 >


환경설정 창을 열면 아래와 같이 열린다. 기능은 확실히 많은데, 아래에 보이다시피 인터페이스가 직관적이지는 않다. 특히 순서가 조금 헷갈린다. 아래와 같은 순서대로 하면 된다.

  1. 아래 번호대로 Keyboard탭으로 간 이후에..
  2. Add new keyboard shortcut을 누른다.
  3. 위 리스트에 빈줄이 추가되는데, Keyboard Shortcut 부분에 원하는 단축키를 배정한다.
  4. 해당 키가 눌러졌을 때에 실행할 액션을 지정한다. 

액션으로 할 수 있는 기능들은 진짜 많다. 내가 주로 쓰는 것은 프로그램 실행/전환, 자주쓰는 폴더 열기이다.


< BetterTouchTool로 할 수 있는 액션 중 일부 >


보통 맥에서 Option키 조합은 많이 비워져 있으므로, 프로그램을 'Option + 숫자키'로 배정을 한다. 가장 많이 쓰는 크롬의 경우에는 Option+1이고, 많이 쓰는 텍스트편집기를 Option+2로 배치하고.. 파인더는 Option+`, Vmware는 Option+4 등으로 쓴다. 실제로 작업을 할 때에는 왼손만으로 곧바로 원하는 프로그램으로 바로바로 전환을 한다. 오히려 작업별로 스페이스를 분리하면 이동시에 데스크탑 스크롤 효과만 나므로, 한 스페이스에 모두 다 몰아넣고 단축키를 바꾸어가면서 한다. 작업 전환이 거의 생각과 동시에 이루어진다.


※ BetterTouchTool에는 키보드 단축키이 외에도, 터치 제스처를 단축키도 등록할 수 있다. 또한 각 프로그램마다 할 수 있어서, 파인더에서 좌우로 쓸기를 뒤로가기/앞으로가기로 등록할 수도 있다. 각자 취향에 맞추어 쓰면 된다.

Posted by cyj4369
,

라이브러리/Desktop Pictures/

Posted by cyj4369
,


음 뭐랄까..

웹브라우저를 쓰면서 안타깝게 여겼던게 몇가지가 있다.


1. 탭 브라우징 인터페이스는 크롬 방식이 제일 낫다.
ㄱ) 현재 탭에서 링크를 눌러 새 탭이 뜨면 현재 탭 바로 옆에서 뜬다.
ㄴ) 그 새 탭을 닫으면 이전 탭 위치로 바로 이동한다.
ㄷ) 탭 하나가 뻗었을 때 다른 탭들은 무사해야한다. (프로세스 분리)

2. 하지만 크롬에서 부족한 기능. 이는 파폭에서 가능하다.
ㄱ) 탭이 뜬 상태에서 웹브라우저를 종료하면 이전 탭들을 모두 저장, 다음 실행 시 다 띄워준다.

3. 사파리는 크롬과 파폭에 비해 탭 브라우징이 거지같다.

4. 플러그인, 확장 프로그램 등이 사파리가 제일 뒤쳐진다.



내가 원하는건 크롬+파폭의 탭 브라우징이었다.
크롬이 ㄷ) 기능을 지원했지만 간혹가다가 전체가 죽어버리는 일이 있다.
하지만 크롬은 이전 탭을 저장하지 않으므로, 전체가 죽어버리면 그야말로 미친다.

파폭은 이전 탭을 저장하지만, 결국 다른 탭 브라우징 인터페이스는 사파리랑 다를 바가 없다.

그리고 사파리는 이 모든 것에서 취약하므로 애초에 난 포기를 했었지.



하지만 알았다.

사파리도 된다!



크롬 + 파폭 = 사파리 커스터마이징!






1. Glims


http://www.machangout.com/


정말 막강한 기능을 가지고 있다.
아 완전 놀랐다. 이건 정말 획기적인 프로그램이다!



사용자 삽입 이미지


설치하면 이처럼 환경설정에서 확인할 수 있다.



우선 탭 순서 정렬부터 설정해보자.

사용자 삽입 이미지


일단 탭은 위와 같이 해둔다.



사용자 삽입 이미지
사용자 삽입 이미지


대충 봐도 기능이 대단하지?
위처럼 설정을 해두면, 각 탭에 파비콘이 나타나고, 사파리 실행 시 이전 종료 때의 탭들이 다 복원된다.
(복원 때에 약 1초 정도의 딜레이가 걸리는데 거기서 당황하지 말고 기다리면 된다.)

맨 밑의 체크박스에 체크 꼭 해주고, 새 탭 배치 부분도 위처럼 해두면 크롬과 거의 똑같이 행동한다.
완벽하게 같은거 같진 않지만 그래도 정말 거의 똑같다.

(빌어먹게도 난 정말 '반례'를 잘 찾는다. ;ㅁ;..)



사용자 삽입 이미지
사용자 삽입 이미지


뭐 이런 기능들도 있다.
검색 제안은, 난 잘 안 쓰지만 쓰는 사람들은 굉장히 유용하게 쓰일거 같다.
그런데 Google Korea가 없어서 좀 아쉽;;;

다운로드 창 자동 닫기, 이거 정말 바라마지 않던 건데 여기에 있네~ ㅋㅋㅋ
우왕ㅋ굳ㅋ



이거 하나로 크롬, 파폭 저리가라 해버렸다.
케케케..


하지만..
크롬과 파폭은 사파리를 뛰어넘는 또 다른 기능이 있는데..
바로 확장 프로그램이다. 파폭에선 플러그인.

요 녀석들을 따라잡으려면 또 다른걸 깔아줘야한다.




2. GreaseKit



그리스몽키 계열 스크립트를 사파리에서 쓰려면 꼭 필요하다.
그리스몽키 용 스크립트는 100% 작동을 보장할 순 없지만 아무튼 요놈 있으면 여러모로 편해질 수 있다.


우선 SIMBL을 설치해야한다.
http://www.culater.net/software/SIMBL/SIMBL.php

에서 SIMBL을 다운받아 설치하자.


이제 GreaseKit을 받아서 깔자.
http://8-p.info/greasekit/

에서 다운받은 뒤, bundle 파일을

~/Library/Application Support/SIMBL/Plugins 

로 복사해놓자.
위 경로가 없을 수도 있다. SIMBL 폴더부터 없다면 직접 만들어서 넣어주면된다.

사파리를 재실행하면 메뉴에 GreaseKit 이라는게 생겨날테다.


사용자 삽입 이미지


그리고 필요한 스크립트는 userscripts.org에서 Install을 눌러주면 휙하고 들어간다!

직접 받은 js 파일의 경우엔 그냥 사파리로 드래그 해버리면 역시 설치할 것인지 묻는다.


필요한 걸 설치해서 쓰도록 하자.





3. Safari Extensions



다음과 같은 순서로 확장 프로그램 기능을 키도록 하자.


Safari -> 환경설정 -> 고급 -> 메뉴 막대에서 개발자용 메뉴 보기 체크



사용자 삽입 이미지




개발자용 -> 확장 프로그램 활성화

사용자 삽입 이미지





환경설정에서 이처럼 확장 프로그램이라는 항목을 볼 수 있게 된다.



사용자 삽입 이미지

여기 들어있는 것들은 내가 설치해서 있는 것들이다.



사파리의 확장 프로그램은 다음 사이트에서 쉽게 구할 수 있다.
http://safariextensions.tumblr.com/

이 사이트에서 검색해서 대충 받으면,
safariextz 라는 확장자의 파일을 구하게 될것이다.


사용자 삽입 이미지


간단하게 그냥 실행하면 알아서 사파리에서 '설치'할 것인지 묻게 된다.

그리고 설치하게 되면 좀 전에 본 환경설정에서 관리가 가능해진다.


우선 AdBlock부터 설치해서 잘 작동하는지 확인해보니, 잘 되더군.. ㅋㅋ





4. Xmarks



요건 덤이다.
http://www.xmarks.com/


이미 다들 쓰고 있을 걸로 생각되는데, 맥용 Xmarks를 받으면 맥의 사파리용이 받아질테다.

그냥 설치하면 기존 것과 똑같으니 쉽게 할 수 있을 것이다.





에효
그동안 사파리의 탭 브라우징이 워낙 맘에 안 들어서 외도를 계속 해왔는데..
맥에선 크롬도 그닥 좋지만도 않고 해서 (한글 입력 버그 크리..) 짱나는 면도 있었고..

그런데 이렇게 사파리의 약점을 비록 자체 기능을 통해서는 아니지만, 암튼 해결을 했더니 속이 다 시원하네.

Glims가 좀 더 막강해지면 정말 행복해질거 같다. ㅋㅋ

그리고.. 파폭이나 크롬 못지 않게 사파리도 얼른 확장 프로그램들이 좀 더 다양해졌으면 좋겠다. ;ㅁ;
크롬 꺼랑은 그냥 컨버팅 수준으로 잘 통하는거 같던데.. ㅠㅠ




※ 일부 확장 프로그램은 32비트를 요구하기도 한다.

Snow Leopard의 사파리를 32비트로 실행하는 방법.
파인더에서 /Applications로 이동 후 Safari.app 파일에서 우클릭 -> 정보 입수
-> 32비트 모드에서 열기 를 체크.
이후 실행하면 된다.



출처 http://devbug.me/511


'Device > Mac' 카테고리의 다른 글

[BetterTouchTool]  (0) 2013.05.10
[맥 배경화면 스크린샷 위치]  (0) 2013.04.27
[맥OS 사용자 계정 이름 변경]  (0) 2012.09.04
[알아두면 유용한 단축키]  (0) 2012.05.27
[사전에 한영사전 추가하기]  (0) 2012.05.27
Posted by cyj4369
,

문제:

초기 등록 할 때 사용자 계정을 cho 로 설정을 했다. 

그러나 사용하다가 내 걔정명(홈 디렉토리)을 xxsoo 로 바꾸고 싶에 졌다.


해결:

1. root를 활성화 시킨다.

 root  패스워드 설정은 응용프로그램 > 유틸리티 > 터미널을 실행한후

 

$ dsenableroot


2. root로 로그인 할 수 있게 설정한다.

시스템 환경설정 > 사용자 및 그룹 > 로그인 옵션 

로그인 윈도우를 다음과 같이 표시: 를 [이름과 암호] 로 선택한다.


3. 로그아웃 후 root 로 로그인 한다.

사과를 눌러 로그아웃후 root로 로그인


4. 사용자 폴더 이름 변경

4-1. root 로 로그인 하면 설정이 아무 것도 안되 있는 상태이다.

파인더 클릭 > 환경설정(상단 메뉴) > 일반 > 하드디스크를 선택 한다.

그럼 바탕화면에 하드디스크가 생긴다.

4-2.  하드디스크 클릭후 사용자 > cho (기존 계정명) 을 xxsoo (원하는 계정명)

으로 폴더명을 변경한다.

             4-3.  xxsoo 계정을 추가 한다.

시스템 환경설정> 사용자 및 그룹 에서 기존 계정 오른쪽클릭.

   고급설정에서 계정 이름과 홈 디렉토리 경로를 바꾼다.

     4-4. 사과를 눌러 로그아웃 후 관리자로 로그인한다.

   

Posted by cyj4369
,

맥에서 유용한 단축키 모음(자주 쓰는놈)


보기전환 3형제
사과+1                            아이콘보기
사과+2                            목록보기
사과+3                            계층보기

방향키 써먹기
옵션+사과+오른쪽방향키        목록보기 상태에서 하위폴더 모두 전개
사과+위쪽방향키                      상위폴더로 가기
옵션+사과+위쪽방향키            상위폴더를 열고 현재폴더를 닫습니다
사과+아래방향키                하위폴더로 가기

만들고 지우기
쉽트+사과+N                    새 폴더 만들기
쉽트+사과+Delete                휴지통 비우기

한방에 가기
쉽트+사과+C                    컴퓨터
쉽트+사과+H                    홈
쉽트+사과+I                    iDisk
쉽트+사과+A                    응용 프로그램

항상 비슷비슷한 메뉴들
사과+H                            창 숨기기
사과+N                            새 창 열기
사과+O                            열기
사과+S                            저장
사과+쉽트+S                    새 이름으로 저장
사과+P                            프린트
사과+W                        창닫기 (참고: Firefox에서는 탭닫기)
옵션+사과+W                    모든 창 닫기


앞뒤로 왔다갔다
사과+[                            뒤로 가기
사과+]                            앞으로 가기

창 축소하기
사과+M                        창 축소
옵션+사과+M              모든 창 축소

스크린 캡쳐 명령어 (데스크탑에 저장됩니다)

사과+쉽트+3                    스크린 캡쳐하기
사과+쉽트+4                    일부 스크린 캡쳐하기
                                                - 영역설정할 때 컨트롤을 누르면 파일이 아닌 클립보드에 복사합니다.
                                                - 영역설정할 때 스페이스바를 누르면 선택창을 캡쳐합니다.


fn+delete                                윈도우식 delete
옵션+delete                            현재 위치부터 왼쪽의 모든 글자 삭제
사과+드래그                         연속적이지 않은 블럭설정
옵션+드래그                         상자형 블럭
사과+컨트롤+D                    단어위에서 사용하면 사전찾기 기능(타이거 이상)
esc / F5                                   글자치는 중간에 누르면 단어 자동완성 목록 보여주기 (영어만...)
컨트롤+L                              현재 줄을 창 중간으로 맞추기 (상하의 중간)

기타
사과+esc                                    Front Row 열기
F / F5                                          Front Row에서 한방에 빠져나가기 (맥북에서는 F5를 누르려면 fn을 함께 눌러야 하니까 F가 매우 편합니다)
사과+쉽트+/                              도움말 메뉴
옵션+사과+D                           독 숨기기/보기
사과+tab                                    프로그램간 전환
옵션+사과+esc                          강제종료

옵션+O파인더에서 실행

컨트롤+F2               메뉴(윈도우에서 윈도우키)      

 


 


 


 


 


 


 


 


 


 


맥에서 유용한 단축키 모음


부팅용 단축키

옵션                                                                           붓캠 부팅선택지 열기
X                                                                                맥오에쓰로 강제시동
C                                                                                 CD ROM으로 강제시동
옵션+사과+쉽트+Delete                                          기본이 아닌 다른 시동디스크로 부팅
쉽트                                                                           안전모드

파인더창

보기전환 3형제
사과+1                            아이콘보기
사과+2                            목록보기
사과+3                            계층보기

방향키 써먹기
옵션+사과+오른쪽방향키        목록보기 상태에서 하위폴더 모두 전개
사과+위쪽방향키                      상위폴더로 가기
옵션+사과+위쪽방향키            상위폴더를 열고 현재폴더를 닫습니다
사과+아래방향키                하위폴더로 가기

만들고 지우기
쉽트+사과+N                    새 폴더 만들기
쉽트+사과+Delete                휴지통 비우기

한방에 가기
쉽트+사과+C                    컴퓨터
쉽트+사과+H                    홈
쉽트+사과+I                    iDisk
쉽트+사과+A                    응용 프로그램

알면 무지 편한 비법
쉽트+사과+G                    폴더로 이동
사과+K                              서버에 연결 (공유할때 주로 사용


일반적인 메뉴 단축키

로그아웃하기
쉽트+사과+Q                    로그아웃 (주의! 아무때나 됩니다)
쉽트+옵션+사과+Q                바로 로그아웃 (주의! 아무때나 됩니다)

항상 비슷비슷한 메뉴들
사과+H                            창 숨기기
사과+N                            새 창 열기
사과+O                            열기
사과+S                            저장
사과+쉽트+S                    새 이름으로 저장
사과+P                            프린트
사과+W                        창닫기 (참고: Firefox에서는 탭닫기)
옵션+사과+W                    모든 창 닫기
사과+Z                            취소 (되돌리기)
사과+F                            찾기
사과+X                            오려두기 (Cut)
사과+C                            베껴두기 (Copy)
사과+V                            붙이기 (Paste)
사과+A                            전체선택

앞뒤로 왔다갔다
사과+[                            뒤로 가기
사과+]                            앞으로 가기

창 축소하기
사과+M                        창 축소
옵션+사과+M              모든 창 축소


아이콘(파일) 다루기

옵션+드래그                          새 위치에 복사본 만들기
옵션+사과+드래그                새 위치에 가상본 만들기
사과+드래그                          새 위치로 옮기기


스크린 캡쳐 명령어 (데스크탑에 저장됩니다)

사과+쉽트+3                    스크린 캡쳐하기
사과+쉽트+4                    일부 스크린 캡쳐하기
                                                - 영역설정할 때 컨트롤을 누르면 파일이 아닌 클립보드에 복사합니다.
                                                - 영역설정할 때 스페이스바를 누르면 선택창을 캡쳐합니다.

익스포제 단축키

사과+'='키                                위젯 독 열기/닫기
사과+좌우 방향키                   위젯 독 좌우 페이지 전환
옵션 누르고 위젯 위로           닫기용 X 표시가 나타납니다
사과+R                                     위젯 Refresh/Reload

글자와 관계된 단축키 (Cocoa계 어플에서만 됩니다.)

사과+우측방향키                줄 끝으로
사과+좌측방향키                줄 처음으로
사과+아래방향키                페이지 제일 아래로
사과+위방향키                    페이지 처음으로
옵션+우측방향키                한 단어 오른쪽으로
옵션+좌측방향키                한 단어 좌측으로
(참고로 쉬프트키를 누른 상태에서 위의 명령을 사용하면 블럭설정이 됩니다)

fn+delete                                윈도우식 delete
옵션+delete                            현재 위치부터 왼쪽의 모든 글자 삭제
사과+드래그                         연속적이지 않은 블럭설정
옵션+드래그                         상자형 블럭
사과+컨트롤+D                    단어위에서 사용하면 사전찾기 기능(타이거 이상)
esc / F5                                   글자치는 중간에 누르면 단어 자동완성 목록 보여주기 (영어만...)
컨트롤+L                              현재 줄을 창 중간으로 맞추기 (상하의 중간)

기타

사과+esc                                    Front Row 열기
F / F5                                          Front Row에서 한방에 빠져나가기 (맥북에서는 F5를 누르려면 fn을 함께 눌러야 하니까 F가 매우 편합니다)
사과+쉽트+/                              도움말 메뉴
옵션+사과+D                           독 숨기기/보기
사과+tab                                    프로그램간 전환
tab                                              다음 항목 표시
쉽트+tab                                    이전 항목 표시
컨트롤+위쪽방향키                 PageUp
컨트롤+아래방향키                 PageDown
옵션+뮤트/볼륨관련키            사운드 환경설정 열기
컨트롤+트랙패드 클릭            맥북에서 우클릭하기
                                                            두손가락+트랙패드클릭도 환경설정을 하면 가능합니다.
옵션+사과+esc                          강제종료

Posted by cyj4369
,

아래 링크에서 파일을 다운로드 받는다.

http://bit.ly/macdic
 
압축을 풀면 나오는 사전 데이터 파일들을 아래 경로에 넣어준다.

Macintosh HD/라이브러리/Dictionaries

응용프로그램에 Aa 아이콘 모양의 사전 어플리케이션을 실행시키고 상단 애플 로고 옆의 사전>환경설정 메뉴를 클릭하고
자주 사용할 사전을 체크하고 순서대로 드래그한다. 

따로 코코아 사전같은 어플을 설치할 필요가 없고, 모르는 단어 위에 Command+Ctrl+D를 눌러 바로 검색할 수도 있다.

자세한 내용은 여기

Posted by cyj4369
,


Fabien Sanglard's non-blog

  

   


IA-32 assembly on Mac OS X

December 31th, 2009


Introduction


I had to do some low level work with Mac OS X Snow Leopard using my MacBook Pro Core 2 Duo. I learned plenty regarding GAS for i386 and x86_64 but I would not recommend this setup to learn assembly. I think Apple's specifics would discourage a beginner and impair his/her ability to use code samples found in most books. I would rather recommend a IBM T42 with Linux Ubuntu.

EDIT: I've received numerous emails so I'm going to try to explain further. It's legitimate to buy a IA-32 book or to follow an online tutorial about i386 assembly intending to use a MacBookPro to experiment as it should be backward compatible. My concern is that by doing this: Nothing will work ! The code sample won't compile, the libc call won't link and the stack won't be aligned properly. That would be a huge learning curve.


Memory refresh


Just to make sure we are at on the same page, here is a schema of the memory the way I like to represent it:
  • Lower memory at the top.
  • Higher memory at the bottom.
  • Text section contains the actual code.
  • Data section contains initialized global variables (with 0s).
  • Bss section contains uninitialized global variables.
  • Heap grows "down", toward higher address.
  • Stack grows "up", toward lower address.
  • Every function calls, a stack frame is created to hold parameters and local variables.


Registers EAX, EBX, ECX, EDX, Floating Points, MMX's, SSE's are used in operations but logistic is mostly done via ESP and EBP.
More about Stack Frames:

Every time a function is called, a new stack frame is created relying mostly on the EBP and ESP registers.

ESP points to the last item inserted in the stack. EBP points to the base of the current stackframe:
  1. Function parameters are pushed on the stack in reverse order of declaration in source code.
  2. The EIP return address (instruction to start from when the function returns) is pushed on the stack.
  3. The function prolog is:
    • Current EBP value is pushed on the stack.
    • EBP takes the value of the current ESP.
  4. Function's local variable are allocated on the stack in order of declaration.
  5. While in the function body, arguments and local variables are referenced via the EBP register (see schema).
  6. The function epilog is:
    • EBP value is popped from the stack.
    • ESP takes the value of the current EBP.
 void function(int parA, int parB, int parC, int parD)	
 {
   int foo;
   int bar;

   [...]

   return ;
  }


The annoying 16 byte stack alignment


Because compilers try to take advantage of the SIMD unit (MMX,SSE,SSE2 and SSE3 instructions set) Apple want the stack to be 16 byte aligned even in an IA-32 environment, so ESP point to a 0xXXXXXXXC memory address. 

Let's take the example of a small program such as cpuid2.s which goal is to write on screen the type of CPU running, using the libc function printf:

.bss

.data
	output:
	.asciz "The processor Vendor ID is '%s' \n"

	.lcomm buffer, 13


.text

	.globl _main

	_main:

	movl $0, %eax		# define cpuid output option
	cpuid			


	movl $buffer, %edi	# put values in string
	movl %ebx, 0(%edi)
	movl %edx, 4(%edi)
	movl %ecx, 8(%edi)
	movl $0, %ecx
	movl %ecx, 12(%edi)
	
	# Now Calling printf

	subl $0x4, %esp		#padding stack :/ !
	pushl $buffer
	pushl $output
	
	
	
	call _printf		#macosx need libc  pre_
	
				# ESP is at 0xXXXXXXX0 now, 
				# with MacOS X Special stub it will be at 0xXXXXXXXC 
	
	call _exit
	nop
	



Here are three significant stack state at:

  1. Beginning of the program
  2. Just before call _printf
  3. Inside libc's printf



On a "regular" system:


 
On Mac OS X:

 Not only you need to pad the stack but you also need to take into account the fact that Mac OS X will perfom an extra 4 byte push on the stack. That's why with two 4 byte parameters, the stack is only padded with 4 byte so the Mac OS X special still find the stack aligned on 0xXXXXXXXC.

Also on the list of thing to adapt, you need to remember that function parameters are 4 byte further than where they would be because of "Mac OS X"'s special push. For example, the first parameter on regulat system is at 8(%EBP) while it is at 12(%EBP) on Mac OS X.

Compilation problems


An other issue that beginners may find discouraging is that plain old compilation doesn't work. GAS assembly program can normally be compiled via asassembler &ld linker (or gcc directly) via:

	as -o cpuid2.o cpuid2.s
	ld -e _main -o cpuid2 -lc cpuid2.o	

	//or

	gcc cpuid2.s -gstabs -o cpuid2

But this won't work on a MacBookPro Core2 Duo running Snow Leopard, cpuid2.s althought IA-32 valid won't get assembled:

	cpuid2.s:50:suffix or operands invalid for `push'
	cpuid2.s:51:suffix or operands invalid for `push'

It seems as default to x86_64 assembly. You need to be specific about the target architecture:

	
	as -arch i386 -o cpuid2.o cpuid2.s
	ld -e _main -o cpuid2 -lc cpuid2.o	

	//or

	gcc  -arch i386 cpuid2.s -gstabs -o cpuid2


EDIT: Reddit user jah6 pointed out that you can get rid of the alignment problem when compiling with gcc: Use -mstackrealign parameter.

LibC method names


Mac OS S requires yout to prefix all your libc method name with "_". Most code sample in Unix world don't have this constraint.

Recommended reading


Try "Professional Assembly Language", it's a pretty good book. Except that they should really really really stop putting the face of their author on the front cover. What a turn off.



Source code :

I've "ported" a few example from GAS Linux to GAS Mac OS X: cpuid with Write System Calls and cpuid with libc

 

@2009

'Device > Mac' 카테고리의 다른 글

[알아두면 유용한 단축키]  (0) 2012.05.27
[사전에 한영사전 추가하기]  (0) 2012.05.27
[rEFIt삭제하는 방법]  (1) 2012.04.12
[맥북에 오라클 10g 설치하기]  (1) 2011.11.18
[맥에 호스트 등록하는 방법]  (0) 2011.11.17
Posted by cyj4369
,


(이미지 출처: refit.sourceforge.net )
(처음)
맥북에어(Macbook Air) 2010에 부트캠프로 윈도우즈7(Windows7)을 설치하기 위해 지난 주말을 홀딱 날려버렸네요.
결국, 성공하지 못했지만, 돌아오는 주중에 다시 시도해보려고 합니다.
그건 나중에 더 이야기하도록 하고..

오늘 소개하는 것은 보통 부트캠프의 문제로 혹은, 편의상.. 등의 이유로 설치했던 'rEFlt' 응용 프로그램을 삭제하는 방법입니다.
구글링을 하면, 블로거분들이나 성실하신 분들께서 자세히 설명해주신 것을 볼 수 있지만..
맥 초보분들을 위해 더 자세히 글을 남기고자 합니다.

여담이지만, 윈도우즈 팁 게시글에는 자세한 글들이 많은데, 맥의 팁 게시글은 양 자체도 적을 뿐더러 리눅스(Linux)를 다루듯이 터미널로 설명한 글들을 많이 접해서 아쉽습니다. :(
그 아쉬움을 덜고자 제가 직접 스크린샷으로 정리하고 있네요. :)

아래 정리하는 글은 rEFlt의 부트 라이브러리 뿐만 아니라 맥에서 깔끔하게 모든 관련 파일을 rEFlt 의 권고대로 삭제하는 방법입니다.


(가운데)
rEFlt를 제거하자.

차근차근 아래 방법에 따라가세요. :)

1. 파인더를 실행합니다.
독(Dock)에서 아래 아이콘을 클릭하면 됩니다. :)


2. 파인더가 실행되면, 아래 스크린샷처럼 검색바(스팟라이트: Spotlight)에 'efl'이라는 키워드로 검색합니다.
그러면, 'efl' 이름의 폴더 하나가 검색됩니다.
이 폴더를 선택하고, 삭제합니다.
폴더를 클릭하고, 보조클릭(마우스 오른쪽 클릭) 후, 등장하는 문맥메뉴에서 [휴지통으로 이동]을 클릭합니다.
또는, 단축키 조합인 "[command] + [delete]"를 사용합니다.

3. 그러면, 아래와 같은 메시지가 등장합니다.
맥의 암호를 입력하고, [승인] 버튼을 클릭합니다.

4. 이제 다른 파일을 제거하러 '유틸리티' 폴더로 이동합니다.
위의 메뉴에서 [이동] - [유틸리티]로 갑니다.

5. 유틸리티 애플리케이션들 중에서 'Partition Inspector'를 찾아서 제거합니다.
위에서 배웠던 방식으로 보조클릭으로 [휴지통으로 이동]을 클릭하거나, 단축키 조합인 "[command] + [delete]"를 이용하세요.

6. 그러면, 역시 위에서 봤던 메시지가 또 등장합니다.
맥의 암호를 입력하고, [승인]!

7. 이제 하나 남았습니다.
조금만 더! :)
[Macintosh HD]로 이동합니다.
왼쪽 사이드바에서 맥의 계정을 클릭한 후, [Macintosh HD]를 클릭하여, 이동하면 됩니다.

8. 그리고 [라이브러리] 폴더로 이동합니다.

9. 여기서 [Startupitems] 폴더를 찾아 들어갑니다.

10. 그러면, [rEFltBlesser] 폴더 하나가 보이는데, 이것을 통째로 제거합니다.

11. 역시 아래와 같이 파인더 변경 경고 메시지를 보여줍니다.
암호를 입력하고, [승인]을 클리합니다.
이제, 재시동(재부팅) 하면, 더 이상 rEFlt 화면을 볼 수도 없고, 깨끗하게 맥에서 제거된 것입니다.


(끝)
이렇게해서 rEFlt 제거 방법을 정리해보았습니다.
아래에서 소개하겠지만, 다른 분들께 많은 도움을 받았고, 그보다 더 자세히 정리하기 위해 이 글을 시작하였습니다.

아무쪼록 도움이 되셨길 바라며, 물러나겠습니다.
고맙습니다.
행복하세요. :)

 + 이 글은 아래 링크의 도움을 받아 작성되었습니다.
위 링크는 rEFlt 공식 배포 웹사이트인 Sourceforge.net에서 공지하는 rEFlt 제거 방법입니다.

맥에 대한 팁을 많이 올려주시는 페이퍼북님의 블로그에 정리하신 윈도우즈7을 맥북에어 2010에 설치하는 방법을 설명하시면서 마지막으로 rEFlt를 터미널을 이용해 제거하는 방법을 설명하셨습니다.

위 링크인 전자우유 블로그에서는 rEFlt를 소개하고, 부트로더 라이브러리 파일을 제거하는 방법을 소개하고 있네요.

Posted by cyj4369
,

꽤 전에 이야기지만 맥에서도 드디어 오라클 설치가 가능하게 되었다.

계속 클라이언트 버전으로 사용했었는데

설치해보고 싶은 마음에 고고싱..

예전에 웹검색하다가 찾은건데 출처를 안적어놔서 ... 

오라클에서 64bit Intel Mac OS X를 위한 오라클을 드디어 릴리즈를 했다. 이제까지 항상 맥북에서 오라클을 운용할 수 없는 아쉬움을 인스턴스 오라클 클라이언트로 원격서버 접속으로 대신했는데, 64bit intel 10g를 설치하고 나서 그런 가려운 부분은 사라질 것이다. 유닉스 기반의 os x에서 오라클을 설치할 수 없어 대부분의 응용프로그램 개발을 MySQL기반으로 개발했다. 하지만 이제 오라클을 설치했으니 앞으로 개발은 오라클 기반을 할 수 있으며, 또한 주춤했던 데이터베이스 연구에 좀더 증진할 수 있을것으로 기대된다. 나의 맥북에 날개를 달아준 기분이다.


Mac OS X 에 10g를 설치하는 오라클 문서가 있지만, 한번에 설치가 되지 않아서 약간은 고생했다. 대한민국 매킨토시 유저에게 오라클 설치 과정을 위해 필자가 설치한 방법을 소개하고자 한다.


1. 64bit Intel Mac OS X를 위한 Oracle 10g 다운로드

우선 다음 사이트에 가서 맥을 위한 오라클을 다운 받고 압축을 푼다.

db.zip이란 파일을 압축해제하면 db/Disk1 이라는 폴더가 생긴다. 압축해제 후 다른 경로 이동시킨다.

$ unzip db.zip

$ mv db /Projects/Servers

http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10204macsoft_x86-64.html




2. 오라클을 설치할 수 있는 환경인지를 확인한다.

http://download.oracle.com/docs/cd/B19306_01/install.102/b25286/toc.htm


1) 메모리 확인

$ /usr/sbin/system_profiler SPHardwareDataType | grep Memory


2) 디스크 공간 확인

$ df -h


3) 운영체제 버전확인

$ sw_vers


4) 호스트 네임 등록 (반드시 /etc/hosts에 호스트네임이 등록되어 있어야한다)

$ hostname

$vi /etc/hosts

127.0.0.1       localhost

127.0.0.1       saltfactory

255.255.255.255 broadcasthost

::1             localhost


3. 오라클 설치를 위한 그룹과 사용자가 생성되어 있는지 확인

$ sudo dscl . -list /groups gid name | more

$ sudo dscl . -list /users uid name | more


3. 오라클 설치를 위한 oinstall, dba그룹을 생성하고, oracle유저를 생성한다.

$ sudo dscl . -create /groups/oinstall

$ sudo dscl . -append /groups/oinstall gid 1521

$ sudo dscl . -append /groups/oinstall passwd "*"

$ sudo dscl . -create /groups/dba

$ sudo dscl . -append /groups/dba gid 1522

$ sudo dscl . -append /groups/dba passwd "*"

$ sudo dscl . -create /groups/oper

$ sudo dscl . -append /groups/oper gid 1523

$ sudo dscl . -append /groups/oper passwd "*"

$ sudo dscl . -create /users/oracle

$ sudo dscl . -append /users/oracle uid 1521

$ sudo dscl . -append /users/oracle gid 1521

$ sudo dscl . -append /users/oracle realname "Oracle Software Owner"

$ sudo dscl . -append /users/oracle shell /bin/bash

$ sudo dscl . -append /users/oracle home /Users/oracle

$ sudo dscl . -append /users/oracle passwd "비밀번호"

$sudo dscl . -append /groups/dba GroupMembership oracle

$sudo dscl . -append /group/oper GroupMembership oracle          (왜 에러가 나는지 모르겠다)

sudo passwd oracle


4. 오라클 유저 사용자 디렉토리 생성 및 권한 설정

$ sudo mkdir /Users/oracle

$ sudo chown oracle:oinstall /Users/oracle



5. 오라클 파라메터 추가


$ sudo vi /etc/sysctl.conf

kern.sysv.semmsl=87381

kern.sysv.semmns=87381

kern.sysv.semmni=87381

kern.sysv.semmnu=87381

kern.sysv.semume=10

kernel.shmall=2097152

kernel.sys.shmmax=2147483648

kernel.sys.shmmni=4096

kern.maxfiles=65536

kern.maxfilesperproc=65536

net.inet.ip.portrange.first=1024

net.inet.ip.portrange.last=65000

kern.corefile=core

kern.maxproc=2068

kern.maxprocperuid=2068


sudo vi /System/Library/StartupItems/IPServices

ulimit -Hu 2068

ulimit -Su 2068

ulimit -Hn 65536

ulimit -Sn 65536



6. 오라클 유저로 변경

$ su - oracle


7. 오라클 설치 베이스 디렉토리 생성

 echo 'oracle ALL=(ALL) ALL' >> /etc/sudoers

$ sudo mkdir -p /Projects/Servers/app/oracle

$ sudo chown -R oracle:oinstall /Projects/Servers/app

$ chmod 777 /Projects

$ chmod 777 /Projects/Servers



8. 오라클 .bash_profile 생성 및 환경설정

$ vi $HOME/.bash_profile

ORACLE_SID=ora10g

export ORACLE_SID


ORACLE_BASE=/Projects/Servers/app/oracle

ORACLE_HOSTNAME=localhost

export ORACLE_BASE ORACLE_HOSTNAME


ORACLE_HOME=$ORACLE_BASE/oracle/product/10.2.0/db_1

export ORACLE_HOME


DYLD_LIBRARY_PATH=$ORACLE_HOME/lib

export DYLD_LIBRARY_PATH


DISPLAY=127.0.0.1:0.0; export DISPLAY


PATH=$PATH:$ORACLE_HOME/bin

export PATH



$ source $HOME/.bash_profile

9. 오라클 설치 시작

$ cd /Projects/Servers/db/Disk1

$ ./runInstaller
















Global Database Name과 비밀번호를 설정한다.

$ sudo -i

$ /Projects/Servers/app/oraInventory/orainstRoot.sh

$ /Projects/Servers/app/oracle/oracle/product/10.2.0/db_1/root.sh




10. tnsname.ora와 listener.ora의 아이피 변경 

$ cd $ORACLE_HOME/network/admin

$ vi tnsanames.ora


$ vi listener.ora


11. 리스너 시작

$ lsnrctl start

[출처] 맥 오라클10g 설치|작성자 웹사이더

Posted by cyj4369
,