프로그램은 컴퓨팅시스템 위에서 돌아감.
ALU나 메모리를 사용하려면 시스템과 상호작용 해야되고 상호작용 방식은 시스템이 정의함.
시스템에 전원이 들어오면 처음으로 시스템이 수행할 동작같은건 전부 시스템이 정의하고 있고 자신을 움직일 프로그램이 어떤 형태를 가져야 하는지도 시스템이 정의하고 있음.
시스템은 사용자가 시스템 자신을 컨트롤 할 수 있을만큼의 기능만을 제공하는데 이러한 시스템을 더 효율적으로(여러개의 프로세스를 실행한다던가) 사용하기 위해 만들어진게 운영체제임.
그래서 모든 운영체제는 시스템과의 상호작용을 위한 최소한의 어셈블리어를 포함하고 있다.
시스템이 제공하는 최소한의 기능에 접근할 수 있는 프로그래밍 언어라면 전부 운영체제를 작성할 수 있음. 근데 이게 무슨 의미를 가짐? Go가 위대하다? 파이썬은 못났다? 그냥 본인의 무식함만을 광고하고 다니는 꼴인데
가비지 컬렉터 언어로 짠 os는 그만큼 안정적일거라고 생각한다.. 중단되었지만 ms에서 c#으로 새 커널을 만들던 프로젝트가 있었다
http://joeduffyblog.com/2015/11/03/blogging-about-midori/
토달려는건 아니고 '모든' 은 아니지. java simple os 나, 논리 머신들 위에서 돌아가는 os 들은 어셈블리어를 포함할 필요가 없으니. 물론 현실적인 동작과 성능을 위해 그런 경우 논리 머신이 기계어코드를 포함할 경우는 있지. 그런 경우에도 필요한 machine binary들을 resource 형태로 가질 수 있으니 "어셈블리어" 는 필수조건이 아니다.
ㅋㅋ FSM이라는 컴퓨팅 시스템을 운영하는 transition function도 어셈블리어가 없으니 어셈블리어가 필수조건이 아니라고 말할 기세네 ㅋㅋ
큰 맥락에선 문제없는 글인데, 다른 애의 글에서 statement 라고 지적하는 네 꼼꼼함에 비해 이 글은 별로 꼼꼼한 글은 아니란 느낌이 들어서 말이지.
안정적일거라는 추측이겠지, 그리고 뭐 운영체제를 만드는데 들인 시간에 비해서 대단히 안정적일 수는 있어도 그게 FreeBSD나 리눅스 시스템보다 안정적이라고 할 수 있을까? 하나의 아키텍쳐위에서는 따라잡는다 해도 현재 리눅스가 지원하는 아키텍쳐들을 대상으로도 그게 가능할까?
뭐 꼼꼼히 읽으라고 쓴 글도 아니고 꼼꼼히 적어봐야 알아먹을 새끼도 아니고 알아들을 내용만 적었는데 뭐 문제라도
커널이라는게 계속 개선되고 변경되기때매 없던 버그가 생길 수도 있고.. 장기적으로 보면 아예 커널을 managed 언어로 새로 짜는것이 필요하다고 본다..
내가 언급하지 않은 FSM 까지 들고올 필욘 없고~ 큰 맥락에서 문제 없다고 이미 적었지만, '모든' 이 눈에 걸려 언급했는데 뭐 문제라도?
버그야 managed 건 아니건 생기게 마련이지. managed 가 아니라고 해서 리소스관리가 모두 취약한건 아니고 말야. 대신 managed 인 환경에서 성능저하라는 비용적문제가 있으니까, 성능에 조금이라도 유리한 언어와 프레임웍을 사용하게 마련이고.
더 장기적으로 보면 버그가 존재할 수 없음이 증명된 커널을 작성하는게 필요하겠지
https://sel4.systems/
이미 만들어진 것도 있고 ㅋ
내가 언급 안한 논리머신을 들고오신분은 누구고~ 본인 잘난거 자랑하려고 쓰는거 누가봐도 알겠는데 추태좀 그만부리시길~
딱히 자극적인 글을 쓴 것 같지 않은데 ~~라고 말할기세네~ 추태~ 라는 표현을 쓰는 네 교양상태가 참 양호하심.
그럼 이 글 본문은 본인의 잘난거 자랑하려고 쓴것임?
니가 언급하지 않은 논리머신들 위에 돌아가는 os 를 os 가 아니다 라고 정의하기 힘드니까 이야기 한 거지.
너는 그냥 내 글에 댓글다는게 자극이란다~ 알면서 즐기는 꼬라지도 눈꼴사납네 ㅇㅇ 추태가 싫으시면 노망이라고 해드릴까요? ㅎㅎ
오버하는건 네 자유~
이 글은 밑에서 Go로 운영체제 뭐 어쩌구 저쩌구 하는놈을 까기위해 적은건데...마지막 문단 안읽었음?
너 자신은 지금 추태를 안부리고 있는것 같은가보지?
까는건 까더라도 네 글을 읽고 참고할 사람들을 위해서 부연설명한게 무슨 문제?
응뻐큐
땡큐~
추천해드렸습니다
근데 글 논리가 이상한듯