KK
linux system programmingand intro to build root program is very good it helped me lot to learn concept
This course provides an overview of System Programming for the Linux operating system, or software which is interfacing directly with the Linux Kernel and C library. The basic components of a Linux Embedded System, including kernel and root filesystem details are discussed. The Buildroot build system is introduced, which students use to build their own custom Embedded Linux system through programming assignments.
Linux System Programming and Introduction to Buildroot can also be taken for academic credit as ECEA 5305, part of CU Boulder’s Master of Science in Electrical Engineering. This course includes specific hardware and software requirements. Please review the FAQ below for complete details.
KK
linux system programmingand intro to build root program is very good it helped me lot to learn concept
SS
Extremely satisfied with course. The challenges provided made me lose track of time and work on them until I accomplish it.
SS
Great organization my only gripe were some broken links in the reading pages.
RS
A good hands-on course that provides all the Knowledge, and a Little self-study with the resources mentioned in the course can make you a MASTER.
SS
It takes time and effort to solve assignments issues more than learning and working on the topic.
ES
It is quite challenging but fair. In the end it is "advanced"
PA
This was an advanced course with learning github actions, linux, embedded linux
IC
It's an excellent course for learning Linux system programming and understanding how Linux works for user space. You can also create a Linux image for different architectures in this course.
KF
I really loved this course, can't wait to resume on 2nd and 3rd part of it.
MS
It is an excellent course towards embedded Linux Development.
KK
This course is GEM! I loved how assignments made the concepts so clear. Thank you for putting together such an amazing course!
Showing: 20 of 47
First, I really like Daniel and appreciate how he teaches the class. I learned a lot more in-depth about how Linux works and how to build up a customized image independently.
However, there could be a lot of improvements in this course.
1. there is no help in the discussion section. Whatever trouble you are facing, nobody is here to help you.
2. The course's assignment was really hard to follow, some of them are not related to what imo most students are here to learn:
a. most of the assignments need setup of github actions, ssh-key and stuff. Missing one of the step will break up the whole assignment. (they are great stuff to learn and really practical, but I feel like there should be a section to walk through the whole process and I think it should be optional for the student to finish their homework)
b. since there is no help, and latter assignment is dependent on the previous one, I feel stranded, even the assignments in next course in this concentration are depended on this course(I was planned to take the next course to know more about the kernel programming as I already got a substantial understanding of linux system, but it turned out I have to complete this one first, I don't regret it though)
3. grading criteria is really sloppy,
Overall, I can see this is a great course provided by UCB but there is little work done turning a on campus course to a Coursera course, I learned a lot and wasted a lot time tuning things unrelated. Your call
This course is not easy, all tasks are challenging. I got a lot of new information. Things I personally don't like in this course. 1. For each task it's needed to set up individual GitHub runner. 2. Each task has dependencies on another task with submodules. As a result, it's imposible to do tasks out of order. 3. Documentation on how to setup the repository correctly is not straightforward. 4. It's impossible to debug tasks like typical applications, as a task is only a part of the large and complicated test system.
Many thanks to Daniel for this great course. I recommend it to everyone, who is interested in Linux and is looking for a challenging, time-consuming, educational Coursera course on Linux System programming. It is a course for someone, who already has understanding/experience of/on C-Programming/Linux and source control with git. Be prepared to be able to dig deep into the subject matter. To be able to complete the course successfully, you will need critical thinking ability, patience and git commit-ed.
The course is quite difficult due to the number of moving parts. But that's good, that's life. Perhaps some of the assignment descriptions could have been more clear, especially the first assignment that uses Buildroot. I also had issues with running out of disk space on my laptop (to be fair, I was warned). But many thanks to Dan and others for helping to put this course together. It's the best Linux training I've found on Coursera so far.
This is a nice practical introduction to embedded Linux development. It should be noted, however, that this is not an introduction to C programming. If you don't have a strong grasp of C, I would recommend learning it before taking this course.
It's an excellent course for learning Linux system programming and understanding how Linux works for user space. You can also create a Linux image for different architectures in this course.
The buildroot part is too superficial. Most of the configuration was already setup by the course, I think it would have been more challenging if the setup of buildroot was done by the student.
The student review is also too superficial, it's basically based on the GHA status. I think that it could have been better used.
Assignments are boring, uninspired and include more github ci setup than actual programming. Lecturer just reads off slides and does so poorly frequently misspeaking and sometimes forgetting to edit out restarts. There is no feedback on submissions at all.
The course outline does not specify that there are pre-requisites: You need to be running Ubuntu linux. If you have a different distribution, then you'll face some difficulties in getting everything to work properly. This is a big short coming. The outline should have specifically mentioned so. In addition, setting up the environment for your first assignment, the video is not well produced: The font is too small to see what the instructor is talking about; they should have enlarged it at certain places to make it clear for the viewer. And following the instructions from the document is also painstaking since you have to go from one link to another (as when installing action runners and docker). In summary, at the very beginning of the course, the material should have been all about preparing the environment rather than going through some easily known linux commands.
linux system programmingand intro to build root program is very good it helped me lot to learn concept
The bad: The for-credit version of this course uses ProctorU for the proctored final exam , which is a terrible platform and experience. The good: The Course content and assignments were useful and interesting.
Content is VERY poorly organized. Quizzes are often based on material before it gets covered in the curriculum. Steps for homework will say things like "Step 5: be sure you didn't do X in step 1" which by the time you get to step 5, is too late.
High quality course content and assignments seup. It is good to learn and do some system.c, threading.c and socket.c, experience cross compile and qemu it, and sed scripting for matching rootfs structure. Buildroot do take quite a while to compile, yet it is good to navigate around with make menuconfig. Thanks for instructor effort to setup the assignment base, and github runner action, etc. I did heard about CI/CD thing but never see it in action, it is good to see when push source code to github, it will trigger to auto test code with run.sh. Beside learning some system programming in c, it is good to also learning with github cli, action runner, bash scripting, S99 start stop, and compile with Linux kernel source, and experience some troubleshooting.
This course is not easy and definitely not for beginner level. You will be surprised at the amount of knowledge that the instructor wants to deliver. You will need a good foundation and a willingness to learn if you want to pass this course successfully. A familiarity with Git is absolutely necessary to complete the course assignment, so my recommendation is to equip yourself with that. An important part in this course is Buildroot, but it does not have enough lecture time, IMO. In overall, I definitely recommend anyone who loves Embedded Linux and want to explore to check out this course (and of course the follow on courses) to pursue the career on this field.
I really loved this course, can't wait to resume on 2nd and 3rd part of it.
It is an excellent course towards embedded Linux Development.
It was not easy, but worth to take this course
Excellent training material
It's all I want to learn
Great course, I
learned a lot! But it’s
a ton of work! Very
hard to complete all 9 assignments in the given 8 weeks while working
full-time.
I started this course a week early and still barely finished the last assignment on the last
possible day.