윈디하나의 누리사랑방. 이런 저런 얘기

글쓴시간
분류 기술,IT
멜트다운(Meltdown) 보안 버그

사용자 삽입 이미지


이 문서는 멜트다운 보안 버그만 포함합니다. 또다른 중대한 보안 버그인 스펙터는 스펙터(Spectre) 보안 버그 를 참고하세요.

연초부터 인텔이 대형 사고를 쳤습니다. CPU에 중대한 보안 버그가 알려진겁니다. 엠바고 기간이 남아있었는데 리눅스쪽에서 수정하려다 보니 수정 사항을 주의깊게 보던 사람들에게 발각된거죠. 뭔가 쓸데 없는걸, 성능이 더 안 좋게 리눅스 커널을 패치하고 있는거 같은데 굉장히 중요하게 생각하고 있고 허둥지둥대는게 이상하다는 거죠. 리눅스 커널 개발자 입장에서도 더이상 미룰 수 없다는 판단이 선 거겠죠.





- 기본적으로 OoOE(Out of Order Execution)시 메모리 영역 검사를 바이패스 해버리는 문제입니다. 메모리를 보안상 커널 영역과 유저영역을 분리해놓았고 커널영역은 커널 모드에서만 접근 하도록 했는데, 이거에 버그가 있습니다. 유저모드에서도 커널 영역의 메모리에 접근이 되는 겁니다. 커널 개발자 입장에선 그냥 말 그대로 헬입니다. 이런건 심각한 보안사고입니다.

- 이 버그는 2017년 여름에 구글의 보안팀에서 알아냈고 인텔에 연락해 패치를 개발했습니다. 물론 패치작업이 쉽지는 않았을거라 예상합니다. 패치 개발할 기간인 6개월동안 기다렸고 지금에야 공개된 상황입니다.

- 이미 이 버그를 악용한 코드가 나와있는걸로 알려져 있습니다. (공개되지는 않았습니다) 인증되지 않은 일반 사용자가 시스템 전체 메모리를 덤프할 수 있는 셈이기 때문에, 그냥 권한이고 뭐고 다 뚫립니다.

- 다행이 인텔CPU만 그렇고 AMD CPU는 안 그렇습니다. 인텔 CPU중 OoOE 를 지원하는 CPU만 해당됩니다. 인텔 CPU는 커널 메모리와 유저 메모리(정확하게는 유저 메모리 공간의 일부 가상 메모리 공간)간 캐시 히트를 높이기 위해 같은 메모리 공간(캐시 공간)에 두었다고 하는데 이것과 같이 엮이는 바람에 문제가 되었네요. AMD는 캐시 공간이 분리되어있어서 이 문제에서 자유롭다고 합니다.

- 이걸 인텔에겐 호재라고 보는 사람도 있습니다. 어차피 인텔은 CPU 리콜이나 교환을 안할거고 (비용 문제로. 해야할 이유도 없습니다. 자세한건 인텔 CPU 정품 사면 박스에 들어있는 라이선스 확인해보시면 됩니다) 그렇다면 다음 CPU에는 이 문제가 해결되어 나오기 때문에 그렇다면 CPU 교체 수요가 생기기 때문이죠.

- OS를 패치하면 성능이 경우에 따라 다르지만 평균 30% 정도 떨어진다고 합니다. 특히 커널-유저모드 전환이 많은 프로그램일 수록 더 떨어진다고 하네요. 30% 라면 심각한 수준입니다.

- 해결 방법은 윈도10에서는 최신 OS 패치를 설치하시면 됩니다.

----

Meltdown and Spectre

Reading privileged memory with a side-channel

Rogue Data Cache Load

글쓴시간
분류 문화,취미/음악
샘플링레이트(Sampling Rate), 비트깊이(Bit Depth)

※ CD의 규격인 16bit-44.1kHz 은 상당한 고음질을 낼 수 있는 규격이다.

- 이론적으로 비트당 6dB 의 다이내믹 레인지(Dynamic Range)를 표현가능하다고 한다. 따라서 16bit 인 CD는 이론상 96dB 의 다이내믹 레인지를 가진다. 초고가의 아날로그 녹음기의 다이내믹 레인지가 80dB 안팍인걸 고려하면 굉장히 높은 다이내믹 레인지다.

- 사람의 일반적인 가청주파수는 20Hz ~ 18kHz 정도로 잡는다. 소리를 키우면 20kHz까지 듣는 아이들도 있지만 일반적인 가청 주파수는 저정도이고(가청 주파수는 나이가 들면 더 떨어진다. 20세 성인인 경우 개인차가 있겠지만 좋은 경우 250 ~ 16kHz 정도다), 따라서 CD의 44.1kHz 라는 샘플링 레이트는 "나이키스트-섀넌 표본화 정리"(신호의 완전한 재구성은 표본화 주파수가 표본화된 신호의 최대 주파수의 두 배보다 더 커야 한다는 정리)에 의해 이론상 22.05kHz 주파수까지 커버 가능하므로 인간의 가청 영역을 모두 담을 수 있다.

※ 왜 고음질 디지털 오디오에서 24bit-48kHz 를 사용하나?

- 16bit 비트깊이는 이론상 훌륭한 다이나믹 레인지를 제공하긴 하지만, 실질적으로 ADC(아나로그-디지털 컨버터, 디지털 녹음기의 핵심 부품)가 오디오를 디지털로 담을때 1~2bit 정도의 다이내믹 레인지 손실이 발생한다. 또한 헤드룸(Headroom, Crest factor, 피크를 제대로 표현하기 위해 남겨두는 여유 공간)에 최소 3bit (~20dB) 정도를 할당하게 되는데, 이를 다 합하면 5비트 손실이 되고, 16-5=11 해서 11비트(=66dB)정도의 다이내믹 레인지가 된다. 아무리 좋은 ADC를 사용해도 다이내믹 레인지가 줄어드는 문제는 피해갈 수 없다.

- ADC로 변환한 디지털 오디오 소스를 가지고, 믹싱하고 이펙터를 걸고, 컴프레싱작업을 하는 등의 마스터링을 하면 다이내믹 레인지가 더 떨어진다. 이렇게 점점 다이내믹 레인지가 떨어지다 보면 최종 소비자에게 제공되는 음원의 다이내믹 레인지는 처음 녹음했던 것 보다 더 떨어지게 된다. 물론 마스터링 작업을 하고나면 보통 사람이 듣기엔 더 좋아지지만, 전문가의 입장에서는 마냥 좋아할 수는 없는 셈이다. 그냥 이론상 다이내믹 레인지가 떨어지니 말이다. (특히 다이내믹 레인지가 떨어지면 웅장하고 섬세한 느낌의 음악을 만들기 어려워진다) 그래서 라이브 공연 시장이 남아있는 것이다.

- 16bit 대신 24bit 를 사용 면 5비트 정도 날아가도 다이내믹 레인지에 문제 없고 더 많은 헤드룸 영역을 할당해도 다이내믹 레인지에 여유가 생긴다. 16 비트로는 이론상으로나 실제로나 한계가 명확하기 때문에, 24bit 를 사용하는 것이다.

- 이왕하는거 32bit 로 하는건 어때? 라고 생각할지 모르겠지만 16->24bit 만 해도 데이터의 양이 50% 가 늘어나며 그만큼 연산양도 50%가 늘어난다. 이는 소비자들이 사용하는 재생기(오디오 플레이어)의 성능이 50% 좋아야 한다는걸 의미하고 성능이 좋은 만큼 기기의 배터리도 더 빨리 닳게 되며, 기기의 가격도 더 비싸진다는걸 의미한다. 그래서 데이터 양을 마냥 높일수만은 없다. 결정적으로 24bit 만 되어도 충분한 다이나믹 레인지를 얻을 수 있기 때문에 굳이 32비트로 높일 필요는 없다.

- 44.1 kHz 은 가청주파수를 담을 수 있는 40kHz 이상의 샘플링레이트에서, 당시 기술로 알리아스 제거를 위한 로우패스 필터를 개발하기 쉬운 샘플링레이트를 찾은게 44.1kHz 다. 게다가 44100 이라는 숫자는 처음 4개의 소수(2,3,5,7)를 각각 제곱승한걸 곱한값이다. 2^2*3^2*5^2*7^2 =44100 즉 뭔가 있어 보인다. 그냥 쉽게말하면 40kHz 이상 되는 숫자에서 괜찮아보이는 숫자를 선택한것이다. 44.1 이라는 숫자에 큰 의미를 둘 필요는 없다.

- 48kHz 는 뭔가요? 이건 비디오 스트리밍 규격때문에 나온거다. 30프레임, 60프레임, 720p, 1080p 등 전송 양을 자유롭게 조절하는 비디오 스트리밍 시장에서, 어쩌다보니 48kHz, 16bit 로 전송하면 딱 맞는 비트레이트가 되었기 때문이다. 또한 12의 배수라 정수로 나누기 쉽다는 장점도 있다. 오디오적인 이유가 있어서 그런게 아니다. 하지만 현재 이 시장을 무시할 수 있는건 아닌데다 44.1 kHz 나 48kHz 나 데이터 양에 큰 차이가 없고 따라서 기기 가격도 차이 없기 때문에 그냥 48kHz 쓴다.

- 96kHz 를 사용하면 더 좋지 않나요? 맞다. 더 좋다. 문제는 이걸 만족시키려면 많은 비용이 들어간다는 거다. 96kHz 를 사용하면 48kHz 까지 음향이 담긴다. 이 대역은 잡음이 많은 대역이다. (정확하게 말하자면 인간이 들을 수 있는 20kHz까지는 말 그대로 인간이 들을 수 있기 때문에 잡음이나 소음에 대한 규제가 있어 사실상 깨끗한 대역이다. 인간이 못 듣는 대역을 녹음해 분석해보면 훨씬 많은 잡음이 있다) 따라서 96kHz 이상으로 샘플링 하려면 방음시설이 좋아야 하고, 음향 시설이 좋아야 하고, 녹음시설도 좋아야 한다. 열악한 녹음 환경에서 96kHz 으로 녹음하면 환경의 열악함만을 확인할 수 있을 뿐이다. 게다가 위에도 나와있지만 2배 많은 데이터를 처리해야 하기 때문에 그만큼 소비자의 기기 성능이 좋아야 한다는 문제가 있다. 더 결정적인건 48kHz 나 96kHz나 일반인은 물론 전문가가 들어도 별 차이 없다는 거다. 대부분의 디지털 악기는 48kHz 로 출력하고 앞으로도 그럴것이다. 그래서 현실적으로 스튜디오를 96kHz를 구성해도 큰 차이가 나질 않는다. 세계의 메이저급 스튜디오도 96kHz 레코딩 시설을 갖춘 경우가 별로 없다.

-> 그래서 48kHz, 24bit 가 산업계 표준이 되었다.

※ 비트깊이, 샘플링 레이트 변환

- 비트깊이의 변환은 자유로운 편이다. 비트깊이를 다운시키면 음질의 손실이 생기긴 하겠지만 그리 큰 차이 없다. 높이는 것도 그냥 의미없는 값으로 (0으로) 채워넣으면 되기 때문에 (대신 디지털상 음질은 당연히 똑같다) 문제 없다. 하지만 같은 24비트를 지원하는 DAC을 채용한 기기에서, 16bit 와 24bit 의 출력 회로가 다르게 구성되는 경우가 많기 때문에, 소프트웨어적으로라도 이를 업 스케일링(16bit 음원을 24bit 음원으로 비트깊이를 높이는 것)하면 음질 향상에 효과가 있는 경우가 많다.

- 하지만 샘플링 레이트의 변환은 전혀 다른 문제다. 어렵다. 이론상 없던 음이 생기고 실제로도 없는 음이 생기니까 말이다. 노이즈, 앨리어스라고 표현하는게 그거다. (이런 잡음을 들을수 있고 느낄 수 있느냐는 다른 문제다) 특히 배수로 변환(예를 들어 96kHz <-> 48kHz로 샘플링 레이트를 1/2 으로 줄이거나 2배로 늘이는것)하는건 그나마 덜 생기지만 48kHz -> 44.1kHz 등으로 변환하는건 훨씬 많이 생기기 때문에 사실상 안된다고 봐야 한다. 이런 경우는 48kHz 를 스피커로 출력한후 다시 마이크로 받아 44.1kHz으로 디지털 작업하는게 나은 경우도 있다. (이렇게 써 놓으니 실제로 못 들을것 처럼 써 놓았는데 그건 아니다. 필자도 구형 MP3 기기를 사용하기 위해서 샘플링 레이트를 변환해서 듣고 있다. 잡음이 유독 심하게 들어가는 극히 일부 음원(필자가 변환해본 음원의 1% 정도)을 제외하고는 유의미한 차이는 없다)

글쓴시간
분류 기술,IT
삼성 스마트폰 충전기

- 삼성에서 현재 판매하는 충전기는 아래와 같이 3종류로 요약 가능하다고 생각한다.

1. 5V-2.0A 충전기: 10W 충전기
2. 5V-2.0A,9V-1.67A 충전기: 15W 충전기
3. 5V-2.0A,9V-1.67A,12V-2.1A 충전기: 25W 충전기

이중에, 삼성의 AFC(Adaptive Fast Charging, 삼성의 독자적인 USB기반 스마트폰 고속 충전 기술)를 지원하는건 2 와 3 이다. 최대 전력양(와트W 수)가 높을수록 더 빨리 충전할 수 있다. (하지만 충전 효율은 최대 전력양에 비례하지 않는다)

※ 10W 충전기 ETA-U90K, EP-TA12K

사용자 삽입 이미지

- 입력: AC 100-240V 50-60Hz 0.35A
- 출력: DC 5.0V 2.0A

ETA-U90K 보다 EP-TA12K 이 나중에 나왔다. 서로 호환되지는 않는듯. 노트2의 경우 ETA-U90K을 써야 충전이 빠르다.

※ 15W 충전기 EP-TA20K

사용자 삽입 이미지

- 입력: AC 100-240V 50-60Hz 0.5A
- 출력: DC 5.0V 2.0A or 9.0V 1.67A

Adaptive Fast Charging 를 지원하는 충전기. 요즘나오는 삼성 스마트폰에 번들로 제공한다.

※ 25W 충전기 EP-TA300

사용자 삽입 이미지

- 입력: AC 100-240V 50-60Hz 1.0A
- 출력: DC 5.0V 2.0A or 9.0V 1.67A or 12.0V 2.1A

Adaptive Fast Charging 를 지원하는 충전기. 요즘나오는 삼성 태블릿에 번들로 제공된다. 위 두가지보다 크기가 확연히 차이난다.

※ 배터리는 무리하게 급속충전하면 수명이 급격하게 줄고 심지어는 터질 우려가 있기 때문에(아니 터지기 때문에) 배터리 잔량이 적고 배터리 온도가 낮을때에만 급속으로 충전하도록 설계되어있다. 이게 고 전력 충전기를 사용해도 배터리 충전 시간이 크게 차이나지 않는 이유다. 보통 AFC만 지원되면 만족할만한 충전 시간이 나온다.

※ 노트8에서 번들로 주는 충전기는 EP-TA20K이다. 별도로 EP-TA300도 구매해서 사용하고 있다.

※ 충전기와 충전 케이블은 반드시 정품을 사용하자. 충전기도 소모품이긴 하지만, 충전 케이블은 더 소모품이다. 케이블은 6개월 마다 한번 정도는 정품으로 구매해 사용하자.

- 정품이란, 온라인 몰에서 "정품" 이라고 판매하는 충전기 및 케이블을 말하는게 아니라, 삼성전자 서비스 센터, 삼성전자 대리점, 삼성전자 공식 온라인 판매점에서 판매하는 제품을 말한다. 충전기와 충전케이블만큼 가품이 많은것도 없으니 괜히 푼돈아끼려고 하지 말자. 특히 고속 충전을 제대로 사용하려면 반드시 정품 케이블 및 정품 충전기 사용해야 한다.
글쓴시간
분류 자동차
차량점검: 82500KM 엔진 점검, 엔진오일 교환

엔진오일이 새길래 점검을 해야 했다. 게다가 엔진도 심하게 떨려서 결국 근처 블루핸즈에 갔다.

1. 우선 엔진 뚜껑 부근으로 오일이 심하게 새고 있었다. 우선 가스켓 작업을 했다. 엔진 윗 뚜껑을 분리한 후 고무로 된 패킹을 교체하고 오일을 닦아내는 작업을 하고 이왕 하는거 엔진오일을 교체했다. 작업시간이 오래 걸린다. (2시간 정도 걸린다) 공임만 오만냥이다. 가스켓, 로커 커버 다 갈았다.

2. 그래도 엔진 떨림이 심해서 결국 기사말대로 이그니션(점화플러그)과 코일을 교체했다. 한개가 문제가 있었던 거지만 점화플러그는 하나만 갈면 안되는 부품이라 4개 전부 갈았다. 전부 신품으로 갈았고 (재생 부품 안썼음) 공임 꽤 나왔다.

총 28만냥 들었다. 에혀. 아방이도 슬슬 교체해야할 때가 온건감.

교체 결과는 물론 만족. 플라스틱 리벳도 부숴졌던것도 갈아줬다. 떨림은 완전히 없어졌고 엔진이 조용해졌다.

참고로 오일이 새는 경우 부품을 교체하고 오일 샌걸 전부 닦아내는데, 닦아낼 때 사용한 클리너가 수리 직후엔 완전히 없어지지 않는다. (닦아내지 않으면 다음번에 오일이 새는걸 확인하기가 어렵다) 엔진 시동후 30분 정도 지나면 클리너가 서서히 기화되면서 하얀 연기를 뿜어내며 날아가는데, 이게 모르는 사람이 보면 엔진 불난 줄 안다. (연기가 꽤 많이 난다) 주의.
글쓴시간
분류 문화,취미/음악
Star Sky - Two Steps From Hell




사용자 삽입 이미지

출처: https://unsplash.com




Here we are
우리는 여기 있어.
Riding the sky
하늘을 타고
Painting the night with sun
밤을 태양으로 칠하며
You and I, Mirrors of light
너와 나, 빛의 거울
Twin flames of fire
불꽃의 쌍둥이 화염
Lit in another time and place
다른 시간과 장소를 비춰.

I knew your name
너의 이름을 알았어
I knew your face
너의 얼굴을 알았어
Your love and grace
너의 사랑과 기품을 말야
Past and present now embrace
과거와 현재가 지금 포옹하고
Worlds collide in inner space
내부에서 세상이 충돌해
Unstoppable, the song we play
우리가 연주하는 노래는 멈출 수 없어

[코러스]
Burn the page for me
날 위해 그 페이지를 불태워줘
I cannot erase the time of sleep
난 그 잠잘 시간을 지울 수 없어
I cannot be loved so set me free
난 사랑받을 수 없으니 날 놓아줘
I cannot deliver your love or caress your soul so
난 너의 사랑을 전할 수 없고 네 영혼을 그렇게 보듬어줄 수 없어
Turn that page for me
날 위해 그 페이지를 넘겨줘
I cannot embrace the touch that you give
네가 주는 손길을 받아들일 수 없어
I cannot find solace in your words
너의 말에서 위로를 찾을 수 없어
I cannot deliver you your love or caress your soul
난 너의 사랑을 전할 수 없고 네 영혼을 보듬어줄 수도 없어

Age to age
시대에서 시대로
I feel the call
난 그 부름을 느껴
Memory of future dreams
미래의 꿈의 추억을
You and I, riding the sky
너와 나, 하늘을 타고
Keeping the fire bright
불을 밝게 유지하며
From another time and place
다른 시간과 공간에서

I knew your name
너의 이름을 알았어
I knew your face
너의 얼굴을 알았어
Your love and grace
너의 사랑과 기품을 말야
All of time can not erase
모든 시간을 지울 수는 없어
What our hearts remember stays
우리 가슴이 기억하고 있던
Forever on a song we play
우리가 연주하는 노래에서 영원했던

[코러스]