[{"data":1,"prerenderedAt":409},["ShallowReactive",2],{"project-43778081":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":42,"post_text":44,"what":45,"said":80,"maker_in_thread":147,"shape":158,"grid":163,"attempts":371,"same_week":372,"maker_shows":38,"maker_hidden":401,"reader_version":402,"card":403},"43778081","TacOS","My from-scratch OS kernel that runs DOOM","title","Show HN: My from-scratch OS kernel that runs DOOM","https:\u002F\u002Fgithub.com\u002FUnmappedStack\u002FTacOS","github.com","UnmappedStack",1745453722,2025,320,81,157,3837,5,"legend","infrastructure","hobby operating system kernel","other",[24,25,26,27],"hobby os kernel","doom port","from-scratch libc","unix-style vfs","mixed",0.315,{"positive":31,"neutral":32,"mixed":33,"critical":34},13,12,0,4,29,{"idea":37,"execution":39,"docs":41},{"positive":18,"critical":38},2,{"positive":40,"critical":38},1,{"positive":33,"critical":33},[43,33,18,18,33,43,43,43,40,33,33,43,18,43,43,18,33,33,43,43,40,18,18,43,18,43,18,43,18,18,33,33,33,33,33,33,40,33,33,18],3,"Hi there! I've been on-and-off working on TacOS for a few months, which follows some UNIX-derived concepts (exec\u002Ffork, unix-style VFS, etc) and is now able to run a port of Doom, with a fairly small amount of modifications, using my from-scratch libc. The performance is actually decent compared to what I expected. Very interested to hear your thoughts. Thank you!",{"problem":46,"audience":55,"pricing":55,"motivation":55,"time_to_build":56,"stack":63,"openness":77,"stage":78,"team_size":79},{"value":47,"source":48,"evidence":49},"Hobby project: building a UNIX-like operating system from scratch and running software on it","maker",[50,52],{"id":51},"post",{"id":53,"by":11,"text":54},"43779703","I use paging for virtual memory, which gives each process it's own address space. I have a round-robin scheduler connected to the PIT driver, so every 10ms the PIT fires an…",null,{"value":57,"source":48,"evidence":58},"Doom port took about a week, after a few months of groundwork",[59,62],{"id":60,"by":11,"text":61},"43779825","Well, it can do a little more than run Doom, that's just the latest milestone as to what was ported last. It wasn't a huge effort, maybe took a week or so to get Doom itself…",{"id":51},[64,70],{"value":65,"source":48,"evidence":66},"C",[67],{"id":68,"by":11,"text":69},"43799293","Mostly just because C is a lot simpler, and in kernel dev, simplicity is everything. I've used rust for other projects but I feel like in kernel dev I would much rather use a…",{"value":71,"source":48,"evidence":72},"DoomGeneric",[73,74],{"id":60,"by":11,"text":61},{"id":75,"by":11,"text":76},"43790653","Hi, I use DoomGeneric which is a portable fork of Doom. It's on a TempFS loaded from an initrd. I use doom1.wad.","unknown","prototype","solo",{"praise":81,"objections":82,"requests":102,"questions":116,"alternatives":135},[],[83,95],{"value":84,"source":85,"evidence":86},"Doom is a weak benchmark for OS capability","commenter",[87,91],{"id":88,"by":89,"text":90},"43780080","fr4nkr","Hurd isn't exactly a useful project, but using Doom as the benchmark for the capability of an OS is a bit ridiculous.",{"id":92,"by":93,"text":94},"43786942","justin66","Yeah, that's perfectly fair. I raised my question because it occurred to me this kind of sells the operating system short. In other words: even DOS could run Doom (with some help…",{"value":96,"source":85,"evidence":97},"Written in C rather than a memory-safe language",[98],{"id":99,"by":100,"text":101},"43791500","worldsavior","Very cool, but why choose an unsafe language when today there exists low-level memory-safe languages? We all know already that most of security bugs are memory related. I get…",[103,110],{"value":104,"source":85,"evidence":105},"Boot directly into Doom as a dedicated image",[106],{"id":107,"by":108,"text":109},"43778587","thewileyone","Dude, I'm impressed cause I don't the energy to build my own OS kernel! But here's a wacky idea. Just set it up so that the OS only runs DOOM as default. Boots directly into Qemu…",{"value":111,"source":48,"evidence":112},"Port Vim or similar editors",[113],{"id":114,"by":11,"text":115},"43778350","Yeah definitely an achievement I'm happy with. I've got a bit of refactoring to do, ANSI parsing etc then I'd like to port more - perhaps even Vim (or another portable Vim-like…",[117,128],{"value":118,"source":85,"evidence":119},"How process isolation and scheduling work",[120,124],{"id":121,"by":122,"text":123},"43779574","badmonster","Very cool project! How are you handling process isolation and scheduling in TacOS?",{"id":125,"by":126,"text":127},"43783626","NoScopeNinja","Really curious to learn more about TacOS. How does it manage running multiple programs safely at the same time?",{"value":129,"source":85,"evidence":130},"How to run it on a laptop",[131],{"id":132,"by":133,"text":134},"43778319","planck_tonne","Hi, congratulations! You must be feeling proud. Nice choice of proof of concept (DOOM). Sorry to disappoint you but all I have are some noob questions. What would be the steps to…",[136],{"value":137,"source":85,"evidence":138},"GNU Hurd",[139,143],{"id":140,"by":141,"text":142},"43778791","donnachangstein","A few months work by one guy and already more capable than the Hurd. Imagine what you could accomplish given 35 years.",{"id":144,"by":145,"text":146},"43779264","dxroshan","> A few months work by one guy and already more capable than the Hurd It is no way capable than Hurd. It is a cool project though. Have you used Hurd recently? It can run a…",{"comments":148,"answered":149,"key":150},21,11,[151,154,155],{"id":152,"text":153},"43778664","Not disappointed at all to answer! Running it on my laptop was literally just formatting a USB with the ISO and booting from the USB. I would recommend checking out…",{"id":60,"text":61},{"id":156,"text":157},"43780350","Yes, quite happy with real hardware. The kernel isn't exactly straight to Doom, it boots into a shell which you can just run Doom from, but yeah lol.",{"commenters":159,"max_depth":160,"maker_replies":148,"first_comment_mins":161,"lifespan_hours":162},50,7,31,47,[164,166,168,172,176,178,182,184,188,192,196,198,200,203,206,210,211,214,215,218,221,223,224,227,229,232,234,236,240,242,246,249,252,255,258,259,261,264,266,270,272,277,281,285,287,290,292,295,298,300,302,306,307,310,312,316,319,321,323,327,328,330,333,335,338,341,344,347,350,351,353,356,358,361,364,367],[132,33,43,165,133,33],"maker\u002Fneutral\u002Fnone",[152,33,33,167,11,40],"maker\u002Fneutral\u002Fdocs",[169,33,33,170,171,33],"43781379","other\u002Fneutral\u002Fdocs","khaledh",[173,40,18,174,175,33],"43779798","maker\u002Fpositive\u002Fidea","the_hoffa",[60,40,33,177,11,40],"project\u002Fneutral\u002Fidea",[179,38,18,180,181,33],"43779119","project\u002Fpositive\u002Fexecution","andrewmcwatters",[156,38,33,183,11,40],"project\u002Fneutral\u002Fexecution",[185,43,33,186,187,33],"43787034","other\u002Fneutral\u002Fidea","xhrpost",[189,43,33,190,191,33],"43788065","other\u002Fneutral\u002Fnone","dmwilcox",[193,34,43,194,195,33],"43780522","project\u002Fneutral\u002Fnone","tamat",[197,34,33,183,11,40],"43780590",[199,34,43,165,195,33],"43781049",[201,34,33,170,202,33],"43781339","noone_youknow",[204,18,43,165,205,33],"43786086","OSDeveloper",[207,18,33,208,209,33],"43786311","commenter\u002Fneutral\u002Fnone","kleiba",[75,18,33,165,11,40],[99,212,40,213,100,33],6,"project\u002Fcritical\u002Fexecution",[68,212,33,183,11,40],[216,160,33,190,217,33],"43779281","waschl",[219,160,33,220,11,40],"43779285","commenter\u002Fpositive\u002Fnone",[121,222,43,183,122,33],8,[53,222,33,183,11,40],[225,222,18,174,226,33],"43781988","balou23",[228,222,33,177,11,40],"43782462",[230,222,33,208,231,33],"43783981","MisterTea",[125,233,43,183,126,33],9,[235,233,33,170,231,33],"43783897",[237,238,43,183,239,33],"43780816",10,"finalhacker",[241,238,33,180,11,40],"43782261",[243,149,18,244,245,33],"43778265","project\u002Fpositive\u002Fidea","pkoird",[247,149,33,190,248,33],"43778453","aoki",[250,149,33,190,251,33],"43778712","khazhoux",[253,149,33,190,254,33],"43778961","Octoth0rpe",[256,149,33,190,257,33],"43785047","rzzzt",[107,32,43,177,108,33],[260,32,33,177,11,40],"43778679",[262,31,43,167,263,33],"43784149","throwawaymaths",[265,31,33,167,11,40],"43788436",[267,268,40,213,269,33],"43783529",14,"NoOn3",[271,268,33,183,11,40],"43789334",[273,274,18,275,276,33],"43780840",15,"project\u002Fpositive\u002Fnone","torcete",[278,279,18,275,280,33],"43780965",16,"kuberwastaken",[282,283,43,177,284,33],"43785199",17,"sarkron",[286,283,33,165,11,40],"43799297",[288,289,43,177,93,33],"43781839",18,[291,289,33,177,11,40],"43782133",[293,289,18,294,93,33],"43786948","maker\u002Fpositive\u002Fnone",[296,289,18,244,297,33],"43785566","toast0",[92,289,40,299,93,33],"project\u002Fcritical\u002Fidea",[301,289,33,177,11,40],"43788449",[303,304,18,275,305,33],"43778348",19,"gitroom",[114,304,33,177,11,40],[308,304,43,183,309,33],"43778590","edoceo",[311,304,33,183,11,40],"43778671",[313,314,18,275,315,33],"43779874",20,"halfer53",[317,148,18,275,318,33],"43782776","snappyleads",[140,320,18,244,141,33],22,[322,320,33,208,11,40],"43778843",[324,320,33,325,326,33],"43779089","commenter\u002Fcritical\u002Fnone","parl_match",[144,320,33,325,145,33],[329,320,33,208,141,33],"43779351",[331,320,33,208,332,33],"43779559","gertop",[334,320,33,208,145,33],"43779947",[336,320,33,190,337,33],"43780557","k__",[339,320,33,190,340,33],"43780678","shakna",[342,320,33,190,343,33],"43781257","blendergeek",[345,320,33,208,346,33],"43782873","anthk",[348,320,33,208,349,33],"43790524","amszmidt",[88,320,40,299,89,33],[352,320,33,190,11,40],"43780207",[354,320,33,190,355,33],"43780435","saagarjha",[357,320,33,190,11,40],"43780444",[359,320,33,190,360,33],"43780477","voxadam",[362,320,33,190,363,33],"43780538","mikehall314",[365,320,33,208,366,33],"43782561","notorandit",[368,369,18,275,370,33],"43778289",23,"KerbalNo15",[],[373,378,382,387,392,396],{"id":374,"name":375,"points":376,"category":377},"43820228","PyXL",983,"hardware",{"id":379,"name":380,"points":381,"category":20},"43803148","RetrOS-32",575,{"id":383,"name":384,"points":385,"category":386},"43816419","screenrecorder.me",462,"dev_tools",{"id":388,"name":389,"points":390,"category":391},"43835584","Beatsync",439,"creative",{"id":393,"name":394,"points":395,"category":391},"43791992","Clever Coloring Book",316,{"id":397,"name":398,"points":399,"category":400},"43831298","Reject Cookies",296,"web_saas",false,"v2",{"id":404,"name":5,"line":6,"ai":401,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":405,"top":18,"kw":406,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":407,"url":9,"mix":408,"praise":-1,"objection":84,"sub":21},43778081,0.32,[24,25,26,27],"3055033310035335003315535353550000001005",[31,32,33,34],1794036673393]