1,417 karma · joined December 18, 2021
BTW debugging still takes a lot of effort to setup in VSCode / or have to write init scripts for GDB which I suck at. I think Visual Studio debugger beats everything on Linux for that purpose.
Maybe I really need to try out Windows LTSC?
TBH I don't even care about security anymore, like our data has been sold left and right already. As long as I don't get phished, I avoid 80% of the bad actors out there.
I already removed some update software from Ubuntu, those update notifications are very frustrating.
I don't get it. What do you prefer? The inverse?
It has always been the same. Knowledgeable citizens who can push back are the only defence.
TBH I'm always puzzled why EU never managed to push out its own social media software. Maybe just because I don't know?
Now that I think more about the project, probably the first obstacle is how do I compile the thing...someone must have tried that, or the book must have a section about that. But I'll study xv6 first, just to give me some practices.
------------ Please ignore just jotting down for future myself ---------------
(Actually I want to study Win NT more than Linux as it brought me good memories, but Win NT was designed as a mature product from the beginning, and even the leaked 3.5 source code is way too much for me.)
I checked the version history and 0.11 seems to be a good start. Reasons:
- There is this book (https://download.oldlinux.org/ECLK-5.0-WithCover.pdf) which follows the style of Lion's Unix v6 book and uses the 0.12 kernel as reference;
- 0.11 doesn't have a virtual memory or a virtual terminal, and they are among the software I'd like to implement;
- 0.11 does have the basic stuffs so I assume it is not too difficult to set it up with QEMU and QEMU-gdb;
The list of software to implement in mind:
- a Debugger (I'll probably use QEMU-gdb, but if I can write a simple step-in debugger maybe it makes it a bit easier to dogfood? Still too early though as there is no compiler on it)
- a Virtual Memory system (following the MIT xv6 lab, maybe a bit more advanced as I will complete the MIT xv6 labs before pursuing this venture);
- a Virtual terminal (not sure how much I can implement, maybe just a basic one with limited control sequence support);
- a USB driver (not sure if it's possible for 0.11, I have never written a driver before);
- a mouse driver (again probably too difficult for me);
- a LOT of CLI programs as warm-up. Basically simpler versions of modern ones (less switches);
- a text editor. I never liked the key layout of emacs or vim so this is going to be my own thing. I care a lot about moving caret around without using a mouse;
- a very basic GUI system. Nothing fancy, just something that can show windows and some widgets. Maybe don't even care about multiple windows. Showing one window with a menu and some buttons probably needs a lot of effort;
- a compiler/linker of a simple language (can't dogfood without an editor, a compiler, a linker and a debugger I think)
Preparations:
- I need to complete all MIT RISC xv6 labs;
- I need to figure out how to write drivers for USB and mice;
- I want to investigate how X11 and Win32 GUI were implemented and figure out the architecture;
- I need to figure out how to write terminals and text editors. There are tons of tutorials online so shouldn't be too tough;
- I need to study compiler theory, just continue reading Crafting Interpreters should be good enough;
- I need to figure out a comfortable development and debugging environment;
quote: from "Yes Prime Minister"
In the country where I was born, inheritance was way more important than working 100 years ago.
BTW I wish No Starch ships cheaper to Canada. It quickly adds up when I buy more. One of the best publishers out there I think.
- Good UI
- No Algo, although ranking is a bit vague
- Discussion can go very deep as the limit of characters is large
Other than traditional forums, I don't think anything else beats HN. X and Mastodan and such are just too short, too quick.
Another solution is to just live in ShenZhen when it's applicable. The city is nice and vibrant, and you are treated pretty well as long as you don't get into politics.
My side projects? Yeah I guess so. Not as sure as I was 5 years ago, but I need to do something when I'm older, no?
Background: I just switched to Ubuntu 22.04 for my daily use (mostly coding for side projects) but TBH I'm just using it as Windows. I use a Macbook Pro for work and know a bit of shell scripting, some Python, a bit of C and C++. Basically your typical incompetent software developer.