macOS에서 C 언어를 어셈블리어로 컴파일

macOS에서 C 언어를 어셈블리어로 컴파일하려면 GCC(GNU Compiler Collection) 또는 Clang 컴파일러를 사용할 수 있습니다. macOS에는 기본적으로 Clang이 설치되어 있지만, GCC를 설치하려면 Homebrew와 같은 패키지 관리자를 사용할 수 있습니다.

아래는 macOS에서 C 언어를 어셈블리어로 컴파일하는 방법입니다.

  1. C 프로그램이 있는 파일을 준비하세요. 예를 들어, 파일 이름이 hello.c라고 가정하겠습니다.
  2. 터미널을 열고 아래와 같은 명령어를 입력하여 C 소스 코드를 어셈블리어로 컴파일하세요.Clang을 사용하는 경우:
clang -S -O0 -mllvm --x86-asm-syntax=intel hello.c -o hello.s

GCC를 사용하는 경우:

gcc -S -O0 -masm=intel hello.c -o hello.s

여기서 -S 옵션은 컴파일러에게 어셈블리어로 컴파일하도록 지시합니다. -O0 옵션은 최적화를 비활성화합니다. 최적화를 끄면 더 읽기 쉬운 어셈블리 코드를 얻을 수 있습니다. -mllvm --x86-asm-syntax=intel (Clang) 또는 -masm=intel (GCC) 옵션은 어셈블리어를 인텔 구문으로 출력하도록 설정합니다.

위의 명령어를 실행한 후, hello.s 파일에 어셈블리어 코드가 생성됩니다. 이 파일을 열어 어셈블리 코드를 확인할 수 있습니다.

Hello C 코드

#include <stdio.h>

int main(){
	printf("Hello\n");
	return 0;
}

어셈블리어

	.section	__TEXT,__text,regular,pure_instructions
	.build_version macos, 13, 0	sdk_version 13, 0
	.intel_syntax noprefix
	.globl	_main                           ## -- Begin function main
	.p2align	4, 0x90
_main:                                  ## @main
	.cfi_startproc
## %bb.0:
	push	rbp
	.cfi_def_cfa_offset 16
	.cfi_offset rbp, -16
	mov	rbp, rsp
	.cfi_def_cfa_register rbp
	sub	rsp, 16
	mov	dword ptr [rbp - 4], 0
	lea	rdi, [rip + L_.str]
	mov	al, 0
	call	_printf
	xor	eax, eax
	add	rsp, 16
	pop	rbp
	ret
	.cfi_endproc
                                        ## -- End function
	.section	__TEXT,__cstring,cstring_literals
L_.str:                                 ## @.str
	.asciz	"Hello\n"

.subsections_via_symbols

주어진 어셈블리 코드를 실행하려면 먼저 해당 코드를 컴파일하고 링크해야 합니다. 이 과정에서 다음과 같은 단계를 거칩니다.

어셈블리 코드를 파일에 저장합니다. 예를 들어, hello.s라는 파일로 저장합니다.

터미널을 열고, 해당 어셈블리 파일을 목적 파일로 컴파일합니다. 이 때, 아래와 같은 명령어를 사용합니다.

gcc -c hello.s -o hello.o

이 명령어는 hello.s 파일을 hello.o라는 목적 파일로 컴파일합니다.

이제 목적 파일을 실행 파일로 링크합니다. 다음과 같은 명령어를 사용합니다.

gcc hello.o -o hello

이 명령어는 hello.o라는 목적 파일을 hello이라는 실행 파일로 링크합니다.

실행 파일을 실행합니다.

./hello
  1. 이 명령어를 실행하면, 프로그램이 실행되고 “Hello” 문자열이 출력됩니다.

참고로, 이 과정은 x86-64 아키텍처 기반의 macOS 또는 Linux 시스템에서 작동합니다. 다른 시스템이나 아키텍처에서 실행하려면 명령어와 옵션을 조정해야 할 수도 있습니다.

정리하는 뇌

“정리하는 뇌” / 영문제목 “The Organized Mind: Thinking Straight in the Age of Information Overload”은 다니엘 J. 레비튼이 쓴 책으로, 일상 생활에서 우리가 마주치는 지속적인 정보 흐름을 관리하는 전략을 제공하고 정보 과부하 시대에서 살아가는 데에 대한 문제점을 다룹니다.

레비튼은 신경과학, 심리학 및 경제학 분야의 연구를 인용하여 우리 뇌가 정보를 처리하고 분류하는 방식에 대해 설명하며, 이것이 우리의 결정력, 문제 해결 능력 및 집중력에 어떤 영향을 미치는지에 대해 논의합니다. 또한 기술이 우리의 조직력과 집중력에 미치는 영향을 논하고, 산재한 정보를 관리하고 우선순위를 정하며 생산성을 향상시키는 실용적인 팁을 제공합니다.

마음의 조화, 시간 관리 및 단순성이 조직된 뇌를 얻는 데에 얼마나 중요한지 강조합니다. 레비튼은 할 일 목록을 작성하거나 디지털 파일을 정리하는 등의 정보 처리 시스템을 개발하도록 독자를 권장하며, 휴식을 취하고 안정성과 창의성을 촉진하는 활동에 참여하도록 권장합니다.

또한 명확하고 조직적인 물리적 환경의 이점을 탐구합니다. 레비튼은 혼란스러운 것이 어떻게 압도적인 것이 되는지에 대한 과학적 이유를 논하며, 물리적 공간을 정리하고 조직하는 시스템을 만드는 방법에 대해 논합니다.

주요 테마 중 하나는 우리 뇌가 제한된 자원을 가지고 있으며, 이를 현명하게 사용해야 한다는 것입니다. 레비튼은 우리는 언제나 생산적일 수 없으며, 정신적인 에너지를 보충하기 위해 휴식, 안정성 및 창의성에 우선순위를 두어야 한다고 주장합니다.

기술이 우리의 조직력과 집중력에 미치는 영향을 탐구합니다. 레비튼은 디지털 장치의 장단점을 논하며, 알림을 끄고 이메일을 확인하는 지정된 시간을 만드는 등의 방법으로 산재한 정보를 관리하는 방법에 대한 실용적인 팁을 제공합니다.

전반적으로 마음의 조화, 시간 관리 및 단순성을 달성하여 현대 사회의 복잡성을 극복하고 인지 기능을 향상시키기 위한 유용한 통찰력과 실용적인 조언을 제공합니다. 이 책은 정보 과부하를 관리하고 스트레스를 줄이며, 모든 삶의 영역에서 생산성과 창의성을 증가시키는 로드맵을 제공합니다.

가장 흥미로운 부분 중 하나는 레비튼의 결정력에 대한 논의입니다. 그는 우리가 내리는 다양한 결정 유형과 결정에 영향을 미칠 수 있는 인지적 편견에 대해 설명합니다. 다양한 정보 출처에서 정보를 수집하고 결정의 장기적 영향을 고려하기 위해 “10-10-10” 규칙을 사용하는 등, 결정력을 향상시키는 실용적인 팁을 제공합니다.

스트레스가 인지 기능에 미치는 영향을 탐구합니다. 그는 스트레스가 어떻게 해로울 수 있는지에 대한 과학적 이유를 논하며, 신체 운동을 하거나 자연에서 시간을 보내는 등의 스트레스를 줄이는 방법에 대한 실용적인 팁을 제공합니다.

“The Organized Mind”은 현대 사회의 복잡성을 극복하고 인지 기능을 향상시키기 위한 유용한 통찰력과 실용적인 조언을 제공하는 책입니다. 이 책은 정보 과부하를 관리하고 스트레스를 줄이며, 모든 삶의 영역에서 생산성과 창의성을 증가시키는 로드맵을 제공합니다.

Github 개인 액세스 토큰 만들기 :: 깃허브

개인 액세스 토큰 사용

You can create a personal access token to use in place of a password with the command line or with the API.

노트:

  • If you use GitHub CLI to authenticate to GitHub on the command line, you can skip generating a personal access token and authenticate via the web browser instead. For more information about authenticating with GitHub CLI, see gh auth login.
  • Git Credential Manager is a secure, cross-platform alternative to using personal access tokens (PATs) and eliminates the need to manage PAT scope and expiration. For installation instructions, see Download and install in the GitCredentialManager/git-credential-manager repository.

개인 액세스 토큰(PAT)은 GitHub API 또는 명령줄 을 사용할 때 GitHub에 인증하는 데 암호 대신 사용할 수 있습니다.

PAT를 사용하여 SAML SSO를 사용하는 Organization이 소유한 리소스에 액세스하는 경우 PAT를 인증해야 합니다. For more information, see ” About authentication with SAML single sign-on ” and ” Authorizing a personal access token for use with SAML single sign-on ” in the GitHub Enterprise Cloud documentation.

As a security precaution, GitHub automatically removes personal access tokens that haven’t been used in a year. To provide additional security, we highly recommend adding an expiration to your personal access tokens.

토큰을 사용하여 할당되지 않은 scopes can only access public information repo. For more information, see ” Available scopes “.

토큰 만들기

  1. 아직 확인하지 않은 경우 이메일 주소를 확인 합니다.
  2. 모든 페이지의 오른쪽 상단에서 프로필 이미지를 클릭한 다음 Settings(설정) 를 클릭합니다.
  3. In the left sidebar, click Developer settings .
  4. 왼쪽 사이드바에서 Personal access tokens(개인 액세스 토큰) 를 클릭합니다.
  5. Generate new token 을 클릭합니다.
  6. 토큰에 알기 쉬운 이름을 지정합니다.
  7. To give your token an expiration, select the Expiration drop-down menu, then click a default or use the calendar picker.
  8. 이 토큰에 부여할 범위, 즉 권한을 선택합니다. 토큰을 사용하여 명령줄에서 리포지토리에 액세스하려면 repo 를 선택합니다.
  9. Generate token 을 클릭합니다.경고 : 토큰은 비밀번호처럼 취급하고 비밀로 유지하십시오. API를 사용하는 경우 토큰을 프로그램에 하드 코딩하는 대신 환경 변수로 사용하십시오.
  10. To use your token to authenticate to an organization that uses SAML single sign-on, authorize the token. For more information, see ” Authorizing a personal access token for use with SAML single sign-on ” in the GitHub Enterprise Cloud documentation.

명령줄에서 토큰 사용

토큰을 받으면 HTTPS를 통해 Git을 조작할 때 암호 대신 해당 토큰을 입력할 수 있습니다.

예를 들어, 명령줄에서 다음을 입력할 수 있습니다.

$ git clone https://github.com/username/repo.git
Username: your_username
Password: your_token

개인 액세스 토큰은 HTTPS Git 작업에만 사용할 수 있습니다. SSH 원격 URL을 사용하는 리포지토리의 경우 원격을 SSH에서 HTTPS로 전환 해야 합니다.

사용자 이름과 암호를 묻는 메시지가 표시되지 않으면 자격 증명이 컴퓨터에 캐시되었을 수 있습니다. 이전 암호를 토큰으로 교환하도록 키체인에서 자격 증명을 업데이트 할 수 있습니다.

Instead of manually entering your PAT for every HTTPS Git operation, you can cache your PAT with a Git client. Git will temporarily store your credentials in memory until an expiry interval has passed. You can also store the token in a plain text file that can read before every request. 자세한 내용은 Git에 GitHub 자격 증명 캐싱 을 참조하십시오.

참고 링크

안경닦는 천

  • 눈가에 무엇인가 아른거린다.
  • 시선을 돌리면 따라오지 않고 고개를 돌리면 따라오는걸로 봐서는
  • 안경에 뭐가 묻은것이 확실하다.
  • 내 몸은 뇌가 시키지도 않는데 책상 첫번째 서랍을 열고 있다.
  • 그 안에 안경닦는 천이 있기 때문이다.
  • 보통은 안경닦는 천이 그리 깨끗하지 않다.
  • 최근 안경을 새로 맞춘 관계로 아주 깨끗한 안경닦는 천이 들어 있었다.
  • 왼쪽을 3번 오른쪽을 3번 닦고 나니 그래도 새로 사서 깨끗한 안경이 더욱더 깨끗해졌다.

영화 테넷을 보았다.

영화 테넷을 보았다.

CGV 극장

  • 테넷 개봉일 오전 9시 강남역 CGV에 가운데 좋은 자리를 예매했다.
  • 오전 9시까지 가기 위해 약간의 빠른 걸음을 걸으니 오랜전 회사에 출근하던 기억이 잠깐 났다.
  • 정시간에 출근했던 적이 거의 없었던거 같았는데 
  • 지금은 서두루고 있구나.

조조할인

  • 조조할인이라 7천원밖에 안했다.
  • 코로나로 한칸씩 띄어서 좌석을 배치했지만 극장안에 대략 15명 정도 밖에 없었다.
  • 더욱 좋은 점은 내 앞에는 아무도 없었다.

테넷

  • 테넷의 주인공은 자신의 목숨을 내던져 인류 멸망을 막는다는 이야기다.
  • 만약 인류의 절반이 망한다면 지금처럼 넓은 극장을 독차지 할 수 있겠다는 멍청한 생각이 문득 들었다.
  • 강남역은 뜨거운 햇살때문인지 코로나 때문인지 사람의 절반정도는 없는거 같았다.

알라딘 중고 서점

  • 영화를 다 보고 바로 옆 알라딘 중고 서점에서 무라카미 하루키의 “직업으로서의 소설가” 책을 샀다.
  • 중고 서적은 처음 사 보는데 그냥 새책 같아서 너무 놀랐다.
  • 아무리 봐도 중고책의 흔적을 찾을 수 없었다.
  • 책의 절반이 멸망해도 괜찮을 것같다는 또 멍청한 생각이 잠시 스쳐갔다.

바닐라 라떼

  • 내가 좋아하는 아이스 바닐라 라떼를 한잔 하면서 책을 읽어 볼까 했는데
  • 때마침 점심시간이라 카페에는 앉을 자리가 없을 정도였다.
  • 영화 테넷의 인버스와 만나는 현상같이 사람이 너무 많았다.

15키로 감량 성공 비법

15키로 감량 성공 비법

  • 2달하고 3일만에 15키로 감량했습니다.

저의 다이어트 철학

모든 음식을 먹을때 칼로리를 계산하여야 합니다.

  • 칼로리 계산은 아주 과학적인 감량 비법입니다.
  • 보통 남자의 경우 하루에 2000키로칼로리를 넘을면 안됩니다.
  • 나머지는 살로 간다고 보면 됩니다.
  • 감량을 할려면 하루 1500키로칼로리를 넘지 마세요.

배고픔을 참으면 안됩니다.

  • 배고픔은 참기가 어렵습니다.
  • 참지 말고 방울토마토나 삶은 계란을 수시로 먹습니다.
  • 물론 칼로리를 계산하여야 합니다.
  • 하루를 5번으로 나누어 식사를 해도 좋습니다.
  • 식사마다 300키로칼로리 이하로 먹으면 1500키로칼로리를 넘지 않을것 입니다.

음식의 맛은 잊어야 합니다.

  • 맛보다는 그냥 배를 채운다는 생각으로 음식을 접해야 합니다.
  • 배고픔에 단순히 적은 칼로리의 부피가 큰 음식으로 배를 채운다는 생각을 항상 하세요.

다이어트 동기

다이어트 방법

  • 다이어트 방법은 크게 3가지가 있습니다.
  • 식이조절 즉 먹는것을 줄여 뺴는 방법
  • 운동으로 빼는 방법
  • 식이조절과 운동을 병행하는 방법입니다.

저의 경험담

  • 그동안 20여년 동안 여러가지 방법을 해 왔습니다.
  • 저의 결론은 식이조절이 가장 효과적인 다이어트 방법이라는 것입니다.

운동이 다이어트에 힘든 이유

  • 운동으로 한달에 8키로정도 감량을 한적도 있었는데요
    • 한달동안 거의 매일 등산을 한적이 있었습니다.
    • 물론 8키로그램이 감량되었지만 무릎에 탈이 났고
    • 힘들기도 하지만 무었보다 많은 시간을 들여야 했습니다.
  • 운동을 하면 식욕이 너무 좋아지기 때문에
    • 운동과 함께 식이조절을 하기가 어렵습니다.
  • 결국 운동을 하여 몸은 건강해지지만 몸무게를 빼는 것은 별개의 문제가 되어갑니다.

식이조절의 방법은?

  • 탄수화물을 끊어야 합니다.
    • 탄수화물은 인슐린의 과도한 분배을 일으켜 계속 배가 고파지는 악순환에 빠질 수가 있습니다.
    • 또한 탄수화물과 더불어 같이 먹은 단백질이나 지방을 더 더욱 잘 흡수하게 도와주는 일을 합니다.

그럼 뭘 먹나요?

  • 저의 방법은
  • 기본 베이스는 닭가슴살입니다.
    • 요즘은 어디서나 진공팩으로 바로 먹을 수 있는 닭가슴살이 있습니다.
    • 대략 120그램 정도에 120키로 칼로리 밖에 되지 않습니다.
    • 최근에는 여러가지 맛으로 출시되고 있습니다.
    • 하지만 닭가슴살을 계속 먹기는 쉽지 않으니 마음의 준비가 필요합니다.
  • 중간중간 입이 심심하면 방울 토마토를 드세요
  • 삶은 계란을 항상 준비해서 배 고플때 하나씩 까 드세요.
    • 소금없이 그냥 드셔도 맛있습니다.
    • 물론 다이어트를 잘 하시고 계시다면요.

노브랜드에서 저렴하게 구입 가능한 다이어트 식품을 소개합니다.

  • 노브랜드 닭가슴살 : 양이 많고 가격이 저렴합니다.
  • 노브랜드 스파클링 탄산수
    • 제로칼로리 음료수입니다.
    • 매우 달고 탄산량도 괜찮습니다.
  • 노브랜드 크래미
  • 방울토마토
  • 양상추
  • 계란
  • 노브랜드 단호박 샐러드
    • 칼로리가 상당히 높으니 닭가슴살 먹을때 정말 한 숟가락만 조금씩 나눠드세요
    • 칼로리 주의하셔야 합니다.

Avast SecureLine VPN

체코에 기반을 둔 Avast에서 개발한 SecureLine VPN은 공공 Wi-Fi를 사용할때 개인 정보를 보호하기 위해 필수적입니다.

Avast는 2018 Advanced + Real-World Protection Test 및 VB100 인증을 포함하여 PC보안 및 바이러스 백신 소프트웨어로 많은 상을 수상하였습니다.

VPN를 켜고 끌수 있는 스위치가 있고 위치를 선택할수 있는 메뉴가 있습니다. 서버 입장에서 나의 접속이 일본 도쿄에 있다고 생각할려면 위치변경을 선택하고 일본의 서버를 선택하면 됩니다.

VPN은 인터넷 연결을 암호화하고 나의 위치와 나의 IP를 위장하여 다른 사람에게 표시됩니다.

p2p와 넷플릭스

P2P가 지원되는 서버는 네덜란드, 체코, 프랑스 정도로 한정되어 있습니다. p2P가 지원되면 토렌트나 넥플릭스같은 비디오 스트리밍을 사용할 수 있습니다.

체코 서버에서 넷플릭스를 재생했을때는 한국어 자막이 업고 체코어 자막만 있는 영화도 있습니다. 각 국가에 따라 오픈되는 영화가 다른것을 확인할수 있습니다. 잦은 서버이동은 넷플릭스가 감지하여 연결을 끊는 상황도 발생할수 있습니다. 동영상의 품질은 끊임없이 재생 되었습니다.

개인 정보 보호 정책

Avast SecureLine은 서비스를 “로그없음” 정책을 채택하고 있습니다. 사용자가 방문한 사이트, 사이트에서 실행한 작업, 연결된 활동에 대해 아무것도 알지 못하므로 정부나 단체가 원하는 경우에도 해당 정보를 줄수 없습니다.

하지만 일부 로그를 유지 관리하고 있습니다. 서버에 연결하거나 연결을 끊을때 표시되는 연결로그와 연결하는 동안 사용하는 대역폭의 양은 저장되고 있습니다.

보안

월별 4,350만명의 활성 사용자의 데이터, 개인정보를 보호하고 매월 15억건 이상의 멜웨어 공격으로부터 사용자를 보호한다고 주장하고 있습니다. 인공지능를 사용하여 맬웨어 탑지 및 차단, 위치기술 및 IoT 보안을 제공합니다.

  • 256비트 고급 암호화 표준 : AES 256은 가장 안전한 암호화 방법 중 하나이며 금융직관, 신용 카드 회사 및 정부에서 고객 데이터를 안전하게 유지하기 위해 사용하는 알고리즘입니다.
  • 단일 공유 IP : Avast 서버는 연결되 모든 컴퓨터에 대한 동일한 IP주소를 나타내고 있습니다.
  • DNS 유출 방지 : 실제 IP주소가 노출될 수 있는 DNS유출을 방지합니다.
  • KILL 스위치 : VPN 서버가 다운된 경우 인터넷 연결을 끊습니다. 계획되지 않은 연결해제시 오류 방지 보호 기능을 제공합니다.
  • 스마트 연결 규칙 : 공공 WiFi 또는 보안되지 않은 다른 네트워크에 연결할 때 적절한 보안 조치를 설정할 필요가 없습니다. 장치가 보안되지않는 네트워크에 연결되면 SecureLine이 자동으로 켜지게 할 수 있습니다.

토렌트

SecureLine VPN은 토렌트를 허용하고 가능한 최고 수준의 서비스를 위해 전용 P2P 서비스를 제공합니다. P2P 파일 공유에 VPN을 사용하려는 경우 필수 킬 스위치가 내장되어 있습니다.

P2P를 통해 파일을 공유하는 동안 VPN 연결이 끊어지면 킬스위치가 즉시 인터넷 액세스를 차단하고 다른 사람이 실제 IP주소를 알수 없도록 합니다.

광고 차단 기능을 포함되어 있지 않습니다.

경쟁력

Avast SecureLine VPN은 많은 VPN 서비스보다 서버 위치가 적습니다. 34개국 55개 도시의 서버가 있으며 미국에는 16대의 서버가 있습니다.

  • 규모는 작지만 대규모 VPN 제공업체와 동일한 암호화를 제공합니다.
  • 온라인 활동을 기록, 모니터링 또는 공유하지 않습니다.
  • 서버를 변경하거나 최적의 위치를 선택하여 전 세계 서버에 연결할수 있습니다.
  • Windows, macOs, Linux, Android, iOS 에서 사용가능합니다.

결론

Avast SecureLine은 안정적이고 기본적이며 필수적인 VPN 서비스를 제공하빈다. 사용하기 쉬워 초보자들의 좋은 선택이 될것 입니다. VPN이 자동으로 켜지도록 설정할 수 있어 이동이 많은 사람들에게 적합한 선택이 될것입니다. Avast의 보안 프로토콜은 은행이나 군대에서 사용하는 것과 동일한 보안 수준입니다. 어디를 가든 안전한 인터넷 접속이 가능합니다.

원문 출처 : https://www.lifewire.com/avast-secureline-vpn-review-4692818