리눅스 데스크톱으로의 여정에서 느껴지는 딜레마 몇가지
By 파란오이의 Beautiful Life | 2022년 8월 3일 |
최근 음... 몇 가지 이유로 노트북 한 대만 남기고는 모두 최신 리눅스 배포판으로 옮겨가고자 하는 시도를 해 본 적이 있습니다. 지난 블로그 포스팅을 보니 대략 한 달이 조금 넘었군요. 이런 시도를 해 봤던 마지막 시기가 근 10여년 전이니, 시대가 많이 바뀌긴 했습니다. 그리고 예전에 예상했던 문제들은 거의 다 해결된 모습이지만, 미처 예상치 못했던 문제 몇 가지가 발목을 잡아 딜레마를 만들고 있었습니다. 1. 이제 음... 메이저급 리눅스 배포판에서 대부분의 작업은 무리없이 잘 될 겁니다. 이건 오픈소스 생태계가 발전된 것도 있고, 구글과 크로미엄을 필두로 웹 생태계가 크게 확장된 것도 있습니다. 심지어 예전에는 참 삐걱대던 Wine 조차 이제는 오피스나 카카오톡 같은 앱들을 큰 무리 없이 돌려
MS, 베데스다와 계열사를 인수하다
By eggry.lab | 2020년 9월 21일 |
차세대 엑스박스 예약판매 하루 전날의 폭탄 같은 소식입니다. 마이크로소프트가 베데스다의 모회사인 제니맥스 미디어를 인수한다고 발표했습니다. 75억 달러의 현금에 의한 즉석 구매라고 합니다. 뉴스 타이틀은 대개 베데스다 인수로 나가고 있습니다만, 지분구조로 볼 때는 정확히는 제니맥스 인수입니다. 흔히 베데스다 자회사인 양 여겨지는 id 소프트웨어나 아케인, 머신게임즈 등도 사실 제니맥스 밑에서 베데스다와 같은 계층에 있는 회사입니다. 하지만 제니맥스 자체는 그냥 지주회사일 뿐이니 베데스다라고 하는 게 더 잘 통하긴 하겠죠. 이로써 MS는 엘더스크롤, 폴아웃, 둠, 퀘이크, 울펜슈타인, 프레이, 디스아너드, 이블위딘, 스타필드 등을 보유하게 되었습니다. 물론 새로 나올 예정인 '데스루프'나
[라즈베리파이][리눅스커널] 인터럽트 컨택스트에서 스케쥴링을 하면?
By Guillermo Austin Kim | 2018년 6월 16일 |
인터럽트 컨택스트에서 프로세스가 휴면하면 어떤 일이 벌어질까요? 커널은 이를 감지하고 커널 패닉을 유발시킵니다. 인터럽트 컨택스트에서 스케쥴링을 하면 안 됩니다. 왜냐면, 짧은 시간에 인터럽트 핸들러를 실행하고 인터럽트 벡터로 다시 돌아가 이미 중단시킨 프로세스를 다시 동작시켜야 하기 때문입니다. 그런데 인터럽트 컨택스트에서 스케쥴링을 하면 커널 입장에서 많은 동작을 수행해야 합니다. 당연히 시간이 오래 걸립니다. 이제 인터럽트 컨택스트에서 스케쥴링 할 때 어떤 흐름으로 커널 패닉이 발생하는지 살펴보겠습니다. 프로세스가 스케쥴링 즉 휴면할 때 __schedule() 함수를 호출합니다. 이 함수를 열어보면 앞 단에 schedule_debug()란 함수를 호출해서 현재 프로세스가 휴면할 수 있는 조건인지 점검
[라즈베리파이] 프로세스: 태스트디스크립터(프로세스 연관관계)
By Guillermo Austin Kim | 2019년 1월 31일 |
이전 시간에 유저 공간에서 생성한 모든 프로세스의 부모 프로세스는 init 이고 커널 공간에서 생성한 커널 스레드(프로세스)의 부모 프로세스는 kthreadd라고 했습니다. 태스크 디스크립터에서는 프로세스의 부모와 자식 관계를 상세히 알 수 있습니다. struct task_struct *real_parent; 프로세스를 생성한 부모 프로세스의 태스크 디스크립터 주소를 저장합니다. struct task_struct *parent; 부모 프로세스를 의미합니다. real_parent 란 멤버는 해당 프로세스를 생성해준 프로세스를 의미합니다. 그런데 자식 프로세스 입장에서 부모 프로세스가 소멸된 경우 부모 프로세스를 다른 프로세스로 지정합니다. 프로세스 계층 구조에서 지정한 부모 프로세스가 없을 경우 in