31 ms·
Lilith: x86-64 OS written in Crystal
- kick 7y agoThis is really impressive! Crystal was just barely on my radar until now: it's a lot higher up now. For anyone unfamiliar: https://crystal-lang.org/ https://crystal-lang.org/
- sergiotapia 7y agoCrystal has the most badass color on Github. Solid black.
- lykr0n 7y agoWow. That's impressive. Crystal is a solid alternative to Go. I gave it a solid look when figuring out which language I should learn. The only reason Crystal didn't make it is because it's just missing some core features. The one that sticks out is there is no way to get the length of a channel last time I looked. But this is impressive and I can't wait to see what's next
- deleted 7y ago[deleted]
- todotask 7y agoI have the same feeling as yours. I wish Crystal web server could be customisable, and lack of gRPC, HTTP/2 (only separate repo) and QUIC going to take more time to implement.
- Thaxll 7y agoIt's missing many things that make it a viable language: - libraries - community - support The language itself is not even finish or properly tested.
- todotask 7y agoI can only see 1,209 repos after using Crystal for close to a year, some are no longer maintained. https://github.com/topics/crystal https://github.com/topics/crystal There are lacking of stories around the cloud computing or any large businesses has success with Crystal. They need more of those to gain support if they don’t want to remain in “uncharted territory” which mentioned in their interview.
- kimburgess 7y agohttps://crystalshards.xyz/ https://crystalshards.xyz/ is the de facto aggregator of various libs for the language.
- todotask 7y agoI’m aware of this nice site, but I think you are aware Kemal threw an unfriendly message error when you reach to the last page? 100’s shards on each page is rather slow and limited options to search, I would prefer to stick to Github or self-host with Github API that supported some language. https://crystalshards.xyz/?&sort=updated&page=11 https://crystalshards.xyz/?&sort=updated&page=11
- lostgame 7y agoWhat is that beautiful desktop wallpaper? any source?
- sciolistse 7y agoThere's a link at the bottom of the readme. https://www.pixiv.net/en/artworks/78375860 https://www.pixiv.net/en/artworks/78375860 Seems to require login, though.
- userbinator 7y agoView Source, and you can find the direct link... https:// https:// i.pximg.net /img-original/img/2019/12/20/00/00/03/78375860_p0.png (Deliberately made unclickable, because you will get a 403 unless you send the correct Referer.)
- lostgame 7y agoNot sure why this was downvoted, but thank you guys so much. I attempted to view source and couldn’t find the image personally.
- asutekku 7y agoBecause it was mentioned in the bottom of readme.
- jchw 7y agoWow. Preemptive multitasking, graphical window management, POSIX-like, in a programming language that to my knowledge it hasn't yet been done in... and in just several months of work. There's no smoke and mirrors as far as I can tell. I dug back to the initial commit: https://github.com/ffwff/lilith/commit/c9fa1053dc6a22d630ee62163d3504f4c003cea8 https://github.com/ffwff/lilith/commit/c9fa1053dc6a22d630ee6... - and it's just bootstrapping to VGA. Very well done, and inspiring. Makes me want to try OS dev again.
- mberning 7y agoAgreed. Super impressive. I really like Crystal and hope it continues to get traction.
- onlyrealcuzzo 7y agoMaybe it's just because I come from Ruby, but Crystal seems like an amazing language. I'm interested why it seems to be getting little attention compared to Go, Rust, & Julia. It seems in the same league to me. Kotlin and Swift have more obvious reasons for their adoption.
- lmm 7y agoWhat's Crystal's unique selling point? It's older than Rust, Kotlin, Swift, Nim, or even OCaml, and doesn't really offer anything they don't. More Ruby-like syntax? Fine, but most people don't particularly like Ruby syntax.
- arthurcolle 7y agoI don't even know what to say, but you are definitely the captain now.
- spoofedip 7y agoNeat project, though slightly undermined by the drawing of the half-naked underage girl in the readme
- empy 7y agoIt's obvious the author is a pedo guy.
- bepvte 7y agoI dont believe she is underage. But she is half naked
- klyrs 7y agoAnd the windows are carefully positioned as to put her at the focus of the screenshot. And the project is named after a succubus? The overt objectification is unnecessary and unprofessional.
- odkamkfn 7y agothe "overt objectification" (i'm cringing at the prudishness) makes the project better. hobby projects shouldn't be bound by the moral (really aesthetic) sense of corporate america.
- yjftsjthsd-h 7y ago> unprofessional It's... not professional. It's a (neat) hobby project.
- PixyMisa 7y agoLighten up, Francis.
- pinopinopino 7y agoOne she is not underaged. More like 20 something. Two, it can also be named after the anime, Lilith. Three, even so, nothing wrong about naming something after a succubus. Four, I don't see the objectification. The objectification only exists in your mind. Five, it is not a professional project. Also good for him that he didn't take the CoC (pun intended).
- deleted 7y ago[deleted]
- martinesko36 7y agoIs the dev a high school student? From their blog: https://fw.neocities.org/blog/5.html https://fw.neocities.org/blog/5.html If so, this is crazy impressive.
- tndl 7y agoApparently they've also written a language, a static site generator in that language, a brainf*ck interpreter, and a markdown parser, among other things. Super impressive stuff. https://github.com/ffwff?tab=repositories https://github.com/ffwff?tab=repositories
- ssivark 7y agoIf so, it is definitely mind-bending. Makes me wonder what people mean about not being over-ambitious, "avoiding NIH", "worse is better", "minimizing technical risk", etc. Somehow one is made to feel (by no particular person, but by the composite emergent vibe) that there are a hundred and one reasons to be more conservative. I wonder how many people have the audacity to re-imagine their software ground-up, and the technical chops to actually implement it. The verve is refreshing. Kudos to the author, and also thanks.
- kick 7y agoThe Soul of a New Machine has an amazing passage on a software developer from Data General being too inexperienced to realize that what he was doing couldn't be done, and finishing it in record time. It's safe to say that people who aren't aware of or ignore limits put out better work on average than people who don't.
- hota_mazi 7y agoTwo things that I immediately respected about Crystal's landing page [1]: - It shows numerous code snippets covering various functionalities. Not just "Hello world" but code samples that give you a very solid flavor of the language. - Its spinning logo can be manipulated with the mouse. [1] https://crystal-lang.org/ https://crystal-lang.org/
- andrekandre 7y agoi really like that spinning crystal; its a small thing really, but i find it very endearing
- xbhdhdhd 7y agoJust this morning I was pondering the same thing in Elixir. I wonder if Elixir and Crystal compete for ruby developers to pick up
- andykx 7y agoI think Ruby developers are a lot more likely to switch to Crystal than Elixir. Elixir encourages a much more functional style than I think Ruby developers are used to.
- tomc1985 7y agoProbably depends on the type of Ruby developer. As a Rails guy Elixir seems more useful for my day-to-day but Crystal is indeed compelling.
- todotask 7y agoWhen I did a comparison: Crystal has 1,209 repos https://github.com/topics/crystal https://github.com/topics/crystal Ruby has 19,721 https://github.com/topics/ruby https://github.com/topics/ruby For those who needs performance for specific tasks, the option is easy since it’s a small investment to learn Crystal but Elixir is mature. If we are targeting DevOp, other languages has several advantage like Go for microservices and could be work within mobile app.
- conradfr 7y agoThere is definitely a lot of Elixir developers who come from Ruby. I mean José Valim himself was a core RoR team member. I'm trying to find an Elixir job right now and pretty much all of these comes with a RoR requirement. (also it seems some companies are moving from Elixir to Go). As I'm mostly a PHP / Symfony guy I feel the disconnect, and at my current place people really don't care about Elixir at all. Basically Go and Node would be much better prospect for me.
- abhijat 7y agoInterestingly apart from the ruby like syntax they seem to be quite different languages from my limited exposure, in terms of the domains they target (elixir - distributed systems, crystal - whatever go/rust are known for minus distributed systems?), the type system (dynamic vs static), deployment story (elixir - mix based, crystal - binary deployment), the standard libraries they leverage etc. It seems the sum total of them covers a lot of ground from writing quick CLI apps to large distributed systems for developers familiar with Ruby.
- gigatexal 7y agoThe name is great too! Just in time for co-marketing with Diablo 4 ;)
- pjmlp 7y agoLovely, very inspiring to see "not yet another UNIX clone in C", in a language like Crystal. Wishes of a successful long term project. I will be adding it to my OS list.
- pjmlp 7y agoI just missed it on my earlier comment. Homage to the Modula-2 OS, Lilith? https://en.m.wikipedia.org/wiki/Lilith_(computer) https://en.m.wikipedia.org/wiki/Lilith_(computer) http://pascal.hansotten.com/niklaus-wirth/lilith/ http://pascal.hansotten.com/niklaus-wirth/lilith/
- ffwff 7y agoCool coincidence but nah. Maybe its a reference to the first angel in Evangelion? Maybe its a reference to Adam's wife? Maybe its best girl from Machikado Mazoku? Hint: asuka best girl.
- fsiefken 7y agoSo how would this compare performance wise to a lightweight linux with lxde? Can you run this on a raspberry pi and get good performance? What are the minimal memory requirements?
- saagarjha 7y agoI doubt this is usable for general purpose work; many filesystem interfaces are unimplemented.
- unixhero 7y agoCrystal is soo good. I could read the code and understand it.
- maxpert 7y agoI've been following Crystal for long time (Shameless plug I've been running a geo-location service in production for years now https://gitlab.com/maxpert/crlocator https://gitlab.com/maxpert/crlocator and it works flawlessly). Despite the setbacks in past Crystal has continued to evolve and I am waiting for fully baked version 1. I am not surprised that Crystal can pull of something like running a complete operating system. Modern language landscape is getting populated and brings novel ideas (Rust, Zig, Golang, Julia); and Ruby's nice syntax with efficiency of compiled language IMOH still remains desirable for a lot of us.
- mrmonkeyman 7y agoMaybe Crystal should be used for the Angeldust project featured yesterday. Perhaps both play an important part in modern development. It would explain the state of webdevelopment.
- skocznymroczny 7y agoHow does memory management work in Crystal. Is it RC or GC or manual? As a D user, I've been curious about Crystal for a while, but until it gets proper Windows support I won't be playing with it too much.
- ffwff 7y agoOut of the box, Crystal does garbage collection through the boehmgc library, however if you pass in some compiler flags you can get application to not use GC. As for my OS, I wasn't gonna port libgc, and since I have prior knowledge of building a GC in rust (very badly!) I decided to make a tri-color concurrent, mostly precise (through compiler patches), garbage collector, in Crystal.
- samatman 7y agoHave you read Mike Pall's proposal for a quad-color collector in LuaJIT?[0] That you took this approach leads me to think you'd find it interesting. [0]: http://wiki.luajit.org/New-Garbage-Collector http://wiki.luajit.org/New-Garbage-Collector
- ffwff 7y agoI've read up on how luajit does garbage collection (in fact the current gc/allocator with allocation/marking bitmaps is inspired by his tri-color gc. Apart from specifying when the GC should run, I won't be changing anything about the core gc algorithm used in the project anytime soon.
- ffwff 7y agoOh wow someone actually posted this! Thanks a lot for the comments and criticisms guys, really means lot to me. Before I go I'll answer some questions, so ask them away!
- kburman 7y ago- What are the things that you have patched in crystal and libc? - Any plan to release ISO for us to quickly run it in our local system?
- ffwff 7y agoPrecise GC information, the crystal compiler prepends a dword/qword value indicating an class' typeid upon allocation. I decided to patch the compiler to generate 2 functions, one that outputs the class' size based on a typeid, another one that outputs the offsets of each pointer in that class as a bitmap, based on a typeid. The compiler also generates a null-terminated array of pointers pointing to the offsets of global variables. No iso images yet, I haven't implemented iso9660 filesystem support, but it's coming soon?
- mscasts 7y agoHow old are you?
- martinesko36 7y agoHow/when did you get started with coding? How did you learn your skills and how do you stay so productive?
- 7y ago
- fit2rule 7y agoI wonder what the plan is for a media layer - audio and video streaming, etc? Sure would be fun to write a content-creation app - i.e. DAW - for such an environment.
- williesleg 7y agoWhy is there a kid pleasuring itself on the main page? Not sure what gender or race. Just looks young. I guess Creepy Joe Biden might like this OS.
- RoutinePlayer 7y agoAs admirable an accomplishment as this is, and as with many other projects where the arenan is highly saturated, I feel the README should start with a quick WHY? section. I'm truly not trying to dismiss the programmer's great deed.
- bbmario 7y agoThis is one of the most fun things I've seen in a while. Congrats.
- ksec 7y agoFor those who like Crystal, they have bountysource [1] to support their development. [1] https://salt.bountysource.com/teams/crystal-lang https://salt.bountysource.com/teams/crystal-lang