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

글쓴시간
분류 기술,IT
HTML 5.1, 5.2

소리소문도없이 나왔군요. 이것저것 찾아보다가 발견했습니다. 솔직히 HTML 개발자들도 HTML 스펙에 대해 관심 없을겁니다. 요즘엔 CSS 가 더 중요해져서 말이죠. 기능적인 면을 더 중시하는 기획자들이나, 이런 스펙 변화를 보겠죠.

처음에 논의되었던 HTML 5 기능중, 논의가 지지부진하게 된 게 몇가지 있습니다. 더 논의하기엔 시간 없어서(?) 아니면 당장 넣기엔 정리가 안되어서 일단 확정된것만이라도 간추려서 표준으로 만들었던거죠. 그래야 당시 브라우저 개발자들이 방향을 잡고 개발을 할 수 있었으니까요. 그렇게 2014년 10월에 HTML 5 표준이 발표되었습니다. (참고로 HTML 표준Standard이라는건 원래 없습니다. W3C의 권고Recommendation 입니다. 우리나라에서 "표준"이라고 말하는 것 뿐입니다)

그리고 2년 후인 2016년 11월에 HTML 5.1이 발표됩니다. HTML 5 를 보완한거죠. 기능 추가도 제법 되고, 기존 기능이 수정되거나 삭제된것도 있습니다. 자세한 사항은 하단 섹션의 URL 링크를 참고하시면 됩니다. 전 개인적으로 srcset 추가된게 마음에 드네요. 또한 appCache 삭제한건 잘한일이라 생각합니다.

다시 1년 후인 2017년 12월에 HTML 5.2 가 발표됩니다. 가장 큰 추가사항으로는 <style> 태그를 <body> 안에 넣어도 되게 되었네요. (제약은 있습니다. 아무곳에나 넣도록 된건 아니네요. 자세한건 스펙 확인) 이게 안되어서 왠지 신경쓰였는데요. 스펙 보다보니 약간 삽질도 했네요.

HTML 5는 이것 외에도 다른 몇가지 기능들이 더 추가되어있습니다. 그 기능의 스펙은 그쪽대로 표준안이 있죠. 예를 들면 Canvas, Web App, WebSocket, WebRTC, WebVTT 같은 기능들 말입니다. 이중에서 Canvas 와 WebRTC같은건 차세대 킬러 컨텐츠를 만들 수 있는 핵심이라고 생각합니다. 앞으로의 활동이 주목되는 이유죠.

----

HTML 5.1: https://www.w3.org/TR/html51/
HTML 5.2: https://www.w3.org/TR/html52/

HTML 5.1 변경사항: https://www.w3.org/TR/html51/changes.html#changes
HTML 5.2 변경사항: https://www.w3.org/TR/html52/changes.html#changes
글쓴시간
분류 기술,IT/임베디드
라즈베리파이 3 모델 B+

라즈베리 파이 3의 신형 버전이 나왔네요. 3월 14일 파이데이에 출시했습니다.

사용자 삽입 이미지

Raspberry Pi 3 B+



라즈베리 파이 3와 주요 차이점은 아래와 같습니다.

- CPU 업그레이드(1.2GHz -> 1.4GHz)
- 1Gbps 이더넷 지원 (USB 2 에 연결되어있어 실 최대 속도는 300Mbps 정도임)
- 802.11 ac 지원
- 전원 관리 모듈 강화
- PoE 를 지원할 수 있는 헤더 포함
- PXE 부팅, USB 저장장치 부팅 지원 향상
- 무선모듈 쉴딩

꽤 많이 바뀌었습니다. 업그레이드 할만 하네요. 특히 예전에 언급했던 기가비트 랜 지원이 맘에 드네요.

글쓴시간
분류 시사,사회
2018년 부동산에 대한 단상

십여년동안 전세값이 치솟다가 요즘은 전세가 남아돈다고 한다. 원래 3월이 부동산 비수기이긴 하지만, 그래도 전세가 남는다는건 좀 이상한 일이다. 찾아보니 집을 많이 산다고 한다. 앞으로 집값이 오를걸로 예상해서다.

- 솔찍히 말하자. 집값은 정부가 어떻게 할 수 있는게 아니다. 정부에서 손을 댈 수 있는 수준을 넘어선지 오래다. 경제력이 오르면 자연히 부동산 값은 오른다. 반대로 부동산 값이 떨어진다는건 심각한 의미다. 경제가 후퇴하고 있다는 의미이기 때문이다. 게다가 우리나라는 아직 집이 모자르기 때문에 집값은 오를 수 밖에 없다.

- 우리나라의 주택 보급률은 2018년 전국평균 104.2 이다. 서울지역만 따지면 95.9, 경기지역만 따지면 101.0 이다. 수치상으로만 봐도 모자르다는 의미다. 여기에 공실이라는게 있기때문에 더 모자르다. 필자는 공실률은 15% 정도는 되어야 한다고 생각한다. 그렇게 따지면 주택보급률이 120 정도는 되어야 주택이 모자르지 않게될거다.

- 문제는 주택보급률 120이 되면 전세는 없어지고 월세가 많아진다. (집값이 떨어지거나 보합세이기 때문에 집주인이 손해보지 않으려면 월세로 돌려야 되고 월세금액도 높아진다. 월세에는 집에 대한 감가삼각비용이 포함되기 마련이기 때문이다) 따라서 집 없는 사람들이 더 힘들어진다. 그래서 주택도 마음대로 팍팍 못 짓는다.

- 인터넷에서 집값 이야기 할 때면, "집값 떨어지면 집주인들 어떻하냐 ㅋㅋ" 라고 걱정하는 비주택소유자들도 많이 보인다. 실제 직장 동료들과 이야기할때도 그렇게 말하는 사람아 많다는걸 느낀다. 하지만 난 걱정하지 말라고 한마디 한다. 집 주인들 힘들어지기 전에, 집 없는 이들이 먼저 힘들어지기 때문이다. 쉽게 말하면 "세상에 '갑'이 손해보는경우 봤냐"

우리나라에서 집값이 오르는 이유는 간단하다. 집이 모자르다. 정말 집값 떨어뜨리고 싶으면 집을 더 짓자. 주택보급율 120% 를 목표로 말이다. (하지만 이렇게 해서 경제가 박살나도 난 책임 못진다)
글쓴시간
분류 이야기
인터넷에서 본 우스개 소리 하나

앞에서면         주동자
뒤에서면         배후세력
가운데서면       핵심세력
오른쪽에서면     우익
왼쪽에서면       좌익
하늘에있으면     높으신분
땅속에있으면     지하세력
따로떨어져있으면 점조직
집에있으면       비선실세

- 우스게가 우스게로만 치부될만한게 아닌게, 누군가가 다른이를 어떠한 방법으로든 엮을 수 있다는 의미. 이럴땐 아예 말을 않는게 상책이다.
글쓴시간
분류 시사,사회
출산율에 대한 단상

- 주변을 보면 결혼한 사람들은 아이를 2명 정도를 낳는것 같다. 일단 나만 해도 아이가 2명이고 말이다. 아이 혼자서는 심심하니깐 사회적 여건이 X같은게 문제지만 그래도 둘은 필요하다고 생각하는 부모들이 많으리라. 첫째 아이에게 해줄 수 있는 최고의 선물은 동생이다. 어렸을때는 싸우겠지만 크면 그런건 다 해결될테니 말이다.

- 우리나라의 합계출산률은 아직 2017년 통계가 안 나왔지만, 추정치로는 1.05 정도일 것이라고 한다. 원인은 애를 안 낳아서가 아니라, 결혼을 안해서다. 만약 결혼률이 1900년대 말과 비슷하다면 합계출산율은 2.0 근처까지 갈 것이라는게 전문가들의 의견이라고 한다. 그리고 내 생각도 마찬가지다.

- 일본이 이게 크게 문제가 되고 있다. 뭐 복합적인 원인이야 있겠지만 어쨌든 결혼을 기피하게 되고 그로 인히 인구수가 줄어들 위기라고 한다. 우리나라도 2010년 초반부터 이를 대비해왔으면 좀 더 나아졌을 겠지만 그 시기를 놓친게 아깝다. 물론 지금부터라도 대비책을 세워야 한다. 이민 받고 이런건 대비책이 아니니 말이다.

- 이민을 받는게 대비책이 안되는 이유는 이민 1세대들이야 우리나라에서 기피 업종에서 열심히 일해주겠지만 이민 2세대들은 그럴리가 없기 때문이다. 그리고 이게 결국 사회문제가 된다. 이민 2세대들은 보통 가난하기 때문. 그럼 그들을 캐어해주기 위해 또다시 세금을 사용해야 한다. 결과적으로는 해결이 안되는 셈이다.

- 그냥 파격적으로 출산율 정책을 마련하는게 좋다고 생각한다. 아이들의 보육과 교육을 국가에서 100% 책임만 져 줘도 이지경까지 안되었으리라.
글쓴시간
분류 문화,취미/검은사막 모바일
검은사막 모바일

검은사막 모바일을 시작했다. 그동안 AxE를 하다가 주변의 권유에 의해 시작.

사용자 삽입 이미지

아직은 뭐가 뭔지 잘 모르겠지만, 당분간은 AxE와 병행해 할 거 같다. 언제까지 할지는 모르겠지만 그래도 6개월은 하겠지.

사용자 삽입 이미지

검은사막 위치. 의상은 꿈꾸는 별. 이 의상은 오픈 직후에 나왔다.


서버는 브레디. 캐릭터는 당연히 위치. 예쁘다. 검은사막 모바일은 캐릭터 꾸밀수 있게 많이 해 놓았는데, 일단 시간이 없어 머리하고 얼굴만 간단하게 터치했다. 나중에 시간나면 나머지도 손을 볼 생각이다. ㅎㅎ

사용자 삽입 이미지

첫번째날 에일린과 함께




글쓴시간
분류 문화,취미/Hi-Fi,PC-Fi
비트 퍼펙트(Bit Perfect)

- 음원의 비트깊이/샘플링레이트와 출력하는 기기(사운드 카드 또는 DAC)의 비트깊이/샘플링레이트가 동일하도록 재생하는 기법을 비트 퍼팩트(Bit Perfect)라고 부른다. 음악 감상에 있어, 음질을 향상시키기 위해 사용하는 기법중 하나다.

- 현재 시판되는 음원은 CD의 비트깊이/샘플링레이트인 16bit/44.1kHz (줄여서 44/16 이라 함)이라는 스펙을 가지고 있다. 오디오 플레이어 프로그램에서 이런 사양의 음원을 재생하면, 44/16 스펙으로 OS(예를 들어 윈도10)를 통해 출력기기(=사운드 카드)에 전달하고, 출력기기는 이를 아날로그로 변환해 스피커로 출력한다.

사용자 삽입 이미지

ASUS 홈페이지에 설명된 BitPerfect 도식. 두개의 그림중 위 그림이 비트퍼팩트다.



- 당연해 보이지만 이걸 이야기 하는건 OS로 음원 데이터가 전달될 때 암묵적으로 비트깊이나 샘플링레이트가 "변환"되곤하기 때문이다.

- 출력기기의 비트깊이/샘플링레이트는 사운드 카드 및 운영체제마다 다르다. 윈도10이나 리눅스 운영체제의 최신 버전은 사운드카드의 스펙을 그대로 사용할 수 있으며, 안드로이드 운영체제도 5.0 이후부터는 외장 DAC를 사용해 비트 퍼팩트 재생을 할 수 있다. 바꿔 말하면 출력되는 비트깊이/샘플링레이트는 사운드카드의 스펙 뿐만 아니라 OS의 기능에도 영향을 받는다는 의미다.

- 안드로이드에서의 비트 퍼펙트는 후술하기로 하고 여기서는 윈도만 다룬다.

- 기본적으로 윈도 OS는 "커널 믹서"를 통해 오디오를 출력한다. 믹서라는걸 만든 이유는 여러가지 애플리케이션에서 동시에 음악을 출력하기 위함이다. 예를 들면 팟 플레이어로 음악을 틀고, 크롬 브라우저로 유튜브에 접속해 영상을 플레이하면, 두개의 음악이 섞여서 동시에 나온다. 하지만 기술적으로 하나의 사운드카드는 하나의 스펙으로 데이터를 받아 스피커로 출력할 수 있다. 그렇기 때문에, 두개 이상의 앱에서 동시에 오디오를 출력하려는 경우, 소프트웨어적으로 두개 이상의 음악 데이터를 받아 하나로 합한 후(이걸 믹싱Mixing이라 한다) 합한 데이터를 사운드카드로 보내 출력한다. 이렇게 되면 사용자는 두개의 소리가 동시에 나는 것 처럼 들리게 된다.

- 하나로 합하려면 각각의 음악 스펙이 동일해야 한다. 예를 들어 16bit/44.1kHz 음원과 24bit/48kHz 음원은 하나로 합할 수 없다. 한쪽을 다른쪽 스펙으로 변환시켜야 한다. 어떤 스펙의 음원을 사용할지 알 수 없는 상황이기 때문에, 윈도OS에서는 사용할 스펙을 사용자가 정해 놓을 수 있다. 기본값은 16bit/48kHz 다. 따라서 설정을 건드리지 않으면 모든 음악이 16bit/48kHz 으로 변환되서 재생되게 된다.

사용자 삽입 이미지

윈도10의 믹서 컨트롤 패널. PotPlayer 와 Chrome 에서 오디오를 출력중이다.


- 보통은 샘플링레이트 변환이나 비트 깊이 변환 작업이 크게 문제가 되지 않지만 좋은 스피커를 사용하다 보면 음이 뭔가 이상하다는 것을 서서히 느낄 수 있다. 특히 좋아하는 곡(=많이 들어본 곡)을 좋은 스피커로 (좋은 스피커가 비싼 스피커라는건 아니지만 보통 시중에서 판매되는 20만원 이상의 스피커)로 계속 듣다보면 음이 뭉개지는 듯한 느낌이 들기도 한다. 이는 믹싱 과정에서 미세한 잡음이 포함되기 때문이기도 하고, 특히 믹서에서 합해야 하는 음원의 비트깊이/샘플링레이트가 서로 다른 경우, 동일한 비트깊이/샘플링레이트가 되도록 변환한 후 믹싱해야 하는데, 비트깊이/샘플링레이트 변환 과정에서 손실이 발생하기 때문이다. 전에 쓴 글에서 비트깊이의 변환은 큰 문제 없지만 샘플링레이트의 변환은 문제의 소지가 많다고 쓴 걸 기억하자.

- 즉 FLAC나 MP3같은 손실/비손실 음원이 문제가 아니라는 거다. 비트 퍼팩트가 아니면 재생할 때 변환하느라고 손실이 발생한다. 그것도 운영체제 단에서 말이다. 필자는 MP3 코덱으로 인한 손실보다 믹싱으로 인한 손실이 더 크다고 생각한다. OS에서 제공하는 기본 변환소프트웨어는 성능을 중요시했기 때문에 음질이 좋지 않다.

- 그래서 이런걸 변환하지 말고, 즉 "커널 믹서"를 거치지 않고 사운드 카드를 오디오 플레이어에서 독점적으로 (믹서를 사용하지 않기 때문에 동시에 2개 이상의 프로그램에서 사운드 카드를 사용할 수 없다) 사용해 음악 파일의 음원 데이터를 직접 써주도록 하는게 비트 퍼펙트다. 만약 음원이 24bit/48kHz 라면, 사운드카드도 24bit/48kHz 를 지원하는 경우 이 스펙대로 사운드 카드에 직접 전달하고 스피커로 출력하는 것이다. 그렇게 되면 손실 및 변환되지 않은 음악을 들을 수 있게 된다.

- 반대로 음원이 24bit/48kHz 인데, 사운드 카드가 이 스펙을 지원하지 못하면 플레이가 안된다. 이런 경우는 비트 퍼팩트로 플레이 할 수 없고 믹서를 거쳐야 한다. 즉 음원의 비트깊이/샘플링레이트를 사운드 카드가 지원해야 한다.

- 윈도 10 에서 비트 퍼펙트를 사용하려면, 이를 지원하는 오디오 플레이어를 사용하면 된다. 윈도의 "ASIO" 나 "WASAPI 독점 모드"를 사용할 수 있는 플레이어가 바로 비트퍼팩트 지원 플레이어다.

- "푸바2000"이란 프로그램을 을 사용하고 있다면 아래와 같이 세팅한다.

사용자 삽입 이미지

푸바2000의 WASAPI 설정


1. https://www.foobar2000.org/download 에서 foobar2000 을 받아 설치
2. https://www.foobar2000.org/components 에서 "WASAPI output support"을 클릭해 다운로드. 다운로드된 것을 더블클릭하면 foobar2000 의 플러그인으로써 설치됨
3. foobar200 을 실행한 후 Preference - Output 에서 Device 패널의 드롭다운 버튼을 클릭하면 WASAPI(event) 가 있으며 이중에서 원하는 장치를 선택. Output format 은 장치가 지원하는 최대 비트수로 설정. Apply 를 클릭해 적용한다.
4. 음원 재생해본다. 좋은 스피커에서 자꾸 듣다보면 뭔가 달라졌다는게 느껴질 것이다.

- 현재 장치가 지원하는 최대 스펙은 아래와 같이 "오디오 기본 형식" 설정 창을 통해 확인할 수 있다.

1. 윈도10의 제어판-검색에서 "소리"를 입력후 검색된 아이콘에서 소리 선택
2. 재생 탭에서 원하는 장치를 더블 클릭
3. 고급 탭에 보면 기본 형식을 선택할 수 있음. 여기 나오는 스펙들이 현재 사운드 카드에서 지원되는 스펙임
4. 하단의 단독모드 체크박스를 모두 선택하고 확인 버튼 선택
-> 굉장히 많은 내장 음악카드에서 44.1kHz 출력 지원하지 않는다. 보통 16bit/48kHz 를 지원한다.
-> 필자의 PC의 경우 아래와 같이 지원된다.

사용자 삽입 이미지

----

2023.09.28 업데이트

foobar 2000 최신 버전에는 아래와 같이 장치별로 exclusive 드라이버를 지원한다. 따라서 위에서 소개한 WASAPI output support 플러그인을 설치할 필요 없이 [exclusive] 장치를 선택하면 된다.

사용자 삽입 이미지
글쓴시간
분류 문화,취미/Hi-Fi,PC-Fi
가청 주파수 대역

- 사람의 가청 주파수 대역은 일반적으로 20~20,000Hz 으로 알려져 있다. 맞는 이야기이긴 하지만, 생각하는 것과 다른 점이 하나 있다. 사람의 경우 나이가 들면 점점 가청 대역이 줄어든다는 사실이다. 20kHz 를 듣는 건 아기들이나 가능하다. 나이가 들면 들수록 점점 낮아진다. 20세인 경우 약 16kHz 까지, 30세인 경우 14kHz 정도까지, 그리고 그 이후에는 12kHz 정도다. 나이를 더 먹으면 최대 8kHz 정도까지 듣는다.

- 8kHz 라고 하니 매우 낮은 음일 것 같지만 엄청 높은 음이다.

- 피아노가 내는 가장 낮은 음의 주파수가 27.5Hz (0 옥타브 라, A0), 높은 음이 4186.01Hz (8 옥타브 도, C8) 이다. 20kHz 는 10옥타브에 해당된다.

- 소프라노 가수가 내는 목소리의 최대 주파수가 1.2kHz 정도, 베이스 가수가 내는 최저 주파수가 87Hz 정도다.

- 하지만 기본주파수가 이렇다는 거고, 배음(하모닉스)을 감안하면 더 높은 음이 나온다.  보통 기준이 되는 주파수에 2배에서 4배정도 한다. 따라서 피아노의 C8음은 배음이 16kHz 까지 나올 수 있다는 이야기다. 물론 더 높은 음도 나오지만 어차피 우리는 듣지 못하기 때문에 그 음이 있던 없던 상관 없다.

- 20kHz 이상의 영역은 듣는게 아니라 느낀다는 설도 있지만 아직 정론으로 받아들여진건 아닌걸로 알고 있다. 당분간(그리고 아마 앞으로도)

- 자신의 가청 대역은 http://www.ultrasonic-ringtones.com/ 에서 확인해볼 수 있다.

사용자 삽입 이미지

http://www.ultrasonic-ringtones.com/



높은음을 못 듣는다고 문제될건 없다. 14kHz 까지만 들어도 음악 감상, 심지어는 클래식 음악 감상에 차이 없으니깐. 중요한건 높은음, 낮은음을 들을 수 있느냐가 아니라, 작은음을 들을 수 있느냐다. 작은음을 잘 못 들으면 빨리 병원 가야 한다.
글쓴시간
분류 기술,IT
스펙터(Spectre) 보안 버그

사용자 삽입 이미지

스펙터 보안 버그의 로고. 유령(Ghost)이 나뭇가지(Branch)를 들고 있다. ^^


멜트다운 보안 버그에 이어 스펙터 보안버그도 알려졌습니다. 이건 좀 더 심각한게 멜트다운을 일으키는 OoOE(Out-of-Order Execution, 비순차적 실행)기능은 최신 CPU에만 들어가있는 기능이라 영향받는 CPU종류가 상대적으로 적습니다만, 스펙터 버그는 파이프라인(Pipeline)을 사용하는 대부분의 CPU에서 사용하는 Branch Prediction (분기예측)기능에 문제가 있는거라 영향 받는 범위가 더 많습니다. (마이크로 컨트롤러나 조그마한 기기에 사용되는 CPU를 제외하고는 모두 파이프라인 및 분기예측을 사용하고 있습니다) 인텔CPU는 물론 AMD CPU, 그리고 ARM 계열 CPU의 일부는 문제가 있다고 알려졌고, 그외에도 분기예측을 하는 모든 CPU들이 이런 문제를 내포하고 있을 수 있으므로 발표를 기다려 봐야 합니다. 라즈베리파이는 문제 없다고 발표 했습니다. (Why Raspberry Pi isn’t vulnerable to Spectre or Meltdown)

결과적으로 이 버그를 사용하면 특정 프로세스가 다른 프로세서에 매핑된 메모리를 볼 수 있게 합니다. 이것 역시 상당히 중대한 버그입니다. 프로세스별로 메모리 분리된다는건 기본 중의 기본 원칙인데, 이게 깨지는 거니까요. 보안에서 샌드박스 기법을 무력화 시키는 셈이 됩니다.

예측 분기 기술은 오래전부터 사용하던거라 영향받는 CPU가 많습니다. ARM CPU도 영향 받는다는건 안드로이드 스마트폰 기기도 영향 받는다는 의미입니다. 그나마 다행인건 제가 쓰는 갤럭시 노트8에 사용되는 Coretex-53 코어는 영향이 없다네요. (Vulnerability of Speculative Processors to Cache Timing Side-Channel Mechanism)

재미있는건 자바스크립트 JIT에도 이런 버그가 숨어있다고 합니다. 즉 브라우저를 사용해도 문제가 생길 수 있다는 겁니다. 모질라와 구글은 이에 대한 대응을 하고 있구요. 대응방법은 아래에 있습니다.

그나마 다행인건 이버그를 활용해 해커가 데이터를 빼내는건 좀 어렵다고 하네요.


----

2023.02.14 추가

이 버그는 2018.01 에 알려진 버그로 해결하려면 반드시 바이오스 패치(또는 마이크로 코드 업데이트)가 필요하다. 보통 2018.04 에 발표된 보안 버그 수정 관련된 바이오스를 사용하면 해결된다.

코어 시리즈는 모두 영향 받는데, 마더보드 제조사에서는 보통 하스웰 지원 마더보드까지 패치를 지원해줬다. 마더보드 제조사의 펌웨어 업데이트를 확인하고 2018.04 에 출시된 바이오스를 적용하자. Asrock 제조사의 경우 아이스레이크 CPU 지원하는 마더보드에서도 패치가 있다고 하니 이것도 찾아보자.

예를 들어 ASUS B85M-G  의 경우 아래 화면 같이 2015.08 에 나온 바이오스가 마지막이었지만 이 버그가 알려진 이후 2018.04 에 마이크로 코드 패치가 올라와있다. 바로 적용해주자.

사용자 삽입 이미지

ASRock 의 경우 7x 보드에서도 마이크로 코드 업데이트를 지원해주는 경우가 있다. 확인해보자.

----

- 크롬 63의 최신버전에서 대응
chrome://flags#enable-site-per-process 에서 사용으로 설정

- 불여우 57의 최신버전에서  대응
about:config 에서 privacy.firstparty.isolate 를 true 으로 설정


----

Meltdown and Spectre

Reading privileged memory with a side-channel

Bounds Check Bypass

Branch Target Injection
글쓴시간
분류 기술,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

----

2024.07.01 추가

2004년 현재 인텔에선 이 문제를 해결하지 못했습니다. 여기서 해결이란 펌웨어 업데이트로 땜질하는걸 말하는게 아닙니다. 근본적으로 고쳐야 하는 이슈고, CPU 의 구조적인 문제인데 어떻게 할 수 없나보네요. 이 문제가 나왔던 2018년 초만 해도 몇 년 안에 해결할 수 있을거라 생각했습니다. 하지만 5년이 넘은 지금도 해결안되었네요. 혹자는 인텔이 행한 과도한 원가절감과 R&D 인력을 해고한 덕분이라고도 하네요. 한때 기술의 인텔이라 불렸는데 아직까지 해결못한건 좀 씁슬하네요.